ITP001 Axioms: ITP031_5.ax


%------------------------------------------------------------------------------
% File     : ITP031_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    : numeral_bit_2.ax [Gau20]
%          : HL4031_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   70 (  25 unt;  16 typ;   0 def)
%            Number of atoms       : 2236 (  95 equ)
%            Maximal formula atoms :   10 (  31 avg)
%            Number of connectives :   91 (   1   ~;   0   |;  56   &)
%                                         (   6 <=>;  28  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   12 (   4 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       : 2092 (2092 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :   14 (   7   >;   7   *;   0   +;   0  <<)
%            Number of predicates  :   48 (  46 usr;  35 prp; 0-2 aty)
%            Number of functors    :   16 (  16 usr;   9 con; 0-3 aty)
%            Number of variables   :  190 ( 190   !;   0   ?; 190   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_c_2Enumeral__bit_2EBIT__MODF,type,
    c_2Enumeral__bit_2EBIT__MODF: $i ).

tff(mem_c_2Enumeral__bit_2EBIT__MODF,axiom,
    mem(c_2Enumeral__bit_2EBIT__MODF,arr(ty_2Enum_2Enum,arr(arr(ty_2Enum_2Enum,arr(bool,bool)),arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))))))) ).

tff(tp_c_2Enumeral__bit_2EBIT__REV,type,
    c_2Enumeral__bit_2EBIT__REV: $i ).

tff(mem_c_2Enumeral__bit_2EBIT__REV,axiom,
    mem(c_2Enumeral__bit_2EBIT__REV,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)))) ).

tff(stp_fo_c_2Enumeral__bit_2EBIT__REV,type,
    fo__c_2Enumeral__bit_2EBIT__REV: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Enumeral__bit_2EBIT__REV,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum,X2: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Enumeral__bit_2EBIT__REV(X0,X1,X2)) = ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,inj__ty_2Enum_2Enum(X0)),inj__ty_2Enum_2Enum(X1)),inj__ty_2Enum_2Enum(X2)) ) ).

tff(tp_c_2Enumeral__bit_2EFDUB,type,
    c_2Enumeral__bit_2EFDUB: $i ).

tff(mem_c_2Enumeral__bit_2EFDUB,axiom,
    mem(c_2Enumeral__bit_2EFDUB,arr(arr(ty_2Enum_2Enum,ty_2Enum_2Enum),arr(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(tp_c_2Enumeral__bit_2ESFUNPOW,type,
    c_2Enumeral__bit_2ESFUNPOW: $i ).

tff(mem_c_2Enumeral__bit_2ESFUNPOW,axiom,
    mem(c_2Enumeral__bit_2ESFUNPOW,arr(arr(ty_2Enum_2Enum,ty_2Enum_2Enum),arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)))) ).

tff(tp_c_2Enumeral__bit_2EiBITWISE,type,
    c_2Enumeral__bit_2EiBITWISE: $i ).

tff(mem_c_2Enumeral__bit_2EiBITWISE,axiom,
    mem(c_2Enumeral__bit_2EiBITWISE,arr(ty_2Enum_2Enum,arr(arr(bool,arr(bool,bool)),arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))))) ).

tff(tp_c_2Enumeral__bit_2EiDIV2,type,
    c_2Enumeral__bit_2EiDIV2: $i ).

tff(mem_c_2Enumeral__bit_2EiDIV2,axiom,
    mem(c_2Enumeral__bit_2EiDIV2,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)) ).

tff(stp_fo_c_2Enumeral__bit_2EiDIV2,type,
    fo__c_2Enumeral__bit_2EiDIV2: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Enumeral__bit_2EiDIV2,axiom,
    ! [X0: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Enumeral__bit_2EiDIV2(X0)) = ap(c_2Enumeral__bit_2EiDIV2,inj__ty_2Enum_2Enum(X0)) ) ).

