ITP001 Axioms: ITP075_5.ax


%------------------------------------------------------------------------------
% File     : ITP075_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    : string_num_2.ax [Gau20]
%          : HL4075_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   70 (  31 unt;  26 typ;   0 def)
%            Number of atoms       :  895 (  42 equ)
%            Maximal formula atoms :    7 (  12 avg)
%            Number of connectives :   19 (   1   ~;   0   |;   4   &)
%                                         (   2 <=>;  12  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   3 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of FOOLs       :  833 ( 833 fml;   0 var)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   21 (  16   >;   5   *;   0   +;   0  <<)
%            Number of predicates  :   47 (  46 usr;  22 prp; 0-4 aty)
%            Number of functors    :   24 (  24 usr;   8 con; 0-3 aty)
%            Number of variables   :   62 (  60   !;   2   ?;  62   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(stp_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,type,
    tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum: $tType ).

tff(stp_inj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,type,
    inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum > $i ).

tff(stp_surj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,type,
    surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum: $i > tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum ).

tff(stp_inj_surj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum] : ( surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(X)) = X ) ).

tff(stp_inj_mem_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum] : mem(inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(X),ty_2Esum_2Esum(ty_2Enum_2Enum,ty_2Enum_2Enum)) ).

tff(stp_iso_mem_c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum,axiom,
    ! [X: $i] :
      ( mem(X,ty_2Esum_2Esum(ty_2Enum_2Enum,ty_2Enum_2Enum))
     => ( X = inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(X)) ) ) ).

tff(tp_c_2Estring__num_2En2nsum,type,
    c_2Estring__num_2En2nsum: $i ).

tff(mem_c_2Estring__num_2En2nsum,axiom,
    mem(c_2Estring__num_2En2nsum,arr(ty_2Enum_2Enum,ty_2Esum_2Esum(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(tp_c_2Estring__num_2En2s,type,
    c_2Estring__num_2En2s: $i ).

tff(mem_c_2Estring__num_2En2s,axiom,
    mem(c_2Estring__num_2En2s,arr(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar))) ).

tff(tp_c_2Estring__num_2Ensum2n,type,
    c_2Estring__num_2Ensum2n: $i ).

tff(mem_c_2Estring__num_2Ensum2n,axiom,
    mem(c_2Estring__num_2Ensum2n,arr(ty_2Esum_2Esum(ty_2Enum_2Enum,ty_2Enum_2Enum),ty_2Enum_2Enum)) ).

tff(stp_fo_c_2Estring__num_2Ensum2n,type,
    fo__c_2Estring__num_2Ensum2n: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Estring__num_2Ensum2n,axiom,
    ! [X0: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Estring__num_2Ensum2n(X0)) = ap(c_2Estring__num_2Ensum2n,inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(X0)) ) ).

tff(tp_c_2Estring__num_2Es2n,type,
    c_2Estring__num_2Es2n: $i ).

tff(mem_c_2Estring__num_2Es2n,axiom,
    mem(c_2Estring__num_2Es2n,arr(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Enum_2Enum)) ).

tff(stp_fo_c_2Estring__num_2Es2n,type,
    fo__c_2Estring__num_2Es2n: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Estring__num_2Es2n,axiom,
    ! [X0: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( inj__ty_2Enum_2Enum(fo__c_2Estring__num_2Es2n(X0)) = ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(X0)) ) ).

tff(stp_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,type,
    tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar: $tType ).

tff(stp_inj_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,type,
    inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar: tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar > $i ).

tff(stp_surj_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,type,
    surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar: $i > tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar ).

tff(stp_inj_surj_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(X)) = X ) ).

tff(stp_inj_mem_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar] : mem(inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(X),ty_2Esum_2Esum(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar))) ).

tff(stp_iso_mem_c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar,axiom,
    ! [X: $i] :
      ( mem(X,ty_2Esum_2Esum(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)))
     => ( X = inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(X)) ) ) ).

tff(tp_c_2Estring__num_2Es2ssum,type,
    c_2Estring__num_2Es2ssum: $i ).

tff(mem_c_2Estring__num_2Es2ssum,axiom,
    mem(c_2Estring__num_2Es2ssum,arr(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Esum_2Esum(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)))) ).

