ITP001 Axioms: ITP023_5.ax


%------------------------------------------------------------------------------
% File     : ITP023_5 : TPTP v8.2.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    : gcd_2.ax [Gau20]
%          : HL4023_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   53 (  20 unt;   6 typ;   0 def)
%            Number of atoms       : 1541 (  50 equ)
%            Maximal formula atoms :   10 (  29 avg)
%            Number of connectives :   86 (   6   ~;   4   |;  46   &)
%                                         (   3 <=>;  27  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   12 (   5 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       : 1414 (1414 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    7 (   3   >;   4   *;   0   +;   0  <<)
%            Number of predicates  :   32 (  31 usr;  22 prp; 0-2 aty)
%            Number of functors    :    6 (   6 usr;   3 con; 0-3 aty)
%            Number of variables   :  125 ( 121   !;   4   ?; 125   :)
% SPC      : TF0_SAT_EQU_NAR

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

tff(mem_c_2Egcd_2Egcd,axiom,
    mem(c_2Egcd_2Egcd,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(stp_fo_c_2Egcd_2Egcd,type,
    fo__c_2Egcd_2Egcd: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Egcd_2Egcd,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Egcd_2Egcd(X0,X1)) = ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(X0)),inj__ty_2Enum_2Enum(X1)) ) ).

tff(tp_c_2Egcd_2Eis__gcd,type,
    c_2Egcd_2Eis__gcd: $i ).

tff(mem_c_2Egcd_2Eis__gcd,axiom,
    mem(c_2Egcd_2Eis__gcd,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))) ).

tff(stp_fo_c_2Egcd_2Eis__gcd,type,
    fo__c_2Egcd_2Eis__gcd: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__o ).

tff(stp_eq_fo_c_2Egcd_2Eis__gcd,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum,X2: tp__ty_2Enum_2Enum] : ( inj__o(fo__c_2Egcd_2Eis__gcd(X0,X1,X2)) = ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(X0)),inj__ty_2Enum_2Enum(X1)),inj__ty_2Enum_2Enum(X2)) ) ).

tff(tp_c_2Egcd_2Elcm,type,
    c_2Egcd_2Elcm: $i ).

tff(mem_c_2Egcd_2Elcm,axiom,
    mem(c_2Egcd_2Elcm,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,ty_2Enum_2Enum))) ).

tff(stp_fo_c_2Egcd_2Elcm,type,
    fo__c_2Egcd_2Elcm: ( tp__ty_2Enum_2Enum * tp__ty_2Enum_2Enum ) > tp__ty_2Enum_2Enum ).

tff(stp_eq_fo_c_2Egcd_2Elcm,axiom,
    ! [X0: tp__ty_2Enum_2Enum,X1: tp__ty_2Enum_2Enum] : ( inj__ty_2Enum_2Enum(fo__c_2Egcd_2Elcm(X0,X1)) = ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(X0)),inj__ty_2Enum_2Enum(X1)) ) ).

tff(ax_thm_2Egcd_2Eis__gcd__def,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum] :
      ( p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c)))
    <=> ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2c)),inj__ty_2Enum_2Enum(V0a)))
        & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2c)),inj__ty_2Enum_2Enum(V1b)))
        & ! [V3d: tp__ty_2Enum_2Enum] :
            ( ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V3d)),inj__ty_2Enum_2Enum(V0a)))
              & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V3d)),inj__ty_2Enum_2Enum(V1b))) )
           => p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V3d)),inj__ty_2Enum_2Enum(V2c))) ) ) ) ).

tff(conj_thm_2Egcd_2EIS__GCD__UNIQUE,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum,V3d: tp__ty_2Enum_2Enum] :
      ( ( p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c)))
        & p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V3d))) )
     => ( V2c = V3d ) ) ).

tff(conj_thm_2Egcd_2EIS__GCD__REF,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V0a))) ).

tff(conj_thm_2Egcd_2EIS__GCD__SYM,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum] :
      ( p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c)))
    <=> p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V2c))) ) ).

tff(conj_thm_2Egcd_2EIS__GCD__0R,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0a))) ).

tff(conj_thm_2Egcd_2EIS__GCD__0L,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V0a))) ).

tff(conj_thm_2Egcd_2EPRIME__IS__GCD,axiom,
    ! [V0p: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] :
      ( p(ap(c_2Edivides_2Eprime,inj__ty_2Enum_2Enum(V0p)))
     => ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1b)))
        | p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1b)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) ) ) ).