tff(tp_c_2Enumeral__bit_2EiLOG2,type,
    c_2Enumeral__bit_2EiLOG2: $i ).

tff(mem_c_2Enumeral__bit_2EiLOG2,axiom,
    mem(c_2Enumeral__bit_2EiLOG2,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)) ).

tff(stp_fo_c_2Enumeral__bit_2EiLOG2,type,
    fo__c_2Enumeral__bit_2EiLOG2: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Enumeral__bit_2EiLOG2,axiom,
    ! [X0: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Enumeral__bit_2EiLOG2(X0)) = ap(c_2Enumeral__bit_2EiLOG2,inj__ty_2Enum_2Enum(X0)) ) ).

tff(tp_c_2Enumeral__bit_2EiMOD__2EXP,type,
    c_2Enumeral__bit_2EiMOD__2EXP: $i ).

tff(mem_c_2Enumeral__bit_2EiMOD__2EXP,axiom,
    mem(c_2Enumeral__bit_2EiMOD__2EXP,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(stp_fo_c_2Enumeral__bit_2EiMOD__2EXP,type,
    fo__c_2Enumeral__bit_2EiMOD__2EXP: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Enumeral__bit_2EiMOD__2EXP,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Enumeral__bit_2EiMOD__2EXP(X0,X1)) = ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,inj__ty_2Enum_2Enum(X0)),inj__ty_2Enum_2Enum(X1)) ) ).

tff(tp_c_2Enumeral__bit_2EiSUC,type,
    c_2Enumeral__bit_2EiSUC: $i ).

tff(mem_c_2Enumeral__bit_2EiSUC,axiom,
    mem(c_2Enumeral__bit_2EiSUC,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)) ).

tff(stp_fo_c_2Enumeral__bit_2EiSUC,type,
    fo__c_2Enumeral__bit_2EiSUC: tp__ty_2Enum_2Enum > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Enumeral__bit_2EiSUC,axiom,
    ! [X0: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Enumeral__bit_2EiSUC(X0)) = ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(X0)) ) ).

tff(ax_thm_2Enumeral__bit_2EiMOD__2EXP,axiom,
    c_2Enumeral__bit_2EiMOD__2EXP = c_2Ebit_2EMOD__2EXP ).

tff(conj_thm_2Enumeral__bit_2Enumeral__imod__2exp,axiom,
    ! [A_27a: del] :
      ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0n))) = fo__c_2Earithmetic_2EZERO )
      & ! [V1x: tp__ty_2Enum_2Enum,V2n: $i] :
          ( mem(V2n,A_27a)
         => ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,inj__ty_2Enum_2Enum(V1x)),inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))) = fo__c_2Earithmetic_2EZERO ) )
      & ! [V3x: tp__ty_2Enum_2Enum,V4n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3x)))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4n)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2EBIT1,ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V4n)))) )
      & ! [V5x: tp__ty_2Enum_2Enum,V6n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V5x)))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6n)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2EBIT1,ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5x)))),inj__ty_2Enum_2Enum(V6n)))) )
      & ! [V7x: tp__ty_2Enum_2Enum,V8n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7x)))),ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V8n)))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral_2EiDUB,ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V8n))))) )
      & ! [V9x: tp__ty_2Enum_2Enum,V10n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V9x)))),ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V10n)))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral_2EiDUB,ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V9x)))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V10n))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2EMOD__2EXP,axiom,
    ( ! [V0x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EMOD__2EXP,inj__ty_2Enum_2Enum(V0x)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
    & ! [V1x: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EMOD__2EXP,inj__ty_2Enum_2Enum(V1x)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2n)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(c_2Enumeral__bit_2EiMOD__2EXP,inj__ty_2Enum_2Enum(V1x)),inj__ty_2Enum_2Enum(V2n)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2EDIV__2EXP,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EDIV__2EXP,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V1x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Earithmetic_2EFUNPOW(ty_2Enum_2Enum),c_2Earithmetic_2EDIV2),inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V1x))) ) ).