tff(tp_c_2Estring__num_2Essum2s,type,
    c_2Estring__num_2Essum2s: $i ).

tff(mem_c_2Estring__num_2Essum2s,axiom,
    mem(c_2Estring__num_2Essum2s,arr(ty_2Esum_2Esum(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)),ty_2Elist_2Elist(ty_2Estring_2Echar))) ).

tff(lamtp_f1823,type,
    f1823: ( tp__ty_2Enum_2Enum * $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f1823,axiom,
    ! [V2r0: tp__ty_2Enum_2Enum,V0R: $i] :
      ( mem(V0R,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))
     => ! [V1n: tp__ty_2Enum_2Enum,V3r: tp__ty_2Enum_2Enum] : ( ap(f1823(V2r0,V0R,V1n),inj__ty_2Enum_2Enum(V3r)) = ap(ap(c_2Emin_2E_3D_3D_3E,ap(ap(c_2Ebool_2E_2F_5C,ap(c_2Ebool_2E_7E,ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))),ap(ap(c_2Ebool_2E_2F_5C,ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2r0)),ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))))),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V3r)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2r0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))),inj__ty_2Enum_2Enum(V2r0)))))),ap(ap(V0R,ap(ap(c_2Earithmetic_2EDIV,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V3r))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))))))),inj__ty_2Enum_2Enum(V1n))) ) ) ).

tff(lamtp_f1824,type,
    f1824: ( tp__ty_2Enum_2Enum * $i ) > $i ).

tff(lameq_f1824,axiom,
    ! [V1n: tp__ty_2Enum_2Enum,V0R: $i] :
      ( mem(V0R,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))
     => ! [V2r0: tp__ty_2Enum_2Enum] : ( ap(f1824(V1n,V0R),inj__ty_2Enum_2Enum(V2r0)) = ap(c_2Ebool_2E_21(ty_2Enum_2Enum),f1823(V2r0,V0R,V1n)) ) ) ).

tff(lamtp_f1825,type,
    f1825: $i > $i ).

tff(lameq_f1825,axiom,
    ! [V0R: $i] :
      ( mem(V0R,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))
     => ! [V1n: tp__ty_2Enum_2Enum] : ( ap(f1825(V0R),inj__ty_2Enum_2Enum(V1n)) = ap(c_2Ebool_2E_21(ty_2Enum_2Enum),f1824(V1n,V0R)) ) ) ).

tff(lamtp_f1826,type,
    f1826: $i ).

tff(lameq_f1826,axiom,
    ! [V0R: $i] : ( ap(f1826,V0R) = ap(ap(c_2Ebool_2E_2F_5C,ap(c_2Erelation_2EWF(ty_2Enum_2Enum),V0R)),ap(c_2Ebool_2E_21(ty_2Enum_2Enum),f1825(V0R))) ) ).

tff(lamtp_f1827,type,
    f1827: tp__ty_2Enum_2Enum > $i ).

tff(lameq_f1827,axiom,
    ! [V7r: tp__ty_2Enum_2Enum,V8s0: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( ap(f1827(V7r),inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V8s0)) = ap(ap(c_2Elist_2ECONS(ty_2Estring_2Echar),ap(c_2Estring_2ECHR,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V7r)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V8s0)) ) ).

tff(lamtp_f1828,type,
    f1828: ( $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f1828,axiom,
    ! [V4n2s: $i] :
      ( mem(V4n2s,arr(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)))
     => ! [V5a: tp__ty_2Enum_2Enum,V7r: tp__ty_2Enum_2Enum] : ( ap(f1828(V4n2s,V5a),inj__ty_2Enum_2Enum(V7r)) = ap(ap(c_2Ebool_2ELET(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)),f1827(V7r)),ap(V4n2s,ap(ap(c_2Earithmetic_2EDIV,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V5a)),inj__ty_2Enum_2Enum(V7r))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))))) ) ) ).

tff(lamtp_f1829,type,
    f1829: ( $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f1829,axiom,
    ! [V4n2s: $i] :
      ( mem(V4n2s,arr(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)))
     => ! [V5a: tp__ty_2Enum_2Enum,V6r0: tp__ty_2Enum_2Enum] : ( ap(f1829(V4n2s,V5a),inj__ty_2Enum_2Enum(V6r0)) = ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)),f1828(V4n2s,V5a)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V6r0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))),inj__ty_2Enum_2Enum(V6r0))) ) ) ).

