ITP001 Axioms: ITP009^5.ax
%------------------------------------------------------------------------------
% File : ITP009^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 : num^2.ax [Gau20]
% : HL4009^5.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 43 ( 13 unt; 17 typ; 0 def)
% Number of atoms : 117 ( 16 equ; 0 cnn)
% Maximal formula atoms : 20 ( 2 avg)
% Number of connectives : 190 ( 3 ~; 0 |; 5 &; 172 @)
% ( 2 <=>; 8 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 4 avg; 172 nst)
% Number of types : 2 ( 1 usr)
% Number of type conns : 6 ( 6 >; 0 *; 0 +; 0 <<)
% Number of symbols : 30 ( 29 usr; 23 con; 0-2 aty)
% Number of variables : 21 ( 0 ^ 20 !; 1 ?; 21 :)
% SPC : TH0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_ty_2Enum_2Enum,type,
ty_2Enum_2Enum: del ).
thf(stp_ty_2Enum_2Enum,type,
tp__ty_2Enum_2Enum: $tType ).
thf(stp_inj_ty_2Enum_2Enum,type,
inj__ty_2Enum_2Enum: tp__ty_2Enum_2Enum > $i ).
thf(stp_surj_ty_2Enum_2Enum,type,
surj__ty_2Enum_2Enum: $i > tp__ty_2Enum_2Enum ).
thf(stp_inj_surj_ty_2Enum_2Enum,axiom,
! [X: tp__ty_2Enum_2Enum] :
( ( surj__ty_2Enum_2Enum @ ( inj__ty_2Enum_2Enum @ X ) )
= X ) ).
thf(stp_inj_mem_ty_2Enum_2Enum,axiom,
! [X: tp__ty_2Enum_2Enum] : ( mem @ ( inj__ty_2Enum_2Enum @ X ) @ ty_2Enum_2Enum ) ).
thf(stp_iso_mem_ty_2Enum_2Enum,axiom,
! [X: $i] :
( ( mem @ X @ ty_2Enum_2Enum )
=> ( X
= ( inj__ty_2Enum_2Enum @ ( surj__ty_2Enum_2Enum @ X ) ) ) ) ).
thf(tp_c_2Enum_2E0,type,
c_2Enum_2E0: $i ).
thf(mem_c_2Enum_2E0,axiom,
mem @ c_2Enum_2E0 @ ty_2Enum_2Enum ).
thf(stp_fo_c_2Enum_2E0,type,
fo__c_2Enum_2E0: tp__ty_2Enum_2Enum ).
thf(stp_eq_fo_c_2Enum_2E0,axiom,
( ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 )
= c_2Enum_2E0 ) ).
thf(tp_c_2Enum_2EABS__num,type,
c_2Enum_2EABS__num: $i ).
thf(mem_c_2Enum_2EABS__num,axiom,
mem @ c_2Enum_2EABS__num @ ( arr @ ind @ ty_2Enum_2Enum ) ).
thf(stp_fo_c_2Enum_2EABS__num,type,
fo__c_2Enum_2EABS__num: tp__i > tp__ty_2Enum_2Enum ).
thf(stp_eq_fo_c_2Enum_2EABS__num,axiom,
! [X0: tp__i] :
( ( inj__ty_2Enum_2Enum @ ( fo__c_2Enum_2EABS__num @ X0 ) )
= ( ap @ c_2Enum_2EABS__num @ ( inj__i @ X0 ) ) ) ).
thf(tp_c_2Enum_2EIS__NUM__REP,type,
c_2Enum_2EIS__NUM__REP: $i ).
thf(mem_c_2Enum_2EIS__NUM__REP,axiom,
mem @ c_2Enum_2EIS__NUM__REP @ ( arr @ ind @ bool ) ).
thf(tp_c_2Enum_2EREP__num,type,
c_2Enum_2EREP__num: $i ).
thf(mem_c_2Enum_2EREP__num,axiom,
mem @ c_2Enum_2EREP__num @ ( arr @ ty_2Enum_2Enum @ ind ) ).
thf(stp_fo_c_2Enum_2EREP__num,type,
fo__c_2Enum_2EREP__num: tp__ty_2Enum_2Enum > tp__i ).
thf(stp_eq_fo_c_2Enum_2EREP__num,axiom,
! [X0: tp__ty_2Enum_2Enum] :
( ( inj__i @ ( fo__c_2Enum_2EREP__num @ X0 ) )
= ( ap @ c_2Enum_2EREP__num @ ( inj__ty_2Enum_2Enum @ X0 ) ) ) ).
thf(tp_c_2Enum_2ESUC,type,
c_2Enum_2ESUC: $i ).
thf(mem_c_2Enum_2ESUC,axiom,
mem @ c_2Enum_2ESUC @ ( arr @ ty_2Enum_2Enum @ ty_2Enum_2Enum ) ).
thf(stp_fo_c_2Enum_2ESUC,type,
fo__c_2Enum_2ESUC: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).
thf(stp_eq_fo_c_2Enum_2ESUC,axiom,
! [X0: tp__ty_2Enum_2Enum] :
( ( inj__ty_2Enum_2Enum @ ( fo__c_2Enum_2ESUC @ X0 ) )
= ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ X0 ) ) ) ).
thf(tp_c_2Enum_2ESUC__REP,type,
c_2Enum_2ESUC__REP: $i ).
thf(mem_c_2Enum_2ESUC__REP,axiom,
mem @ c_2Enum_2ESUC__REP @ ( arr @ ind @ ind ) ).
thf(stp_fo_c_2Enum_2ESUC__REP,type,
fo__c_2Enum_2ESUC__REP: tp__i > tp__i ).
thf(stp_eq_fo_c_2Enum_2ESUC__REP,axiom,
! [X0: tp__i] :
( ( inj__i @ ( fo__c_2Enum_2ESUC__REP @ X0 ) )
= ( ap @ c_2Enum_2ESUC__REP @ ( inj__i @ X0 ) ) ) ).
thf(tp_c_2Enum_2EZERO__REP,type,
c_2Enum_2EZERO__REP: $i ).
thf(mem_c_2Enum_2EZERO__REP,axiom,
mem @ c_2Enum_2EZERO__REP @ ind ).
thf(stp_fo_c_2Enum_2EZERO__REP,type,
fo__c_2Enum_2EZERO__REP: tp__i ).
thf(stp_eq_fo_c_2Enum_2EZERO__REP,axiom,
( ( inj__i @ fo__c_2Enum_2EZERO__REP )
= c_2Enum_2EZERO__REP ) ).
thf(ax_thm_2Enum_2ESUC__REP__DEF,axiom,
( ( p @ ( ap @ ( c_2Ebool_2EONE__ONE @ ind @ ind ) @ c_2Enum_2ESUC__REP ) )
& ~ ( p @ ( ap @ ( c_2Ebool_2EONTO @ ind @ ind ) @ c_2Enum_2ESUC__REP ) ) ) ).
thf(ax_thm_2Enum_2EZERO__REP__DEF,axiom,
! [V0y: tp__i] :
( fo__c_2Enum_2EZERO__REP
!= ( surj__i @ ( ap @ c_2Enum_2ESUC__REP @ ( inj__i @ V0y ) ) ) ) ).
thf(ax_thm_2Enum_2EIS__NUM__REP,axiom,
! [V0m: tp__i] :
( ( p @ ( ap @ c_2Enum_2EIS__NUM__REP @ ( inj__i @ V0m ) ) )
<=> ! [V1P: $i] :
( ( mem @ V1P @ ( arr @ ind @ bool ) )
=> ( ( ( p @ ( ap @ V1P @ ( inj__i @ fo__c_2Enum_2EZERO__REP ) ) )
& ! [V2n: tp__i] :
( ( p @ ( ap @ V1P @ ( inj__i @ V2n ) ) )
=> ( p @ ( ap @ V1P @ ( ap @ c_2Enum_2ESUC__REP @ ( inj__i @ V2n ) ) ) ) ) )
=> ( p @ ( ap @ V1P @ ( inj__i @ V0m ) ) ) ) ) ) ).
thf(ax_thm_2Enum_2Enum__TY__DEF,axiom,
? [V0rep: $i] :
( ( mem @ V0rep @ ( arr @ ty_2Enum_2Enum @ ind ) )
& ( p @ ( ap @ ( ap @ ( c_2Ebool_2ETYPE__DEFINITION @ ind @ ty_2Enum_2Enum ) @ c_2Enum_2EIS__NUM__REP ) @ V0rep ) ) ) ).
thf(ax_thm_2Enum_2Enum__ISO__DEF,axiom,
( ! [V0a: tp__ty_2Enum_2Enum] :
( ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2EABS__num @ ( ap @ c_2Enum_2EREP__num @ ( inj__ty_2Enum_2Enum @ V0a ) ) ) )
= V0a )
& ! [V1r: tp__i] :
( ( p @ ( ap @ c_2Enum_2EIS__NUM__REP @ ( inj__i @ V1r ) ) )
<=> ( ( surj__i @ ( ap @ c_2Enum_2EREP__num @ ( ap @ c_2Enum_2EABS__num @ ( inj__i @ V1r ) ) ) )
= V1r ) ) ) ).
thf(ax_thm_2Enum_2EZERO__DEF,axiom,
( fo__c_2Enum_2E0
= ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2EABS__num @ ( inj__i @ fo__c_2Enum_2EZERO__REP ) ) ) ) ).
thf(ax_thm_2Enum_2ESUC__DEF,axiom,
! [V0m: tp__ty_2Enum_2Enum] :
( ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V0m ) ) )
= ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2EABS__num @ ( ap @ c_2Enum_2ESUC__REP @ ( ap @ c_2Enum_2EREP__num @ ( inj__ty_2Enum_2Enum @ V0m ) ) ) ) ) ) ).
thf(conj_thm_2Enum_2ENOT__SUC,axiom,
! [V0n: tp__ty_2Enum_2Enum] :
( ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V0n ) ) )
!= fo__c_2Enum_2E0 ) ).
thf(conj_thm_2Enum_2EINV__SUC,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
( ( ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V0m ) ) )
= ( surj__ty_2Enum_2Enum @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) )
=> ( V0m = V1n ) ) ).
thf(conj_thm_2Enum_2EINDUCTION,axiom,
! [V0P: $i] :
( ( mem @ V0P @ ( arr @ ty_2Enum_2Enum @ bool ) )
=> ( ( ( p @ ( ap @ V0P @ ( inj__ty_2Enum_2Enum @ fo__c_2Enum_2E0 ) ) )
& ! [V1n: tp__ty_2Enum_2Enum] :
( ( p @ ( ap @ V0P @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
=> ( p @ ( ap @ V0P @ ( ap @ c_2Enum_2ESUC @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) ) ) )
=> ! [V2n: tp__ty_2Enum_2Enum] : ( p @ ( ap @ V0P @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) ) ) ).
%------------------------------------------------------------------------------