tff(conj_thm_2Enumeral__bit_2Enumeral__mod2,axiom,
    ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) = fo__c_2Enum_2E0 )
    & ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2EMOD,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) = surj__ty_2Enum_2Enum(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(ap(c_2Earithmetic_2EMOD,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V1n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) = fo__c_2Enum_2E0 ) ) ).

tff(conj_thm_2Enumeral__bit_2EiDUB__NUMERAL,axiom,
    ! [V0i: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Enumeral_2EiDUB,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V0i)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V0i)))) ) ).

tff(ax_thm_2Enumeral__bit_2EBIT__REV__def,axiom,
    ( ! [V0x: tp__ty_2Enum_2Enum,V1y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0x)),inj__ty_2Enum_2Enum(V1y))) = V1y )
    & ! [V2n: tp__ty_2Enum_2Enum,V3x: tp__ty_2Enum_2Enum,V4y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n))),inj__ty_2Enum_2Enum(V3x)),inj__ty_2Enum_2Enum(V4y))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,inj__ty_2Enum_2Enum(V2n)),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V3x)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),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(V4y))),ap(ap(c_2Ebit_2ESBIT,ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V3x))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2EBIT__REVERSE__EVAL,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EBIT__REVERSE,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) ) ).

tff(ax_thm_2Enumeral__bit_2EBIT__MODF__def,axiom,
    ( ! [V0f: $i] :
        ( mem(V0f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V1x: tp__ty_2Enum_2Enum,V2b: tp__ty_2Enum_2Enum,V3e: tp__ty_2Enum_2Enum,V4y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0f),inj__ty_2Enum_2Enum(V1x)),inj__ty_2Enum_2Enum(V2b)),inj__ty_2Enum_2Enum(V3e)),inj__ty_2Enum_2Enum(V4y))) = V4y ) )
    & ! [V5n: tp__ty_2Enum_2Enum,V6f: $i] :
        ( mem(V6f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V7x: tp__ty_2Enum_2Enum,V8b: tp__ty_2Enum_2Enum,V9e: tp__ty_2Enum_2Enum,V10y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V5n))),V6f),inj__ty_2Enum_2Enum(V7x)),inj__ty_2Enum_2Enum(V8b)),inj__ty_2Enum_2Enum(V9e)),inj__ty_2Enum_2Enum(V10y))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,inj__ty_2Enum_2Enum(V5n)),V6f),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V7x)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V8b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),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(V9e))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V6f,inj__ty_2Enum_2Enum(V8b)),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V7x)))),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V9e)),inj__ty_2Enum_2Enum(V10y))),inj__ty_2Enum_2Enum(V10y)))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2EBIT__MODIFY__EVAL,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1f: $i] :
      ( mem(V1f,arr(ty_2Enum_2Enum,arr(bool,bool)))
     => ! [V2n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebit_2EBIT__MODIFY,inj__ty_2Enum_2Enum(V0m)),V1f),inj__ty_2Enum_2Enum(V2n))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,inj__ty_2Enum_2Enum(V0m)),V1f),inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) ) ) ).

tff(ax_thm_2Enumeral__bit_2EiBITWISE__def,axiom,
    c_2Enumeral__bit_2EiBITWISE = c_2Ebit_2EBITWISE ).

tff(lamtp_f312,type,
    f312: ( tp__ty_2Enum_2Enum * $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f312,axiom,
    ! [V6b: tp__ty_2Enum_2Enum,V4opr: $i] :
      ( mem(V4opr,arr(bool,arr(bool,bool)))
     => ! [V5a: tp__ty_2Enum_2Enum,V7w: tp__ty_2Enum_2Enum] : ( ap(f312(V6b,V4opr,V5a),inj__ty_2Enum_2Enum(V7w)) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V4opr,ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V5a))),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V6b)))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7w))),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V7w))) ) ) ).

