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 : 45 ( 20 unt; 18 typ; 0 def)
% Number of atoms : 121 ( 17 equ)
% Maximal formula atoms : 6 ( 2 avg)
% Number of connectives : 18 ( 3 ~; 0 |; 5 &)
% ( 2 <=>; 8 =>; 0 <=; 0 <~>)
% Maximal formula depth : 9 ( 2 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of FOOLs : 79 ( 79 fml; 0 var)
% Number of types : 2 ( 1 usr)
% Number of type conns : 7 ( 7 >; 0 *; 0 +; 0 <<)
% Number of predicates : 16 ( 15 usr; 5 prp; 0-2 aty)
% Number of functors : 17 ( 17 usr; 10 con; 0-1 aty)
% Number of variables : 22 ( 21 !; 1 ?; 22 :)
% SPC : TF0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_ty_2Enum_2Enum,type,
ty_2Enum_2Enum: del ).
tff(stp_ty_2Enum_2Enum,type,
tp__ty_2Enum_2Enum: $tType ).
tff(stp_inj_ty_2Enum_2Enum,type,
inj__ty_2Enum_2Enum: tp__ty_2Enum_2Enum > $i ).
tff(stp_surj_ty_2Enum_2Enum,type,
surj__ty_2Enum_2Enum: $i > tp__ty_2Enum_2Enum ).
tff(stp_inj_surj_ty_2Enum_2Enum,axiom,
! [X: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(inj__ty_2Enum_2Enum(X)) = X ) ).
tff(stp_inj_mem_ty_2Enum_2Enum,axiom,
! [X: tp__ty_2Enum_2Enum] : mem(inj__ty_2Enum_2Enum(X),ty_2Enum_2Enum) ).
tff(stp_iso_mem_ty_2Enum_2Enum,axiom,
! [X: $i] :
( mem(X,ty_2Enum_2Enum)
=> ( X = inj__ty_2Enum_2Enum(surj__ty_2Enum_2Enum(X)) ) ) ).
tff(tp_c_2Enum_2E0,type,
c_2Enum_2E0: $i ).
tff(mem_c_2Enum_2E0,axiom,
mem(c_2Enum_2E0,ty_2Enum_2Enum) ).
tff(stp_fo_c_2Enum_2E0,type,
fo__c_2Enum_2E0: tp__ty_2Enum_2Enum ).
tff(stp_eq_fo_c_2Enum_2E0,axiom,
inj__ty_2Enum_2Enum(fo__c_2Enum_2E0) = c_2Enum_2E0 ).
tff(tp_c_2Enum_2EABS__num,type,
c_2Enum_2EABS__num: $i ).
tff(mem_c_2Enum_2EABS__num,axiom,
mem(c_2Enum_2EABS__num,arr(ind,ty_2Enum_2Enum)) ).
tff(stp_fo_c_2Enum_2EABS__num,type,
fo__c_2Enum_2EABS__num: tp__i > tp__ty_2Enum_2Enum ).
tff(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)) ) ).
tff(tp_c_2Enum_2EIS__NUM__REP,type,
c_2Enum_2EIS__NUM__REP: $i ).
tff(mem_c_2Enum_2EIS__NUM__REP,axiom,
mem(c_2Enum_2EIS__NUM__REP,arr(ind,bool)) ).
tff(stp_fo_c_2Enum_2EIS__NUM__REP,type,
fo__c_2Enum_2EIS__NUM__REP: tp__i > tp__o ).
tff(stp_eq_fo_c_2Enum_2EIS__NUM__REP,axiom,
! [X0: tp__i] : ( inj__o(fo__c_2Enum_2EIS__NUM__REP(X0)) = ap(c_2Enum_2EIS__NUM__REP,inj__i(X0)) ) ).
tff(tp_c_2Enum_2EREP__num,type,
c_2Enum_2EREP__num: $i ).
tff(mem_c_2Enum_2EREP__num,axiom,
mem(c_2Enum_2EREP__num,arr(ty_2Enum_2Enum,ind)) ).
tff(stp_fo_c_2Enum_2EREP__num,type,
fo__c_2Enum_2EREP__num: tp__ty_2Enum_2Enum > tp__i ).
tff(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)) ) ).
tff(tp_c_2Enum_2ESUC,type,
c_2Enum_2ESUC: $i ).
tff(mem_c_2Enum_2ESUC,axiom,
mem(c_2Enum_2ESUC,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)) ).
tff(stp_fo_c_2Enum_2ESUC,type,
fo__c_2Enum_2ESUC: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).
tff(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)) ) ).
tff(tp_c_2Enum_2ESUC__REP,type,
c_2Enum_2ESUC__REP: $i ).
tff(mem_c_2Enum_2ESUC__REP,axiom,
mem(c_2Enum_2ESUC__REP,arr(ind,ind)) ).
tff(stp_fo_c_2Enum_2ESUC__REP,type,
fo__c_2Enum_2ESUC__REP: tp__i > tp__i ).
tff(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)) ) ).
tff(tp_c_2Enum_2EZERO__REP,type,
c_2Enum_2EZERO__REP: $i ).
tff(mem_c_2Enum_2EZERO__REP,axiom,
mem(c_2Enum_2EZERO__REP,ind) ).
tff(stp_fo_c_2Enum_2EZERO__REP,type,
fo__c_2Enum_2EZERO__REP: tp__i ).
tff(stp_eq_fo_c_2Enum_2EZERO__REP,axiom,
inj__i(fo__c_2Enum_2EZERO__REP) = c_2Enum_2EZERO__REP ).
tff(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)) ) ).
tff(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))) ) ).
tff(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))) ) ) ) ).
tff(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)) ) ).
tff(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 ) ) ) ).
tff(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))) ).
tff(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))))) ) ).
tff(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 ) ).
tff(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 ) ) ).
tff(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))) ) ) ).
%------------------------------------------------------------------------------