tff(lamtp_f1830,type,
    f1830: $i > $i ).

tff(lameq_f1830,axiom,
    ! [V4n2s: $i] :
      ( mem(V4n2s,arr(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)))
     => ! [V5a: tp__ty_2Enum_2Enum] : ( ap(f1830(V4n2s),inj__ty_2Enum_2Enum(V5a)) = ap(c_2Ecombin_2EI(ty_2Elist_2Elist(ty_2Estring_2Echar)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(ty_2Estring_2Echar)),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V5a)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),c_2Elist_2ENIL(ty_2Estring_2Echar)),ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)),f1829(V4n2s,V5a)),ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(V5a)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))))))))) ) ) ).

tff(lamtp_f1831,type,
    f1831: $i ).

tff(lameq_f1831,axiom,
    ! [V4n2s: $i] : ( ap(f1831,V4n2s) = f1830(V4n2s) ) ).

tff(ax_thm_2Estring__num_2En2s__primitive__def,axiom,
    c_2Estring__num_2En2s = ap(ap(c_2Erelation_2EWFREC(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)),ap(c_2Emin_2E_40(arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool))),f1826)),f1831) ).

tff(conj_thm_2Estring__num_2En2s__ind,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(ty_2Enum_2Enum,bool))
     => ( ! [V1n: tp__ty_2Enum_2Enum] :
            ( ! [V2r0: tp__ty_2Enum_2Enum,V3r: tp__ty_2Enum_2Enum] :
                ( ( ( V1n != fo__c_2Enum_2E0 )
                  & ( V2r0 = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))))))) )
                  & ( V3r = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2r0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))),inj__ty_2Enum_2Enum(V2r0))) ) )
               => p(ap(V0P,ap(ap(c_2Earithmetic_2EDIV,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V3r))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))))) )
           => p(ap(V0P,inj__ty_2Enum_2Enum(V1n))) )
       => ! [V4v: tp__ty_2Enum_2Enum] : p(ap(V0P,inj__ty_2Enum_2Enum(V4v))) ) ) ).

tff(lamtp_f1832,type,
    f1832: tp__ty_2Enum_2Enum > $i ).

tff(lameq_f1832,axiom,
    ! [V2r: tp__ty_2Enum_2Enum,V3s0: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( ap(f1832(V2r),inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V3s0)) = ap(ap(c_2Elist_2ECONS(ty_2Estring_2Echar),ap(c_2Estring_2ECHR,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V2r)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V3s0)) ) ).

tff(lamtp_f1833,type,
    f1833: tp__ty_2Enum_2Enum > $i ).

tff(lameq_f1833,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V2r: tp__ty_2Enum_2Enum] : ( ap(f1833(V0n),inj__ty_2Enum_2Enum(V2r)) = ap(ap(c_2Ebool_2ELET(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)),f1832(V2r)),ap(c_2Estring__num_2En2s,ap(ap(c_2Earithmetic_2EDIV,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V2r))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))))) ) ).

tff(lamtp_f1834,type,
    f1834: tp__ty_2Enum_2Enum > $i ).

tff(lameq_f1834,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1r0: tp__ty_2Enum_2Enum] : ( ap(f1834(V0n),inj__ty_2Enum_2Enum(V1r0)) = ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)),f1833(V0n)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1r0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))))),inj__ty_2Enum_2Enum(V1r0))) ) ).

tff(conj_thm_2Estring__num_2En2s__def,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] : ( surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,inj__ty_2Enum_2Enum(V0n))) = surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(ty_2Estring_2Echar)),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),c_2Elist_2ENIL(ty_2Estring_2Echar)),ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar)),f1834(V0n)),ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(V0n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))))))))) ) ).

tff(ax_thm_2Estring__num_2Es2n__def,axiom,
    ( ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,c_2Elist_2ENIL(ty_2Estring_2Echar))) = fo__c_2Enum_2E0 )
    & ! [V0c: tp__ty_2Estring_2Echar,V1s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,ap(ap(c_2Elist_2ECONS(ty_2Estring_2Echar),inj__ty_2Estring_2Echar(V0c)),inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V1s)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Earithmetic_2E_2A,ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V1s))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))))))),ap(c_2Estring_2EORD,inj__ty_2Estring_2Echar(V0c)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) ) ) ).