tff(lamtp_f313,type,
    f313: ( tp__ty_2Enum_2Enum * $i * tp__ty_2Enum_2Enum ) > $i ).

tff(lameq_f313,axiom,
    ! [V11b: tp__ty_2Enum_2Enum,V9opr: $i] :
      ( mem(V9opr,arr(bool,arr(bool,bool)))
     => ! [V10a: tp__ty_2Enum_2Enum,V12w: tp__ty_2Enum_2Enum] : ( ap(f313(V11b,V9opr,V10a),inj__ty_2Enum_2Enum(V12w)) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V9opr,ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V10a))),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V11b)))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V12w))),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V12w))) ) ) ).

tff(conj_thm_2Enumeral__bit_2EiBITWISE,axiom,
    ( ! [V0opr: $i] :
        ( mem(V0opr,arr(bool,arr(bool,bool)))
       => ! [V1a: tp__ty_2Enum_2Enum,V2b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0opr),inj__ty_2Enum_2Enum(V1a)),inj__ty_2Enum_2Enum(V2b))) = fo__c_2Earithmetic_2EZERO ) )
    & ! [V3x: tp__ty_2Enum_2Enum,V4opr: $i] :
        ( mem(V4opr,arr(bool,arr(bool,bool)))
       => ! [V5a: tp__ty_2Enum_2Enum,V6b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3x)))),V4opr),inj__ty_2Enum_2Enum(V5a)),inj__ty_2Enum_2Enum(V6b))) = surj__ty_2Enum_2Enum(ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Enum_2Enum),f312(V6b,V4opr,V5a)),ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V4opr),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V5a))),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V6b))))) ) )
    & ! [V8x: tp__ty_2Enum_2Enum,V9opr: $i] :
        ( mem(V9opr,arr(bool,arr(bool,bool)))
       => ! [V10a: tp__ty_2Enum_2Enum,V11b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V8x)))),V9opr),inj__ty_2Enum_2Enum(V10a)),inj__ty_2Enum_2Enum(V11b))) = surj__ty_2Enum_2Enum(ap(ap(c_2Ebool_2ELET(ty_2Enum_2Enum,ty_2Enum_2Enum),f313(V11b,V9opr,V10a)),ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),V9opr),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V10a))),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V11b))))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__BITWISE,axiom,
    ! [A_27a: del] :
      ( ! [V0x: tp__ty_2Enum_2Enum,V1f: $i] :
          ( mem(V1f,arr(bool,arr(bool,bool)))
         => ! [V2a: $i] :
              ( mem(V2a,A_27a)
             => ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Ebit_2EBITWISE,inj__ty_2Enum_2Enum(V0x)),V1f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,inj__ty_2Enum_2Enum(V0x)),V1f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))) ) ) )
      & ! [V3x: tp__ty_2Enum_2Enum,V4f: $i] :
          ( mem(V4f,arr(bool,arr(bool,bool)))
         => ! [V5a: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Ebit_2EBITWISE,inj__ty_2Enum_2Enum(V3x)),V4f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V5a))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,inj__ty_2Enum_2Enum(V3x)),V4f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V5a))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))) ) )
      & ! [V6x: tp__ty_2Enum_2Enum,V7f: $i] :
          ( mem(V7f,arr(bool,arr(bool,bool)))
         => ! [V8b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Ebit_2EBITWISE,inj__ty_2Enum_2Enum(V6x)),V7f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V8b)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,inj__ty_2Enum_2Enum(V6x)),V7f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V8b))))) ) )
      & ! [V9x: tp__ty_2Enum_2Enum,V10f: $i] :
          ( mem(V10f,arr(bool,arr(bool,bool)))
         => ! [V11a: tp__ty_2Enum_2Enum,V12b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(c_2Ebit_2EBITWISE,inj__ty_2Enum_2Enum(V9x)),V10f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V11a))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V12b)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(ap(c_2Enumeral__bit_2EiBITWISE,inj__ty_2Enum_2Enum(V9x)),V10f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V11a))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V12b))))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__BIT__REV,axiom,
    ( ! [V0x: tp__ty_2Enum_2Enum,V1y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0x)),inj__ty_2Enum_2Enum(V1y))) = V1y )
    & ! [V2n: tp__ty_2Enum_2Enum,V3y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2n)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V3y))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V3y)))) )
    & ! [V4n: tp__ty_2Enum_2Enum,V5y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V4n)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V5y))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4n)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V5y)))) )
    & ! [V6n: tp__ty_2Enum_2Enum,V7x: tp__ty_2Enum_2Enum,V8y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6n)))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V7x))),inj__ty_2Enum_2Enum(V8y))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2EDIV2,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V7x)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V7x))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8y))),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V8y))))) )
    & ! [V9n: tp__ty_2Enum_2Enum,V10x: tp__ty_2Enum_2Enum,V11y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V9n)))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V10x))),inj__ty_2Enum_2Enum(V11y))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V9n)))),ap(c_2Earithmetic_2EDIV2,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V10x)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V10x))),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V11y))),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V11y))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__BIT__REVERSE,axiom,
    ( ! [V0m: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EBIT__REVERSE,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V0m))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V0m))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) )
    & ! [V1n: tp__ty_2Enum_2Enum,V2m: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EBIT__REVERSE,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2m))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V1n)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(c_2Enumeral__bit_2EBIT__REV,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2m))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V1n))),inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__BIT__MODF,axiom,
    ( ! [V0f: $i] :
        ( mem(V0f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V1x: tp__ty_2Enum_2Enum,V2b: tp__ty_2Enum_2Enum,V3e: tp__ty_2Enum_2Enum,V4y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0f),inj__ty_2Enum_2Enum(V1x)),inj__ty_2Enum_2Enum(V2b)),inj__ty_2Enum_2Enum(V3e)),inj__ty_2Enum_2Enum(V4y))) = V4y ) )
    & ! [V5n: tp__ty_2Enum_2Enum,V6f: $i] :
        ( mem(V6f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V7b: tp__ty_2Enum_2Enum,V8e: tp__ty_2Enum_2Enum,V9y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5n)))),V6f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V7b)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V8e))),inj__ty_2Enum_2Enum(V9y))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V6f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V7b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V8e)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V6f,inj__ty_2Enum_2Enum(V7b)),inj__o(fo__c_2Ebool_2EF))),ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V8e))),inj__ty_2Enum_2Enum(V9y))),inj__ty_2Enum_2Enum(V9y)))) ) )
    & ! [V10n: tp__ty_2Enum_2Enum,V11f: $i] :
        ( mem(V11f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V12b: tp__ty_2Enum_2Enum,V13e: tp__ty_2Enum_2Enum,V14y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V10n)))),V11f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V12b)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V13e))),inj__ty_2Enum_2Enum(V14y))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V10n)))),V11f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V12b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V13e)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V11f,inj__ty_2Enum_2Enum(V12b)),inj__o(fo__c_2Ebool_2EF))),ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V13e))),inj__ty_2Enum_2Enum(V14y))),inj__ty_2Enum_2Enum(V14y)))) ) )
    & ! [V15n: tp__ty_2Enum_2Enum,V16f: $i] :
        ( mem(V16f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V17x: tp__ty_2Enum_2Enum,V18b: tp__ty_2Enum_2Enum,V19e: tp__ty_2Enum_2Enum,V20y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V15n)))),V16f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V17x))),inj__ty_2Enum_2Enum(V18b)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V19e))),inj__ty_2Enum_2Enum(V20y))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V15n)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V16f),ap(c_2Earithmetic_2EDIV2,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V17x)))),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V18b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V19e)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V16f,inj__ty_2Enum_2Enum(V18b)),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V17x)))),ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V19e))),inj__ty_2Enum_2Enum(V20y))),inj__ty_2Enum_2Enum(V20y)))) ) )
    & ! [V21n: tp__ty_2Enum_2Enum,V22f: $i] :
        ( mem(V22f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V23x: tp__ty_2Enum_2Enum,V24b: tp__ty_2Enum_2Enum,V25e: tp__ty_2Enum_2Enum,V26y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V21n)))),V22f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V23x))),inj__ty_2Enum_2Enum(V24b)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V25e))),inj__ty_2Enum_2Enum(V26y))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V21n)))),V22f),ap(c_2Earithmetic_2EDIV2,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V23x)))),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V24b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V25e)))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(V22f,inj__ty_2Enum_2Enum(V24b)),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V23x)))),ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V25e))),inj__ty_2Enum_2Enum(V26y))),inj__ty_2Enum_2Enum(V26y)))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__BIT__MODIFY,axiom,
    ( ! [V0m: tp__ty_2Enum_2Enum,V1f: $i] :
        ( mem(V1f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebit_2EBIT__MODIFY,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V0m))),V1f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V0m))),V1f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) ) )
    & ! [V2m: tp__ty_2Enum_2Enum,V3f: $i] :
        ( mem(V3f,arr(ty_2Enum_2Enum,arr(bool,bool)))
       => ! [V4n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebit_2EBIT__MODIFY,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2m))),V3f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V4n)))) = surj__ty_2Enum_2Enum(ap(ap(ap(ap(ap(ap(c_2Enumeral__bit_2EBIT__MODF,ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2m))),V3f),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V4n))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) ) ) ) ).

