ITP001 Axioms: ITP029_5.ax


%------------------------------------------------------------------------------
% File     : ITP029_5 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : gcdset_2.ax [Gau20]
%          : HL4029_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   13 (   2 unt;   4 typ;   0 def)
%            Number of atoms       :  183 (   6 equ)
%            Maximal formula atoms :    4 (  14 avg)
%            Number of connectives :   10 (   0   ~;   0   |;   0   &)
%                                         (   0 <=>;  10  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   4 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       :  164 ( 164 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    4 (   3   >;   1   *;   0   +;   0  <<)
%            Number of predicates  :   28 (  27 usr;  11 prp; 0-2 aty)
%            Number of functors    :    4 (   4 usr;   1 con; 0-2 aty)
%            Number of variables   :   15 (  15   !;   0   ?;  15   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_c_2Egcdset_2Egcdset,type,
    c_2Egcdset_2Egcdset: $i ).

tff(mem_c_2Egcdset_2Egcdset,axiom,
    mem(c_2Egcdset_2Egcdset,arr(arr(ty_2Enum_2Enum,bool),ty_2Enum_2Enum)) ).

tff(lamtp_f314,type,
    f314: $i > $i ).

tff(lameq_f314,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ! [V1n: tp__ty_2Enum_2Enum] : ( ap(f314(V0s),inj__ty_2Enum_2Enum(V1n)) = ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V1n)),ap(c_2Epred__set_2EMIN__SET,ap(ap(c_2Epred__set_2EDELETE(ty_2Enum_2Enum),V0s),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))))) ) ) ).

tff(lamtp_f315,type,
    f315: ( $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f315,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ! [V2d: tp__ty_2Enum_2Enum,V3e: tp__ty_2Enum_2Enum] : ( ap(f315(V0s,V2d),inj__ty_2Enum_2Enum(V3e)) = ap(ap(c_2Emin_2E_3D_3D_3E,ap(ap(c_2Ebool_2EIN(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V3e)),V0s)),ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2d)),inj__ty_2Enum_2Enum(V3e))) ) ) ).

tff(lamtp_f316,type,
    f316: $i > $i ).

tff(lameq_f316,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ! [V2d: tp__ty_2Enum_2Enum] : ( ap(f316(V0s),inj__ty_2Enum_2Enum(V2d)) = ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V2d)),ap(c_2Ebool_2E_21(ty_2Enum_2Enum),f315(V0s,V2d))) ) ) ).

tff(ax_thm_2Egcdset_2Egcdset__def,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ( surj__ty_2Enum_2Enum(ap(c_2Egcdset_2Egcdset,V0s)) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Ebool_2E_5C_2F,ap(ap(c_2Emin_2E_3D(arr(ty_2Enum_2Enum,bool)),V0s),c_2Epred__set_2EEMPTY(ty_2Enum_2Enum))),ap(ap(c_2Emin_2E_3D(arr(ty_2Enum_2Enum,bool)),V0s),ap(ap(c_2Epred__set_2EINSERT(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),c_2Epred__set_2EEMPTY(ty_2Enum_2Enum))))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Epred__set_2EMAX__SET,ap(ap(c_2Epred__set_2EINTER(ty_2Enum_2Enum),ap(c_2Epred__set_2EGSPEC(ty_2Enum_2Enum,ty_2Enum_2Enum),f314(V0s))),ap(c_2Epred__set_2EGSPEC(ty_2Enum_2Enum,ty_2Enum_2Enum),f316(V0s)))))) ) ) ).

tff(conj_thm_2Egcdset_2Egcdset__divides,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ! [V1e: tp__ty_2Enum_2Enum] :
          ( p(ap(ap(c_2Ebool_2EIN(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1e)),V0s))
         => p(ap(ap(c_2Edivides_2Edivides,ap(c_2Egcdset_2Egcdset,V0s)),inj__ty_2Enum_2Enum(V1e))) ) ) ).

tff(conj_thm_2Egcdset_2Egcdset__greatest,axiom,
    ! [V0s: $i] :
      ( mem(V0s,arr(ty_2Enum_2Enum,bool))
     => ! [V1g: tp__ty_2Enum_2Enum] :
          ( ! [V2e: tp__ty_2Enum_2Enum] :
              ( p(ap(ap(c_2Ebool_2EIN(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2e)),V0s))
             => p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1g)),inj__ty_2Enum_2Enum(V2e))) )
         => p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1g)),ap(c_2Egcdset_2Egcdset,V0s))) ) ) ).

tff(conj_thm_2Egcdset_2Egcdset__EMPTY,axiom,
    surj__ty_2Enum_2Enum(ap(c_2Egcdset_2Egcdset,c_2Epred__set_2EEMPTY(ty_2Enum_2Enum))) = fo__c_2Enum_2E0 ).

tff(conj_thm_2Egcdset_2Egcdset__INSERT,axiom,
    ! [V0x: tp__ty_2Enum_2Enum,V1s: $i] :
      ( mem(V1s,arr(ty_2Enum_2Enum,bool))
     => ( surj__ty_2Enum_2Enum(ap(c_2Egcdset_2Egcdset,ap(ap(c_2Epred__set_2EINSERT(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0x)),V1s))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0x)),ap(c_2Egcdset_2Egcdset,V1s))) ) ) ).

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