tff(conj_thm_2Estring__num_2Es2n__n2s,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,ap(c_2Estring__num_2En2s,inj__ty_2Enum_2Enum(V0n)))) = V0n ) ).

tff(conj_thm_2Estring__num_2En2s__s2n,axiom,
    ! [V0s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0s)))) = V0s ) ).

tff(conj_thm_2Estring__num_2En2s__11,axiom,
    ! [V0x: tp__ty_2Enum_2Enum,V1y: tp__ty_2Enum_2Enum] :
      ( ( surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,inj__ty_2Enum_2Enum(V0x))) = surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,inj__ty_2Enum_2Enum(V1y))) )
    <=> ( V0x = V1y ) ) ).

tff(conj_thm_2Estring__num_2Es2n__11,axiom,
    ! [V0x: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar,V1y: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] :
      ( ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0x))) = surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V1y))) )
    <=> ( V0x = V1y ) ) ).

tff(conj_thm_2Estring__num_2En2s__onto,axiom,
    ! [V0s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] :
    ? [V1n: tp__ty_2Enum_2Enum] : ( V0s = surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,inj__ty_2Enum_2Enum(V1n))) ) ).

tff(conj_thm_2Estring__num_2Es2n__onto,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
    ? [V1s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( V0n = surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V1s))) ) ).

tff(ax_thm_2Estring__num_2En2nsum__def,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] : ( surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(ap(c_2Estring__num_2En2nsum,inj__ty_2Enum_2Enum(V0n))) = surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Esum_2Esum(ty_2Enum_2Enum,ty_2Enum_2Enum)),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V0n))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V0n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V0n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ).

tff(ax_thm_2Estring__num_2Ensum2n__def,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Ensum2n,ap(c_2Esum_2EINL(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Earithmetic_2E_2A,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0n))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) )
    & ! [V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Ensum2n,ap(c_2Esum_2EINR(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2A,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V1n))) ) ) ).

tff(conj_thm_2Estring__num_2En2nsum__nsum2n,axiom,
    ! [V0ns: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum] : ( surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(ap(c_2Estring__num_2En2nsum,ap(c_2Estring__num_2Ensum2n,inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_ty_2Enum_2Enum(V0ns)))) = V0ns ) ).

tff(conj_thm_2Estring__num_2Ensum2n__n2nsum,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Estring__num_2Ensum2n,ap(c_2Estring__num_2En2nsum,inj__ty_2Enum_2Enum(V0n)))) = V0n ) ).

tff(ax_thm_2Estring__num_2Es2ssum__def,axiom,
    ! [V0s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2Es2ssum,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0s))) = surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(ap(ap(c_2Esum_2E_2B_2B(ty_2Enum_2Enum,ty_2Enum_2Enum,ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar)),c_2Estring__num_2En2s),c_2Estring__num_2En2s),ap(c_2Estring__num_2En2nsum,ap(c_2Estring__num_2Es2n,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0s))))) ) ).

tff(ax_thm_2Estring__num_2Essum2s__def,axiom,
    ! [V0sm: tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2Essum2s,inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0sm))) = surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2En2s,ap(c_2Estring__num_2Ensum2n,ap(ap(ap(c_2Esum_2E_2B_2B(ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Elist_2Elist(ty_2Estring_2Echar),ty_2Enum_2Enum,ty_2Enum_2Enum),c_2Estring__num_2Es2n),c_2Estring__num_2Es2n),inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0sm))))) ) ).

tff(conj_thm_2Estring__num_2Es2ssum__ssum2s,axiom,
    ! [V0sm: tp__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2Es2ssum,ap(c_2Estring__num_2Essum2s,inj__c_ty_2Esum_2Esum_c_ty_2Elist_2Elist_ty_2Estring_2Echar_c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0sm)))) = V0sm ) ).

tff(conj_thm_2Estring__num_2Essum2s__s2ssum,axiom,
    ! [V0s: tp__c_ty_2Elist_2Elist_ty_2Estring_2Echar] : ( surj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(ap(c_2Estring__num_2Essum2s,ap(c_2Estring__num_2Es2ssum,inj__c_ty_2Elist_2Elist_ty_2Estring_2Echar(V0s)))) = V0s ) ).

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