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)))) ) ) ).

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