ITP001 Axioms: ITP023_5.ax
%------------------------------------------------------------------------------
% File : ITP023_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 : 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))) ) ) ) ).
%------------------------------------------------------------------------------