ITP001 Axioms: ITP066^7.ax
%------------------------------------------------------------------------------
% File : ITP066^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 : lbtree.ax [Gau19]
% : HL4066^7.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 123 ( 19 unt; 62 typ; 0 def)
% Number of atoms : 253 ( 80 equ; 2 cnn)
% Maximal formula atoms : 9 ( 2 avg)
% Number of connectives : 1722 ( 2 ~; 13 |; 75 &;1566 @)
% ( 23 <=>; 43 =>; 0 <=; 0 <~>)
% Maximal formula depth : 21 ( 10 avg;1566 nst)
% Number of types : 3 ( 2 usr)
% Number of type conns : 190 ( 190 >; 0 *; 0 +; 0 <<)
% Number of symbols : 62 ( 60 usr; 4 con; 0-6 aty)
% Number of variables : 468 ( 64 ^ 297 !; 53 ?; 468 :)
% ( 54 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2Elbtree_2Elbtree,type,
tyop_2Elbtree_2Elbtree: $tType > $tType ).
thf(tyop_2Elist_2Elist,type,
tyop_2Elist_2Elist: $tType > $tType ).
thf(tyop_2Ellist_2Ellist,type,
tyop_2Ellist_2Ellist: $tType > $tType ).
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_2Eoption_2Eoption,type,
tyop_2Eoption_2Eoption: $tType > $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_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_2Ebool_2E_3F,type,
c_2Ebool_2E_3F:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Ebool_2E_3F_21,type,
c_2Ebool_2E_3F_21:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Emin_2E_40,type,
c_2Emin_2E_40:
!>[A_27a: $tType] : ( ( A_27a > $o ) > A_27a ) ).
thf(c_2Elist_2EAPPEND,type,
c_2Elist_2EAPPEND:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Ebool_2ECOND,type,
c_2Ebool_2ECOND:
!>[A_27a: $tType] : ( $o > A_27a > A_27a > A_27a ) ).
thf(c_2Elist_2ECONS,type,
c_2Elist_2ECONS:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Elist_2EEL,type,
c_2Elist_2EEL:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ A_27a ) > A_27a ) ).
thf(c_2Elist_2EEVERY,type,
c_2Elist_2EEVERY:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2Elist_2EEXISTS,type,
c_2Elist_2EEXISTS:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2Ebool_2EF,type,
c_2Ebool_2EF: $o ).
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_2Ellist_2ELCONS,type,
c_2Ellist_2ELCONS:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Ellist_2Ellist @ A_27a ) > ( tyop_2Ellist_2Ellist @ A_27a ) ) ).
thf(c_2Ewhile_2ELEAST,type,
c_2Ewhile_2ELEAST: ( tyop_2Enum_2Enum > $o ) > tyop_2Enum_2Enum ).
thf(c_2Elist_2ELENGTH,type,
c_2Elist_2ELENGTH:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > tyop_2Enum_2Enum ) ).
thf(c_2Ellist_2ELNIL,type,
c_2Ellist_2ELNIL:
!>[A_27a: $tType] : ( tyop_2Ellist_2Ellist @ A_27a ) ).
thf(c_2Elbtree_2ELf,type,
c_2Elbtree_2ELf:
!>[A_27a: $tType] : ( tyop_2Elbtree_2Elbtree @ A_27a ) ).
thf(c_2Elbtree_2ELfrep,type,
c_2Elbtree_2ELfrep:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ).
thf(c_2Earithmetic_2EMIN,type,
c_2Earithmetic_2EMIN: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Elist_2ENIL,type,
c_2Elist_2ENIL:
!>[A_27a: $tType] : ( tyop_2Elist_2Elist @ A_27a ) ).
thf(c_2Eoption_2ENONE,type,
c_2Eoption_2ENONE:
!>[A_27a: $tType] : ( tyop_2Eoption_2Eoption @ A_27a ) ).
thf(c_2Elbtree_2ENd,type,
c_2Elbtree_2ENd:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) ) ).
thf(c_2Elbtree_2ENdrep,type,
c_2Elbtree_2ENdrep:
!>[A_27a: $tType] : ( A_27a > ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2Eoption_2EOPTION__MAP,type,
c_2Eoption_2EOPTION__MAP:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) > ( tyop_2Eoption_2Eoption @ A_27b ) ) ).
thf(c_2Eoption_2ESOME,type,
c_2Eoption_2ESOME:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
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_2Ebool_2ETYPE__DEFINITION,type,
c_2Ebool_2ETYPE__DEFINITION:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > $o ) > ( A_27b > A_27a ) > $o ) ).
thf(c_2Ebool_2E_5C_2F,type,
c_2Ebool_2E_5C_2F: $o > $o > $o ).
thf(c_2Elbtree_2Ebf__flatten,type,
c_2Elbtree_2Ebf__flatten:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a ) ) > ( tyop_2Ellist_2Ellist @ A_27a ) ) ).
thf(c_2Elbtree_2Edepth,type,
c_2Elbtree_2Edepth:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > tyop_2Enum_2Enum > $o ) ).
thf(c_2Ellist_2Eexists,type,
c_2Ellist_2Eexists:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Ellist_2Ellist @ A_27a ) > $o ) ).
thf(c_2Elbtree_2Efinite,type,
c_2Elbtree_2Efinite:
!>[A_27a: $tType] : ( ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o ) ).
thf(c_2Elbtree_2Eis__lbtree,type,
c_2Elbtree_2Eis__lbtree:
!>[A_27a: $tType] : ( ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o ) ).
thf(c_2Elbtree_2Eis__mmindex,type,
c_2Elbtree_2Eis__mmindex:
!>[A_27a: $tType] : ( ( A_27a > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) ) > ( tyop_2Elist_2Elist @ A_27a ) > tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ) ).
thf(c_2Elbtree_2Elbtree__abs,type,
c_2Elbtree_2Elbtree__abs:
!>[A_27a: $tType] : ( ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) ) ).
thf(c_2Elbtree_2Elbtree__case,type,
c_2Elbtree_2Elbtree__case:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( A_27b > ( tyop_2Elbtree_2Elbtree @ A_27b ) > ( tyop_2Elbtree_2Elbtree @ A_27b ) > A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27b ) > A_27a ) ).
thf(c_2Elbtree_2Elbtree__rep,type,
c_2Elbtree_2Elbtree__rep:
!>[A_27a: $tType] : ( ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2Elist_2Elist__CASE,type,
c_2Elist_2Elist__CASE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27b > ( A_27a > ( tyop_2Elist_2Elist @ A_27a ) > A_27b ) > A_27b ) ).
thf(c_2Elbtree_2Emap,type,
c_2Elbtree_2Emap:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27b ) ) ).
thf(c_2Elbtree_2Emem,type,
c_2Elbtree_2Emem:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o ) ).
thf(c_2Elbtree_2Emindepth,type,
c_2Elbtree_2Emindepth:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) ) ).
thf(c_2Ecombin_2Eo,type,
c_2Ecombin_2Eo:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27c > A_27b ) > ( A_27a > A_27c ) > A_27a > A_27b ) ).
thf(c_2Eoption_2Eoption__CASE,type,
c_2Eoption_2Eoption__CASE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Eoption_2Eoption @ A_27a ) > A_27b > ( A_27a > A_27b ) > A_27b ) ).
thf(c_2Elbtree_2Eoptmin,type,
c_2Elbtree_2Eoptmin: ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) ).
thf(c_2Epair_2Epair__CASE,type,
c_2Epair_2Epair__CASE:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( tyop_2Epair_2Eprod @ A_27b @ A_27c ) > ( A_27b > A_27c > A_27a ) > A_27a ) ).
thf(c_2Elbtree_2Epath__follow,type,
c_2Elbtree_2Epath__follow:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27b > ( tyop_2Eoption_2Eoption @ ( tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) ) ) > A_27b > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
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_2Elbtree_2ELfrep__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ( c_2Elbtree_2ELfrep @ A_27a @ A_27b )
= ( ^ [V0l: A_27a] : ( c_2Eoption_2ENONE @ A_27b ) ) ) ).
thf(thm_2Elbtree_2ENdrep__def,axiom,
! [A_27a: $tType,V0a: A_27a,V1t1: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ),V2t2: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Elbtree_2ENdrep @ A_27a @ V0a @ V1t1 @ V2t2 )
= ( ^ [V3l: tyop_2Elist_2Elist @ $o] :
( c_2Elist_2Elist__CASE @ $o @ ( tyop_2Eoption_2Eoption @ A_27a ) @ V3l @ ( c_2Eoption_2ESOME @ A_27a @ V0a )
@ ^ [V4v: $o,V5xs: tyop_2Elist_2Elist @ $o] : ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ A_27a ) @ V4v @ ( V1t1 @ V5xs ) @ ( V2t2 @ V5xs ) ) ) ) ) ).
thf(thm_2Elbtree_2Eis__lbtree__def,axiom,
! [A_27a: $tType,V0t: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Elbtree_2Eis__lbtree @ A_27a @ V0t )
<=> ? [V1P: ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o] :
( ! [V2t: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( V1P @ V2t )
=> ( ( V2t
= ( c_2Elbtree_2ELfrep @ ( tyop_2Elist_2Elist @ $o ) @ A_27a ) )
| ? [V3a: A_27a,V4t1: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ),V5t2: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( V1P @ V4t1 )
& ( V1P @ V5t2 )
& ( V2t
= ( c_2Elbtree_2ENdrep @ A_27a @ V3a @ V4t1 @ V5t2 ) ) ) ) )
& ( V1P @ V0t ) ) ) ).
thf(thm_2Elbtree_2Elbtree__TY__DEF,axiom,
! [A_27a: $tType] :
? [V0rep: ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] : ( c_2Ebool_2ETYPE__DEFINITION @ ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2Eis__lbtree @ A_27a ) @ V0rep ) ).
thf(thm_2Elbtree_2Elbtree__absrep,axiom,
! [A_27a: $tType] :
( ! [V0a: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Elbtree__abs @ A_27a @ ( c_2Elbtree_2Elbtree__rep @ A_27a @ V0a ) )
= V0a )
& ! [V1r: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Elbtree_2Eis__lbtree @ A_27a @ V1r )
<=> ( ( c_2Elbtree_2Elbtree__rep @ A_27a @ ( c_2Elbtree_2Elbtree__abs @ A_27a @ V1r ) )
= V1r ) ) ) ).
thf(thm_2Elbtree_2Epath__follow__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0g: A_27b > ( tyop_2Eoption_2Eoption @ ( tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) ),V1x: A_27b] :
( ( c_2Elbtree_2Epath__follow @ A_27a @ A_27b @ V0g @ V1x @ ( c_2Elist_2ENIL @ $o ) )
= ( c_2Eoption_2EOPTION__MAP @ ( tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) @ A_27a @ ( c_2Epair_2EFST @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) @ ( V0g @ V1x ) ) )
& ! [V2g: A_27b > ( tyop_2Eoption_2Eoption @ ( tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) ),V3x: A_27b,V4h: $o,V5t: tyop_2Elist_2Elist @ $o] :
( ( c_2Elbtree_2Epath__follow @ A_27a @ A_27b @ V2g @ V3x @ ( c_2Elist_2ECONS @ $o @ V4h @ V5t ) )
= ( c_2Eoption_2Eoption__CASE @ ( tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) ) @ ( tyop_2Eoption_2Eoption @ A_27a ) @ ( V2g @ V3x ) @ ( c_2Eoption_2ENONE @ A_27a )
@ ^ [V6v: tyop_2Epair_2Eprod @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b )] :
( c_2Epair_2Epair__CASE @ ( tyop_2Eoption_2Eoption @ A_27a ) @ A_27a @ ( tyop_2Epair_2Eprod @ A_27b @ A_27b ) @ V6v
@ ^ [V7a: A_27a,V8v2: tyop_2Epair_2Eprod @ A_27b @ A_27b] :
( c_2Epair_2Epair__CASE @ ( tyop_2Eoption_2Eoption @ A_27a ) @ A_27b @ A_27b @ V8v2
@ ^ [V9y: A_27b,V10z: A_27b] : ( c_2Elbtree_2Epath__follow @ A_27a @ A_27b @ V2g @ ( c_2Ebool_2ECOND @ A_27b @ V4h @ V9y @ V10z ) @ V5t ) ) ) ) ) ) ).
thf(thm_2Elbtree_2ELf__def,axiom,
! [A_27a: $tType] :
( ( c_2Elbtree_2ELf @ A_27a )
= ( c_2Elbtree_2Elbtree__abs @ A_27a @ ( c_2Elbtree_2ELfrep @ ( tyop_2Elist_2Elist @ $o ) @ A_27a ) ) ) ).
thf(thm_2Elbtree_2ENd__def,axiom,
! [A_27a: $tType,V0a: A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2ENd @ A_27a @ V0a @ V1t1 @ V2t2 )
= ( c_2Elbtree_2Elbtree__abs @ A_27a @ ( c_2Elbtree_2ENdrep @ A_27a @ V0a @ ( c_2Elbtree_2Elbtree__rep @ A_27a @ V1t1 ) @ ( c_2Elbtree_2Elbtree__rep @ A_27a @ V2t2 ) ) ) ) ).
thf(thm_2Elbtree_2Elbtree__case__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0e: A_27a,V1f: A_27b > ( tyop_2Elbtree_2Elbtree @ A_27b ) > ( tyop_2Elbtree_2Elbtree @ A_27b ) > A_27a,V2t: tyop_2Elbtree_2Elbtree @ A_27b] :
( ( c_2Elbtree_2Elbtree__case @ A_27a @ A_27b @ V0e @ V1f @ V2t )
= ( c_2Ebool_2ECOND @ A_27a @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ V2t @ ( c_2Elbtree_2ELf @ A_27b ) ) @ V0e
@ ( V1f
@ ( c_2Emin_2E_40 @ A_27b
@ ^ [V3a: A_27b] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V4t1: tyop_2Elbtree_2Elbtree @ A_27b] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V5t2: tyop_2Elbtree_2Elbtree @ A_27b] : ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ V2t @ ( c_2Elbtree_2ENd @ A_27b @ V3a @ V4t1 @ V5t2 ) ) ) ) )
@ ( c_2Emin_2E_40 @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V6t1: tyop_2Elbtree_2Elbtree @ A_27b] :
( c_2Ebool_2E_3F @ A_27b
@ ^ [V7a: A_27b] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V8t2: tyop_2Elbtree_2Elbtree @ A_27b] : ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ V2t @ ( c_2Elbtree_2ENd @ A_27b @ V7a @ V6t1 @ V8t2 ) ) ) ) )
@ ( c_2Emin_2E_40 @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V9t2: tyop_2Elbtree_2Elbtree @ A_27b] :
( c_2Ebool_2E_3F @ A_27b
@ ^ [V10a: A_27b] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27b )
@ ^ [V11t1: tyop_2Elbtree_2Elbtree @ A_27b] : ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ V2t @ ( c_2Elbtree_2ENd @ A_27b @ V10a @ V11t1 @ V9t2 ) ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Emem__def,axiom,
! [A_27a: $tType] :
( ( c_2Elbtree_2Emem @ A_27a )
= ( ^ [V0a0: A_27a,V1a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_21 @ ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o )
@ ^ [V2mem_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_21 @ A_27a
@ ^ [V3a0: A_27a] :
( c_2Ebool_2E_21 @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V4a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_5C_2F
@ ( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V5t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V6t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V4a1 @ ( c_2Elbtree_2ENd @ A_27a @ V3a0 @ V5t1 @ V6t2 ) ) ) )
@ ( c_2Ebool_2E_5C_2F
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V7b: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V8t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V9t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V4a1 @ ( c_2Elbtree_2ENd @ A_27a @ V7b @ V8t1 @ V9t2 ) ) @ ( V2mem_27 @ V3a0 @ V8t1 ) ) ) ) )
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V10b: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V11t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V12t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V4a1 @ ( c_2Elbtree_2ENd @ A_27a @ V10b @ V11t1 @ V12t2 ) ) @ ( V2mem_27 @ V3a0 @ V12t2 ) ) ) ) ) ) )
@ ( V2mem_27 @ V3a0 @ V4a1 ) ) ) )
@ ( V2mem_27 @ V0a0 @ V1a1 ) ) ) ) ) ).
thf(thm_2Elbtree_2Emap__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0f: A_27a > A_27b] :
( ( ( c_2Elbtree_2Emap @ A_27a @ A_27b @ V0f @ ( c_2Elbtree_2ELf @ A_27a ) )
= ( c_2Elbtree_2ELf @ A_27b ) )
& ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emap @ A_27a @ A_27b @ V0f @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) )
= ( c_2Elbtree_2ENd @ A_27b @ ( V0f @ V1a ) @ ( c_2Elbtree_2Emap @ A_27a @ A_27b @ V0f @ V2t1 ) @ ( c_2Elbtree_2Emap @ A_27a @ A_27b @ V0f @ V3t2 ) ) ) ) ).
thf(thm_2Elbtree_2Efinite__def,axiom,
! [A_27a: $tType] :
( ( c_2Elbtree_2Efinite @ A_27a )
= ( ^ [V0a0: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_21 @ ( ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o )
@ ^ [V1finite_27: ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_21 @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V2a0: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_5C_2F @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V2a0 @ ( c_2Elbtree_2ELf @ A_27a ) )
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V3a: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V4t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V5t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V2a0 @ ( c_2Elbtree_2ENd @ A_27a @ V3a @ V4t1 @ V5t2 ) ) @ ( c_2Ebool_2E_2F_5C @ ( V1finite_27 @ V4t1 ) @ ( V1finite_27 @ V5t2 ) ) ) ) ) ) )
@ ( V1finite_27 @ V2a0 ) ) )
@ ( V1finite_27 @ V0a0 ) ) ) ) ) ).
thf(thm_2Elbtree_2Ebf__flatten__def,axiom,
! [A_27a: $tType] :
( ( ( c_2Elbtree_2Ebf__flatten @ A_27a @ ( c_2Elist_2ENIL @ ( tyop_2Elbtree_2Elbtree @ A_27a ) ) )
= ( c_2Ellist_2ELNIL @ A_27a ) )
& ! [V0ts: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( c_2Elbtree_2Ebf__flatten @ A_27a @ ( c_2Elist_2ECONS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2ELf @ A_27a ) @ V0ts ) )
= ( c_2Elbtree_2Ebf__flatten @ A_27a @ V0ts ) )
& ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a,V4ts: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( c_2Elbtree_2Ebf__flatten @ A_27a @ ( c_2Elist_2ECONS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) @ V4ts ) )
= ( c_2Ellist_2ELCONS @ A_27a @ V1a @ ( c_2Elbtree_2Ebf__flatten @ A_27a @ ( c_2Elist_2EAPPEND @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V4ts @ ( c_2Elist_2ECONS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V2t1 @ ( c_2Elist_2ECONS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V3t2 @ ( c_2Elist_2ENIL @ ( tyop_2Elbtree_2Elbtree @ A_27a ) ) ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Edepth__def,axiom,
! [A_27a: $tType] :
( ( c_2Elbtree_2Edepth @ A_27a )
= ( ^ [V0a0: A_27a,V1a1: tyop_2Elbtree_2Elbtree @ A_27a,V2a2: tyop_2Enum_2Enum] :
( c_2Ebool_2E_21 @ ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > tyop_2Enum_2Enum > $o )
@ ^ [V3depth_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > tyop_2Enum_2Enum > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_21 @ A_27a
@ ^ [V4a0: A_27a] :
( c_2Ebool_2E_21 @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V5a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_21 @ tyop_2Enum_2Enum
@ ^ [V6a2: tyop_2Enum_2Enum] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_5C_2F
@ ( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V7t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V8t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V5a1 @ ( c_2Elbtree_2ENd @ A_27a @ V4a0 @ V7t1 @ V8t2 ) ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V6a2 @ c_2Enum_2E0 ) ) ) )
@ ( c_2Ebool_2E_5C_2F
@ ( c_2Ebool_2E_3F @ tyop_2Enum_2Enum
@ ^ [V9m: tyop_2Enum_2Enum] :
( c_2Ebool_2E_3F @ A_27a
@ ^ [V10a: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V11t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V12t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V5a1 @ ( c_2Elbtree_2ENd @ A_27a @ V10a @ V11t1 @ V12t2 ) ) @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V6a2 @ ( c_2Enum_2ESUC @ V9m ) ) @ ( V3depth_27 @ V4a0 @ V11t1 @ V9m ) ) ) ) ) ) )
@ ( c_2Ebool_2E_3F @ tyop_2Enum_2Enum
@ ^ [V13m: tyop_2Enum_2Enum] :
( c_2Ebool_2E_3F @ A_27a
@ ^ [V14a: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V15t1: tyop_2Elbtree_2Elbtree @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Elbtree_2Elbtree @ A_27a )
@ ^ [V16t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V5a1 @ ( c_2Elbtree_2ENd @ A_27a @ V14a @ V15t1 @ V16t2 ) ) @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V6a2 @ ( c_2Enum_2ESUC @ V13m ) ) @ ( V3depth_27 @ V4a0 @ V16t2 @ V13m ) ) ) ) ) ) ) ) )
@ ( V3depth_27 @ V4a0 @ V5a1 @ V6a2 ) ) ) ) )
@ ( V3depth_27 @ V0a0 @ V1a1 @ V2a2 ) ) ) ) ) ).
thf(thm_2Elbtree_2Emindepth__def,axiom,
! [A_27a: $tType,V0x: A_27a,V1t: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ V1t )
= ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) @ ( c_2Elbtree_2Emem @ A_27a @ V0x @ V1t )
@ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum
@ ( c_2Ewhile_2ELEAST
@ ^ [V2n: tyop_2Enum_2Enum] : ( c_2Elbtree_2Edepth @ A_27a @ V0x @ V1t @ V2n ) ) )
@ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) ) ) ).
thf(thm_2Elbtree_2Eis__mmindex__def,axiom,
! [A_27a: $tType,V0f: A_27a > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ),V1l: tyop_2Elist_2Elist @ A_27a,V2n: tyop_2Enum_2Enum,V3d: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Eis__mmindex @ A_27a @ V0f @ V1l @ V2n @ V3d )
<=> ( ( c_2Eprim__rec_2E_3C @ V2n @ ( c_2Elist_2ELENGTH @ A_27a @ V1l ) )
& ( ( V0f @ ( c_2Elist_2EEL @ A_27a @ V2n @ V1l ) )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V3d ) )
& ! [V4i: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V4i @ ( c_2Elist_2ELENGTH @ A_27a @ V1l ) )
=> ( ( ( V0f @ ( c_2Elist_2EEL @ A_27a @ V4i @ V1l ) )
= ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
| ? [V5d_27: tyop_2Enum_2Enum] :
( ( ( V0f @ ( c_2Elist_2EEL @ A_27a @ V4i @ V1l ) )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V5d_27 ) )
& ( c_2Earithmetic_2E_3C_3D @ V3d @ V5d_27 )
& ( ( c_2Eprim__rec_2E_3C @ V4i @ V2n )
=> ( c_2Eprim__rec_2E_3C @ V3d @ V5d_27 ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Elbtree__cases,axiom,
! [A_27a: $tType,V0t: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0t
= ( c_2Elbtree_2ELf @ A_27a ) )
| ? [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( V0t
= ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) ) ) ).
thf(thm_2Elbtree_2ELf__NOT__Nd,axiom,
! [A_27a: $tType,V0t2: tyop_2Elbtree_2Elbtree @ A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2a: A_27a] :
( (~)
@ ( ( c_2Elbtree_2ELf @ A_27a )
= ( c_2Elbtree_2ENd @ A_27a @ V2a @ V1t1 @ V0t2 ) ) ) ).
thf(thm_2Elbtree_2ENd__11,axiom,
! [A_27a: $tType,V0u2: tyop_2Elbtree_2Elbtree @ A_27a,V1u1: tyop_2Elbtree_2Elbtree @ A_27a,V2t2: tyop_2Elbtree_2Elbtree @ A_27a,V3t1: tyop_2Elbtree_2Elbtree @ A_27a,V4a2: A_27a,V5a1: A_27a] :
( ( ( c_2Elbtree_2ENd @ A_27a @ V5a1 @ V3t1 @ V1u1 )
= ( c_2Elbtree_2ENd @ A_27a @ V4a2 @ V2t2 @ V0u2 ) )
<=> ( ( V5a1 = V4a2 )
& ( V3t1 = V2t2 )
& ( V1u1 = V0u2 ) ) ) ).
thf(thm_2Elbtree_2Elbtree__ue__Axiom,axiom,
! [A_27a: $tType,A_27b: $tType,V0f: A_27a > ( tyop_2Eoption_2Eoption @ ( tyop_2Epair_2Eprod @ A_27b @ ( tyop_2Epair_2Eprod @ A_27a @ A_27a ) ) )] :
( c_2Ebool_2E_3F_21 @ ( A_27a > ( tyop_2Elbtree_2Elbtree @ A_27b ) )
@ ^ [V1g: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27b )] :
( c_2Ebool_2E_21 @ A_27a
@ ^ [V2x: A_27a] :
( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ ( V1g @ V2x )
@ ( c_2Eoption_2Eoption__CASE @ ( tyop_2Epair_2Eprod @ A_27b @ ( tyop_2Epair_2Eprod @ A_27a @ A_27a ) ) @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ ( V0f @ V2x ) @ ( c_2Elbtree_2ELf @ A_27b )
@ ^ [V3v: tyop_2Epair_2Eprod @ A_27b @ ( tyop_2Epair_2Eprod @ A_27a @ A_27a )] :
( c_2Epair_2Epair__CASE @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ A_27b @ ( tyop_2Epair_2Eprod @ A_27a @ A_27a ) @ V3v
@ ^ [V4b: A_27b,V5v2: tyop_2Epair_2Eprod @ A_27a @ A_27a] :
( c_2Epair_2Epair__CASE @ ( tyop_2Elbtree_2Elbtree @ A_27b ) @ A_27a @ A_27a @ V5v2
@ ^ [V6y: A_27a,V7z: A_27a] : ( c_2Elbtree_2ENd @ A_27b @ V4b @ ( V1g @ V6y ) @ ( V1g @ V7z ) ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Elbtree__case__thm,axiom,
! [A_27a: $tType,A_27b: $tType,V0t2: tyop_2Elbtree_2Elbtree @ A_27b,V1t1: tyop_2Elbtree_2Elbtree @ A_27b,V2f: A_27b > ( tyop_2Elbtree_2Elbtree @ A_27b ) > ( tyop_2Elbtree_2Elbtree @ A_27b ) > A_27a,V3e: A_27a,V4a: A_27b] :
( ( ( c_2Elbtree_2Elbtree__case @ A_27a @ A_27b @ V3e @ V2f @ ( c_2Elbtree_2ELf @ A_27b ) )
= V3e )
& ( ( c_2Elbtree_2Elbtree__case @ A_27a @ A_27b @ V3e @ V2f @ ( c_2Elbtree_2ENd @ A_27b @ V4a @ V1t1 @ V0t2 ) )
= ( V2f @ V4a @ V1t1 @ V0t2 ) ) ) ).
thf(thm_2Elbtree_2Elbtree__bisimulation,axiom,
! [A_27a: $tType,V0t: tyop_2Elbtree_2Elbtree @ A_27a,V1u: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0t = V1u )
<=> ? [V2R: ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( V2R @ V0t @ V1u )
& ! [V3t: tyop_2Elbtree_2Elbtree @ A_27a,V4u: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V2R @ V3t @ V4u )
=> ( ( ( V3t
= ( c_2Elbtree_2ELf @ A_27a ) )
& ( V4u
= ( c_2Elbtree_2ELf @ A_27a ) ) )
| ? [V5a: A_27a,V6t1: tyop_2Elbtree_2Elbtree @ A_27a,V7u1: tyop_2Elbtree_2Elbtree @ A_27a,V8t2: tyop_2Elbtree_2Elbtree @ A_27a,V9u2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V2R @ V6t1 @ V7u1 )
& ( V2R @ V8t2 @ V9u2 )
& ( V3t
= ( c_2Elbtree_2ENd @ A_27a @ V5a @ V6t1 @ V8t2 ) )
& ( V4u
= ( c_2Elbtree_2ENd @ A_27a @ V5a @ V7u1 @ V9u2 ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Elbtree__strong__bisimulation,axiom,
! [A_27a: $tType,V0t: tyop_2Elbtree_2Elbtree @ A_27a,V1u: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0t = V1u )
<=> ? [V2R: ( tyop_2Elbtree_2Elbtree @ A_27a ) > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( V2R @ V0t @ V1u )
& ! [V3t: tyop_2Elbtree_2Elbtree @ A_27a,V4u: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V2R @ V3t @ V4u )
=> ( ( V3t = V4u )
| ? [V5a: A_27a,V6t1: tyop_2Elbtree_2Elbtree @ A_27a,V7u1: tyop_2Elbtree_2Elbtree @ A_27a,V8t2: tyop_2Elbtree_2Elbtree @ A_27a,V9u2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V2R @ V6t1 @ V7u1 )
& ( V2R @ V8t2 @ V9u2 )
& ( V3t
= ( c_2Elbtree_2ENd @ A_27a @ V5a @ V6t1 @ V8t2 ) )
& ( V4u
= ( c_2Elbtree_2ENd @ A_27a @ V5a @ V7u1 @ V9u2 ) ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Emem__rules,axiom,
! [A_27a: $tType] :
( ! [V0a: A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Elbtree_2Emem @ A_27a @ V0a @ ( c_2Elbtree_2ENd @ A_27a @ V0a @ V1t1 @ V2t2 ) )
& ! [V3a: A_27a,V4b: A_27a,V5t1: tyop_2Elbtree_2Elbtree @ A_27a,V6t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V3a @ V5t1 )
=> ( c_2Elbtree_2Emem @ A_27a @ V3a @ ( c_2Elbtree_2ENd @ A_27a @ V4b @ V5t1 @ V6t2 ) ) )
& ! [V7a: A_27a,V8b: A_27a,V9t1: tyop_2Elbtree_2Elbtree @ A_27a,V10t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V7a @ V10t2 )
=> ( c_2Elbtree_2Emem @ A_27a @ V7a @ ( c_2Elbtree_2ENd @ A_27a @ V8b @ V9t1 @ V10t2 ) ) ) ) ).
thf(thm_2Elbtree_2Emem__ind,axiom,
! [A_27a: $tType,V0mem_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( V0mem_27 @ V1a @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) )
& ! [V4a: A_27a,V5b: A_27a,V6t1: tyop_2Elbtree_2Elbtree @ A_27a,V7t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0mem_27 @ V4a @ V6t1 )
=> ( V0mem_27 @ V4a @ ( c_2Elbtree_2ENd @ A_27a @ V5b @ V6t1 @ V7t2 ) ) )
& ! [V8a: A_27a,V9b: A_27a,V10t1: tyop_2Elbtree_2Elbtree @ A_27a,V11t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0mem_27 @ V8a @ V11t2 )
=> ( V0mem_27 @ V8a @ ( c_2Elbtree_2ENd @ A_27a @ V9b @ V10t1 @ V11t2 ) ) ) )
=> ! [V12a0: A_27a,V13a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V12a0 @ V13a1 )
=> ( V0mem_27 @ V12a0 @ V13a1 ) ) ) ).
thf(thm_2Elbtree_2Emem__strongind,axiom,
! [A_27a: $tType,V0mem_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( V0mem_27 @ V1a @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) )
& ! [V4a: A_27a,V5b: A_27a,V6t1: tyop_2Elbtree_2Elbtree @ A_27a,V7t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Emem @ A_27a @ V4a @ V6t1 )
& ( V0mem_27 @ V4a @ V6t1 ) )
=> ( V0mem_27 @ V4a @ ( c_2Elbtree_2ENd @ A_27a @ V5b @ V6t1 @ V7t2 ) ) )
& ! [V8a: A_27a,V9b: A_27a,V10t1: tyop_2Elbtree_2Elbtree @ A_27a,V11t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Emem @ A_27a @ V8a @ V11t2 )
& ( V0mem_27 @ V8a @ V11t2 ) )
=> ( V0mem_27 @ V8a @ ( c_2Elbtree_2ENd @ A_27a @ V9b @ V10t1 @ V11t2 ) ) ) )
=> ! [V12a0: A_27a,V13a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V12a0 @ V13a1 )
=> ( V0mem_27 @ V12a0 @ V13a1 ) ) ) ).
thf(thm_2Elbtree_2Emem__cases,axiom,
! [A_27a: $tType,V0a0: A_27a,V1a1: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V0a0 @ V1a1 )
<=> ( ? [V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V0a0 @ V2t1 @ V3t2 ) )
| ? [V4b: A_27a,V5t1: tyop_2Elbtree_2Elbtree @ A_27a,V6t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V4b @ V5t1 @ V6t2 ) )
& ( c_2Elbtree_2Emem @ A_27a @ V0a0 @ V5t1 ) )
| ? [V7b: A_27a,V8t1: tyop_2Elbtree_2Elbtree @ A_27a,V9t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V7b @ V8t1 @ V9t2 ) )
& ( c_2Elbtree_2Emem @ A_27a @ V0a0 @ V9t2 ) ) ) ) ).
thf(thm_2Elbtree_2Emem__thm,axiom,
! [A_27a: $tType,V0t2: tyop_2Elbtree_2Elbtree @ A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2b: A_27a,V3a: A_27a] :
( ( ( c_2Elbtree_2Emem @ A_27a @ V3a @ ( c_2Elbtree_2ELf @ A_27a ) )
= c_2Ebool_2EF )
& ( ( c_2Elbtree_2Emem @ A_27a @ V3a @ ( c_2Elbtree_2ENd @ A_27a @ V2b @ V1t1 @ V0t2 ) )
<=> ( ( V3a = V2b )
| ( c_2Elbtree_2Emem @ A_27a @ V3a @ V1t1 )
| ( c_2Elbtree_2Emem @ A_27a @ V3a @ V0t2 ) ) ) ) ).
thf(thm_2Elbtree_2Emap__eq__Lf,axiom,
! [A_27a: $tType,A_27b: $tType,V0t: tyop_2Elbtree_2Elbtree @ A_27b,V1f: A_27b > A_27a] :
( ( ( ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V1f @ V0t )
= ( c_2Elbtree_2ELf @ A_27a ) )
<=> ( V0t
= ( c_2Elbtree_2ELf @ A_27b ) ) )
& ( ( ( c_2Elbtree_2ELf @ A_27a )
= ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V1f @ V0t ) )
<=> ( V0t
= ( c_2Elbtree_2ELf @ A_27b ) ) ) ) ).
thf(thm_2Elbtree_2Emap__eq__Nd,axiom,
! [A_27a: $tType,A_27b: $tType,V0t2: tyop_2Elbtree_2Elbtree @ A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2t: tyop_2Elbtree_2Elbtree @ A_27b,V3f: A_27b > A_27a,V4a: A_27a] :
( ( ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V3f @ V2t )
= ( c_2Elbtree_2ENd @ A_27a @ V4a @ V1t1 @ V0t2 ) )
<=> ? [V5a_27: A_27b,V6t1_27: tyop_2Elbtree_2Elbtree @ A_27b,V7t2_27: tyop_2Elbtree_2Elbtree @ A_27b] :
( ( V2t
= ( c_2Elbtree_2ENd @ A_27b @ V5a_27 @ V6t1_27 @ V7t2_27 ) )
& ( V4a
= ( V3f @ V5a_27 ) )
& ( V1t1
= ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V3f @ V6t1_27 ) )
& ( V0t2
= ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V3f @ V7t2_27 ) ) ) ) ).
thf(thm_2Elbtree_2Efinite__rules,axiom,
! [A_27a: $tType] :
( ( c_2Elbtree_2Efinite @ A_27a @ ( c_2Elbtree_2ELf @ A_27a ) )
& ! [V0a: A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Efinite @ A_27a @ V1t1 )
& ( c_2Elbtree_2Efinite @ A_27a @ V2t2 ) )
=> ( c_2Elbtree_2Efinite @ A_27a @ ( c_2Elbtree_2ENd @ A_27a @ V0a @ V1t1 @ V2t2 ) ) ) ) ).
thf(thm_2Elbtree_2Efinite__ind,axiom,
! [A_27a: $tType,V0finite_27: ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( ( V0finite_27 @ ( c_2Elbtree_2ELf @ A_27a ) )
& ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( V0finite_27 @ V2t1 )
& ( V0finite_27 @ V3t2 ) )
=> ( V0finite_27 @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) ) ) )
=> ! [V4a0: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Efinite @ A_27a @ V4a0 )
=> ( V0finite_27 @ V4a0 ) ) ) ).
thf(thm_2Elbtree_2Efinite__strongind,axiom,
! [A_27a: $tType,V0finite_27: ( tyop_2Elbtree_2Elbtree @ A_27a ) > $o] :
( ( ( V0finite_27 @ ( c_2Elbtree_2ELf @ A_27a ) )
& ! [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Efinite @ A_27a @ V2t1 )
& ( V0finite_27 @ V2t1 )
& ( c_2Elbtree_2Efinite @ A_27a @ V3t2 )
& ( V0finite_27 @ V3t2 ) )
=> ( V0finite_27 @ ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) ) ) )
=> ! [V4a0: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Efinite @ A_27a @ V4a0 )
=> ( V0finite_27 @ V4a0 ) ) ) ).
thf(thm_2Elbtree_2Efinite__cases,axiom,
! [A_27a: $tType,V0a0: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Efinite @ A_27a @ V0a0 )
<=> ( ( V0a0
= ( c_2Elbtree_2ELf @ A_27a ) )
| ? [V1a: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0a0
= ( c_2Elbtree_2ENd @ A_27a @ V1a @ V2t1 @ V3t2 ) )
& ( c_2Elbtree_2Efinite @ A_27a @ V2t1 )
& ( c_2Elbtree_2Efinite @ A_27a @ V3t2 ) ) ) ) ).
thf(thm_2Elbtree_2Efinite__thm,axiom,
! [A_27a: $tType,A_27b: $tType,V0t2: tyop_2Elbtree_2Elbtree @ A_27b,V1t1: tyop_2Elbtree_2Elbtree @ A_27b,V2a: A_27b] :
( ( ( c_2Elbtree_2Efinite @ A_27a @ ( c_2Elbtree_2ELf @ A_27a ) )
= c_2Ebool_2ET )
& ( ( c_2Elbtree_2Efinite @ A_27b @ ( c_2Elbtree_2ENd @ A_27b @ V2a @ V1t1 @ V0t2 ) )
<=> ( ( c_2Elbtree_2Efinite @ A_27b @ V1t1 )
& ( c_2Elbtree_2Efinite @ A_27b @ V0t2 ) ) ) ) ).
thf(thm_2Elbtree_2Efinite__map,axiom,
! [A_27a: $tType,A_27b: $tType,V0t: tyop_2Elbtree_2Elbtree @ A_27b,V1f: A_27b > A_27a] :
( ( c_2Elbtree_2Efinite @ A_27a @ ( c_2Elbtree_2Emap @ A_27b @ A_27a @ V1f @ V0t ) )
= ( c_2Elbtree_2Efinite @ A_27b @ V0t ) ) ).
thf(thm_2Elbtree_2Ebf__flatten__eq__lnil,axiom,
! [A_27a: $tType,V0l: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( ( c_2Elbtree_2Ebf__flatten @ A_27a @ V0l )
= ( c_2Ellist_2ELNIL @ A_27a ) )
<=> ( c_2Elist_2EEVERY @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2ELf @ A_27a ) ) @ V0l ) ) ).
thf(thm_2Elbtree_2Ebf__flatten__append,axiom,
! [A_27a: $tType,V0l2: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a ),V1l1: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( c_2Elist_2EEVERY @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Emin_2E_3D @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2ELf @ A_27a ) ) @ V1l1 )
=> ( ( c_2Elbtree_2Ebf__flatten @ A_27a @ ( c_2Elist_2EAPPEND @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ V1l1 @ V0l2 ) )
= ( c_2Elbtree_2Ebf__flatten @ A_27a @ V0l2 ) ) ) ).
thf(thm_2Elbtree_2EEXISTS__FIRST,axiom,
! [A_27a: $tType,V0P: A_27a > $o,V1l: tyop_2Elist_2Elist @ A_27a] :
( ( c_2Elist_2EEXISTS @ A_27a @ V0P @ V1l )
=> ? [V2l1: tyop_2Elist_2Elist @ A_27a,V3x: A_27a,V4l2: tyop_2Elist_2Elist @ A_27a] :
( ( V1l
= ( c_2Elist_2EAPPEND @ A_27a @ V2l1 @ ( c_2Elist_2ECONS @ A_27a @ V3x @ V4l2 ) ) )
& ( c_2Elist_2EEVERY @ A_27a @ ( c_2Ecombin_2Eo @ A_27a @ $o @ $o @ c_2Ebool_2E_7E @ V0P ) @ V2l1 )
& ( V0P @ V3x ) ) ) ).
thf(thm_2Elbtree_2Eexists__bf__flatten,axiom,
! [A_27a: $tType,V0x: A_27a,V1tlist: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( c_2Ellist_2Eexists @ A_27a @ ( c_2Emin_2E_3D @ A_27a @ V0x ) @ ( c_2Elbtree_2Ebf__flatten @ A_27a @ V1tlist ) )
=> ( c_2Elist_2EEXISTS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2Emem @ A_27a @ V0x ) @ V1tlist ) ) ).
thf(thm_2Elbtree_2Edepth__rules,axiom,
! [A_27a: $tType] :
( ! [V0x: A_27a,V1t1: tyop_2Elbtree_2Elbtree @ A_27a,V2t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( c_2Elbtree_2Edepth @ A_27a @ V0x @ ( c_2Elbtree_2ENd @ A_27a @ V0x @ V1t1 @ V2t2 ) @ c_2Enum_2E0 )
& ! [V3m: tyop_2Enum_2Enum,V4x: A_27a,V5a: A_27a,V6t1: tyop_2Elbtree_2Elbtree @ A_27a,V7t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Edepth @ A_27a @ V4x @ V6t1 @ V3m )
=> ( c_2Elbtree_2Edepth @ A_27a @ V4x @ ( c_2Elbtree_2ENd @ A_27a @ V5a @ V6t1 @ V7t2 ) @ ( c_2Enum_2ESUC @ V3m ) ) )
& ! [V8m: tyop_2Enum_2Enum,V9x: A_27a,V10a: A_27a,V11t1: tyop_2Elbtree_2Elbtree @ A_27a,V12t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Edepth @ A_27a @ V9x @ V12t2 @ V8m )
=> ( c_2Elbtree_2Edepth @ A_27a @ V9x @ ( c_2Elbtree_2ENd @ A_27a @ V10a @ V11t1 @ V12t2 ) @ ( c_2Enum_2ESUC @ V8m ) ) ) ) ).
thf(thm_2Elbtree_2Edepth__ind,axiom,
! [A_27a: $tType,V0depth_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > tyop_2Enum_2Enum > $o] :
( ( ! [V1x: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( V0depth_27 @ V1x @ ( c_2Elbtree_2ENd @ A_27a @ V1x @ V2t1 @ V3t2 ) @ c_2Enum_2E0 )
& ! [V4m: tyop_2Enum_2Enum,V5x: A_27a,V6a: A_27a,V7t1: tyop_2Elbtree_2Elbtree @ A_27a,V8t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0depth_27 @ V5x @ V7t1 @ V4m )
=> ( V0depth_27 @ V5x @ ( c_2Elbtree_2ENd @ A_27a @ V6a @ V7t1 @ V8t2 ) @ ( c_2Enum_2ESUC @ V4m ) ) )
& ! [V9m: tyop_2Enum_2Enum,V10x: A_27a,V11a: A_27a,V12t1: tyop_2Elbtree_2Elbtree @ A_27a,V13t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V0depth_27 @ V10x @ V13t2 @ V9m )
=> ( V0depth_27 @ V10x @ ( c_2Elbtree_2ENd @ A_27a @ V11a @ V12t1 @ V13t2 ) @ ( c_2Enum_2ESUC @ V9m ) ) ) )
=> ! [V14a0: A_27a,V15a1: tyop_2Elbtree_2Elbtree @ A_27a,V16a2: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Edepth @ A_27a @ V14a0 @ V15a1 @ V16a2 )
=> ( V0depth_27 @ V14a0 @ V15a1 @ V16a2 ) ) ) ).
thf(thm_2Elbtree_2Edepth__strongind,axiom,
! [A_27a: $tType,V0depth_27: A_27a > ( tyop_2Elbtree_2Elbtree @ A_27a ) > tyop_2Enum_2Enum > $o] :
( ( ! [V1x: A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3t2: tyop_2Elbtree_2Elbtree @ A_27a] : ( V0depth_27 @ V1x @ ( c_2Elbtree_2ENd @ A_27a @ V1x @ V2t1 @ V3t2 ) @ c_2Enum_2E0 )
& ! [V4m: tyop_2Enum_2Enum,V5x: A_27a,V6a: A_27a,V7t1: tyop_2Elbtree_2Elbtree @ A_27a,V8t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Edepth @ A_27a @ V5x @ V7t1 @ V4m )
& ( V0depth_27 @ V5x @ V7t1 @ V4m ) )
=> ( V0depth_27 @ V5x @ ( c_2Elbtree_2ENd @ A_27a @ V6a @ V7t1 @ V8t2 ) @ ( c_2Enum_2ESUC @ V4m ) ) )
& ! [V9m: tyop_2Enum_2Enum,V10x: A_27a,V11a: A_27a,V12t1: tyop_2Elbtree_2Elbtree @ A_27a,V13t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( ( c_2Elbtree_2Edepth @ A_27a @ V10x @ V13t2 @ V9m )
& ( V0depth_27 @ V10x @ V13t2 @ V9m ) )
=> ( V0depth_27 @ V10x @ ( c_2Elbtree_2ENd @ A_27a @ V11a @ V12t1 @ V13t2 ) @ ( c_2Enum_2ESUC @ V9m ) ) ) )
=> ! [V14a0: A_27a,V15a1: tyop_2Elbtree_2Elbtree @ A_27a,V16a2: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Edepth @ A_27a @ V14a0 @ V15a1 @ V16a2 )
=> ( V0depth_27 @ V14a0 @ V15a1 @ V16a2 ) ) ) ).
thf(thm_2Elbtree_2Edepth__cases,axiom,
! [A_27a: $tType,V0a0: A_27a,V1a1: tyop_2Elbtree_2Elbtree @ A_27a,V2a2: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Edepth @ A_27a @ V0a0 @ V1a1 @ V2a2 )
<=> ( ? [V3t1: tyop_2Elbtree_2Elbtree @ A_27a,V4t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V0a0 @ V3t1 @ V4t2 ) )
& ( V2a2 = c_2Enum_2E0 ) )
| ? [V5m: tyop_2Enum_2Enum,V6a: A_27a,V7t1: tyop_2Elbtree_2Elbtree @ A_27a,V8t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V6a @ V7t1 @ V8t2 ) )
& ( V2a2
= ( c_2Enum_2ESUC @ V5m ) )
& ( c_2Elbtree_2Edepth @ A_27a @ V0a0 @ V7t1 @ V5m ) )
| ? [V9m: tyop_2Enum_2Enum,V10a: A_27a,V11t1: tyop_2Elbtree_2Elbtree @ A_27a,V12t2: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( V1a1
= ( c_2Elbtree_2ENd @ A_27a @ V10a @ V11t1 @ V12t2 ) )
& ( V2a2
= ( c_2Enum_2ESUC @ V9m ) )
& ( c_2Elbtree_2Edepth @ A_27a @ V0a0 @ V12t2 @ V9m ) ) ) ) ).
thf(thm_2Elbtree_2Emem__depth,axiom,
! [A_27a: $tType,V0x: A_27a,V1t: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V0x @ V1t )
=> ? [V2n: tyop_2Enum_2Enum] : ( c_2Elbtree_2Edepth @ A_27a @ V0x @ V1t @ V2n ) ) ).
thf(thm_2Elbtree_2Edepth__mem,axiom,
! [A_27a: $tType,V0x: A_27a,V1t: tyop_2Elbtree_2Elbtree @ A_27a,V2n: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Edepth @ A_27a @ V0x @ V1t @ V2n )
=> ( c_2Elbtree_2Emem @ A_27a @ V0x @ V1t ) ) ).
thf(thm_2Elbtree_2Eoptmin__ind,axiom,
! [V0P: ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) > $o] :
( ( ( V0P @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
& ! [V1x: tyop_2Enum_2Enum] : ( V0P @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V1x ) @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
& ! [V2y: tyop_2Enum_2Enum] : ( V0P @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V2y ) )
& ! [V3x: tyop_2Enum_2Enum,V4y: tyop_2Enum_2Enum] : ( V0P @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V3x ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V4y ) ) )
=> ! [V5v: tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum,V6v1: tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum] : ( V0P @ V5v @ V6v1 ) ) ).
thf(thm_2Elbtree_2Eoptmin__def,axiom,
! [V0y: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum] :
( ( ( c_2Elbtree_2Eoptmin @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
= ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
& ( ( c_2Elbtree_2Eoptmin @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V1x ) @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V1x ) )
& ( ( c_2Elbtree_2Eoptmin @ ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V0y ) )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V0y ) )
& ( ( c_2Elbtree_2Eoptmin @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V1x ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V0y ) )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ ( c_2Earithmetic_2EMIN @ V1x @ V0y ) ) ) ) ).
thf(thm_2Elbtree_2Emindepth__thm,axiom,
! [A_27a: $tType,V0x: A_27a,V1t2: tyop_2Elbtree_2Elbtree @ A_27a,V2t1: tyop_2Elbtree_2Elbtree @ A_27a,V3a: A_27a] :
( ( ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ ( c_2Elbtree_2ELf @ A_27a ) )
= ( c_2Eoption_2ENONE @ tyop_2Enum_2Enum ) )
& ( ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ ( c_2Elbtree_2ENd @ A_27a @ V3a @ V2t1 @ V1t2 ) )
= ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) @ ( c_2Emin_2E_3D @ A_27a @ V0x @ V3a ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ c_2Enum_2E0 ) @ ( c_2Eoption_2EOPTION__MAP @ tyop_2Enum_2Enum @ tyop_2Enum_2Enum @ c_2Enum_2ESUC @ ( c_2Elbtree_2Eoptmin @ ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ V2t1 ) @ ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ V1t2 ) ) ) ) ) ) ).
thf(thm_2Elbtree_2Emem__mindepth,axiom,
! [A_27a: $tType,V0x: A_27a,V1t: tyop_2Elbtree_2Elbtree @ A_27a] :
( ( c_2Elbtree_2Emem @ A_27a @ V0x @ V1t )
=> ? [V2n: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ V1t )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V2n ) ) ) ).
thf(thm_2Elbtree_2Emindepth__depth,axiom,
! [A_27a: $tType,V0x: A_27a,V1t: tyop_2Elbtree_2Elbtree @ A_27a,V2n: tyop_2Enum_2Enum] :
( ( ( c_2Elbtree_2Emindepth @ A_27a @ V0x @ V1t )
= ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V2n ) )
=> ( c_2Elbtree_2Edepth @ A_27a @ V0x @ V1t @ V2n ) ) ).
thf(thm_2Elbtree_2Emmindex__EXISTS,axiom,
! [A_27a: $tType,V0l: tyop_2Elist_2Elist @ A_27a,V1f: A_27a > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum )] :
( ( c_2Elist_2EEXISTS @ A_27a
@ ^ [V2e: A_27a] :
( c_2Ebool_2E_3F @ tyop_2Enum_2Enum
@ ^ [V3n: tyop_2Enum_2Enum] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum ) @ ( V1f @ V2e ) @ ( c_2Eoption_2ESOME @ tyop_2Enum_2Enum @ V3n ) ) )
@ V0l )
=> ? [V4i: tyop_2Enum_2Enum,V5m: tyop_2Enum_2Enum] : ( c_2Elbtree_2Eis__mmindex @ A_27a @ V1f @ V0l @ V4i @ V5m ) ) ).
thf(thm_2Elbtree_2Emmindex__unique,axiom,
! [A_27a: $tType,V0m: tyop_2Enum_2Enum,V1l: tyop_2Elist_2Elist @ A_27a,V2i: tyop_2Enum_2Enum,V3f: A_27a > ( tyop_2Eoption_2Eoption @ tyop_2Enum_2Enum )] :
( ( c_2Elbtree_2Eis__mmindex @ A_27a @ V3f @ V1l @ V2i @ V0m )
=> ! [V4j: tyop_2Enum_2Enum,V5n: tyop_2Enum_2Enum] :
( ( c_2Elbtree_2Eis__mmindex @ A_27a @ V3f @ V1l @ V4j @ V5n )
<=> ( ( V4j = V2i )
& ( V5n = V0m ) ) ) ) ).
thf(thm_2Elbtree_2Emem__bf__flatten,axiom,
! [A_27a: $tType,V0x: A_27a,V1tlist: tyop_2Elist_2Elist @ ( tyop_2Elbtree_2Elbtree @ A_27a )] :
( ( c_2Ellist_2Eexists @ A_27a @ ( c_2Emin_2E_3D @ A_27a @ V0x ) @ ( c_2Elbtree_2Ebf__flatten @ A_27a @ V1tlist ) )
= ( c_2Elist_2EEXISTS @ ( tyop_2Elbtree_2Elbtree @ A_27a ) @ ( c_2Elbtree_2Emem @ A_27a @ V0x ) @ V1tlist ) ) ).
%------------------------------------------------------------------------------