tff(conj_thm_2Egcd_2EIS__GCD__MINUS__L,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum] :
      ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a)))
        & p(ap(ap(ap(c_2Egcd_2Eis__gcd,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c))) )
     => p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c))) ) ).

tff(conj_thm_2Egcd_2EIS__GCD__MINUS__R,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum] :
      ( ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))
        & p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a))),inj__ty_2Enum_2Enum(V2c))) )
     => p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c))) ) ).

tff(conj_thm_2Egcd_2Egcd__ind,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))
     => ( ( ! [V1y: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1y)))
          & ! [V2x: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2x))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))
          & ! [V3x: tp__ty_2Enum_2Enum,V4y: tp__ty_2Enum_2Enum] :
              ( ( ( ~ p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V4y)),inj__ty_2Enum_2Enum(V3x)))
                 => p(ap(ap(V0P,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3x))),ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V4y)),inj__ty_2Enum_2Enum(V3x)))) )
                & ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V4y)),inj__ty_2Enum_2Enum(V3x)))
                 => p(ap(ap(V0P,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V3x)),inj__ty_2Enum_2Enum(V4y))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V4y)))) ) )
             => p(ap(ap(V0P,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3x))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V4y)))) ) )
       => ! [V5v: tp__ty_2Enum_2Enum,V6v1: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V5v)),inj__ty_2Enum_2Enum(V6v1))) ) ) ).

tff(conj_thm_2Egcd_2Egcd__def,axiom,
    ( ! [V0y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0y))) = V0y )
    & ! [V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1x))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1x))) )
    & ! [V2y: tp__ty_2Enum_2Enum,V3x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3x))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2y)))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V2y)),inj__ty_2Enum_2Enum(V3x))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V3x)),inj__ty_2Enum_2Enum(V2y))),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V2y)))),ap(ap(c_2Egcd_2Egcd,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3x))),ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V2y)),inj__ty_2Enum_2Enum(V3x))))) ) ) ).

tff(conj_thm_2Egcd_2Egcd__def__compute,axiom,
    ( ! [V0y: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0y))) = V0y )
    & ! [V1x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1x)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1x)))) )
    & ! [V2x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V2x)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V2x)))) )
    & ! [V3y: tp__ty_2Enum_2Enum,V4x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3y))))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_3C_3D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3y))))),ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x)))),ap(ap(c_2Earithmetic_2E_2D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) )
    & ! [V5y: tp__ty_2Enum_2Enum,V6x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V6x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5y))))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_3C_3D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6x))))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6x)))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5y))))),ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V6x)))),ap(ap(c_2Earithmetic_2E_2D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V5y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V6x))))))) )
    & ! [V7y: tp__ty_2Enum_2Enum,V8x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V7y))))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_3C_3D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7y)))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2D,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7y))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V7y))))),ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V7y)))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V8x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) )
    & ! [V9y: tp__ty_2Enum_2Enum,V10x: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V10x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V9y))))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Earithmetic_2E_3C_3D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V9y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V10x))))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V10x)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V9y))))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V9y))))),ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V10x)))),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V9y)))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V10x))))))) ) ) ).

tff(conj_thm_2Egcd_2EGCD__IS__GCD,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : p(ap(ap(ap(c_2Egcd_2Eis__gcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))) ).

tff(conj_thm_2Egcd_2EGCD__IS__GREATEST__COMMON__DIVISOR,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] :
      ( p(ap(ap(c_2Edivides_2Edivides,ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))),inj__ty_2Enum_2Enum(V0a)))
      & p(ap(ap(c_2Edivides_2Edivides,ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))),inj__ty_2Enum_2Enum(V1b)))
      & ! [V2d: tp__ty_2Enum_2Enum] :
          ( ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2d)),inj__ty_2Enum_2Enum(V0a)))
            & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2d)),inj__ty_2Enum_2Enum(V1b))) )
         => p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V2d)),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))) ) ) ).

tff(conj_thm_2Egcd_2EGCD__REF,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V0a))) = V0a ) ).

tff(conj_thm_2Egcd_2EGCD__SYM,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a))) ) ).

tff(conj_thm_2Egcd_2EGCD__0R,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = V0a ) ).

tff(conj_thm_2Egcd_2EGCD__0L,axiom,
    ! [V0a: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0a))) = V0a ) ).

tff(conj_thm_2Egcd_2EGCD__ADD__R,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) ) ).

