ITP001 Axioms: ITP018^7.ax
%------------------------------------------------------------------------------
% File : ITP018^7 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain : Interactive Theorem Proving
% Axioms : HOL4 syntactic export, chainy mode
% Version : [BG+19] axioms.
% English :
% Refs : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
% : [Gau19] Gauthier (2019), Email to Geoff Sutcliffe
% Source : [BG+19]
% Names : numeral.ax [Gau19]
% : HL4018^7.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 103 ( 14 unt; 54 typ; 0 def)
% Number of atoms : 299 ( 176 equ; 7 cnn)
% Maximal formula atoms : 41 ( 2 avg)
% Number of connectives : 1360 ( 7 ~; 1 |; 142 &;1182 @)
% ( 21 <=>; 7 =>; 0 <=; 0 <~>)
% Maximal formula depth : 38 ( 7 avg;1182 nst)
% Number of types : 3 ( 2 usr)
% Number of type conns : 101 ( 101 >; 0 *; 0 +; 0 <<)
% Number of symbols : 54 ( 52 usr; 5 con; 0-5 aty)
% Number of variables : 198 ( 14 ^ 168 !; 2 ?; 198 :)
% ( 14 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2Emin_2Ebool,type,
tyop_2Emin_2Ebool: $tType ).
thf(tyop_2Emin_2Efun,type,
tyop_2Emin_2Efun: $tType > $tType > $tType ).
thf(tyop_2Enum_2Enum,type,
tyop_2Enum_2Enum: $tType ).
thf(tyop_2Epair_2Eprod,type,
tyop_2Epair_2Eprod: $tType > $tType > $tType ).
thf(c_2Ebool_2E_21,type,
c_2Ebool_2E_21:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Earithmetic_2E_2A,type,
c_2Earithmetic_2E_2A: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2E_2B,type,
c_2Earithmetic_2E_2B: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Epair_2E_2C,type,
c_2Epair_2E_2C:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > A_27b > ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) ) ).
thf(c_2Earithmetic_2E_2D,type,
c_2Earithmetic_2E_2D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2E_2F_5C,type,
c_2Ebool_2E_2F_5C: $o > $o > $o ).
thf(c_2Enum_2E0,type,
c_2Enum_2E0: tyop_2Enum_2Enum ).
thf(c_2Eprim__rec_2E_3C,type,
c_2Eprim__rec_2E_3C: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).
thf(c_2Earithmetic_2E_3C_3D,type,
c_2Earithmetic_2E_3C_3D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).
thf(c_2Emin_2E_3D,type,
c_2Emin_2E_3D:
!>[A_27a: $tType] : ( A_27a > A_27a > $o ) ).
thf(c_2Emin_2E_3D_3D_3E,type,
c_2Emin_2E_3D_3D_3E: $o > $o > $o ).
thf(c_2Earithmetic_2E_3E,type,
c_2Earithmetic_2E_3E: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).
thf(c_2Earithmetic_2E_3E_3D,type,
c_2Earithmetic_2E_3E_3D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).
thf(c_2Ebool_2E_3F,type,
c_2Ebool_2E_3F:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Earithmetic_2EBIT1,type,
c_2Earithmetic_2EBIT1: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EBIT2,type,
c_2Earithmetic_2EBIT2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2ECOND,type,
c_2Ebool_2ECOND:
!>[A_27a: $tType] : ( $o > A_27a > A_27a > A_27a ) ).
thf(c_2Earithmetic_2EDIV,type,
c_2Earithmetic_2EDIV: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EDIV2,type,
c_2Earithmetic_2EDIV2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EDIVMOD,type,
c_2Earithmetic_2EDIVMOD: ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) ) > ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) ).
thf(c_2Earithmetic_2EEVEN,type,
c_2Earithmetic_2EEVEN: tyop_2Enum_2Enum > $o ).
thf(c_2Earithmetic_2EEXP,type,
c_2Earithmetic_2EEXP: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2EF,type,
c_2Ebool_2EF: $o ).
thf(c_2Earithmetic_2EFACT,type,
c_2Earithmetic_2EFACT: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Epair_2EFST,type,
c_2Epair_2EFST:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > A_27a ) ).
thf(c_2Earithmetic_2EFUNPOW,type,
c_2Earithmetic_2EFUNPOW:
!>[A_27a: $tType] : ( ( A_27a > A_27a ) > tyop_2Enum_2Enum > A_27a > A_27a ) ).
thf(c_2Ebool_2ELET,type,
c_2Ebool_2ELET:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > A_27a > A_27b ) ).
thf(c_2Earithmetic_2EMAX,type,
c_2Earithmetic_2EMAX: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EMIN,type,
c_2Earithmetic_2EMIN: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EMOD,type,
c_2Earithmetic_2EMOD: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2ENUMERAL,type,
c_2Earithmetic_2ENUMERAL: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EODD,type,
c_2Earithmetic_2EODD: tyop_2Enum_2Enum > $o ).
thf(c_2Eprim__rec_2EPRE,type,
c_2Eprim__rec_2EPRE: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Epair_2ESND,type,
c_2Epair_2ESND:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > A_27b ) ).
thf(c_2Enum_2ESUC,type,
c_2Enum_2ESUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2ET,type,
c_2Ebool_2ET: $o ).
thf(c_2Earithmetic_2EZERO,type,
c_2Earithmetic_2EZERO: tyop_2Enum_2Enum ).
thf(c_2Ebool_2E_5C_2F,type,
c_2Ebool_2E_5C_2F: $o > $o > $o ).
thf(c_2Enumeral_2Eexactlog,type,
c_2Enumeral_2Eexactlog: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2Efindq,type,
c_2Earithmetic_2Efindq: ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) ) > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2EiBIT__cases,type,
c_2Enumeral_2EiBIT__cases:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > A_27a > ( tyop_2Enum_2Enum > A_27a ) > ( tyop_2Enum_2Enum > A_27a ) > A_27a ) ).
thf(c_2Enumeral_2EiDUB,type,
c_2Enumeral_2EiDUB: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2EiSQR,type,
c_2Enumeral_2EiSQR: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2EiSUB,type,
c_2Enumeral_2EiSUB: $o > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2EiZ,type,
c_2Enumeral_2EiZ: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2EiiSUC,type,
c_2Enumeral_2EiiSUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2Einternal__mult,type,
c_2Enumeral_2Einternal__mult: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2Eonecount,type,
c_2Enumeral_2Eonecount: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Enumeral_2Etexp__help,type,
c_2Enumeral_2Etexp__help: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2E_7E,type,
c_2Ebool_2E_7E: $o > $o ).
thf(logicdef_2E_2F_5C,axiom,
! [V0: $o,V1: $o] :
( ( c_2Ebool_2E_2F_5C @ V0 @ V1 )
<=> ( V0
& V1 ) ) ).
thf(logicdef_2E_5C_2F,axiom,
! [V0: $o,V1: $o] :
( ( c_2Ebool_2E_5C_2F @ V0 @ V1 )
<=> ( V0
| V1 ) ) ).
thf(logicdef_2E_7E,axiom,
! [V0: $o] :
( ( c_2Ebool_2E_7E @ V0 )
<=> ( (~) @ V0 ) ) ).
thf(logicdef_2E_3D_3D_3E,axiom,
! [V0: $o,V1: $o] :
( ( c_2Emin_2E_3D_3D_3E @ V0 @ V1 )
<=> ( V0
=> V1 ) ) ).
thf(logicdef_2E_3D,axiom,
! [A_27a: $tType,V0: A_27a,V1: A_27a] :
( ( c_2Emin_2E_3D @ A_27a @ V0 @ V1 )
<=> ( V0 = V1 ) ) ).
thf(quantdef_2E_21,axiom,
! [A_27a: $tType,V0f: A_27a > $o] :
( ( c_2Ebool_2E_21 @ A_27a @ V0f )
<=> ! [V1x: A_27a] : ( V0f @ V1x ) ) ).
thf(quantdef_2E_3F,axiom,
! [A_27a: $tType,V0f: A_27a > $o] :
( ( c_2Ebool_2E_3F @ A_27a @ V0f )
<=> ? [V1x: A_27a] : ( V0f @ V1x ) ) ).
thf(thm_2Enumeral_2EiZ,axiom,
! [V0x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiZ @ V0x )
= V0x ) ).
thf(thm_2Enumeral_2EiiSUC,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiiSUC @ V0n )
= ( c_2Enum_2ESUC @ ( c_2Enum_2ESUC @ V0n ) ) ) ).
thf(thm_2Enumeral_2EiBIT__cases,axiom,
! [A_27a: $tType] :
( ! [V0zf: A_27a,V1bf1: tyop_2Enum_2Enum > A_27a,V2bf2: tyop_2Enum_2Enum > A_27a] :
( ( c_2Enumeral_2EiBIT__cases @ A_27a @ c_2Earithmetic_2EZERO @ V0zf @ V1bf1 @ V2bf2 )
= V0zf )
& ! [V3n: tyop_2Enum_2Enum,V4zf: A_27a,V5bf1: tyop_2Enum_2Enum > A_27a,V6bf2: tyop_2Enum_2Enum > A_27a] :
( ( c_2Enumeral_2EiBIT__cases @ A_27a @ ( c_2Earithmetic_2EBIT1 @ V3n ) @ V4zf @ V5bf1 @ V6bf2 )
= ( V5bf1 @ V3n ) )
& ! [V7n: tyop_2Enum_2Enum,V8zf: A_27a,V9bf1: tyop_2Enum_2Enum > A_27a,V10bf2: tyop_2Enum_2Enum > A_27a] :
( ( c_2Enumeral_2EiBIT__cases @ A_27a @ ( c_2Earithmetic_2EBIT2 @ V7n ) @ V8zf @ V9bf1 @ V10bf2 )
= ( V10bf2 @ V7n ) ) ) ).
thf(thm_2Enumeral_2EiDUB,axiom,
! [V0x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiDUB @ V0x )
= ( c_2Earithmetic_2E_2B @ V0x @ V0x ) ) ).
thf(thm_2Enumeral_2EiSUB__DEF,axiom,
( ! [V0b: $o,V1x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiSUB @ V0b @ c_2Earithmetic_2EZERO @ V1x )
= c_2Earithmetic_2EZERO )
& ! [V2b: $o,V3n: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiSUB @ V2b @ ( c_2Earithmetic_2EBIT1 @ V3n ) @ V4x )
= ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ V2b
@ ( c_2Enumeral_2EiBIT__cases @ tyop_2Enum_2Enum @ V4x @ ( c_2Earithmetic_2EBIT1 @ V3n )
@ ^ [V5m: tyop_2Enum_2Enum] : ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V3n @ V5m ) )
@ ^ [V6m: tyop_2Enum_2Enum] : ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V3n @ V6m ) ) )
@ ( c_2Enumeral_2EiBIT__cases @ tyop_2Enum_2Enum @ V4x @ ( c_2Enumeral_2EiDUB @ V3n )
@ ^ [V7m: tyop_2Enum_2Enum] : ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V3n @ V7m ) )
@ ^ [V8m: tyop_2Enum_2Enum] : ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V3n @ V8m ) ) ) ) )
& ! [V9b: $o,V10n: tyop_2Enum_2Enum,V11x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiSUB @ V9b @ ( c_2Earithmetic_2EBIT2 @ V10n ) @ V11x )
= ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ V9b
@ ( c_2Enumeral_2EiBIT__cases @ tyop_2Enum_2Enum @ V11x @ ( c_2Earithmetic_2EBIT2 @ V10n )
@ ^ [V12m: tyop_2Enum_2Enum] : ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V10n @ V12m ) )
@ ^ [V13m: tyop_2Enum_2Enum] : ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V10n @ V13m ) ) )
@ ( c_2Enumeral_2EiBIT__cases @ tyop_2Enum_2Enum @ V11x @ ( c_2Earithmetic_2EBIT1 @ V10n )
@ ^ [V14m: tyop_2Enum_2Enum] : ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V10n @ V14m ) )
@ ^ [V15m: tyop_2Enum_2Enum] : ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V10n @ V15m ) ) ) ) ) ) ).
thf(thm_2Enumeral_2EiSQR,axiom,
! [V0x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2EiSQR @ V0x )
= ( c_2Earithmetic_2E_2A @ V0x @ V0x ) ) ).
thf(thm_2Enumeral_2Etexp__help__def,axiom,
( ! [V0acc: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Etexp__help @ c_2Enum_2E0 @ V0acc )
= ( c_2Earithmetic_2EBIT2 @ V0acc ) )
& ! [V1n: tyop_2Enum_2Enum,V2acc: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Etexp__help @ ( c_2Enum_2ESUC @ V1n ) @ V2acc )
= ( c_2Enumeral_2Etexp__help @ V1n @ ( c_2Earithmetic_2EBIT1 @ V2acc ) ) ) ) ).
thf(thm_2Enumeral_2Eonecount__def,axiom,
( ! [V0x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Eonecount @ c_2Earithmetic_2EZERO @ V0x )
= V0x )
& ! [V1n: tyop_2Enum_2Enum,V2x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Eonecount @ ( c_2Earithmetic_2EBIT1 @ V1n ) @ V2x )
= ( c_2Enumeral_2Eonecount @ V1n @ ( c_2Enum_2ESUC @ V2x ) ) )
& ! [V3n: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Eonecount @ ( c_2Earithmetic_2EBIT2 @ V3n ) @ V4x )
= c_2Earithmetic_2EZERO ) ) ).
thf(thm_2Enumeral_2Eexactlog__def,axiom,
( ( ( c_2Enumeral_2Eexactlog @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO )
& ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
= c_2Earithmetic_2EZERO )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT2 @ V1n ) )
= ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
@ ^ [V2x: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V2x @ c_2Earithmetic_2EZERO ) @ c_2Earithmetic_2EZERO @ ( c_2Earithmetic_2EBIT1 @ V2x ) )
@ ( c_2Enumeral_2Eonecount @ V1n @ c_2Earithmetic_2EZERO ) ) ) ) ).
thf(thm_2Enumeral_2Einternal__mult__def,axiom,
c_2Enumeral_2Einternal__mult = c_2Earithmetic_2E_2A ).
thf(thm_2Enumeral_2Enumeral__suc,axiom,
( ( ( c_2Enum_2ESUC @ c_2Earithmetic_2EZERO )
= ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) )
& ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
= ( c_2Earithmetic_2EBIT2 @ V0n ) )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2EBIT2 @ V1n ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enum_2ESUC @ V1n ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__distrib,axiom,
( ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2B @ c_2Enum_2E0 @ V0n )
= V0n )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2B @ V1n @ c_2Enum_2E0 )
= V1n )
& ! [V2n: tyop_2Enum_2Enum,V3m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ V2n ) @ ( c_2Earithmetic_2ENUMERAL @ V3m ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ V2n @ V3m ) ) ) )
& ! [V4n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2A @ c_2Enum_2E0 @ V4n )
= c_2Enum_2E0 )
& ! [V5n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2A @ V5n @ c_2Enum_2E0 )
= c_2Enum_2E0 )
& ! [V6n: tyop_2Enum_2Enum,V7m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2ENUMERAL @ V6n ) @ ( c_2Earithmetic_2ENUMERAL @ V7m ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2E_2A @ V6n @ V7m ) ) )
& ! [V8n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2D @ c_2Enum_2E0 @ V8n )
= c_2Enum_2E0 )
& ! [V9n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2D @ V9n @ c_2Enum_2E0 )
= V9n )
& ! [V10n: tyop_2Enum_2Enum,V11m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ V10n ) @ ( c_2Earithmetic_2ENUMERAL @ V11m ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2E_2D @ V10n @ V11m ) ) )
& ! [V12n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V12n ) ) )
= c_2Enum_2E0 )
& ! [V13n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V13n ) ) )
= c_2Enum_2E0 )
& ! [V14n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ V14n @ c_2Enum_2E0 )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) )
& ! [V15n: tyop_2Enum_2Enum,V16m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ V15n ) @ ( c_2Earithmetic_2ENUMERAL @ V16m ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EEXP @ V15n @ V16m ) ) )
& ( ( c_2Enum_2ESUC @ c_2Enum_2E0 )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) )
& ! [V17n: tyop_2Enum_2Enum] :
( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2ENUMERAL @ V17n ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Enum_2ESUC @ V17n ) ) )
& ( ( c_2Eprim__rec_2EPRE @ c_2Enum_2E0 )
= c_2Enum_2E0 )
& ! [V18n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2ENUMERAL @ V18n ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Eprim__rec_2EPRE @ V18n ) ) )
& ! [V19n: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2ENUMERAL @ V19n )
= c_2Enum_2E0 )
<=> ( V19n = c_2Earithmetic_2EZERO ) )
& ! [V20n: tyop_2Enum_2Enum] :
( ( c_2Enum_2E0
= ( c_2Earithmetic_2ENUMERAL @ V20n ) )
<=> ( V20n = c_2Earithmetic_2EZERO ) )
& ! [V21n: tyop_2Enum_2Enum,V22m: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2ENUMERAL @ V21n )
= ( c_2Earithmetic_2ENUMERAL @ V22m ) )
<=> ( V21n = V22m ) )
& ! [V23n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V23n @ c_2Enum_2E0 )
= c_2Ebool_2EF )
& ! [V24n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ c_2Enum_2E0 @ ( c_2Earithmetic_2ENUMERAL @ V24n ) )
= ( c_2Eprim__rec_2E_3C @ c_2Earithmetic_2EZERO @ V24n ) )
& ! [V25n: tyop_2Enum_2Enum,V26m: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2ENUMERAL @ V25n ) @ ( c_2Earithmetic_2ENUMERAL @ V26m ) )
= ( c_2Eprim__rec_2E_3C @ V25n @ V26m ) )
& ! [V27n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E @ c_2Enum_2E0 @ V27n )
= c_2Ebool_2EF )
& ! [V28n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E @ ( c_2Earithmetic_2ENUMERAL @ V28n ) @ c_2Enum_2E0 )
= ( c_2Eprim__rec_2E_3C @ c_2Earithmetic_2EZERO @ V28n ) )
& ! [V29n: tyop_2Enum_2Enum,V30m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E @ ( c_2Earithmetic_2ENUMERAL @ V29n ) @ ( c_2Earithmetic_2ENUMERAL @ V30m ) )
= ( c_2Eprim__rec_2E_3C @ V30m @ V29n ) )
& ! [V31n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3C_3D @ c_2Enum_2E0 @ V31n )
= c_2Ebool_2ET )
& ! [V32n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2ENUMERAL @ V32n ) @ c_2Enum_2E0 )
= ( c_2Earithmetic_2E_3C_3D @ V32n @ c_2Earithmetic_2EZERO ) )
& ! [V33n: tyop_2Enum_2Enum,V34m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2ENUMERAL @ V33n ) @ ( c_2Earithmetic_2ENUMERAL @ V34m ) )
= ( c_2Earithmetic_2E_3C_3D @ V33n @ V34m ) )
& ! [V35n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E_3D @ V35n @ c_2Enum_2E0 )
= c_2Ebool_2ET )
& ! [V36n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E_3D @ c_2Enum_2E0 @ V36n )
<=> ( V36n = c_2Enum_2E0 ) )
& ! [V37n: tyop_2Enum_2Enum,V38m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2E_3E_3D @ ( c_2Earithmetic_2ENUMERAL @ V37n ) @ ( c_2Earithmetic_2ENUMERAL @ V38m ) )
= ( c_2Earithmetic_2E_3C_3D @ V38m @ V37n ) )
& ! [V39n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EODD @ ( c_2Earithmetic_2ENUMERAL @ V39n ) )
= ( c_2Earithmetic_2EODD @ V39n ) )
& ! [V40n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEVEN @ ( c_2Earithmetic_2ENUMERAL @ V40n ) )
= ( c_2Earithmetic_2EEVEN @ V40n ) )
& ( (~) @ ( c_2Earithmetic_2EODD @ c_2Enum_2E0 ) )
& ( c_2Earithmetic_2EEVEN @ c_2Enum_2E0 ) ) ).
thf(thm_2Enumeral_2Enumeral__iisuc,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2EiiSUC @ c_2Earithmetic_2EZERO )
= ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enum_2ESUC @ V0n ) ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2EBIT2 @ V0n ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enum_2ESUC @ V0n ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__add,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ c_2Earithmetic_2EZERO @ V0n ) )
= V0n )
& ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ V0n @ c_2Earithmetic_2EZERO ) )
= V0n )
& ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ c_2Earithmetic_2EZERO @ V0n ) )
= ( c_2Enum_2ESUC @ V0n ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ c_2Earithmetic_2EZERO ) )
= ( c_2Enum_2ESUC @ V0n ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ c_2Earithmetic_2EZERO @ V0n ) )
= ( c_2Enumeral_2EiiSUC @ V0n ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ V0n @ c_2Earithmetic_2EZERO ) )
= ( c_2Enumeral_2EiiSUC @ V0n ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enum_2ESUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) )
& ( ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enumeral_2EiiSUC @ ( c_2Earithmetic_2E_2B @ V0n @ V1m ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__eq,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2EZERO
= ( c_2Earithmetic_2EBIT1 @ V0n ) )
<=> c_2Ebool_2EF )
& ( ( ( c_2Earithmetic_2EBIT1 @ V0n )
= c_2Earithmetic_2EZERO )
<=> c_2Ebool_2EF )
& ( ( c_2Earithmetic_2EZERO
= ( c_2Earithmetic_2EBIT2 @ V0n ) )
<=> c_2Ebool_2EF )
& ( ( ( c_2Earithmetic_2EBIT2 @ V0n )
= c_2Earithmetic_2EZERO )
<=> c_2Ebool_2EF )
& ( ( ( c_2Earithmetic_2EBIT1 @ V0n )
= ( c_2Earithmetic_2EBIT2 @ V1m ) )
<=> c_2Ebool_2EF )
& ( ( ( c_2Earithmetic_2EBIT2 @ V0n )
= ( c_2Earithmetic_2EBIT1 @ V1m ) )
<=> c_2Ebool_2EF )
& ( ( ( c_2Earithmetic_2EBIT1 @ V0n )
= ( c_2Earithmetic_2EBIT1 @ V1m ) )
<=> ( V0n = V1m ) )
& ( ( ( c_2Earithmetic_2EBIT2 @ V0n )
= ( c_2Earithmetic_2EBIT2 @ V1m ) )
<=> ( V0n = V1m ) ) ) ).
thf(thm_2Enumeral_2Enumeral__lt,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Eprim__rec_2E_3C @ c_2Earithmetic_2EZERO @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
= c_2Ebool_2ET )
& ( ( c_2Eprim__rec_2E_3C @ c_2Earithmetic_2EZERO @ ( c_2Earithmetic_2EBIT2 @ V0n ) )
= c_2Ebool_2ET )
& ( ( c_2Eprim__rec_2E_3C @ V0n @ c_2Earithmetic_2EZERO )
= c_2Ebool_2EF )
& ( ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) )
= ( c_2Eprim__rec_2E_3C @ V0n @ V1m ) )
& ( ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) )
= ( c_2Eprim__rec_2E_3C @ V0n @ V1m ) )
& ( ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) )
<=> ( (~) @ ( c_2Eprim__rec_2E_3C @ V1m @ V0n ) ) )
& ( ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) )
= ( c_2Eprim__rec_2E_3C @ V0n @ V1m ) ) ) ).
thf(thm_2Enumeral_2Enumeral__lte,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2E_3C_3D @ c_2Earithmetic_2EZERO @ V0n )
= c_2Ebool_2ET )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ c_2Earithmetic_2EZERO )
= c_2Ebool_2EF )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ c_2Earithmetic_2EZERO )
= c_2Ebool_2EF )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) )
= ( c_2Earithmetic_2E_3C_3D @ V0n @ V1m ) )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) )
= ( c_2Earithmetic_2E_3C_3D @ V0n @ V1m ) )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1m ) )
<=> ( (~) @ ( c_2Earithmetic_2E_3C_3D @ V1m @ V0n ) ) )
& ( ( c_2Earithmetic_2E_3C_3D @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ ( c_2Earithmetic_2EBIT2 @ V1m ) )
= ( c_2Earithmetic_2E_3C_3D @ V0n @ V1m ) ) ) ).
thf(thm_2Enumeral_2Enumeral__pre,axiom,
( ( ( c_2Eprim__rec_2EPRE @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO )
& ( ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) )
= c_2Earithmetic_2EZERO )
& ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) ) )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) )
& ! [V2n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT2 @ V2n ) )
= ( c_2Earithmetic_2EBIT1 @ V2n ) ) ) ).
thf(thm_2Enumeral_2Ebit__initiality,axiom,
! [A_27a: $tType,V0zf: A_27a,V1b1f: tyop_2Enum_2Enum > A_27a > A_27a,V2b2f: tyop_2Enum_2Enum > A_27a > A_27a] :
? [V3f: tyop_2Enum_2Enum > A_27a] :
( ( ( V3f @ c_2Earithmetic_2EZERO )
= V0zf )
& ! [V4n: tyop_2Enum_2Enum] :
( ( V3f @ ( c_2Earithmetic_2EBIT1 @ V4n ) )
= ( V1b1f @ V4n @ ( V3f @ V4n ) ) )
& ! [V5n: tyop_2Enum_2Enum] :
( ( V3f @ ( c_2Earithmetic_2EBIT2 @ V5n ) )
= ( V2b2f @ V5n @ ( V3f @ V5n ) ) ) ) ).
thf(thm_2Enumeral_2Ebit__induction,axiom,
! [V0P: tyop_2Enum_2Enum > $o] :
( ( ( V0P @ c_2Earithmetic_2EZERO )
& ! [V1n: tyop_2Enum_2Enum] :
( ( V0P @ V1n )
=> ( V0P @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) )
& ! [V2n: tyop_2Enum_2Enum] :
( ( V0P @ V2n )
=> ( V0P @ ( c_2Earithmetic_2EBIT2 @ V2n ) ) ) )
=> ! [V3n: tyop_2Enum_2Enum] : ( V0P @ V3n ) ) ).
thf(thm_2Enumeral_2EiSUB__THM,axiom,
! [V0x: tyop_2Enum_2Enum,V1b: $o,V2n: tyop_2Enum_2Enum,V3m: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2EiSUB @ V1b @ c_2Earithmetic_2EZERO @ V0x )
= c_2Earithmetic_2EZERO )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V2n @ c_2Earithmetic_2EZERO )
= V2n )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT1 @ V2n ) @ c_2Earithmetic_2EZERO )
= ( c_2Enumeral_2EiDUB @ V2n ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ ( c_2Earithmetic_2EBIT1 @ V2n ) @ ( c_2Earithmetic_2EBIT1 @ V3m ) )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT1 @ V2n ) @ ( c_2Earithmetic_2EBIT1 @ V3m ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ ( c_2Earithmetic_2EBIT1 @ V2n ) @ ( c_2Earithmetic_2EBIT2 @ V3m ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT1 @ V2n ) @ ( c_2Earithmetic_2EBIT2 @ V3m ) )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT2 @ V2n ) @ c_2Earithmetic_2EZERO )
= ( c_2Earithmetic_2EBIT1 @ V2n ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ ( c_2Earithmetic_2EBIT2 @ V2n ) @ ( c_2Earithmetic_2EBIT1 @ V3m ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT2 @ V2n ) @ ( c_2Earithmetic_2EBIT1 @ V3m ) )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ ( c_2Earithmetic_2EBIT2 @ V2n ) @ ( c_2Earithmetic_2EBIT2 @ V3m ) )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V2n @ V3m ) ) )
& ( ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ ( c_2Earithmetic_2EBIT2 @ V2n ) @ ( c_2Earithmetic_2EBIT2 @ V3m ) )
= ( c_2Earithmetic_2EBIT1 @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2EF @ V2n @ V3m ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__sub,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2E_2D @ V0n @ V1m ) )
= ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Eprim__rec_2E_3C @ V1m @ V0n ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2EiSUB @ c_2Ebool_2ET @ V0n @ V1m ) ) @ c_2Enum_2E0 ) ) ).
thf(thm_2Enumeral_2EiDUB__removal,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2EBIT1 @ V0n ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Enumeral_2EiDUB @ V0n ) ) )
& ( ( c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2EBIT2 @ V0n ) )
= ( c_2Earithmetic_2EBIT2 @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
& ( ( c_2Enumeral_2EiDUB @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO ) ) ).
thf(thm_2Enumeral_2Enumeral__mult,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2E_2A @ c_2Earithmetic_2EZERO @ V0n )
= c_2Earithmetic_2EZERO )
& ( ( c_2Earithmetic_2E_2A @ V0n @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ V1m )
= ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Enumeral_2EiDUB @ ( c_2Earithmetic_2E_2A @ V0n @ V1m ) ) @ V1m ) ) )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ V1m )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2E_2A @ V0n @ V1m ) @ V1m ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__exp,axiom,
( ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ V0n @ c_2Earithmetic_2EZERO )
= ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) )
& ! [V1n: tyop_2Enum_2Enum,V2m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ V1n @ ( c_2Earithmetic_2EBIT1 @ V2m ) )
= ( c_2Earithmetic_2E_2A @ V1n @ ( c_2Enumeral_2EiSQR @ ( c_2Earithmetic_2EEXP @ V1n @ V2m ) ) ) )
& ! [V3n: tyop_2Enum_2Enum,V4m: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEXP @ V3n @ ( c_2Earithmetic_2EBIT2 @ V4m ) )
= ( c_2Earithmetic_2E_2A @ ( c_2Enumeral_2EiSQR @ V3n ) @ ( c_2Enumeral_2EiSQR @ ( c_2Earithmetic_2EEXP @ V3n @ V4m ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__evenodd,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EEVEN @ c_2Earithmetic_2EZERO )
& ( c_2Earithmetic_2EEVEN @ ( c_2Earithmetic_2EBIT2 @ V0n ) )
& ( (~) @ ( c_2Earithmetic_2EEVEN @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
& ( (~) @ ( c_2Earithmetic_2EODD @ c_2Earithmetic_2EZERO ) )
& ( (~) @ ( c_2Earithmetic_2EODD @ ( c_2Earithmetic_2EBIT2 @ V0n ) ) )
& ( c_2Earithmetic_2EODD @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) ) ).
thf(thm_2Enumeral_2Enumeral__fact,axiom,
( ( ( c_2Earithmetic_2EFACT @ c_2Enum_2E0 )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) )
& ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EFACT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
= ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) @ ( c_2Earithmetic_2EFACT @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) ) ) ) )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EFACT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) )
= ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) @ ( c_2Earithmetic_2EFACT @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__funpow,axiom,
! [A_27a: $tType,V0x: A_27a,V1n: tyop_2Enum_2Enum,V2f: A_27a > A_27a] :
( ( ( c_2Earithmetic_2EFUNPOW @ A_27a @ V2f @ c_2Enum_2E0 @ V0x )
= V0x )
& ( ( c_2Earithmetic_2EFUNPOW @ A_27a @ V2f @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) @ V0x )
= ( c_2Earithmetic_2EFUNPOW @ A_27a @ V2f @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) ) @ ( V2f @ V0x ) ) )
& ( ( c_2Earithmetic_2EFUNPOW @ A_27a @ V2f @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) @ V0x )
= ( c_2Earithmetic_2EFUNPOW @ A_27a @ V2f @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) @ ( V2f @ V0x ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__MIN,axiom,
! [V0y: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2EMIN @ c_2Enum_2E0 @ V1x )
= c_2Enum_2E0 )
& ( ( c_2Earithmetic_2EMIN @ V1x @ c_2Enum_2E0 )
= c_2Enum_2E0 )
& ( ( c_2Earithmetic_2EMIN @ ( c_2Earithmetic_2ENUMERAL @ V1x ) @ ( c_2Earithmetic_2ENUMERAL @ V0y ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Eprim__rec_2E_3C @ V1x @ V0y ) @ V1x @ V0y ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__MAX,axiom,
! [V0y: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2EMAX @ c_2Enum_2E0 @ V1x )
= V1x )
& ( ( c_2Earithmetic_2EMAX @ V1x @ c_2Enum_2E0 )
= V1x )
& ( ( c_2Earithmetic_2EMAX @ ( c_2Earithmetic_2ENUMERAL @ V1x ) @ ( c_2Earithmetic_2ENUMERAL @ V0y ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Eprim__rec_2E_3C @ V1x @ V0y ) @ V0y @ V1x ) ) ) ) ).
thf(thm_2Enumeral_2Edivmod__POS,axiom,
! [V0m: tyop_2Enum_2Enum,V1a: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ c_2Enum_2E0 @ V2n )
=> ( ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ V1a @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V0m @ V2n ) ) )
= ( c_2Ebool_2ECOND @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ ( c_2Eprim__rec_2E_3C @ V0m @ V2n ) @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V1a @ V0m )
@ ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum )
@ ^ [V3q: tyop_2Enum_2Enum] : ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ ( c_2Earithmetic_2E_2B @ V1a @ V3q ) @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2E_2D @ V0m @ ( c_2Earithmetic_2E_2A @ V2n @ V3q ) ) @ V2n ) ) )
@ ( c_2Earithmetic_2Efindq @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V0m @ V2n ) ) ) ) ) ) ) ).
thf(thm_2Enumeral_2EDIVMOD__NUMERAL__CALC,axiom,
( ! [V0m: tyop_2Enum_2Enum,V1n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EDIV @ V0m @ ( c_2Earithmetic_2EBIT1 @ V1n ) )
= ( c_2Epair_2EFST @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ c_2Earithmetic_2EZERO @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V0m @ ( c_2Earithmetic_2EBIT1 @ V1n ) ) ) ) ) )
& ! [V2m: tyop_2Enum_2Enum,V3n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EDIV @ V2m @ ( c_2Earithmetic_2EBIT2 @ V3n ) )
= ( c_2Epair_2EFST @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ c_2Earithmetic_2EZERO @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V2m @ ( c_2Earithmetic_2EBIT2 @ V3n ) ) ) ) ) )
& ! [V4m: tyop_2Enum_2Enum,V5n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EMOD @ V4m @ ( c_2Earithmetic_2EBIT1 @ V5n ) )
= ( c_2Epair_2ESND @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ c_2Earithmetic_2EZERO @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V4m @ ( c_2Earithmetic_2EBIT1 @ V5n ) ) ) ) ) )
& ! [V6m: tyop_2Enum_2Enum,V7n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EMOD @ V6m @ ( c_2Earithmetic_2EBIT2 @ V7n ) )
= ( c_2Epair_2ESND @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EDIVMOD @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ ( tyop_2Epair_2Eprod @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum ) @ c_2Earithmetic_2EZERO @ ( c_2Epair_2E_2C @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ V6m @ ( c_2Earithmetic_2EBIT2 @ V7n ) ) ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__div2,axiom,
( ( ( c_2Earithmetic_2EDIV2 @ c_2Enum_2E0 )
= c_2Enum_2E0 )
& ! [V0n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
= ( c_2Earithmetic_2ENUMERAL @ V0n ) )
& ! [V1n: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V1n ) ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Enum_2ESUC @ V1n ) ) ) ) ).
thf(thm_2Enumeral_2Etexp__help__thm,axiom,
! [V0n: tyop_2Enum_2Enum,V1a: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Etexp__help @ V0n @ V1a )
= ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2E_2B @ V1a @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2B @ V0n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ).
thf(thm_2Enumeral_2Etexp__help0,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( c_2Enumeral_2Etexp__help @ V0n @ c_2Enum_2E0 )
= ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2B @ V0n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ).
thf(thm_2Enumeral_2Enumeral__texp__help,axiom,
! [V0n: tyop_2Enum_2Enum,V1acc: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2Etexp__help @ c_2Earithmetic_2EZERO @ V1acc )
= ( c_2Earithmetic_2EBIT2 @ V1acc ) )
& ( ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ V1acc )
= ( c_2Enumeral_2Etexp__help @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) @ ( c_2Earithmetic_2EBIT1 @ V1acc ) ) )
& ( ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ V1acc )
= ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ ( c_2Earithmetic_2EBIT1 @ V1acc ) ) ) ) ).
thf(thm_2Enumeral_2ETWO__EXP__THM,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) )
& ( ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2Etexp__help @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ V0n ) ) @ c_2Earithmetic_2EZERO ) ) )
& ( ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V0n ) ) )
= ( c_2Earithmetic_2ENUMERAL @ ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ c_2Earithmetic_2EZERO ) ) ) ) ).
thf(thm_2Enumeral_2Eonecount__characterisation,axiom,
! [V0n: tyop_2Enum_2Enum,V1a: tyop_2Enum_2Enum] :
( ( ( c_2Eprim__rec_2E_3C @ c_2Enum_2E0 @ ( c_2Enumeral_2Eonecount @ V0n @ V1a ) )
& ( c_2Eprim__rec_2E_3C @ c_2Enum_2E0 @ V0n ) )
=> ( V0n
= ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2D @ ( c_2Enumeral_2Eonecount @ V0n @ V1a ) @ V1a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ).
thf(thm_2Enumeral_2Eexactlog__characterisation,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2Eexactlog @ V0n )
= ( c_2Earithmetic_2EBIT1 @ V1m ) )
=> ( V0n
= ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2B @ V1m @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ).
thf(thm_2Enumeral_2EDIV2__BIT1,axiom,
! [V0x: tyop_2Enum_2Enum] :
( ( c_2Earithmetic_2EDIV2 @ ( c_2Earithmetic_2EBIT1 @ V0x ) )
= V0x ) ).
thf(thm_2Enumeral_2Eenumeral__mult,axiom,
! [V0y: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2E_2A @ c_2Earithmetic_2EZERO @ V2n )
= c_2Earithmetic_2EZERO )
& ( ( c_2Earithmetic_2E_2A @ V2n @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT1 @ V1x ) @ ( c_2Earithmetic_2EBIT1 @ V0y ) )
= ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT1 @ V1x ) @ ( c_2Earithmetic_2EBIT1 @ V0y ) ) )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT1 @ V1x ) @ ( c_2Earithmetic_2EBIT2 @ V0y ) )
= ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
@ ^ [V3n: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V3n ) @ ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EDIV2 @ V3n ) @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ V1x ) ) ) @ ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT1 @ V1x ) @ ( c_2Earithmetic_2EBIT2 @ V0y ) ) )
@ ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT2 @ V0y ) ) ) )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT2 @ V1x ) @ ( c_2Earithmetic_2EBIT1 @ V0y ) )
= ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
@ ^ [V4m: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V4m ) @ ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EDIV2 @ V4m ) @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT1 @ V0y ) ) ) @ ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT2 @ V1x ) @ ( c_2Earithmetic_2EBIT1 @ V0y ) ) )
@ ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT2 @ V1x ) ) ) )
& ( ( c_2Earithmetic_2E_2A @ ( c_2Earithmetic_2EBIT2 @ V1x ) @ ( c_2Earithmetic_2EBIT2 @ V0y ) )
= ( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
@ ^ [V5m: tyop_2Enum_2Enum] :
( c_2Ebool_2ELET @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum
@ ^ [V6n: tyop_2Enum_2Enum] : ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V5m ) @ ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EDIV2 @ V5m ) @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT2 @ V0y ) ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EODD @ V6n ) @ ( c_2Enumeral_2Etexp__help @ ( c_2Earithmetic_2EDIV2 @ V6n ) @ ( c_2Eprim__rec_2EPRE @ ( c_2Earithmetic_2EBIT2 @ V1x ) ) ) @ ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT2 @ V1x ) @ ( c_2Earithmetic_2EBIT2 @ V0y ) ) ) )
@ ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT2 @ V0y ) ) )
@ ( c_2Enumeral_2Eexactlog @ ( c_2Earithmetic_2EBIT2 @ V1x ) ) ) ) ) ).
thf(thm_2Enumeral_2Einternal__mult__characterisation,axiom,
! [V0n: tyop_2Enum_2Enum,V1m: tyop_2Enum_2Enum] :
( ( ( c_2Enumeral_2Einternal__mult @ c_2Earithmetic_2EZERO @ V0n )
= c_2Earithmetic_2EZERO )
& ( ( c_2Enumeral_2Einternal__mult @ V0n @ c_2Earithmetic_2EZERO )
= c_2Earithmetic_2EZERO )
& ( ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT1 @ V0n ) @ V1m )
= ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2Einternal__mult @ V0n @ V1m ) ) @ V1m ) ) )
& ( ( c_2Enumeral_2Einternal__mult @ ( c_2Earithmetic_2EBIT2 @ V0n ) @ V1m )
= ( c_2Enumeral_2EiDUB @ ( c_2Enumeral_2EiZ @ ( c_2Earithmetic_2E_2B @ ( c_2Enumeral_2Einternal__mult @ V0n @ V1m ) @ V1m ) ) ) ) ) ).
%------------------------------------------------------------------------------