tff(ax_thm_2Enumeral__bit_2EiSUC,axiom,
    c_2Enumeral__bit_2EiSUC = c_2Enum_2ESUC ).

tff(ax_thm_2Enumeral__bit_2EiDIV2,axiom,
    c_2Enumeral__bit_2EiDIV2 = c_2Earithmetic_2EDIV2 ).

tff(ax_thm_2Enumeral__bit_2ESFUNPOW__def,axiom,
    ( ! [V0f: $i] :
        ( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
       => ! [V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,V0f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1x))) = V1x ) )
    & ! [V2f: $i] :
        ( mem(V2f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
       => ! [V3n: tp__ty_2Enum_2Enum,V4x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,V2f),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3n))),inj__ty_2Enum_2Enum(V4x))) = 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(V4x)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,V2f),inj__ty_2Enum_2Enum(V3n)),ap(V2f,inj__ty_2Enum_2Enum(V4x))))) ) ) ) ).

tff(ax_thm_2Enumeral__bit_2EFDUB__def,axiom,
    ( ! [V0f: $i] :
        ( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
       => ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,V0f),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 ) )
    & ! [V1f: $i] :
        ( mem(V1f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
       => ! [V2n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,V1f),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n)))) = surj__ty_2Enum_2Enum(ap(V1f,ap(V1f,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n))))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__TIMES__2EXP,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2ETIMES__2EXP,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
    & ! [V1n: tp__ty_2Enum_2Enum,V2x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2ETIMES__2EXP,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2x)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral_2EiDUB),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V2x)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__iDIV2,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))) = fo__c_2Earithmetic_2EZERO )
      & ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) = fo__c_2Earithmetic_2EZERO )
      & ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0n)))) = V0n )
      & ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Enumeral__bit_2EiSUC,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0n))))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V0n))) )
      & ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V0n)))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V0n))) )
      & ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Enumeral__bit_2EiSUC,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V0n))))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V0n))) )
      & ( surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V0n)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V0n)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__DIV__2EXP,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EDIV__2EXP,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
    & ! [V1n: tp__ty_2Enum_2Enum,V2x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Ebit_2EDIV__2EXP,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2x)))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral__bit_2EiDIV2),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V2x)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__iDIV2,axiom,
    ( ! [V0x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral__bit_2EiDIV2),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0x))) = V0x )
    & ! [V1y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral__bit_2EiDIV2),inj__ty_2Enum_2Enum(V1y)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
    & ! [V2n: tp__ty_2Enum_2Enum,V3x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral__bit_2EiDIV2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2n)))),inj__ty_2Enum_2Enum(V3x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral__bit_2EiDIV2)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2n))),ap(c_2Enumeral__bit_2EiDIV2,inj__ty_2Enum_2Enum(V3x)))) )
    & ! [V4n: tp__ty_2Enum_2Enum,V5x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral__bit_2EiDIV2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V4n)))),inj__ty_2Enum_2Enum(V5x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral__bit_2EiDIV2)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V4n))),ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Enumeral__bit_2EiDIV2,inj__ty_2Enum_2Enum(V5x))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__iDUB,axiom,
    ( ! [V0x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral_2EiDUB),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0x))) = V0x )
    & ! [V1y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral_2EiDUB),inj__ty_2Enum_2Enum(V1y)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
    & ! [V2n: tp__ty_2Enum_2Enum,V3x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral_2EiDUB),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2n)))),inj__ty_2Enum_2Enum(V3x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral_2EiDUB)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V2n))),ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V3x)))) )
    & ! [V4n: tp__ty_2Enum_2Enum,V5x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,c_2Enumeral_2EiDUB),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V4n)))),inj__ty_2Enum_2Enum(V5x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral_2EiDUB)),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V4n))),ap(c_2Enumeral_2EiDUB,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V5x))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ENUMERAL__SFUNPOW__FDUB,axiom,
    ! [V0f: $i] :
      ( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
     => ( ! [V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,V0f)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1x))) = V1x )
        & ! [V2y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,V0f)),inj__ty_2Enum_2Enum(V2y)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 )
        & ! [V3n: tp__ty_2Enum_2Enum,V4x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,V0f)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3n)))),inj__ty_2Enum_2Enum(V4x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V3n))),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),inj__ty_2Enum_2Enum(V4x)))) )
        & ! [V5n: tp__ty_2Enum_2Enum,V6x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,V0f)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V5n)))),inj__ty_2Enum_2Enum(V6x))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Enumeral__bit_2ESFUNPOW,ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f))),ap(c_2Earithmetic_2ENUMERAL,inj__ty_2Enum_2Enum(V5n))),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),inj__ty_2Enum_2Enum(V6x))))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2EFDUB__iDIV2,axiom,
    ! [V0x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral__bit_2EiDIV2),inj__ty_2Enum_2Enum(V0x))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiDIV2,ap(c_2Enumeral__bit_2EiDIV2,inj__ty_2Enum_2Enum(V0x)))) ) ).