tff(conj_thm_2Egcd_2EGCD__ADD__R__THM,axiom,
    ( ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) )
    & ! [V2a: tp__ty_2Enum_2Enum,V3b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V2a)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V3b)),inj__ty_2Enum_2Enum(V2a)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V2a)),inj__ty_2Enum_2Enum(V3b))) ) ) ).

tff(conj_thm_2Egcd_2EGCD__ADD__L,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))),inj__ty_2Enum_2Enum(V0a))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) ) ).

tff(conj_thm_2Egcd_2EGCD__ADD__L__THM,axiom,
    ( ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))),inj__ty_2Enum_2Enum(V0a))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) )
    & ! [V2a: tp__ty_2Enum_2Enum,V3b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V3b)),inj__ty_2Enum_2Enum(V2a))),inj__ty_2Enum_2Enum(V2a))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V2a)),inj__ty_2Enum_2Enum(V3b))) ) ) ).

tff(conj_thm_2Egcd_2EGCD__EQ__0,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V1m))) = fo__c_2Enum_2E0 )
    <=> ( ( V0n = fo__c_2Enum_2E0 )
        & ( V1m = fo__c_2Enum_2E0 ) ) ) ).

tff(conj_thm_2Egcd_2EGCD__1,axiom,
    ! [V0x: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0x))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) )
      & ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0x)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,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)))) ) ) ).

tff(conj_thm_2Egcd_2EPRIME__GCD,axiom,
    ! [V0p: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] :
      ( p(ap(c_2Edivides_2Eprime,inj__ty_2Enum_2Enum(V0p)))
     => ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1b)))
        | ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1b))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) ) ) ) ).

tff(conj_thm_2Egcd_2EL__EUCLIDES,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum,V2c: tp__ty_2Enum_2Enum] :
      ( ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) )
        & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1b)),ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V2c)))) )
     => p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V2c))) ) ).

tff(conj_thm_2Egcd_2EP__EUCLIDES,axiom,
    ! [V0p: tp__ty_2Enum_2Enum,V1a: tp__ty_2Enum_2Enum,V2b: tp__ty_2Enum_2Enum] :
      ( ( p(ap(c_2Edivides_2Eprime,inj__ty_2Enum_2Enum(V0p)))
        & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V1a)),inj__ty_2Enum_2Enum(V2b)))) )
     => ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1a)))
        | p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V2b))) ) ) ).

tff(conj_thm_2Egcd_2EFACTOR__OUT__GCD,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum] :
      ( ( ( V0n != fo__c_2Enum_2E0 )
        & ( V1m != fo__c_2Enum_2E0 ) )
     => ? [V2p: tp__ty_2Enum_2Enum,V3q: tp__ty_2Enum_2Enum] :
          ( ( V0n = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2p)),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V1m)))) )
          & ( V1m = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V3q)),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0n)),inj__ty_2Enum_2Enum(V1m)))) )
          & ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V2p)),inj__ty_2Enum_2Enum(V3q))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) ) ) ) ).

tff(conj_thm_2Egcd_2EGCD__SUCfree__ind,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(ty_2Enum_2Enum,arr(ty_2Enum_2Enum,bool)))
     => ( ( ! [V1y: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1y)))
          & ! [V2x: tp__ty_2Enum_2Enum,V3y: tp__ty_2Enum_2Enum] :
              ( p(ap(ap(V0P,inj__ty_2Enum_2Enum(V2x)),inj__ty_2Enum_2Enum(V3y)))
             => p(ap(ap(V0P,inj__ty_2Enum_2Enum(V3y)),inj__ty_2Enum_2Enum(V2x))) )
          & ! [V4x: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V4x)),inj__ty_2Enum_2Enum(V4x)))
          & ! [V5x: tp__ty_2Enum_2Enum,V6y: tp__ty_2Enum_2Enum] :
              ( ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V5x)))
                & p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V6y)))
                & p(ap(ap(V0P,inj__ty_2Enum_2Enum(V5x)),inj__ty_2Enum_2Enum(V6y))) )
             => p(ap(ap(V0P,inj__ty_2Enum_2Enum(V5x)),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V5x)),inj__ty_2Enum_2Enum(V6y)))) ) )
       => ! [V7m: tp__ty_2Enum_2Enum,V8n: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V7m)),inj__ty_2Enum_2Enum(V8n))) ) ) ).

