ITP001 Axioms: ITP055_5.ax
%------------------------------------------------------------------------------
% File : ITP055_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 : sum_num_2.ax [Gau20]
% : HL4055_5.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 28 ( 2 unt; 4 typ; 0 def)
% Number of atoms : 968 ( 35 equ)
% Maximal formula atoms : 10 ( 34 avg)
% Number of connectives : 82 ( 4 ~; 2 |; 23 &)
% ( 6 <=>; 47 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 7 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of FOOLs : 866 ( 866 fml; 0 var)
% Number of types : 1 ( 0 usr)
% Number of type conns : 3 ( 2 >; 1 *; 0 +; 0 <<)
% Number of predicates : 24 ( 23 usr; 14 prp; 0-2 aty)
% Number of functors : 4 ( 4 usr; 2 con; 0-2 aty)
% Number of variables : 89 ( 87 !; 2 ?; 89 :)
% SPC : TF0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_c_2Esum__num_2EGSUM,type,
c_2Esum__num_2EGSUM: $i ).
tff(mem_c_2Esum__num_2EGSUM,axiom,
mem(c_2Esum__num_2EGSUM,arr(ty_2Epair_2Eprod(ty_2Enum_2Enum,ty_2Enum_2Enum),arr(arr(ty_2Enum_2Enum,ty_2Enum_2Enum),ty_2Enum_2Enum))) ).
tff(tp_c_2Esum__num_2ESUM,type,
c_2Esum__num_2ESUM: $i ).
tff(mem_c_2Esum__num_2ESUM,axiom,
mem(c_2Esum__num_2ESUM,arr(ty_2Enum_2Enum,arr(arr(ty_2Enum_2Enum,ty_2Enum_2Enum),ty_2Enum_2Enum))) ).
tff(conj_thm_2Esum__num_2EGSUM__ind,axiom,
! [V0P: $i] :
( mem(V0P,arr(ty_2Epair_2Eprod(ty_2Enum_2Enum,ty_2Enum_2Enum),arr(arr(ty_2Enum_2Enum,ty_2Enum_2Enum),bool)))
=> ( ( ! [V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> p(ap(ap(V0P,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),V2f)) )
& ! [V3n: tp__ty_2Enum_2Enum,V4m: tp__ty_2Enum_2Enum,V5f: $i] :
( mem(V5f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( p(ap(ap(V0P,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V3n)),inj__ty_2Enum_2Enum(V4m))),V5f))
=> p(ap(ap(V0P,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V3n)),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V4m)))),V5f)) ) ) )
=> ! [V6v: tp__ty_2Enum_2Enum,V7v1: tp__ty_2Enum_2Enum,V8v2: $i] :
( mem(V8v2,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> p(ap(ap(V0P,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V6v)),inj__ty_2Enum_2Enum(V7v1))),V8v2)) ) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__def,axiom,
( ! [V0n: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),V1f)) = fo__c_2Enum_2E0 ) )
& ! [V2n: tp__ty_2Enum_2Enum,V3m: tp__ty_2Enum_2Enum,V4f: $i] :
( mem(V4f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2n)),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3m)))),V4f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V3m))),V4f)),ap(V4f,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V3m))))) ) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__def__compute,axiom,
( ! [V0n: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),V1f)) = fo__c_2Enum_2E0 ) )
& ! [V2n: tp__ty_2Enum_2Enum,V3m: tp__ty_2Enum_2Enum,V4f: $i] :
( mem(V4f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3m))))),V4f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2n)),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3m)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),V4f)),ap(V4f,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V2n)),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3m)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) )
& ! [V5n: tp__ty_2Enum_2Enum,V6m: tp__ty_2Enum_2Enum,V7f: $i] :
( mem(V7f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V5n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V6m))))),V7f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V5n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6m))))),V7f)),ap(V7f,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V5n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6m))))))) ) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__1,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0m)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V1f)) = surj__ty_2Enum_2Enum(ap(V1f,inj__ty_2Enum_2Enum(V0m))) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__ADD,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum,V3f: $i] :
( mem(V3f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V2n)))),V3f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),V3f)),ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),inj__ty_2Enum_2Enum(V2n))),V3f))) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__ZERO,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ! [V3m: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V3m)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3m)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1n)))) )
=> ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V3m))) = fo__c_2Enum_2E0 ) )
<=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1n))),V2f)) = fo__c_2Enum_2E0 ) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__MONO,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum,V3f: $i] :
( mem(V3f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V2n)))
& ( surj__ty_2Enum_2Enum(ap(V3f,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2n)))) != fo__c_2Enum_2E0 ) )
=> p(ap(ap(c_2Eprim__rec_2E_3C,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),V3f)),ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n)))),V3f))) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__LESS,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum,V3f: $i] :
( mem(V3f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ? [V4q: tp__ty_2Enum_2Enum] :
( p(ap(ap(c_2Earithmetic_2E_3C_3D,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V0p))),inj__ty_2Enum_2Enum(V4q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V4q)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V0p))))
& ( surj__ty_2Enum_2Enum(ap(V3f,inj__ty_2Enum_2Enum(V4q))) != fo__c_2Enum_2E0 ) )
<=> p(ap(ap(c_2Eprim__rec_2E_3C,ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),V3f)),ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2n))),V3f))) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__EQUAL,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum,V3f: $i] :
( mem(V3f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),V3f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2n))),V3f)) )
<=> ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V2n)))
& ! [V4q: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m))),inj__ty_2Enum_2Enum(V4q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V4q)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2n)))) )
=> ( surj__ty_2Enum_2Enum(ap(V3f,inj__ty_2Enum_2Enum(V4q))) = fo__c_2Enum_2E0 ) ) )
| ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V1m)))
& ! [V5q: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2n))),inj__ty_2Enum_2Enum(V5q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V5q)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1m)))) )
=> ( surj__ty_2Enum_2Enum(ap(V3f,inj__ty_2Enum_2Enum(V5q))) = fo__c_2Enum_2E0 ) ) ) ) ) ) ).
tff(conj_thm_2Esum__num_2EGSUM__FUN__EQUAL,axiom,
! [V0p: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ! [V3g: $i] :
( mem(V3g,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ! [V4x: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V4x)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V4x)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1n)))) )
=> ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V4x))) = surj__ty_2Enum_2Enum(ap(V3g,inj__ty_2Enum_2Enum(V4x))) ) )
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1n))),V2f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1n))),V3g)) ) ) ) ) ).
tff(ax_thm_2Esum__num_2ESUM__def,axiom,
( ! [V0f: $i] :
( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0f)) = fo__c_2Enum_2E0 ) )
& ! [V1m: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1m))),V2f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V1m)),V2f)),ap(V2f,inj__ty_2Enum_2Enum(V1m)))) ) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__def__compute,axiom,
( ! [V0f: $i] :
( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0f)) = fo__c_2Enum_2E0 ) )
& ! [V1m: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1m)))),V2f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2ESUM,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1m)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V2f)),ap(V2f,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1m)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
& ! [V3m: tp__ty_2Enum_2Enum,V4f: $i] :
( mem(V4f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V3m)))),V4f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Esum__num_2ESUM,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3m)))),V4f)),ap(V4f,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3m)))))) ) ) ) ).
tff(conj_thm_2Esum__num_2ESUM,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0m)),V1f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2EGSUM,ap(ap(c_2Epair_2E_2C(ty_2Enum_2Enum,ty_2Enum_2Enum),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0m))),V1f)) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__1,axiom,
! [V0f: $i] :
( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V0f)) = surj__ty_2Enum_2Enum(ap(V0f,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__MONO,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n)))
& ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V1n))) != fo__c_2Enum_2E0 ) )
=> p(ap(ap(c_2Eprim__rec_2E_3C,ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0m)),V2f)),ap(ap(c_2Esum__num_2ESUM,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n))),V2f))) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__LESS,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ? [V3q: tp__ty_2Enum_2Enum] :
( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V3q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3q)),inj__ty_2Enum_2Enum(V1n)))
& ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V3q))) != fo__c_2Enum_2E0 ) )
<=> p(ap(ap(c_2Eprim__rec_2E_3C,ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0m)),V2f)),ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V1n)),V2f))) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__EQUAL,axiom,
! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2f: $i] :
( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0m)),V2f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V1n)),V2f)) )
<=> ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n)))
& ! [V3q: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V3q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3q)),inj__ty_2Enum_2Enum(V1n))) )
=> ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V3q))) = fo__c_2Enum_2E0 ) ) )
| ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V0m)))
& ! [V4q: tp__ty_2Enum_2Enum] :
( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V4q)))
& p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V4q)),inj__ty_2Enum_2Enum(V0m))) )
=> ( surj__ty_2Enum_2Enum(ap(V2f,inj__ty_2Enum_2Enum(V4q))) = fo__c_2Enum_2E0 ) ) ) ) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__FUN__EQUAL,axiom,
! [V0n: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ! [V2g: $i] :
( mem(V2g,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ! [V3x: tp__ty_2Enum_2Enum] :
( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3x)),inj__ty_2Enum_2Enum(V0n)))
=> ( surj__ty_2Enum_2Enum(ap(V1f,inj__ty_2Enum_2Enum(V3x))) = surj__ty_2Enum_2Enum(ap(V2g,inj__ty_2Enum_2Enum(V3x))) ) )
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0n)),V1f)) = surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0n)),V2g)) ) ) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__ZERO,axiom,
! [V0n: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( ! [V2m: tp__ty_2Enum_2Enum] :
( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2m)),inj__ty_2Enum_2Enum(V0n)))
=> ( surj__ty_2Enum_2Enum(ap(V1f,inj__ty_2Enum_2Enum(V2m))) = fo__c_2Enum_2E0 ) )
<=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0n)),V1f)) = fo__c_2Enum_2E0 ) ) ) ).
tff(lamtp_f1099,type,
f1099: ( $i * tp__ty_2Enum_2Enum ) > $i ).
tff(lameq_f1099,axiom,
! [V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ! [V2x: tp__ty_2Enum_2Enum,V3n: tp__ty_2Enum_2Enum] : ( ap(f1099(V1f,V2x),inj__ty_2Enum_2Enum(V3n)) = ap(ap(c_2Earithmetic_2E_2B,ap(V1f,inj__ty_2Enum_2Enum(V3n))),inj__ty_2Enum_2Enum(V2x)) ) ) ).
tff(lamtp_f1100,type,
f1100: $i > $i ).
tff(lameq_f1100,axiom,
! [V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ! [V2x: tp__ty_2Enum_2Enum] : ( ap(f1100(V1f),inj__ty_2Enum_2Enum(V2x)) = f1099(V1f,V2x) ) ) ).
tff(conj_thm_2Esum__num_2ESUM__FOLDL,axiom,
! [V0n: tp__ty_2Enum_2Enum,V1f: $i] :
( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Esum__num_2ESUM,inj__ty_2Enum_2Enum(V0n)),V1f)) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Elist_2EFOLDL(ty_2Enum_2Enum,ty_2Enum_2Enum),f1100(V1f)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Erich__list_2ECOUNT__LIST,inj__ty_2Enum_2Enum(V0n)))) ) ) ).
%------------------------------------------------------------------------------