tff(conj_thm_2Enumeral__bit_2EFDUB__iDUB,axiom,
    ! [V0x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,c_2Enumeral_2EiDUB),inj__ty_2Enum_2Enum(V0x))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral_2EiDUB,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V0x)))) ) ).

tff(conj_thm_2Enumeral__bit_2EFDUB__FDUB,axiom,
    ! [V0f: $i] :
      ( mem(V0f,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))
     => ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f)),inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))) = fo__c_2Earithmetic_2EZERO )
        & ! [V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f)),ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V1x)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(c_2Enumeral__bit_2EiSUC,inj__ty_2Enum_2Enum(V1x))))) )
        & ! [V2x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f)),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2x)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V2x))))) )
        & ! [V3x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,ap(c_2Enumeral__bit_2EFDUB,V0f)),ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V3x)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(ap(c_2Enumeral__bit_2EFDUB,V0f),ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V3x))))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ELOG__compute,axiom,
    ! [V0base_20_3C_202_20or_20n_20_3D_200: tp__o,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Elogroot_2ELOG,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V2n))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Ebool_2E_5C_2F,ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V1m)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))),ap(ap(ap(ap(c_2Ecombin_2EFAIL(arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum)),bool),c_2Elogroot_2ELOG),inj__o(V0base_20_3C_202_20or_20n_20_3D_200)),inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V2n))),ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V1m))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(c_2Enum_2ESUC,ap(ap(c_2Elogroot_2ELOG,inj__ty_2Enum_2Enum(V1m)),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V2n)),inj__ty_2Enum_2Enum(V1m))))))) ) ).

