ITP001 Axioms: ITP043^7.ax
%------------------------------------------------------------------------------
% File : ITP043^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 : Encode.ax [Gau19]
% : HL4043^7.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 155 ( 23 unt; 87 typ; 0 def)
% Number of atoms : 252 ( 61 equ; 4 cnn)
% Maximal formula atoms : 20 ( 1 avg)
% Number of connectives : 1354 ( 4 ~; 2 |; 42 &;1253 @)
% ( 20 <=>; 33 =>; 0 <=; 0 <~>)
% Maximal formula depth : 35 ( 8 avg;1253 nst)
% Number of types : 4 ( 3 usr)
% Number of type conns : 280 ( 280 >; 0 *; 0 +; 0 <<)
% Number of symbols : 86 ( 84 usr; 5 con; 0-6 aty)
% Number of variables : 363 ( 25 ^ 260 !; 9 ?; 363 :)
% ( 69 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2EEncode_2Etree,type,
tyop_2EEncode_2Etree: $tType > $tType ).
thf(tyop_2Eind__type_2Erecspace,type,
tyop_2Eind__type_2Erecspace: $tType > $tType ).
thf(tyop_2Elist_2Elist,type,
tyop_2Elist_2Elist: $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_2Eone_2Eone,type,
tyop_2Eone_2Eone: $tType ).
thf(tyop_2Eoption_2Eoption,type,
tyop_2Eoption_2Eoption: $tType > $tType ).
thf(tyop_2Epair_2Eprod,type,
tyop_2Epair_2Eprod: $tType > $tType > $tType ).
thf(tyop_2Esum_2Esum,type,
tyop_2Esum_2Esum: $tType > $tType > $tType ).
thf(c_2Ebool_2E_21,type,
c_2Ebool_2E_21:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
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_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_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_2EARB,type,
c_2Ebool_2EARB:
!>[A_27a: $tType] : A_27a ).
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_2Eind__type_2EBOTTOM,type,
c_2Eind__type_2EBOTTOM:
!>[A_27a: $tType] : ( tyop_2Eind__type_2Erecspace @ 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_2Eind__type_2ECONSTR,type,
c_2Eind__type_2ECONSTR:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > A_27a > ( tyop_2Enum_2Enum > ( tyop_2Eind__type_2Erecspace @ A_27a ) ) > ( tyop_2Eind__type_2Erecspace @ A_27a ) ) ).
thf(c_2Ebool_2EDATATYPE,type,
c_2Ebool_2EDATATYPE:
!>[A_27a: $tType] : ( A_27a > $o ) ).
thf(c_2Earithmetic_2EDIV,type,
c_2Earithmetic_2EDIV: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Earithmetic_2EEVEN,type,
c_2Earithmetic_2EEVEN: tyop_2Enum_2Enum > $o ).
thf(c_2Elist_2EEVERY,type,
c_2Elist_2EEVERY:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $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_2Eind__type_2EFCONS,type,
c_2Eind__type_2EFCONS:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Enum_2Enum > A_27a ) > tyop_2Enum_2Enum > A_27a ) ).
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_2Elist_2EHD,type,
c_2Elist_2EHD:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27a ) ).
thf(c_2Ecombin_2EI,type,
c_2Ecombin_2EI:
!>[A_27a: $tType] : ( A_27a > A_27a ) ).
thf(c_2Ebool_2EIN,type,
c_2Ebool_2EIN:
!>[A_27a: $tType] : ( A_27a > ( A_27a > $o ) > $o ) ).
thf(c_2Esum_2EINL,type,
c_2Esum_2EINL:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Esum_2Esum @ A_27a @ A_27b ) ) ).
thf(c_2Esum_2EINR,type,
c_2Esum_2EINR:
!>[A_27a: $tType,A_27b: $tType] : ( A_27b > ( tyop_2Esum_2Esum @ A_27a @ A_27b ) ) ).
thf(c_2Ecombin_2EK,type,
c_2Ecombin_2EK:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > A_27b > A_27a ) ).
thf(c_2Elist_2ELENGTH,type,
c_2Elist_2ELENGTH:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > tyop_2Enum_2Enum ) ).
thf(c_2Elist_2ELIST__TO__SET,type,
c_2Elist_2ELIST__TO__SET:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27a > $o ) ).
thf(c_2Earithmetic_2EMOD,type,
c_2Earithmetic_2EMOD: 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_2Earithmetic_2ENUMERAL,type,
c_2Earithmetic_2ENUMERAL: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2EEncode_2ENode,type,
c_2EEncode_2ENode:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > ( tyop_2EEncode_2Etree @ A_27a ) ) ).
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_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_2Elist_2ETL,type,
c_2Elist_2ETL:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
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_2Erelation_2EWF,type,
c_2Erelation_2EWF:
!>[A_27a: $tType] : ( ( A_27a > A_27a > $o ) > $o ) ).
thf(c_2Erelation_2EWFREC,type,
c_2Erelation_2EWFREC:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27a > $o ) > ( ( A_27a > A_27b ) > A_27a > A_27b ) > A_27a > A_27b ) ).
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_2EEncode_2Ebiprefix,type,
c_2EEncode_2Ebiprefix:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2EEncode_2Ecollision__free,type,
c_2EEncode_2Ecollision__free: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o ) > $o ).
thf(c_2EEncode_2Eencode__blist,type,
c_2EEncode_2Eencode__blist:
!>[A_27a: $tType,A_27b: $tType] : ( tyop_2Enum_2Enum > ( A_27b > ( tyop_2Elist_2Elist @ A_27a ) ) > ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2EEncode_2Eencode__bnum,type,
c_2EEncode_2Eencode__bnum: tyop_2Enum_2Enum > tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2EEncode_2Eencode__bool,type,
c_2EEncode_2Eencode__bool: $o > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2EEncode_2Eencode__list,type,
c_2EEncode_2Eencode__list:
!>[A_27a: $tType] : ( ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EEncode_2Eencode__num,type,
c_2EEncode_2Eencode__num: tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2EEncode_2Eencode__option,type,
c_2EEncode_2Eencode__option:
!>[A_27a: $tType] : ( ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > ( tyop_2Eoption_2Eoption @ A_27a ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EEncode_2Eencode__prod,type,
c_2EEncode_2Eencode__prod:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > ( A_27b > ( tyop_2Elist_2Elist @ $o ) ) > ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EEncode_2Eencode__sum,type,
c_2EEncode_2Eencode__sum:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > ( A_27b > ( tyop_2Elist_2Elist @ $o ) ) > ( tyop_2Esum_2Esum @ A_27a @ A_27b ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EEncode_2Eencode__tree,type,
c_2EEncode_2Eencode__tree:
!>[A_27a: $tType] : ( ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > ( tyop_2EEncode_2Etree @ A_27a ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EEncode_2Eencode__unit,type,
c_2EEncode_2Eencode__unit: tyop_2Eone_2Eone > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2Elist_2EisPREFIX,type,
c_2Elist_2EisPREFIX:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2EEncode_2Elift__blist,type,
c_2EEncode_2Elift__blist:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2EEncode_2Elift__option,type,
c_2EEncode_2Elift__option:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) > $o ) ).
thf(c_2EEncode_2Elift__prod,type,
c_2EEncode_2Elift__prod:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > $o ) > ( A_27b > $o ) > ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > $o ) ).
thf(c_2EEncode_2Elift__sum,type,
c_2EEncode_2Elift__sum:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > $o ) > ( A_27b > $o ) > ( tyop_2Esum_2Esum @ A_27a @ A_27b ) > $o ) ).
thf(c_2EEncode_2Elift__tree,type,
c_2EEncode_2Elift__tree:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2EEncode_2Etree @ A_27a ) > $o ) ).
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_2Esum_2Esum__CASE,type,
c_2Esum_2Esum__CASE:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( tyop_2Esum_2Esum @ A_27a @ A_27b ) > ( A_27a > A_27c ) > ( A_27b > A_27c ) > A_27c ) ).
thf(c_2EEncode_2Etree1__size,type,
c_2EEncode_2Etree1__size:
!>[A_27a: $tType] : ( ( A_27a > tyop_2Enum_2Enum ) > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > tyop_2Enum_2Enum ) ).
thf(c_2EEncode_2Etree__CASE,type,
c_2EEncode_2Etree__CASE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2EEncode_2Etree @ A_27a ) > ( A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b ) > A_27b ) ).
thf(c_2EEncode_2Etree__size,type,
c_2EEncode_2Etree__size:
!>[A_27a: $tType] : ( ( A_27a > tyop_2Enum_2Enum ) > ( tyop_2EEncode_2Etree @ A_27a ) > tyop_2Enum_2Enum ) ).
thf(c_2EEncode_2Ewf__encoder,type,
c_2EEncode_2Ewf__encoder:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( A_27a > ( tyop_2Elist_2Elist @ $o ) ) > $o ) ).
thf(c_2EEncode_2Ewf__pred,type,
c_2EEncode_2Ewf__pred:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2EEncode_2Ewf__pred__bnum,type,
c_2EEncode_2Ewf__pred__bnum: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o ) > $o ).
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_2EEncode_2Ebiprefix__def,axiom,
! [A_27a: $tType,V0a: tyop_2Elist_2Elist @ A_27a,V1b: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Ebiprefix @ A_27a @ V0a @ V1b )
<=> ( ( c_2Elist_2EisPREFIX @ A_27a @ V1b @ V0a )
| ( c_2Elist_2EisPREFIX @ A_27a @ V0a @ V1b ) ) ) ).
thf(thm_2EEncode_2Ewf__pred__def,axiom,
! [A_27a: $tType,V0p: A_27a > $o] :
( ( c_2EEncode_2Ewf__pred @ A_27a @ V0p )
<=> ? [V1x: A_27a] : ( V0p @ V1x ) ) ).
thf(thm_2EEncode_2Ewf__encoder__def,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
<=> ! [V2x: A_27a,V3y: A_27a] :
( ( ( V0p @ V2x )
& ( V0p @ V3y )
& ( c_2Elist_2EisPREFIX @ $o @ ( V1e @ V3y ) @ ( V1e @ V2x ) ) )
=> ( V2x = V3y ) ) ) ).
thf(thm_2EEncode_2Eencode__unit__def,axiom,
! [V0v0: tyop_2Eone_2Eone] :
( ( c_2EEncode_2Eencode__unit @ V0v0 )
= ( c_2Elist_2ENIL @ $o ) ) ).
thf(thm_2EEncode_2Eencode__bool__def,axiom,
! [V0x: $o] :
( ( c_2EEncode_2Eencode__bool @ V0x )
= ( c_2Elist_2ECONS @ $o @ V0x @ ( c_2Elist_2ENIL @ $o ) ) ) ).
thf(thm_2EEncode_2Eencode__prod__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V1yb: A_27b > ( tyop_2Elist_2Elist @ $o ),V2x: A_27a,V3y: A_27b] :
( ( c_2EEncode_2Eencode__prod @ A_27a @ A_27b @ V0xb @ V1yb @ ( c_2Epair_2E_2C @ A_27a @ A_27b @ V2x @ V3y ) )
= ( c_2Elist_2EAPPEND @ $o @ ( V0xb @ V2x ) @ ( V1yb @ V3y ) ) ) ).
thf(thm_2EEncode_2Elift__prod__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0p1: A_27a > $o,V1p2: A_27b > $o,V2x: tyop_2Epair_2Eprod @ A_27a @ A_27b] :
( ( c_2EEncode_2Elift__prod @ A_27a @ A_27b @ V0p1 @ V1p2 @ V2x )
<=> ( ( V0p1 @ ( c_2Epair_2EFST @ A_27a @ A_27b @ V2x ) )
& ( V1p2 @ ( c_2Epair_2ESND @ A_27a @ A_27b @ V2x ) ) ) ) ).
thf(thm_2EEncode_2Eencode__sum__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V1yb: A_27b > ( tyop_2Elist_2Elist @ $o ),V2x: A_27a] :
( ( c_2EEncode_2Eencode__sum @ A_27a @ A_27b @ V0xb @ V1yb @ ( c_2Esum_2EINL @ A_27a @ A_27b @ V2x ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( V0xb @ V2x ) ) )
& ! [V3xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V4yb: A_27b > ( tyop_2Elist_2Elist @ $o ),V5y: A_27b] :
( ( c_2EEncode_2Eencode__sum @ A_27a @ A_27b @ V3xb @ V4yb @ ( c_2Esum_2EINR @ A_27a @ A_27b @ V5y ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( V4yb @ V5y ) ) ) ) ).
thf(thm_2EEncode_2Elift__sum__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0p1: A_27a > $o,V1p2: A_27b > $o,V2x: tyop_2Esum_2Esum @ A_27a @ A_27b] :
( ( c_2EEncode_2Elift__sum @ A_27a @ A_27b @ V0p1 @ V1p2 @ V2x )
= ( c_2Esum_2Esum__CASE @ A_27a @ A_27b @ $o @ V2x
@ ^ [V3x1: A_27a] : ( V0p1 @ V3x1 )
@ ^ [V4x2: A_27b] : ( V1p2 @ V4x2 ) ) ) ).
thf(thm_2EEncode_2Eencode__option__def,axiom,
! [A_27a: $tType] :
( ! [V0xb: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Eencode__option @ A_27a @ V0xb @ ( c_2Eoption_2ENONE @ A_27a ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( c_2Elist_2ENIL @ $o ) ) )
& ! [V1xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V2x: A_27a] :
( ( c_2EEncode_2Eencode__option @ A_27a @ V1xb @ ( c_2Eoption_2ESOME @ A_27a @ V2x ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( V1xb @ V2x ) ) ) ) ).
thf(thm_2EEncode_2Elift__option__def,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1x: tyop_2Eoption_2Eoption @ A_27a] :
( ( c_2EEncode_2Elift__option @ A_27a @ V0p @ V1x )
= ( c_2Eoption_2Eoption__CASE @ A_27a @ $o @ V1x @ c_2Ebool_2ET
@ ^ [V2y: A_27a] : ( V0p @ V2y ) ) ) ).
thf(thm_2EEncode_2Eencode__list__def,axiom,
! [A_27a: $tType] :
( ! [V0xb: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Eencode__list @ A_27a @ V0xb @ ( c_2Elist_2ENIL @ A_27a ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( c_2Elist_2ENIL @ $o ) ) )
& ! [V1xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V2x: A_27a,V3xs: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Eencode__list @ A_27a @ V1xb @ ( c_2Elist_2ECONS @ A_27a @ V2x @ V3xs ) )
= ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2EAPPEND @ $o @ ( V1xb @ V2x ) @ ( c_2EEncode_2Eencode__list @ A_27a @ V1xb @ V3xs ) ) ) ) ) ).
thf(thm_2EEncode_2Eencode__blist__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0e: A_27b > ( tyop_2Elist_2Elist @ A_27a ),V1l: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ c_2Enum_2E0 @ V0e @ V1l )
= ( c_2Elist_2ENIL @ A_27a ) )
& ! [V2m: tyop_2Enum_2Enum,V3e: A_27b > ( tyop_2Elist_2Elist @ A_27a ),V4l: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ ( c_2Enum_2ESUC @ V2m ) @ V3e @ V4l )
= ( c_2Elist_2EAPPEND @ A_27a @ ( V3e @ ( c_2Elist_2EHD @ A_27b @ V4l ) ) @ ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ V2m @ V3e @ ( c_2Elist_2ETL @ A_27b @ V4l ) ) ) ) ) ).
thf(thm_2EEncode_2Elift__blist__def,axiom,
! [A_27a: $tType,V0m: tyop_2Enum_2Enum,V1p: A_27a > $o,V2x: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Elift__blist @ A_27a @ V0m @ V1p @ V2x )
<=> ( ( c_2Elist_2EEVERY @ A_27a @ V1p @ V2x )
& ( ( c_2Elist_2ELENGTH @ A_27a @ V2x )
= V0m ) ) ) ).
thf(thm_2EEncode_2Eencode__num__primitive__def,axiom,
( c_2EEncode_2Eencode__num
= ( c_2Erelation_2EWFREC @ tyop_2Enum_2Enum @ ( tyop_2Elist_2Elist @ $o )
@ ( c_2Emin_2E_40 @ ( tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o )
@ ^ [V0R: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o] :
( c_2Ebool_2E_2F_5C @ ( c_2Erelation_2EWF @ tyop_2Enum_2Enum @ V0R )
@ ( c_2Ebool_2E_2F_5C
@ ( c_2Ebool_2E_21 @ tyop_2Enum_2Enum
@ ^ [V1n: tyop_2Enum_2Enum] : ( c_2Emin_2E_3D_3D_3E @ ( c_2Ebool_2E_2F_5C @ ( c_2Ebool_2E_7E @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V1n @ c_2Enum_2E0 ) ) @ ( c_2Earithmetic_2EEVEN @ V1n ) ) @ ( V0R @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V1n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ V1n ) ) )
@ ( c_2Ebool_2E_21 @ tyop_2Enum_2Enum
@ ^ [V2n: tyop_2Enum_2Enum] : ( c_2Emin_2E_3D_3D_3E @ ( c_2Ebool_2E_2F_5C @ ( c_2Ebool_2E_7E @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V2n @ c_2Enum_2E0 ) ) @ ( c_2Ebool_2E_7E @ ( c_2Earithmetic_2EEVEN @ V2n ) ) ) @ ( V0R @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V2n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ V2n ) ) ) ) ) )
@ ^ [V3encode__num: tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ $o ),V4a: tyop_2Enum_2Enum] : ( c_2Ecombin_2EI @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2Ebool_2ECOND @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V4a @ c_2Enum_2E0 ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ENIL @ $o ) ) ) @ ( c_2Ebool_2ECOND @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2Earithmetic_2EEVEN @ V4a ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( V3encode__num @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V4a @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( V3encode__num @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V4a @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ) ) ) ) ).
thf(thm_2EEncode_2Eencode__bnum__def,axiom,
( ! [V0n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__bnum @ c_2Enum_2E0 @ V0n )
= ( c_2Elist_2ENIL @ $o ) )
& ! [V1m: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__bnum @ ( c_2Enum_2ESUC @ V1m ) @ V2n )
= ( c_2Elist_2ECONS @ $o @ ( c_2Ebool_2E_7E @ ( c_2Earithmetic_2EEVEN @ V2n ) ) @ ( c_2EEncode_2Eencode__bnum @ V1m @ ( c_2Earithmetic_2EDIV @ V2n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ).
thf(thm_2EEncode_2Ecollision__free__def,axiom,
! [V0m: tyop_2Enum_2Enum,V1p: tyop_2Enum_2Enum > $o] :
( ( c_2EEncode_2Ecollision__free @ V0m @ V1p )
<=> ! [V2x: tyop_2Enum_2Enum,V3y: tyop_2Enum_2Enum] :
( ( ( V1p @ V2x )
& ( V1p @ V3y )
& ( ( c_2Earithmetic_2EMOD @ V2x @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) )
= ( c_2Earithmetic_2EMOD @ V3y @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) ) ) )
=> ( V2x = V3y ) ) ) ).
thf(thm_2EEncode_2Ewf__pred__bnum__def,axiom,
! [V0m: tyop_2Enum_2Enum,V1p: tyop_2Enum_2Enum > $o] :
( ( c_2EEncode_2Ewf__pred__bnum @ V0m @ V1p )
<=> ( ( c_2EEncode_2Ewf__pred @ tyop_2Enum_2Enum @ V1p )
& ! [V2x: tyop_2Enum_2Enum] :
( ( V1p @ V2x )
=> ( c_2Eprim__rec_2E_3C @ V2x @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) ) ) ) ) ).
thf(thm_2EEncode_2Etree__TY__DEF,axiom,
! [A_27a: $tType] :
? [V0rep: ( tyop_2EEncode_2Etree @ A_27a ) > ( tyop_2Eind__type_2Erecspace @ A_27a )] :
( c_2Ebool_2ETYPE__DEFINITION @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ ( tyop_2EEncode_2Etree @ A_27a )
@ ^ [V1a0_27: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Ebool_2E_21 @ ( ( tyop_2Eind__type_2Erecspace @ A_27a ) > $o )
@ ^ [V2_27tree_27: ( tyop_2Eind__type_2Erecspace @ A_27a ) > $o] :
( c_2Ebool_2E_21 @ ( ( tyop_2Eind__type_2Erecspace @ A_27a ) > $o )
@ ^ [V3_27_40temp_20_40ind__typeEncode0list_27: ( tyop_2Eind__type_2Erecspace @ A_27a ) > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_2F_5C
@ ( c_2Ebool_2E_21 @ ( tyop_2Eind__type_2Erecspace @ A_27a )
@ ^ [V4a0_27: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V5a0: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Eind__type_2Erecspace @ A_27a )
@ ^ [V6a1: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Ebool_2E_2F_5C
@ ( c_2Emin_2E_3D @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V4a0_27
@ ( ^ [V7a0: A_27a,V8a1: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Eind__type_2ECONSTR @ A_27a @ c_2Enum_2E0 @ V7a0
@ ( c_2Eind__type_2EFCONS @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V8a1
@ ^ [V9n: tyop_2Enum_2Enum] : ( c_2Eind__type_2EBOTTOM @ A_27a ) ) )
@ V5a0
@ V6a1 ) )
@ ( V3_27_40temp_20_40ind__typeEncode0list_27 @ V6a1 ) ) ) )
@ ( V2_27tree_27 @ V4a0_27 ) ) )
@ ( c_2Ebool_2E_21 @ ( tyop_2Eind__type_2Erecspace @ A_27a )
@ ^ [V10a1_27: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_5C_2F
@ ( c_2Emin_2E_3D @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V10a1_27
@ ( c_2Eind__type_2ECONSTR @ A_27a @ ( c_2Enum_2ESUC @ c_2Enum_2E0 ) @ ( c_2Ebool_2EARB @ A_27a )
@ ^ [V11n: tyop_2Enum_2Enum] : ( c_2Eind__type_2EBOTTOM @ A_27a ) ) )
@ ( c_2Ebool_2E_3F @ ( tyop_2Eind__type_2Erecspace @ A_27a )
@ ^ [V12a0: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Eind__type_2Erecspace @ A_27a )
@ ^ [V13a1: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Ebool_2E_2F_5C
@ ( c_2Emin_2E_3D @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V10a1_27
@ ( ^ [V14a0: tyop_2Eind__type_2Erecspace @ A_27a,V15a1: tyop_2Eind__type_2Erecspace @ A_27a] :
( c_2Eind__type_2ECONSTR @ A_27a @ ( c_2Enum_2ESUC @ ( c_2Enum_2ESUC @ c_2Enum_2E0 ) ) @ ( c_2Ebool_2EARB @ A_27a )
@ ( c_2Eind__type_2EFCONS @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V14a0
@ ( c_2Eind__type_2EFCONS @ ( tyop_2Eind__type_2Erecspace @ A_27a ) @ V15a1
@ ^ [V16n: tyop_2Enum_2Enum] : ( c_2Eind__type_2EBOTTOM @ A_27a ) ) ) )
@ V12a0
@ V13a1 ) )
@ ( c_2Ebool_2E_2F_5C @ ( V2_27tree_27 @ V12a0 ) @ ( V3_27_40temp_20_40ind__typeEncode0list_27 @ V13a1 ) ) ) ) ) )
@ ( V3_27_40temp_20_40ind__typeEncode0list_27 @ V10a1_27 ) ) ) )
@ ( V2_27tree_27 @ V1a0_27 ) ) ) )
@ V0rep ) ).
thf(thm_2EEncode_2Etree__case__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0a0: A_27a,V1a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ),V2f: A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b] :
( ( c_2EEncode_2Etree__CASE @ A_27a @ A_27b @ ( c_2EEncode_2ENode @ A_27a @ V0a0 @ V1a1 ) @ V2f )
= ( V2f @ V0a0 @ V1a1 ) ) ).
thf(thm_2EEncode_2Etree__size__def,axiom,
! [A_27a: $tType] :
( ! [V0f: A_27a > tyop_2Enum_2Enum,V1a0: A_27a,V2a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( c_2EEncode_2Etree__size @ A_27a @ V0f @ ( c_2EEncode_2ENode @ A_27a @ V1a0 @ V2a1 ) )
= ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2B @ ( V0f @ V1a0 ) @ ( c_2EEncode_2Etree1__size @ A_27a @ V0f @ V2a1 ) ) ) )
& ! [V3f: A_27a > tyop_2Enum_2Enum] :
( ( c_2EEncode_2Etree1__size @ A_27a @ V3f @ ( c_2Elist_2ENIL @ ( tyop_2EEncode_2Etree @ A_27a ) ) )
= c_2Enum_2E0 )
& ! [V4f: A_27a > tyop_2Enum_2Enum,V5a0: tyop_2EEncode_2Etree @ A_27a,V6a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( c_2EEncode_2Etree1__size @ A_27a @ V4f @ ( c_2Elist_2ECONS @ ( tyop_2EEncode_2Etree @ A_27a ) @ V5a0 @ V6a1 ) )
= ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2EEncode_2Etree__size @ A_27a @ V4f @ V5a0 ) @ ( c_2EEncode_2Etree1__size @ A_27a @ V4f @ V6a1 ) ) ) ) ) ).
thf(thm_2EEncode_2Ebiprefix__refl,axiom,
! [A_27a: $tType,V0x: tyop_2Elist_2Elist @ A_27a] : ( c_2EEncode_2Ebiprefix @ A_27a @ V0x @ V0x ) ).
thf(thm_2EEncode_2Ebiprefix__sym,axiom,
! [A_27a: $tType,V0x: tyop_2Elist_2Elist @ A_27a,V1y: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Ebiprefix @ A_27a @ V0x @ V1y )
=> ( c_2EEncode_2Ebiprefix @ A_27a @ V1y @ V0x ) ) ).
thf(thm_2EEncode_2Ebiprefix__append,axiom,
! [A_27a: $tType,V0a: tyop_2Elist_2Elist @ A_27a,V1b: tyop_2Elist_2Elist @ A_27a,V2c: tyop_2Elist_2Elist @ A_27a,V3d: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Ebiprefix @ A_27a @ ( c_2Elist_2EAPPEND @ A_27a @ V0a @ V1b ) @ ( c_2Elist_2EAPPEND @ A_27a @ V2c @ V3d ) )
=> ( c_2EEncode_2Ebiprefix @ A_27a @ V0a @ V2c ) ) ).
thf(thm_2EEncode_2Ebiprefix__cons,axiom,
! [A_27a: $tType,V0a: A_27a,V1b: tyop_2Elist_2Elist @ A_27a,V2c: A_27a,V3d: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Ebiprefix @ A_27a @ ( c_2Elist_2ECONS @ A_27a @ V0a @ V1b ) @ ( c_2Elist_2ECONS @ A_27a @ V2c @ V3d ) )
<=> ( ( V0a = V2c )
& ( c_2EEncode_2Ebiprefix @ A_27a @ V1b @ V3d ) ) ) ).
thf(thm_2EEncode_2Ebiprefix__appends,axiom,
! [A_27a: $tType,V0a: tyop_2Elist_2Elist @ A_27a,V1b: tyop_2Elist_2Elist @ A_27a,V2c: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Ebiprefix @ A_27a @ ( c_2Elist_2EAPPEND @ A_27a @ V0a @ V1b ) @ ( c_2Elist_2EAPPEND @ A_27a @ V0a @ V2c ) )
= ( c_2EEncode_2Ebiprefix @ A_27a @ V1b @ V2c ) ) ).
thf(thm_2EEncode_2Ewf__encoder__alt,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
<=> ! [V2x: A_27a,V3y: A_27a] :
( ( ( V0p @ V2x )
& ( V0p @ V3y )
& ( c_2EEncode_2Ebiprefix @ $o @ ( V1e @ V2x ) @ ( V1e @ V3y ) ) )
=> ( V2x = V3y ) ) ) ).
thf(thm_2EEncode_2Ewf__encoder__eq,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o ),V2f: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
& ! [V3x: A_27a] :
( ( V0p @ V3x )
=> ( ( V1e @ V3x )
= ( V2f @ V3x ) ) ) )
=> ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V2f ) ) ).
thf(thm_2EEncode_2Ewf__encoder__total,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ ( c_2Ecombin_2EK @ $o @ A_27a @ c_2Ebool_2ET ) @ V1e )
=> ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e ) ) ).
thf(thm_2EEncode_2Ewf__encode__unit,axiom,
! [V0p: tyop_2Eone_2Eone > $o] : ( c_2EEncode_2Ewf__encoder @ tyop_2Eone_2Eone @ V0p @ c_2EEncode_2Eencode__unit ) ).
thf(thm_2EEncode_2Ewf__encode__bool,axiom,
! [V0p: $o > $o] : ( c_2EEncode_2Ewf__encoder @ $o @ V0p @ c_2EEncode_2Eencode__bool ) ).
thf(thm_2EEncode_2Eencode__prod__alt,axiom,
! [A_27a: $tType,A_27b: $tType,V0xb: A_27a > ( tyop_2Elist_2Elist @ $o ),V1yb: A_27b > ( tyop_2Elist_2Elist @ $o ),V2p: tyop_2Epair_2Eprod @ A_27a @ A_27b] :
( ( c_2EEncode_2Eencode__prod @ A_27a @ A_27b @ V0xb @ V1yb @ V2p )
= ( c_2Elist_2EAPPEND @ $o @ ( V0xb @ ( c_2Epair_2EFST @ A_27a @ A_27b @ V2p ) ) @ ( V1yb @ ( c_2Epair_2ESND @ A_27a @ A_27b @ V2p ) ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__prod,axiom,
! [A_27a: $tType,A_27b: $tType,V0p1: A_27a > $o,V1p2: A_27b > $o,V2e1: A_27a > ( tyop_2Elist_2Elist @ $o ),V3e2: A_27b > ( tyop_2Elist_2Elist @ $o )] :
( ( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p1 @ V2e1 )
& ( c_2EEncode_2Ewf__encoder @ A_27b @ V1p2 @ V3e2 ) )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) @ ( c_2EEncode_2Elift__prod @ A_27a @ A_27b @ V0p1 @ V1p2 ) @ ( c_2EEncode_2Eencode__prod @ A_27a @ A_27b @ V2e1 @ V3e2 ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__sum,axiom,
! [A_27a: $tType,A_27b: $tType,V0p1: A_27a > $o,V1p2: A_27b > $o,V2e1: A_27a > ( tyop_2Elist_2Elist @ $o ),V3e2: A_27b > ( tyop_2Elist_2Elist @ $o )] :
( ( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p1 @ V2e1 )
& ( c_2EEncode_2Ewf__encoder @ A_27b @ V1p2 @ V3e2 ) )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2Esum_2Esum @ A_27a @ A_27b ) @ ( c_2EEncode_2Elift__sum @ A_27a @ A_27b @ V0p1 @ V1p2 ) @ ( c_2EEncode_2Eencode__sum @ A_27a @ A_27b @ V2e1 @ V3e2 ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__option,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2Eoption_2Eoption @ A_27a ) @ ( c_2EEncode_2Elift__option @ A_27a @ V0p ) @ ( c_2EEncode_2Eencode__option @ A_27a @ V1e ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__list,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2Elist_2Elist @ A_27a ) @ ( c_2Elist_2EEVERY @ A_27a @ V0p ) @ ( c_2EEncode_2Eencode__list @ A_27a @ V1e ) ) ) ).
thf(thm_2EEncode_2Eencode__list__cong,axiom,
! [A_27a: $tType,V0l1: tyop_2Elist_2Elist @ A_27a,V1l2: tyop_2Elist_2Elist @ A_27a,V2f1: A_27a > ( tyop_2Elist_2Elist @ $o ),V3f2: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( ( V0l1 = V1l2 )
& ! [V4x: A_27a] :
( ( c_2Ebool_2EIN @ A_27a @ V4x @ ( c_2Elist_2ELIST__TO__SET @ A_27a @ V1l2 ) )
=> ( ( V2f1 @ V4x )
= ( V3f2 @ V4x ) ) ) )
=> ( ( c_2EEncode_2Eencode__list @ A_27a @ V2f1 @ V0l1 )
= ( c_2EEncode_2Eencode__list @ A_27a @ V3f2 @ V1l2 ) ) ) ).
thf(thm_2EEncode_2Eencode__blist__def__compute,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0e: A_27b > ( tyop_2Elist_2Elist @ A_27a ),V1l: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ c_2Enum_2E0 @ V0e @ V1l )
= ( c_2Elist_2ENIL @ A_27a ) )
& ! [V2m: tyop_2Enum_2Enum,V3e: A_27b > ( tyop_2Elist_2Elist @ A_27a ),V4l: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2m ) ) @ V3e @ V4l )
= ( c_2Elist_2EAPPEND @ A_27a @ ( V3e @ ( c_2Elist_2EHD @ A_27b @ V4l ) ) @ ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V2m ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V3e @ ( c_2Elist_2ETL @ A_27b @ V4l ) ) ) )
& ! [V5m: tyop_2Enum_2Enum,V6e: A_27b > ( tyop_2Elist_2Elist @ A_27a ),V7l: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V5m ) ) @ V6e @ V7l )
= ( c_2Elist_2EAPPEND @ A_27a @ ( V6e @ ( c_2Elist_2EHD @ A_27b @ V7l ) ) @ ( c_2EEncode_2Eencode__blist @ A_27a @ A_27b @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V5m ) ) @ V6e @ ( c_2Elist_2ETL @ A_27b @ V7l ) ) ) ) ) ).
thf(thm_2EEncode_2Elift__blist__suc,axiom,
! [A_27a: $tType,V0n: tyop_2Enum_2Enum,V1p: A_27a > $o,V2h: A_27a,V3t: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EEncode_2Elift__blist @ A_27a @ ( c_2Enum_2ESUC @ V0n ) @ V1p @ ( c_2Elist_2ECONS @ A_27a @ V2h @ V3t ) )
<=> ( ( V1p @ V2h )
& ( c_2EEncode_2Elift__blist @ A_27a @ V0n @ V1p @ V3t ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__blist,axiom,
! [A_27a: $tType,V0m: tyop_2Enum_2Enum,V1p: A_27a > $o,V2e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V1p @ V2e )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2Elist_2Elist @ A_27a ) @ ( c_2EEncode_2Elift__blist @ A_27a @ V0m @ V1p ) @ ( c_2EEncode_2Eencode__blist @ $o @ A_27a @ V0m @ V2e ) ) ) ).
thf(thm_2EEncode_2Eencode__num__def,axiom,
! [V0n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__num @ V0n )
= ( c_2Ebool_2ECOND @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ V0n @ c_2Enum_2E0 ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ENIL @ $o ) ) ) @ ( c_2Ebool_2ECOND @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2Earithmetic_2EEVEN @ V0n ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( c_2EEncode_2Eencode__num @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V0n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ ( c_2EEncode_2Eencode__num @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V0n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ) ) ).
thf(thm_2EEncode_2Eencode__num__ind,axiom,
! [V0P: tyop_2Enum_2Enum > $o] :
( ! [V1n: tyop_2Enum_2Enum] :
( ( ( ( ( (~) @ ( V1n = c_2Enum_2E0 ) )
& ( c_2Earithmetic_2EEVEN @ V1n ) )
=> ( V0P @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V1n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) )
& ( ( ( (~) @ ( V1n = c_2Enum_2E0 ) )
& ( (~) @ ( c_2Earithmetic_2EEVEN @ V1n ) ) )
=> ( V0P @ ( c_2Earithmetic_2EDIV @ ( c_2Earithmetic_2E_2D @ V1n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) )
=> ( V0P @ V1n ) )
=> ! [V2v: tyop_2Enum_2Enum] : ( V0P @ V2v ) ) ).
thf(thm_2EEncode_2Ewf__encode__num,axiom,
! [V0p: tyop_2Enum_2Enum > $o] : ( c_2EEncode_2Ewf__encoder @ tyop_2Enum_2Enum @ V0p @ c_2EEncode_2Eencode__num ) ).
thf(thm_2EEncode_2Eencode__bnum__def__compute,axiom,
( ! [V0n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__bnum @ c_2Enum_2E0 @ V0n )
= ( c_2Elist_2ENIL @ $o ) )
& ! [V1m: tyop_2Enum_2Enum,V2n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__bnum @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) @ V2n )
= ( c_2Elist_2ECONS @ $o @ ( c_2Ebool_2E_7E @ ( c_2Earithmetic_2EEVEN @ V2n ) ) @ ( c_2EEncode_2Eencode__bnum @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V1m ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2EDIV @ V2n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) )
& ! [V3m: tyop_2Enum_2Enum,V4n: tyop_2Enum_2Enum] :
( ( c_2EEncode_2Eencode__bnum @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V3m ) ) @ V4n )
= ( c_2Elist_2ECONS @ $o @ ( c_2Ebool_2E_7E @ ( c_2Earithmetic_2EEVEN @ V4n ) ) @ ( c_2EEncode_2Eencode__bnum @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3m ) ) @ ( c_2Earithmetic_2EDIV @ V4n @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ).
thf(thm_2EEncode_2Ewf__pred__bnum__total,axiom,
! [V0m: tyop_2Enum_2Enum] :
( c_2EEncode_2Ewf__pred__bnum @ V0m
@ ^ [V1x: tyop_2Enum_2Enum] : ( c_2Eprim__rec_2E_3C @ V1x @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) ) ) ).
thf(thm_2EEncode_2Ewf__pred__bnum,axiom,
! [V0m: tyop_2Enum_2Enum,V1p: tyop_2Enum_2Enum > $o] :
( ( c_2EEncode_2Ewf__pred__bnum @ V0m @ V1p )
=> ( c_2EEncode_2Ecollision__free @ V0m @ V1p ) ) ).
thf(thm_2EEncode_2Eencode__bnum__length,axiom,
! [V0m: tyop_2Enum_2Enum,V1n: tyop_2Enum_2Enum] :
( ( c_2Elist_2ELENGTH @ $o @ ( c_2EEncode_2Eencode__bnum @ V0m @ V1n ) )
= V0m ) ).
thf(thm_2EEncode_2Eencode__bnum__inj,axiom,
! [V0m: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum,V2y: tyop_2Enum_2Enum] :
( ( ( c_2Eprim__rec_2E_3C @ V1x @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) )
& ( c_2Eprim__rec_2E_3C @ V2y @ ( c_2Earithmetic_2EEXP @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ c_2Earithmetic_2EZERO ) ) @ V0m ) )
& ( ( c_2EEncode_2Eencode__bnum @ V0m @ V1x )
= ( c_2EEncode_2Eencode__bnum @ V0m @ V2y ) ) )
=> ( V1x = V2y ) ) ).
thf(thm_2EEncode_2Ewf__encode__bnum__collision__free,axiom,
! [V0m: tyop_2Enum_2Enum,V1p: tyop_2Enum_2Enum > $o] :
( ( c_2EEncode_2Ewf__encoder @ tyop_2Enum_2Enum @ V1p @ ( c_2EEncode_2Eencode__bnum @ V0m ) )
= ( c_2EEncode_2Ecollision__free @ V0m @ V1p ) ) ).
thf(thm_2EEncode_2Ewf__encode__bnum,axiom,
! [V0m: tyop_2Enum_2Enum,V1p: tyop_2Enum_2Enum > $o] :
( ( c_2EEncode_2Ewf__pred__bnum @ V0m @ V1p )
=> ( c_2EEncode_2Ewf__encoder @ tyop_2Enum_2Enum @ V1p @ ( c_2EEncode_2Eencode__bnum @ V0m ) ) ) ).
thf(thm_2EEncode_2Edatatype__tree,axiom,
! [A_27a: $tType,V0tree: ( A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > ( tyop_2EEncode_2Etree @ A_27a ) ) > $o] : ( c_2Ebool_2EDATATYPE @ $o @ ( V0tree @ ( c_2EEncode_2ENode @ A_27a ) ) ) ).
thf(thm_2EEncode_2Etree__11,axiom,
! [A_27a: $tType,V0a0: A_27a,V1a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ),V2a0_27: A_27a,V3a1_27: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( ( c_2EEncode_2ENode @ A_27a @ V0a0 @ V1a1 )
= ( c_2EEncode_2ENode @ A_27a @ V2a0_27 @ V3a1_27 ) )
<=> ( ( V0a0 = V2a0_27 )
& ( V1a1 = V3a1_27 ) ) ) ).
thf(thm_2EEncode_2Etree__nchotomy,axiom,
! [A_27a: $tType,V0tt: tyop_2EEncode_2Etree @ A_27a] :
? [V1a: A_27a,V2l: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( V0tt
= ( c_2EEncode_2ENode @ A_27a @ V1a @ V2l ) ) ).
thf(thm_2EEncode_2Etree__Axiom,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0f0: A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27c > A_27b,V1f1: A_27c,V2f2: ( tyop_2EEncode_2Etree @ A_27a ) > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b > A_27c > A_27c] :
? [V3fn0: ( tyop_2EEncode_2Etree @ A_27a ) > A_27b,V4fn1: ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27c] :
( ! [V5a0: A_27a,V6a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( V3fn0 @ ( c_2EEncode_2ENode @ A_27a @ V5a0 @ V6a1 ) )
= ( V0f0 @ V5a0 @ V6a1 @ ( V4fn1 @ V6a1 ) ) )
& ( ( V4fn1 @ ( c_2Elist_2ENIL @ ( tyop_2EEncode_2Etree @ A_27a ) ) )
= V1f1 )
& ! [V7a0: tyop_2EEncode_2Etree @ A_27a,V8a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( V4fn1 @ ( c_2Elist_2ECONS @ ( tyop_2EEncode_2Etree @ A_27a ) @ V7a0 @ V8a1 ) )
= ( V2f2 @ V7a0 @ V8a1 @ ( V3fn0 @ V7a0 ) @ ( V4fn1 @ V8a1 ) ) ) ) ).
thf(thm_2EEncode_2Etree__induction,axiom,
! [A_27a: $tType,V0P0: ( tyop_2EEncode_2Etree @ A_27a ) > $o,V1P1: ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > $o] :
( ( ! [V2l: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( V1P1 @ V2l )
=> ! [V3a: A_27a] : ( V0P0 @ ( c_2EEncode_2ENode @ A_27a @ V3a @ V2l ) ) )
& ( V1P1 @ ( c_2Elist_2ENIL @ ( tyop_2EEncode_2Etree @ A_27a ) ) )
& ! [V4t: tyop_2EEncode_2Etree @ A_27a,V5l: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( ( V0P0 @ V4t )
& ( V1P1 @ V5l ) )
=> ( V1P1 @ ( c_2Elist_2ECONS @ ( tyop_2EEncode_2Etree @ A_27a ) @ V4t @ V5l ) ) ) )
=> ( ! [V6t: tyop_2EEncode_2Etree @ A_27a] : ( V0P0 @ V6t )
& ! [V7l: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] : ( V1P1 @ V7l ) ) ) ).
thf(thm_2EEncode_2Etree__case__cong,axiom,
! [A_27a: $tType,A_27b: $tType,V0f_27: A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b,V1M: tyop_2EEncode_2Etree @ A_27a,V2M_27: tyop_2EEncode_2Etree @ A_27a,V3f: A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b] :
( ( ( V1M = V2M_27 )
& ! [V4a0: A_27a,V5a1: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( V2M_27
= ( c_2EEncode_2ENode @ A_27a @ V4a0 @ V5a1 ) )
=> ( ( V3f @ V4a0 @ V5a1 )
= ( V0f_27 @ V4a0 @ V5a1 ) ) ) )
=> ( ( c_2EEncode_2Etree__CASE @ A_27a @ A_27b @ V1M @ V3f )
= ( c_2EEncode_2Etree__CASE @ A_27a @ A_27b @ V2M_27 @ V0f_27 ) ) ) ).
thf(thm_2EEncode_2Etree__case__eq,axiom,
! [A_27a: $tType,A_27b: $tType,V0x: tyop_2EEncode_2Etree @ A_27a,V1v: A_27b,V2f: A_27a > ( tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ) ) > A_27b] :
( ( ( c_2EEncode_2Etree__CASE @ A_27a @ A_27b @ V0x @ V2f )
= V1v )
<=> ? [V3a: A_27a,V4l: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ( V0x
= ( c_2EEncode_2ENode @ A_27a @ V3a @ V4l ) )
& ( ( V2f @ V3a @ V4l )
= V1v ) ) ) ).
thf(thm_2EEncode_2Etree__ind,axiom,
! [A_27a: $tType,V0p: ( tyop_2EEncode_2Etree @ A_27a ) > $o] :
( ! [V1a: A_27a,V2ts: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a )] :
( ! [V3t: tyop_2EEncode_2Etree @ A_27a] :
( ( c_2Ebool_2EIN @ ( tyop_2EEncode_2Etree @ A_27a ) @ V3t @ ( c_2Elist_2ELIST__TO__SET @ ( tyop_2EEncode_2Etree @ A_27a ) @ V2ts ) )
=> ( V0p @ V3t ) )
=> ( V0p @ ( c_2EEncode_2ENode @ A_27a @ V1a @ V2ts ) ) )
=> ! [V4t: tyop_2EEncode_2Etree @ A_27a] : ( V0p @ V4t ) ) ).
thf(thm_2EEncode_2Eencode__tree__def,axiom,
! [A_27a: $tType,V0ts: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ),V1e: A_27a > ( tyop_2Elist_2Elist @ $o ),V2a: A_27a] :
( ( c_2EEncode_2Eencode__tree @ A_27a @ V1e @ ( c_2EEncode_2ENode @ A_27a @ V2a @ V0ts ) )
= ( c_2Elist_2EAPPEND @ $o @ ( V1e @ V2a ) @ ( c_2EEncode_2Eencode__list @ ( tyop_2EEncode_2Etree @ A_27a ) @ ( c_2EEncode_2Eencode__tree @ A_27a @ V1e ) @ V0ts ) ) ) ).
thf(thm_2EEncode_2Elift__tree__def,axiom,
! [A_27a: $tType,V0ts: tyop_2Elist_2Elist @ ( tyop_2EEncode_2Etree @ A_27a ),V1p: A_27a > $o,V2a: A_27a] :
( ( c_2EEncode_2Elift__tree @ A_27a @ V1p @ ( c_2EEncode_2ENode @ A_27a @ V2a @ V0ts ) )
<=> ( ( V1p @ V2a )
& ( c_2Elist_2EEVERY @ ( tyop_2EEncode_2Etree @ A_27a ) @ ( c_2EEncode_2Elift__tree @ A_27a @ V1p ) @ V0ts ) ) ) ).
thf(thm_2EEncode_2Ewf__encode__tree,axiom,
! [A_27a: $tType,V0p: A_27a > $o,V1e: A_27a > ( tyop_2Elist_2Elist @ $o )] :
( ( c_2EEncode_2Ewf__encoder @ A_27a @ V0p @ V1e )
=> ( c_2EEncode_2Ewf__encoder @ ( tyop_2EEncode_2Etree @ A_27a ) @ ( c_2EEncode_2Elift__tree @ A_27a @ V0p ) @ ( c_2EEncode_2Eencode__tree @ A_27a @ V1e ) ) ) ).
%------------------------------------------------------------------------------