tff(conj_thm_2Egcd_2ELINEAR__GCD,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum] :
      ( ( V0n != fo__c_2Enum_2E0 )
     => ? [V2p: tp__ty_2Enum_2Enum,V3q: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2p)),inj__ty_2Enum_2Enum(V0n))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2B,ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V3q)),inj__ty_2Enum_2Enum(V1m))),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V1m)),inj__ty_2Enum_2Enum(V0n)))) ) ) ).

tff(conj_thm_2Egcd_2EGCD__EFFICIENTLY,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) = 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(V0a)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),inj__ty_2Enum_2Enum(V1b)),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2EMOD,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a))),inj__ty_2Enum_2Enum(V0a)))) ) ).

tff(ax_thm_2Egcd_2Elcm__def,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))) = surj__ty_2Enum_2Enum(ap(ap(ap(c_2Ebool_2ECOND(ty_2Enum_2Enum),ap(ap(c_2Ebool_2E_5C_2F,ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),ap(ap(c_2Earithmetic_2EDIV,ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))))) ) ).

tff(conj_thm_2Egcd_2ELCM__IS__LEAST__COMMON__MULTIPLE,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0m)),ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))))
      & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))))
      & ! [V2p: tp__ty_2Enum_2Enum] :
          ( ( p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V2p)))
            & p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V2p))) )
         => p(ap(ap(c_2Edivides_2Edivides,ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))),inj__ty_2Enum_2Enum(V2p))) ) ) ).

tff(conj_thm_2Egcd_2ELCM__0,axiom,
    ! [V0x: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0x))) = fo__c_2Enum_2E0 )
      & ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0x)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))) = fo__c_2Enum_2E0 ) ) ).

tff(conj_thm_2Egcd_2ELCM__1,axiom,
    ! [V0x: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0x))) = V0x )
      & ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0x)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))) = V0x ) ) ).

tff(conj_thm_2Egcd_2ELCM__COMM,axiom,
    ! [V0a: tp__ty_2Enum_2Enum,V1b: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0a)),inj__ty_2Enum_2Enum(V1b))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V1b)),inj__ty_2Enum_2Enum(V0a))) ) ).

tff(conj_thm_2Egcd_2ELCM__LE,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0m)))
        & p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1n))) )
     => ( p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))))
        & p(ap(ap(c_2Earithmetic_2E_3C_3D,inj__ty_2Enum_2Enum(V0m)),ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V0m)))) ) ) ).

tff(conj_thm_2Egcd_2ELCM__LEAST,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V0m)))
        & p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V1n))) )
     => ! [V2p: tp__ty_2Enum_2Enum] :
          ( ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),inj__ty_2Enum_2Enum(V2p)))
            & p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2p)),ap(ap(c_2Egcd_2Elcm,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n)))) )
         => ( ~ p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V2p)))
            | ~ p(ap(ap(c_2Edivides_2Edivides,inj__ty_2Enum_2Enum(V1n)),inj__ty_2Enum_2Enum(V2p))) ) ) ) ).

tff(conj_thm_2Egcd_2EGCD__COMMON__FACTOR,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2k: tp__ty_2Enum_2Enum] : ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2k)),inj__ty_2Enum_2Enum(V0m))),ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2k)),inj__ty_2Enum_2Enum(V1n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2k)),ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n)))) ) ).

tff(conj_thm_2Egcd_2EGCD__CANCEL__MULT,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum,V2k: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V2k))) = surj__ty_2Enum_2Enum(ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))) )
     => ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),ap(ap(c_2Earithmetic_2E_2A,inj__ty_2Enum_2Enum(V2k)),inj__ty_2Enum_2Enum(V1n)))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))) ) ) ).

tff(conj_thm_2Egcd_2EBINARY__GCD,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( ( p(ap(c_2Earithmetic_2EEVEN,inj__ty_2Enum_2Enum(V0m)))
          & p(ap(c_2Earithmetic_2EEVEN,inj__ty_2Enum_2Enum(V1n))) )
       => ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),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)))),ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V0m)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V1n)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
      & ( ( p(ap(c_2Earithmetic_2EEVEN,inj__ty_2Enum_2Enum(V0m)))
          & p(ap(c_2Earithmetic_2EODD,inj__ty_2Enum_2Enum(V1n))) )
       => ( surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,inj__ty_2Enum_2Enum(V0m)),inj__ty_2Enum_2Enum(V1n))) = surj__ty_2Enum_2Enum(ap(ap(c_2Egcd_2Egcd,ap(ap(c_2Earithmetic_2EDIV,inj__ty_2Enum_2Enum(V0m)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V1n))) ) ) ) ).

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