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 ) ) ) ).

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