tff(ax_thm_2Enumeral__bit_2EiLOG2__def,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,inj__ty_2Enum_2Enum(V0n))) = surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOG2,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))) ) ).

tff(conj_thm_2Enumeral__bit_2Enumeral__ilog2,axiom,
    ( ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))) = fo__c_2Enum_2E0 )
    & ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Enumeral__bit_2EiLOG2,inj__ty_2Enum_2Enum(V0n)))) )
    & ! [V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V1n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Enumeral__bit_2EiLOG2,inj__ty_2Enum_2Enum(V1n)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2Enumeral__log2,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOG2,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0n))))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,ap(c_2Enumeral_2EiDUB,inj__ty_2Enum_2Enum(V0n)))) )
    & ! [V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOG2,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V1n))))) = surj__ty_2Enum_2Enum(ap(c_2Enumeral__bit_2EiLOG2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1n)))) ) ) ).

tff(conj_thm_2Enumeral__bit_2EMOD__2EXP__EQ,axiom,
    ( ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(ap(c_2Ebit_2EMOD__2EXP__EQ,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))
      <=> $true )
    & ! [V2n: tp__ty_2Enum_2Enum,V3a: tp__ty_2Enum_2Enum,V4b: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(ap(c_2Ebit_2EMOD__2EXP__EQ,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2n))),inj__ty_2Enum_2Enum(V3a)),inj__ty_2Enum_2Enum(V4b)))
      <=> ( ( p(ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V3a)))
          <=> p(ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V4b))) )
          & p(ap(ap(ap(c_2Ebit_2EMOD__2EXP__EQ,inj__ty_2Enum_2Enum(V2n)),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V3a))),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V4b)))) ) )
    & ! [V5n: tp__ty_2Enum_2Enum,V6a: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(ap(c_2Ebit_2EMOD__2EXP__EQ,inj__ty_2Enum_2Enum(V5n)),inj__ty_2Enum_2Enum(V6a)),inj__ty_2Enum_2Enum(V6a)))
      <=> $true ) ) ).

