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 : 7 ( 1 unt; 1 typ; 0 def)
% Number of atoms : 162 ( 3 equ; 0 cnn)
% Maximal formula atoms : 22 ( 23 avg)
% Number of connectives : 186 ( 0 ~; 0 |; 0 &; 179 @)
% ( 0 <=>; 7 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 7 avg; 179 nst)
% Number of types : 1 ( 0 usr)
% Number of type conns : 0 ( 0 >; 0 *; 0 +; 0 <<)
% Number of symbols : 30 ( 29 usr; 29 con; 0-2 aty)
% Number of variables : 11 ( 3 ^ 8 !; 0 ?; 11 :)
% SPC : TH0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2Egcdset_2Egcdset,type,
c_2Egcdset_2Egcdset: $i ).
thf(mem_c_2Egcdset_2Egcdset,axiom,
mem @ c_2Egcdset_2Egcdset @ ( arr @ ( arr @ ty_2Enum_2Enum @ bool ) @ ty_2Enum_2Enum ) ).
thf(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 )
@ ( lam @ ty_2Enum_2Enum
@ ^ [V1n: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ ty_2Enum_2Enum @ bool ) @ V1n ) @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ 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 ) ) ) ) ) ) ) )
@ ( ap @ ( c_2Epred__set_2EGSPEC @ ty_2Enum_2Enum @ ty_2Enum_2Enum )
@ ( lam @ ty_2Enum_2Enum
@ ^ [V2d: $i] :
( ap @ ( ap @ ( c_2Epair_2E_2C @ ty_2Enum_2Enum @ bool ) @ V2d )
@ ( ap @ ( c_2Ebool_2E_21 @ ty_2Enum_2Enum )
@ ( lam @ ty_2Enum_2Enum
@ ^ [V3e: $i] : ( ap @ ( ap @ c_2Emin_2E_3D_3D_3E @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ty_2Enum_2Enum ) @ V3e ) @ V0s ) ) @ ( ap @ ( ap @ c_2Edivides_2Edivides @ V2d ) @ V3e ) ) ) ) ) ) ) ) ) ) ) ) ) ).
thf(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 ) ) ) ) ) ).
thf(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 ) ) ) ) ) ).
thf(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 ) ).
thf(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 ) ) ) ) ) ).
%------------------------------------------------------------------------------