TPTP Axioms File: COM001+1.ax


%------------------------------------------------------------------------------
% File     : COM001+1 : TPTP v9.0.0. Released v6.4.0.
% Domain   : Computing Theory
% Axioms   : Common axioms for progress/preservation proof
% Version  : [Gre15] axioms : Especial.
% English  :

% Refs     : [Pie02] Pierce (2002), Programming Languages
%          : [Gre15] Grewe (2015), Email to Geoff Sutcliffe
%          : [GE+15] Grewe et al. (2015), Type Systems for the Masses: Deri
% Source   : [Gre15]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :    6 (   1 unt;   0 def)
%            Number of atoms       :   14 (   0 equ)
%            Maximal formula atoms :    3 (   2 avg)
%            Number of connectives :   11 (   3   ~;   0   |;   3   &)
%                                         (   0 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   6 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    3 (   3 usr;   0 prp; 2-3 aty)
%            Number of functors    :    3 (   3 usr;   0 con; 1-3 aty)
%            Number of variables   :   17 (  17   !;   0   ?)
% SPC      :

% Comments : Requires COM001+0.ax
%------------------------------------------------------------------------------
fof('alpha-equiv-refl',axiom,
    ! [Ve] : valphaEquivalent(Ve,Ve) ).

fof('alpha-equiv-sym',axiom,
    ! [Ve2,Ve1] :
      ( valphaEquivalent(Ve1,Ve2)
     => valphaEquivalent(Ve2,Ve1) ) ).

fof('alpha-equiv-trans',axiom,
    ! [Ve2,Ve1,Ve3] :
      ( ( valphaEquivalent(Ve1,Ve2)
        & valphaEquivalent(Ve2,Ve3) )
     => valphaEquivalent(Ve1,Ve3) ) ).

fof('alpha-equiv-subst-abs',axiom,
    ! [VS,Vx,Vy,Ve] :
      ( ~ visFreeVar(Vy,Ve)
     => valphaEquivalent(vabs(Vx,VS,Ve),vabs(Vy,VS,vsubst(Vx,vvar(Vy),Ve))) ) ).

fof('alpha-equiv-typing',axiom,
    ! [Ve,VC,Ve1,VT] :
      ( ( vtcheck(VC,Ve,VT)
        & valphaEquivalent(Ve,Ve1) )
     => vtcheck(VC,Ve1,VT) ) ).

fof('alpha-equiv-FreeVar',axiom,
    ! [Ve,Vx,Ve1] :
      ( ( ~ visFreeVar(Vx,Ve)
        & valphaEquivalent(Ve,Ve1) )
     => ~ visFreeVar(Vx,Ve1) ) ).

%------------------------------------------------------------------------------