tff(conj_thm_2Enumeral__bit_2EMOD__2EXP__MAX,axiom,
    ( ! [V0a: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(c_2Ebit_2EMOD__2EXP__MAX,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0a)))
      <=> $true )
    & ! [V1n: tp__ty_2Enum_2Enum,V2a: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(c_2Ebit_2EMOD__2EXP__MAX,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n))),inj__ty_2Enum_2Enum(V2a)))
      <=> ( p(ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V2a)))
          & p(ap(ap(c_2Ebit_2EMOD__2EXP__MAX,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V2a)))) ) ) ) ).

tff(conj_thm_2Enumeral__bit_2ELOWEST__SET__BIT,axiom,
    ! [V0n: tp__ty_2Enum_2Enum] :
      ( ( V0n != fo__c_2Enum_2E0 )
     => ( surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOWEST__SET__BIT,inj__ty_2Enum_2Enum(V0n))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V0n))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(ap(c_2Earithmetic_2E_2B,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Ebit_2ELOWEST__SET__BIT,ap(c_2Earithmetic_2EDIV2,inj__ty_2Enum_2Enum(V0n)))))) ) ) ).

tff(conj_thm_2Enumeral__bit_2ELOWEST__SET__BIT__compute,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOWEST__SET__BIT,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V0n))))) = surj__ty_2Enum_2Enum(ap(c_2Enum_2ESUC,ap(c_2Ebit_2ELOWEST__SET__BIT,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V0n)))))) )
    & ! [V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(c_2Ebit_2ELOWEST__SET__BIT,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1n))))) = fo__c_2Enum_2E0 ) ) ).

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