TPTP Problem File: SLH0836^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SLH0000^1 : TPTP v8.2.0. Released v8.2.0.
% Domain   : Archive of Formal Proofs
% Problem  :
% Version  : Especial.
% English  :

% Refs     : [Des23] Desharnais (2023), Email to Geoff Sutcliffe
% Source   : [Des23]
% Names    : Multiset_Ordering_NPC/0002_Multiset_Ordering_in_NP/prob_00171_007556__13352962_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    :  759 ( 306 unt; 207 typ;   0 def)
%            Number of atoms       : 1496 ( 962 equ;   0 cnn)
%            Maximal formula atoms :   23 (   2 avg)
%            Number of connectives : 5358 ( 277   ~;  18   |; 180   &;4267   @)
%                                         (   0 <=>; 616  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   29 (   6 avg)
%            Number of types       :   39 (  38 usr)
%            Number of type conns  :  731 ( 731   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  172 ( 169 usr;  30 con; 0-14 aty)
%            Number of variables   : 1916 (  55   ^;1716   !; 145   ?;1916   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-18 16:29:05.142
%------------------------------------------------------------------------------
% Could-be-implicit typings (38)
thf(ty_n_t__Product____Type__Oprod_I_062_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_M_062_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_M_Eo_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_J,type,
    produc6822914451196094351od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_J,type,
    produc3323165008400776615od_a_a: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J_J,type,
    list_P6397469967847391999od_o_o: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J_J,type,
    set_Pr2656343962713648089od_o_o: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_J,type,
    list_l4888837856047780700od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    produc628930716821598713od_o_o: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Nat__Onat_M_062_It__Nat__Onat_M_Eo_J_J_Mt__List__Olist_It__Nat__Onat_J_J,type,
    produc254973753779126261st_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc1836594585875604997od_a_a: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    list_P1802437025701573206od_a_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    set_Pr5530083903271594800od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Nat__Onat_J_Mt__List__Olist_It__Nat__Onat_J_J,type,
    produc1828647624359046049st_nat: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    list_P4322691845745735510od_o_o: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    set_Pr6507870997995571760od_o_o: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_Itf__f_M_062_Itf__f_M_Eo_J_J_Mt__List__Olist_Itf__f_J_J,type,
    produc5795555978541011586list_f: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc4044097585999906000od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__List__Olist_Itf__f_J_J,type,
    produc1604256039088728679list_f: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Nat__Onat_J_Mt__Nat__Onat_J,type,
    produc8199716216217303280at_nat: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_J,type,
    list_P2466969118621037811list_f: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_J,type,
    set_Pr9218602257211810509list_f: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    produc4033586494401613520od_o_o: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc7257588745650887789list_f: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    list_P1396940483166286381od_a_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    set_Product_prod_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    product_prod_nat_nat: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__Nat__Onat_J_J,type,
    list_list_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    product_prod_a_a: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_Itf__f_J_J,type,
    list_list_f: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_Eo_M_Eo_J,type,
    product_prod_o_o: $tType ).

thf(ty_n_t__List__Olist_It__Nat__Onat_J,type,
    list_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Nat__Onat_J,type,
    set_nat: $tType ).

thf(ty_n_t__List__Olist_Itf__f_J,type,
    list_f: $tType ).

thf(ty_n_t__List__Olist_Itf__a_J,type,
    list_a: $tType ).

thf(ty_n_t__Set__Oset_Itf__f_J,type,
    set_f: $tType ).

thf(ty_n_t__Set__Oset_Itf__a_J,type,
    set_a: $tType ).

thf(ty_n_t__Num__Onum,type,
    num: $tType ).

thf(ty_n_t__Nat__Onat,type,
    nat: $tType ).

thf(ty_n_tf__f,type,
    f: $tType ).

thf(ty_n_tf__a,type,
    a: $tType ).

% Explicit typings (169)
thf(sy_c_Euclidean__Division_Odivmod__nat,type,
    euclidean_divmod_nat: nat > nat > product_prod_nat_nat ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Nat__Onat,type,
    minus_minus_nat: nat > nat > nat ).

thf(sy_c_Groups_Oone__class_Oone_001t__Nat__Onat,type,
    one_one_nat: nat ).

thf(sy_c_Groups_Oplus__class_Oplus_001t__Nat__Onat,type,
    plus_plus_nat: nat > nat > nat ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat,type,
    zero_zero_nat: nat ).

thf(sy_c_HOL_Oundefined_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    undefi5686959434358318189od_a_a: produc1836594585875604997od_a_a ).

thf(sy_c_If_001t__List__Olist_It__Nat__Onat_J,type,
    if_list_nat: $o > list_nat > list_nat > list_nat ).

thf(sy_c_If_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    if_Pro6206227464963214023at_nat: $o > product_prod_nat_nat > product_prod_nat_nat > product_prod_nat_nat ).

thf(sy_c_List_Odistinct_001t__Nat__Onat,type,
    distinct_nat: list_nat > $o ).

thf(sy_c_List_Odistinct_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    distin4039418177281331017od_a_a: list_P1802437025701573206od_a_a > $o ).

thf(sy_c_List_Odistinct_001tf__a,type,
    distinct_a: list_a > $o ).

thf(sy_c_List_Odistinct_001tf__f,type,
    distinct_f: list_f > $o ).

thf(sy_c_List_Odrop_001t__Nat__Onat,type,
    drop_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Odrop_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    drop_P3280791721155218966od_a_a: nat > list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Odrop_001tf__a,type,
    drop_a: nat > list_a > list_a ).

thf(sy_c_List_Odrop_001tf__f,type,
    drop_f: nat > list_f > list_f ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Nat__Onat_J,type,
    cons_list_nat: list_nat > list_list_nat > list_list_nat ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    cons_l7647087712702168844od_a_a: list_P1802437025701573206od_a_a > list_l4888837856047780700od_a_a > list_l4888837856047780700od_a_a ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_Itf__f_J,type,
    cons_list_f: list_f > list_list_f > list_list_f ).

thf(sy_c_List_Olist_OCons_001t__Nat__Onat,type,
    cons_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    cons_P64011158483510406od_a_a: produc4044097585999906000od_a_a > list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_OCons_001tf__a,type,
    cons_a: a > list_a > list_a ).

thf(sy_c_List_Olist_OCons_001tf__f,type,
    cons_f: f > list_f > list_f ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Nat__Onat_J,type,
    nil_list_nat: list_list_nat ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    nil_li6406708984265833308od_a_a: list_l4888837856047780700od_a_a ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_Itf__f_J,type,
    nil_list_f: list_list_f ).

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    nil_Pr7291147438282410198od_a_a: list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_ONil_001tf__a,type,
    nil_a: list_a ).

thf(sy_c_List_Olist_ONil_001tf__f,type,
    nil_f: list_f ).

thf(sy_c_List_Olist_Ocase__list_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    case_l2391366069430990601od_a_a: produc7257588745650887789list_f > ( produc4044097585999906000od_a_a > list_P1802437025701573206od_a_a > produc7257588745650887789list_f ) > list_P1802437025701573206od_a_a > produc7257588745650887789list_f ).

thf(sy_c_List_Olist_Ohd_001t__Nat__Onat,type,
    hd_nat: list_nat > nat ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Nat__Onat,type,
    map_nat_nat: ( nat > nat ) > list_nat > list_nat ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    map_na2567344611816411322od_a_a: ( nat > produc4044097585999906000od_a_a ) > list_nat > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001tf__a,type,
    map_nat_a: ( nat > a ) > list_nat > list_a ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001tf__f,type,
    map_nat_f: ( nat > f ) > list_nat > list_f ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_001tf__a,type,
    map_Pr6946130393055991666_o_o_a: ( produc4033586494401613520od_o_o > a ) > list_P4322691845745735510od_o_o > list_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J_001tf__a,type,
    map_Pr1560379411928638345_o_o_a: ( produc628930716821598713od_o_o > a ) > list_P6397469967847391999od_o_o > list_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001t__Nat__Onat,type,
    map_Pr165270791793943900_a_nat: ( produc4044097585999906000od_a_a > nat ) > list_P1802437025701573206od_a_a > list_nat ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    map_Pr243255708951746116od_a_a: ( produc4044097585999906000od_a_a > produc4044097585999906000od_a_a ) > list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001tf__a,type,
    map_Pr4634343309551623282_a_a_a: ( produc4044097585999906000od_a_a > a ) > list_P1802437025701573206od_a_a > list_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001tf__f,type,
    map_Pr4634343309551623287_a_a_f: ( produc4044097585999906000od_a_a > f ) > list_P1802437025701573206od_a_a > list_f ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001tf__a,type,
    map_Pr3897371633210041563_a_a_a: ( product_prod_a_a > a ) > list_P1396940483166286381od_a_a > list_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_001tf__f,type,
    map_Pr3956008058198342810st_f_f: ( produc7257588745650887789list_f > f ) > list_P2466969118621037811list_f > list_f ).

thf(sy_c_List_Olist_Omap_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    map_a_7691272736327923094od_a_a: ( a > produc4044097585999906000od_a_a ) > list_a > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_Omap_001tf__a_001tf__a,type,
    map_a_a: ( a > a ) > list_a > list_a ).

thf(sy_c_List_Olist_Omap_001tf__a_001tf__f,type,
    map_a_f: ( a > f ) > list_a > list_f ).

thf(sy_c_List_Olist_Omap_001tf__f_001t__Nat__Onat,type,
    map_f_nat: ( f > nat ) > list_f > list_nat ).

thf(sy_c_List_Olist_Omap_001tf__f_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    map_f_5881429773128424145od_a_a: ( f > produc4044097585999906000od_a_a ) > list_f > list_P1802437025701573206od_a_a ).

thf(sy_c_List_Olist_Omap_001tf__f_001tf__a,type,
    map_f_a: ( f > a ) > list_f > list_a ).

thf(sy_c_List_Olist_Omap_001tf__f_001tf__f,type,
    map_f_f: ( f > f ) > list_f > list_f ).

thf(sy_c_List_Olist_Oset_001t__Nat__Onat,type,
    set_nat2: list_nat > set_nat ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    set_Pr984843999762680677od_o_o: list_P4322691845745735510od_o_o > set_Pr6507870997995571760od_o_o ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    set_Pr9104161137945596302od_o_o: list_P6397469967847391999od_o_o > set_Pr2656343962713648089od_o_o ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    set_Pr7008919305446870117od_a_a: list_P1802437025701573206od_a_a > set_Pr5530083903271594800od_a_a ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    set_Product_prod_a_a2: list_P1396940483166286381od_a_a > set_Product_prod_a_a ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    set_Pr1611525768661774978list_f: list_P2466969118621037811list_f > set_Pr9218602257211810509list_f ).

thf(sy_c_List_Olist_Oset_001tf__a,type,
    set_a2: list_a > set_a ).

thf(sy_c_List_Olist_Oset_001tf__f,type,
    set_f2: list_f > set_f ).

thf(sy_c_List_Olist_Otl_001t__Nat__Onat,type,
    tl_nat: list_nat > list_nat ).

thf(sy_c_List_Onth_001t__Nat__Onat,type,
    nth_nat: list_nat > nat > nat ).

thf(sy_c_List_Ounion_001t__Nat__Onat,type,
    union_nat: list_nat > list_nat > list_nat ).

thf(sy_c_List_Ounion_001tf__a,type,
    union_a: list_a > list_a > list_a ).

thf(sy_c_List_Oupt,type,
    upt: nat > nat > list_nat ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_001tf__a_001tf__f,type,
    multis2105231276199332433er_a_f: ( ( a > $o ) > f > $o ) > f > f > ( a > f ) > ( a > f ) > ( a > a > f ) > ( a > a > a > f ) > ( a > a > a > a > f ) > ( a > a > a > f ) > ( a > f > f ) > ( a > a > f ) > ( a > a > f ) > ( list_a > f ) > ( list_f > f ) > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_OencodeGammaCond_001tf__f_001tf__a,type,
    multis5227817600615747794nd_f_a: f > ( a > f ) > ( a > a > f ) > ( a > a > f ) > a > a > $o > $o > f ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_OencodeGammaCond__rel_001tf__a,type,
    multis4109485244188643131_rel_a: produc628930716821598713od_o_o > produc628930716821598713od_o_o > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__exactly__one_001tf__f_001tf__a,type,
    multis6733176023901674631ne_f_a: f > ( a > f ) > ( a > a > f ) > ( a > a > a > f ) > ( a > a > a > a > f ) > ( a > a > a > f ) > list_P1802437025701573206od_a_a > produc7257588745650887789list_f ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__sum__0__1__main_001tf__a_001tf__f,type,
    multis3280010013254100632in_a_f: ( a > a > f ) > ( a > a > a > f ) > ( a > a > a > a > f ) > list_P1802437025701573206od_a_a > produc1836594585875604997od_a_a ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__sum__0__1__main__rel_001tf__a,type,
    multis755825801818188855_rel_a: list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a > $o ).

thf(sy_c_Nat_OSuc,type,
    suc: nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Nat__Onat_J,type,
    size_size_list_nat: list_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    size_s6425312265427517634od_a_a: list_P1802437025701573206od_a_a > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_Itf__a_J,type,
    size_size_list_a: list_a > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_Itf__f_J,type,
    size_size_list_f: list_f > nat ).

thf(sy_c_Num_Onumeral__class_Onumeral_001t__Nat__Onat,type,
    numeral_numeral_nat: num > nat ).

thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat,type,
    ord_less_nat: nat > nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Nat__Onat,type,
    ord_less_eq_nat: nat > nat > $o ).

thf(sy_c_Product__Type_OPair_001_062_It__Nat__Onat_M_062_It__Nat__Onat_M_Eo_J_J_001t__List__Olist_It__Nat__Onat_J,type,
    produc4727192421694094319st_nat: ( nat > nat > $o ) > list_nat > produc254973753779126261st_nat ).

thf(sy_c_Product__Type_OPair_001_062_It__Nat__Onat_Mt__Nat__Onat_J_001t__Nat__Onat,type,
    produc72220940542539688at_nat: ( nat > nat ) > nat > produc8199716216217303280at_nat ).

thf(sy_c_Product__Type_OPair_001_062_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_M_062_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_M_Eo_J_J_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    produc9098471519666438399od_a_a: ( produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o ) > list_P1802437025701573206od_a_a > produc6822914451196094351od_a_a ).

thf(sy_c_Product__Type_OPair_001_062_Itf__f_M_062_Itf__f_M_Eo_J_J_001t__List__Olist_Itf__f_J,type,
    produc8519404107117762418list_f: ( f > f > $o ) > list_f > produc5795555978541011586list_f ).

thf(sy_c_Product__Type_OPair_001_Eo_001_Eo,type,
    product_Pair_o_o: $o > $o > product_prod_o_o ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__Nat__Onat_J,type,
    produc2694037385005941721st_nat: list_nat > list_nat > produc1828647624359046049st_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    produc4694146025100153495od_a_a: list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a > produc3323165008400776615od_a_a ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_Itf__f_J_001t__List__Olist_Itf__f_J,type,
    produc8144748701140958423list_f: list_f > list_f > produc1604256039088728679list_f ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    produc3886013187752893941od_a_a: list_f > product_prod_a_a > produc1836594585875604997od_a_a ).

thf(sy_c_Product__Type_OPair_001t__Nat__Onat_001t__Nat__Onat,type,
    product_Pair_nat_nat: nat > nat > product_prod_nat_nat ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Product____Type__Oprod_I_Eo_M_Eo_J,type,
    produc1797438980157902144od_o_o: a > product_prod_o_o > produc4033586494401613520od_o_o ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    produc580260797871235561od_o_o: a > produc4033586494401613520od_o_o > produc628930716821598713od_o_o ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    produc431845341423274048od_a_a: a > product_prod_a_a > produc4044097585999906000od_a_a ).

thf(sy_c_Product__Type_OPair_001tf__a_001tf__a,type,
    product_Pair_a_a: a > a > product_prod_a_a ).

thf(sy_c_Product__Type_OPair_001tf__f_001t__List__Olist_Itf__f_J,type,
    produc4886901243613182557list_f: f > list_f > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc7623036209211823483od_a_a: ( list_f > product_prod_a_a > produc1836594585875604997od_a_a ) > produc1836594585875604997od_a_a > produc1836594585875604997od_a_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc2342999718295319011list_f: ( list_f > product_prod_a_a > produc7257588745650887789list_f ) > produc1836594585875604997od_a_a > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Nat__Onat_001t__Nat__Onat_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    produc2626176000494625587at_nat: ( nat > nat > product_prod_nat_nat ) > product_prod_nat_nat > product_prod_nat_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc5031227304981719768list_f: ( a > product_prod_a_a > produc7257588745650887789list_f ) > produc4044097585999906000od_a_a > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc3537265031573258201od_a_a: ( a > a > produc1836594585875604997od_a_a ) > product_prod_a_a > produc1836594585875604997od_a_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc2694644985735031361list_f: ( a > a > produc7257588745650887789list_f ) > product_prod_a_a > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__a_001t__Product____Type__Oprod_I_Eo_M_Eo_J,type,
    produc1798141892355912492od_o_o: produc4033586494401613520od_o_o > a ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    produc6085592959510199253od_o_o: produc628930716821598713od_o_o > a ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__a_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    produc6516300539023753772od_a_a: produc4044097585999906000od_a_a > a ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__a_001tf__a,type,
    product_fst_a_a: product_prod_a_a > a ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__f_001t__List__Olist_Itf__f_J,type,
    product_fst_f_list_f: produc7257588745650887789list_f > f ).

thf(sy_c_Seq_Oinf__concat__simple,type,
    inf_concat_simple: ( nat > nat ) > nat > product_prod_nat_nat ).

thf(sy_c_Seq_Oinf__concat__simple__rel,type,
    inf_co2821209343098213861le_rel: produc8199716216217303280at_nat > produc8199716216217303280at_nat > $o ).

thf(sy_c_Set_OBall_001tf__a,type,
    ball_a: set_a > ( a > $o ) > $o ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    collec5045780995415420475od_a_a: ( produc4044097585999906000od_a_a > $o ) > set_Pr5530083903271594800od_a_a ).

thf(sy_c_Set_OCollect_001tf__a,type,
    collect_a: ( a > $o ) > set_a ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Nat__Onat,type,
    image_nat_nat: ( nat > nat ) > set_nat > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    image_4448319501361693189od_a_a: ( produc4044097585999906000od_a_a > produc4044097585999906000od_a_a ) > set_Pr5530083903271594800od_a_a > set_Pr5530083903271594800od_a_a ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001tf__a,type,
    image_1366754389297715763_a_a_a: ( produc4044097585999906000od_a_a > a ) > set_Pr5530083903271594800od_a_a > set_a ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001tf__f,type,
    image_1366754389297715768_a_a_f: ( produc4044097585999906000od_a_a > f ) > set_Pr5530083903271594800od_a_a > set_f ).

thf(sy_c_Set_Oimage_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    image_4423683816074015575od_a_a: ( a > produc4044097585999906000od_a_a ) > set_a > set_Pr5530083903271594800od_a_a ).

thf(sy_c_Set_Oimage_001tf__a_001tf__a,type,
    image_a_a: ( a > a ) > set_a > set_a ).

thf(sy_c_Set_Oimage_001tf__a_001tf__f,type,
    image_a_f: ( a > f ) > set_a > set_f ).

thf(sy_c_Set_Oimage_001tf__f_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    image_2613840852874516626od_a_a: ( f > produc4044097585999906000od_a_a ) > set_f > set_Pr5530083903271594800od_a_a ).

thf(sy_c_Set_Oimage_001tf__f_001tf__a,type,
    image_f_a: ( f > a ) > set_f > set_a ).

thf(sy_c_Set_Oimage_001tf__f_001tf__f,type,
    image_f_f: ( f > f ) > set_f > set_f ).

thf(sy_c_Set_Oinsert_001t__Nat__Onat,type,
    insert_nat: nat > set_nat > set_nat ).

thf(sy_c_Set_Oinsert_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    insert5959526376311583392od_a_a: produc4044097585999906000od_a_a > set_Pr5530083903271594800od_a_a > set_Pr5530083903271594800od_a_a ).

thf(sy_c_Set_Oinsert_001tf__a,type,
    insert_a: a > set_a > set_a ).

thf(sy_c_Set_Oinsert_001tf__f,type,
    insert_f: f > set_f > set_f ).

thf(sy_c_Set_Othe__elem_001t__Nat__Onat,type,
    the_elem_nat: set_nat > nat ).

thf(sy_c_Set_Othe__elem_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    the_el7097569866588581061od_a_a: set_Pr5530083903271594800od_a_a > produc4044097585999906000od_a_a ).

thf(sy_c_Set_Othe__elem_001tf__a,type,
    the_elem_a: set_a > a ).

thf(sy_c_Set_Othe__elem_001tf__f,type,
    the_elem_f: set_f > f ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    accp_l6008386518424361951od_a_a: ( list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a > $o ) > list_P1802437025701573206od_a_a > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Nat__Onat_J_Mt__Nat__Onat_J,type,
    accp_P6412015083367660281at_nat: ( produc8199716216217303280at_nat > produc8199716216217303280at_nat > $o ) > produc8199716216217303280at_nat > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    accp_P6333248501074455554od_o_o: ( produc628930716821598713od_o_o > produc628930716821598713od_o_o > $o ) > produc628930716821598713od_o_o > $o ).

thf(sy_c_member_001t__Nat__Onat,type,
    member_nat: nat > set_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    member1089989612134903033od_o_o: produc4033586494401613520od_o_o > set_Pr6507870997995571760od_o_o > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    member8623860796875751202od_o_o: produc628930716821598713od_o_o > set_Pr2656343962713648089od_o_o > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__a_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    member3071122053849602553od_a_a: produc4044097585999906000od_a_a > set_Pr5530083903271594800od_a_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    member1426531477525435216od_a_a: product_prod_a_a > set_Product_prod_a_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    member3461277295392922134list_f: produc7257588745650887789list_f > set_Pr9218602257211810509list_f > $o ).

thf(sy_c_member_001tf__a,type,
    member_a: a > set_a > $o ).

thf(sy_c_member_001tf__f,type,
    member_f: f > set_f > $o ).

thf(sy_v__092_060alpha_062,type,
    alpha: a > $o ).

thf(sy_v_conds,type,
    conds: list_f ).

thf(sy_v_conds_H____,type,
    conds2: list_f ).

thf(sy_v_condsa____,type,
    condsa: list_f ).

thf(sy_v_enc__False,type,
    enc_False: f ).

thf(sy_v_enc__True,type,
    enc_True: f ).

thf(sy_v_enc__conj,type,
    enc_conj: list_f > f ).

thf(sy_v_enc__different,type,
    enc_different: a > a > f ).

thf(sy_v_enc__equiv__and__not,type,
    enc_equiv_and_not: a > a > a > f ).

thf(sy_v_enc__equiv__ite,type,
    enc_equiv_ite: a > a > a > a > f ).

thf(sy_v_enc__impl,type,
    enc_impl: a > f > f ).

thf(sy_v_enc__ite,type,
    enc_ite: a > a > a > f ).

thf(sy_v_enc__neg,type,
    enc_neg: a > f ).

thf(sy_v_enc__not__all,type,
    enc_not_all: list_a > f ).

thf(sy_v_enc__not__and,type,
    enc_not_and: a > a > f ).

thf(sy_v_enc__pos,type,
    enc_pos: a > f ).

thf(sy_v_enc__var__impl,type,
    enc_var_impl: a > a > f ).

thf(sy_v_eval,type,
    eval: ( a > $o ) > f > $o ).

thf(sy_v_fone____,type,
    fone: a ).

thf(sy_v_fzero____,type,
    fzero: a ).

thf(sy_v_one,type,
    one: a ).

thf(sy_v_one_H____,type,
    one2: a ).

thf(sy_v_onea____,type,
    onea: a ).

thf(sy_v_prop,type,
    prop: $o ).

thf(sy_v_r____,type,
    r: produc4044097585999906000od_a_a ).

thf(sy_v_rr____,type,
    rr: list_P1802437025701573206od_a_a ).

thf(sy_v_vars,type,
    vars: list_P1802437025701573206od_a_a ).

thf(sy_v_x____,type,
    x: a ).

thf(sy_v_zero,type,
    zero: a ).

thf(sy_v_zero_H____,type,
    zero2: a ).

thf(sy_v_zeroa____,type,
    zeroa: a ).

% Relevant facts (546)
thf(fact_0_one,axiom,
    one2 = onea ).

% one
thf(fact_1_zero,axiom,
    zero2 = zeroa ).

% zero
thf(fact_2_Cons_Oprems_I3_J,axiom,
    ( ~ prop
   => ! [X: f] :
        ( ( member_f @ X @ ( set_f2 @ conds2 ) )
       => ( eval @ alpha @ X ) ) ) ).

% Cons.prems(3)
thf(fact_3_x,axiom,
    ~ ( member_a @ x @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) ) ).

% x
thf(fact_4_Cons_Oprems_I5_J,axiom,
    ( ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) )
   != nil_Pr7291147438282410198od_a_a ) ).

% Cons.prems(5)
thf(fact_5_IH_I3_J,axiom,
    ( ( alpha @ fone )
    = ( ? [X2: a] :
          ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
          & ( alpha @ X2 )
          & ! [Y: a] :
              ( ( ( member_a @ Y @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
                & ( alpha @ Y ) )
             => ( Y = X2 ) ) ) ) ) ).

% IH(3)
thf(fact_6_IH_I2_J,axiom,
    ( ( alpha @ fzero )
    = ( ~ ? [X2: a] :
            ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
            & ( alpha @ X2 ) ) ) ) ).

% IH(2)
thf(fact_7_Cons_Oprems_I4_J,axiom,
    distinct_a @ ( map_Pr4634343309551623282_a_a_a @ produc6516300539023753772od_a_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) ).

% Cons.prems(4)
thf(fact_8_encode__sum__0__1__main_Ocases,axiom,
    ! [X3: list_P1802437025701573206od_a_a] :
      ( ! [X4: a,Zero: a,One: a] :
          ( X3
         != ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ nil_Pr7291147438282410198od_a_a ) )
     => ( ! [X4: a,Zero: a,One: a,V: produc4044097585999906000od_a_a,Va: list_P1802437025701573206od_a_a] :
            ( X3
           != ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) )
       => ( X3 = nil_Pr7291147438282410198od_a_a ) ) ) ).

% encode_sum_0_1_main.cases
thf(fact_9_enc__sound_I9_J,axiom,
    ! [Alpha: a > $o,X3: a,F: f] :
      ( ( eval @ Alpha @ ( enc_impl @ X3 @ F ) )
      = ( ( Alpha @ X3 )
       => ( eval @ Alpha @ F ) ) ) ).

% enc_sound(9)
thf(fact_10_list_Oinject,axiom,
    ! [X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a,Y21: produc4044097585999906000od_a_a,Y22: list_P1802437025701573206od_a_a] :
      ( ( ( cons_P64011158483510406od_a_a @ X21 @ X22 )
        = ( cons_P64011158483510406od_a_a @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_11_list_Oinject,axiom,
    ! [X21: f,X22: list_f,Y21: f,Y22: list_f] :
      ( ( ( cons_f @ X21 @ X22 )
        = ( cons_f @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_12_list_Oinject,axiom,
    ! [X21: nat,X22: list_nat,Y21: nat,Y22: list_nat] :
      ( ( ( cons_nat @ X21 @ X22 )
        = ( cons_nat @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% list.inject
thf(fact_13_image__eqI,axiom,
    ! [B: a,F: produc4044097585999906000od_a_a > a,X3: produc4044097585999906000od_a_a,A: set_Pr5530083903271594800od_a_a] :
      ( ( B
        = ( F @ X3 ) )
     => ( ( member3071122053849602553od_a_a @ X3 @ A )
       => ( member_a @ B @ ( image_1366754389297715763_a_a_a @ F @ A ) ) ) ) ).

% image_eqI
thf(fact_14_image__eqI,axiom,
    ! [B: a,F: a > a,X3: a,A: set_a] :
      ( ( B
        = ( F @ X3 ) )
     => ( ( member_a @ X3 @ A )
       => ( member_a @ B @ ( image_a_a @ F @ A ) ) ) ) ).

% image_eqI
thf(fact_15_prod_Oinject,axiom,
    ! [X1: f,X23: list_f,Y1: f,Y2: list_f] :
      ( ( ( produc4886901243613182557list_f @ X1 @ X23 )
        = ( produc4886901243613182557list_f @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X23 = Y2 ) ) ) ).

% prod.inject
thf(fact_16_prod_Oinject,axiom,
    ! [X1: a,X23: product_prod_o_o,Y1: a,Y2: product_prod_o_o] :
      ( ( ( produc1797438980157902144od_o_o @ X1 @ X23 )
        = ( produc1797438980157902144od_o_o @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X23 = Y2 ) ) ) ).

% prod.inject
thf(fact_17_prod_Oinject,axiom,
    ! [X1: a,X23: produc4033586494401613520od_o_o,Y1: a,Y2: produc4033586494401613520od_o_o] :
      ( ( ( produc580260797871235561od_o_o @ X1 @ X23 )
        = ( produc580260797871235561od_o_o @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X23 = Y2 ) ) ) ).

% prod.inject
thf(fact_18_prod_Oinject,axiom,
    ! [X1: a,X23: product_prod_a_a,Y1: a,Y2: product_prod_a_a] :
      ( ( ( produc431845341423274048od_a_a @ X1 @ X23 )
        = ( produc431845341423274048od_a_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X23 = Y2 ) ) ) ).

% prod.inject
thf(fact_19_prod_Oinject,axiom,
    ! [X1: a,X23: a,Y1: a,Y2: a] :
      ( ( ( product_Pair_a_a @ X1 @ X23 )
        = ( product_Pair_a_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X23 = Y2 ) ) ) ).

% prod.inject
thf(fact_20_old_Oprod_Oinject,axiom,
    ! [A2: f,B: list_f,A3: f,B2: list_f] :
      ( ( ( produc4886901243613182557list_f @ A2 @ B )
        = ( produc4886901243613182557list_f @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_21_old_Oprod_Oinject,axiom,
    ! [A2: a,B: product_prod_o_o,A3: a,B2: product_prod_o_o] :
      ( ( ( produc1797438980157902144od_o_o @ A2 @ B )
        = ( produc1797438980157902144od_o_o @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_22_old_Oprod_Oinject,axiom,
    ! [A2: a,B: produc4033586494401613520od_o_o,A3: a,B2: produc4033586494401613520od_o_o] :
      ( ( ( produc580260797871235561od_o_o @ A2 @ B )
        = ( produc580260797871235561od_o_o @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_23_old_Oprod_Oinject,axiom,
    ! [A2: a,B: product_prod_a_a,A3: a,B2: product_prod_a_a] :
      ( ( ( produc431845341423274048od_a_a @ A2 @ B )
        = ( produc431845341423274048od_a_a @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_24_old_Oprod_Oinject,axiom,
    ! [A2: a,B: a,A3: a,B2: a] :
      ( ( ( product_Pair_a_a @ A2 @ B )
        = ( product_Pair_a_a @ A3 @ B2 ) )
      = ( ( A2 = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_25_prod__cases3,axiom,
    ! [Y3: produc4033586494401613520od_o_o] :
      ~ ! [A4: a,B3: $o,C: $o] :
          ( Y3
         != ( produc1797438980157902144od_o_o @ A4 @ ( product_Pair_o_o @ B3 @ C ) ) ) ).

% prod_cases3
thf(fact_26_prod__cases3,axiom,
    ! [Y3: produc628930716821598713od_o_o] :
      ~ ! [A4: a,B3: a,C: product_prod_o_o] :
          ( Y3
         != ( produc580260797871235561od_o_o @ A4 @ ( produc1797438980157902144od_o_o @ B3 @ C ) ) ) ).

% prod_cases3
thf(fact_27_prod__cases3,axiom,
    ! [Y3: produc4044097585999906000od_a_a] :
      ~ ! [A4: a,B3: a,C: a] :
          ( Y3
         != ( produc431845341423274048od_a_a @ A4 @ ( product_Pair_a_a @ B3 @ C ) ) ) ).

% prod_cases3
thf(fact_28_assms_I5_J,axiom,
    vars != nil_Pr7291147438282410198od_a_a ).

% assms(5)
thf(fact_29_assms_I4_J,axiom,
    distinct_a @ ( map_Pr4634343309551623282_a_a_a @ produc6516300539023753772od_a_a @ vars ) ).

% assms(4)
thf(fact_30_map__ident,axiom,
    ( ( map_nat_nat
      @ ^ [X2: nat] : X2 )
    = ( ^ [Xs: list_nat] : Xs ) ) ).

% map_ident
thf(fact_31_list_Omap__disc__iff,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,A2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr243255708951746116od_a_a @ F @ A2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( A2 = nil_Pr7291147438282410198od_a_a ) ) ).

% list.map_disc_iff
thf(fact_32_list_Omap__disc__iff,axiom,
    ! [F: f > produc4044097585999906000od_a_a,A2: list_f] :
      ( ( ( map_f_5881429773128424145od_a_a @ F @ A2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( A2 = nil_f ) ) ).

% list.map_disc_iff
thf(fact_33_list_Omap__disc__iff,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,A2: list_nat] :
      ( ( ( map_na2567344611816411322od_a_a @ F @ A2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( A2 = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_34_list_Omap__disc__iff,axiom,
    ! [F: produc4044097585999906000od_a_a > f,A2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr4634343309551623287_a_a_f @ F @ A2 )
        = nil_f )
      = ( A2 = nil_Pr7291147438282410198od_a_a ) ) ).

% list.map_disc_iff
thf(fact_35_list_Omap__disc__iff,axiom,
    ! [F: f > f,A2: list_f] :
      ( ( ( map_f_f @ F @ A2 )
        = nil_f )
      = ( A2 = nil_f ) ) ).

% list.map_disc_iff
thf(fact_36_list_Omap__disc__iff,axiom,
    ! [F: nat > f,A2: list_nat] :
      ( ( ( map_nat_f @ F @ A2 )
        = nil_f )
      = ( A2 = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_37_list_Omap__disc__iff,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,A2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr165270791793943900_a_nat @ F @ A2 )
        = nil_nat )
      = ( A2 = nil_Pr7291147438282410198od_a_a ) ) ).

% list.map_disc_iff
thf(fact_38_list_Omap__disc__iff,axiom,
    ! [F: f > nat,A2: list_f] :
      ( ( ( map_f_nat @ F @ A2 )
        = nil_nat )
      = ( A2 = nil_f ) ) ).

% list.map_disc_iff
thf(fact_39_list_Omap__disc__iff,axiom,
    ! [F: produc4044097585999906000od_a_a > a,A2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ A2 )
        = nil_a )
      = ( A2 = nil_Pr7291147438282410198od_a_a ) ) ).

% list.map_disc_iff
thf(fact_40_list_Omap__disc__iff,axiom,
    ! [F: nat > nat,A2: list_nat] :
      ( ( ( map_nat_nat @ F @ A2 )
        = nil_nat )
      = ( A2 = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_41_Nil__is__map__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( nil_Pr7291147438282410198od_a_a
        = ( map_Pr243255708951746116od_a_a @ F @ Xs2 ) )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% Nil_is_map_conv
thf(fact_42_Nil__is__map__conv,axiom,
    ! [F: f > produc4044097585999906000od_a_a,Xs2: list_f] :
      ( ( nil_Pr7291147438282410198od_a_a
        = ( map_f_5881429773128424145od_a_a @ F @ Xs2 ) )
      = ( Xs2 = nil_f ) ) ).

% Nil_is_map_conv
thf(fact_43_Nil__is__map__conv,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,Xs2: list_nat] :
      ( ( nil_Pr7291147438282410198od_a_a
        = ( map_na2567344611816411322od_a_a @ F @ Xs2 ) )
      = ( Xs2 = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_44_Nil__is__map__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > f,Xs2: list_P1802437025701573206od_a_a] :
      ( ( nil_f
        = ( map_Pr4634343309551623287_a_a_f @ F @ Xs2 ) )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% Nil_is_map_conv
thf(fact_45_Nil__is__map__conv,axiom,
    ! [F: f > f,Xs2: list_f] :
      ( ( nil_f
        = ( map_f_f @ F @ Xs2 ) )
      = ( Xs2 = nil_f ) ) ).

% Nil_is_map_conv
thf(fact_46_Nil__is__map__conv,axiom,
    ! [F: nat > f,Xs2: list_nat] :
      ( ( nil_f
        = ( map_nat_f @ F @ Xs2 ) )
      = ( Xs2 = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_47_Nil__is__map__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a] :
      ( ( nil_nat
        = ( map_Pr165270791793943900_a_nat @ F @ Xs2 ) )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% Nil_is_map_conv
thf(fact_48_Nil__is__map__conv,axiom,
    ! [F: f > nat,Xs2: list_f] :
      ( ( nil_nat
        = ( map_f_nat @ F @ Xs2 ) )
      = ( Xs2 = nil_f ) ) ).

% Nil_is_map_conv
thf(fact_49_Nil__is__map__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( nil_a
        = ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 ) )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% Nil_is_map_conv
thf(fact_50_Nil__is__map__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat] :
      ( ( nil_nat
        = ( map_nat_nat @ F @ Xs2 ) )
      = ( Xs2 = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_51_map__is__Nil__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr243255708951746116od_a_a @ F @ Xs2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% map_is_Nil_conv
thf(fact_52_map__is__Nil__conv,axiom,
    ! [F: f > produc4044097585999906000od_a_a,Xs2: list_f] :
      ( ( ( map_f_5881429773128424145od_a_a @ F @ Xs2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( Xs2 = nil_f ) ) ).

% map_is_Nil_conv
thf(fact_53_map__is__Nil__conv,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,Xs2: list_nat] :
      ( ( ( map_na2567344611816411322od_a_a @ F @ Xs2 )
        = nil_Pr7291147438282410198od_a_a )
      = ( Xs2 = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_54_map__is__Nil__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > f,Xs2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr4634343309551623287_a_a_f @ F @ Xs2 )
        = nil_f )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% map_is_Nil_conv
thf(fact_55_map__is__Nil__conv,axiom,
    ! [F: f > f,Xs2: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = nil_f )
      = ( Xs2 = nil_f ) ) ).

% map_is_Nil_conv
thf(fact_56_map__is__Nil__conv,axiom,
    ! [F: nat > f,Xs2: list_nat] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = nil_f )
      = ( Xs2 = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_57_map__is__Nil__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr165270791793943900_a_nat @ F @ Xs2 )
        = nil_nat )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% map_is_Nil_conv
thf(fact_58_map__is__Nil__conv,axiom,
    ! [F: f > nat,Xs2: list_f] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = nil_nat )
      = ( Xs2 = nil_f ) ) ).

% map_is_Nil_conv
thf(fact_59_map__is__Nil__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = nil_a )
      = ( Xs2 = nil_Pr7291147438282410198od_a_a ) ) ).

% map_is_Nil_conv
thf(fact_60_map__is__Nil__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = nil_nat )
      = ( Xs2 = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_61_map__eq__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat,G: nat > nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( map_nat_nat @ G @ Xs2 ) )
      = ( ! [X2: nat] :
            ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
           => ( ( F @ X2 )
              = ( G @ X2 ) ) ) ) ) ).

% map_eq_conv
thf(fact_62_map__eq__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a,G: produc4044097585999906000od_a_a > a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ G @ Xs2 ) )
      = ( ! [X2: produc4044097585999906000od_a_a] :
            ( ( member3071122053849602553od_a_a @ X2 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
           => ( ( F @ X2 )
              = ( G @ X2 ) ) ) ) ) ).

% map_eq_conv
thf(fact_63_dist,axiom,
    distinct_a @ ( map_Pr4634343309551623282_a_a_a @ produc6516300539023753772od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ).

% dist
thf(fact_64_list_Oset__map,axiom,
    ! [F: nat > nat,V2: list_nat] :
      ( ( set_nat2 @ ( map_nat_nat @ F @ V2 ) )
      = ( image_nat_nat @ F @ ( set_nat2 @ V2 ) ) ) ).

% list.set_map
thf(fact_65_list_Oset__map,axiom,
    ! [F: f > f,V2: list_f] :
      ( ( set_f2 @ ( map_f_f @ F @ V2 ) )
      = ( image_f_f @ F @ ( set_f2 @ V2 ) ) ) ).

% list.set_map
thf(fact_66_list_Oset__map,axiom,
    ! [F: produc4044097585999906000od_a_a > f,V2: list_P1802437025701573206od_a_a] :
      ( ( set_f2 @ ( map_Pr4634343309551623287_a_a_f @ F @ V2 ) )
      = ( image_1366754389297715768_a_a_f @ F @ ( set_Pr7008919305446870117od_a_a @ V2 ) ) ) ).

% list.set_map
thf(fact_67_list_Oset__map,axiom,
    ! [F: a > f,V2: list_a] :
      ( ( set_f2 @ ( map_a_f @ F @ V2 ) )
      = ( image_a_f @ F @ ( set_a2 @ V2 ) ) ) ).

% list.set_map
thf(fact_68_list_Oset__map,axiom,
    ! [F: f > produc4044097585999906000od_a_a,V2: list_f] :
      ( ( set_Pr7008919305446870117od_a_a @ ( map_f_5881429773128424145od_a_a @ F @ V2 ) )
      = ( image_2613840852874516626od_a_a @ F @ ( set_f2 @ V2 ) ) ) ).

% list.set_map
thf(fact_69_list_Oset__map,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,V2: list_P1802437025701573206od_a_a] :
      ( ( set_Pr7008919305446870117od_a_a @ ( map_Pr243255708951746116od_a_a @ F @ V2 ) )
      = ( image_4448319501361693189od_a_a @ F @ ( set_Pr7008919305446870117od_a_a @ V2 ) ) ) ).

% list.set_map
thf(fact_70_list_Oset__map,axiom,
    ! [F: a > produc4044097585999906000od_a_a,V2: list_a] :
      ( ( set_Pr7008919305446870117od_a_a @ ( map_a_7691272736327923094od_a_a @ F @ V2 ) )
      = ( image_4423683816074015575od_a_a @ F @ ( set_a2 @ V2 ) ) ) ).

% list.set_map
thf(fact_71_list_Oset__map,axiom,
    ! [F: f > a,V2: list_f] :
      ( ( set_a2 @ ( map_f_a @ F @ V2 ) )
      = ( image_f_a @ F @ ( set_f2 @ V2 ) ) ) ).

% list.set_map
thf(fact_72_list_Oset__map,axiom,
    ! [F: produc4044097585999906000od_a_a > a,V2: list_P1802437025701573206od_a_a] :
      ( ( set_a2 @ ( map_Pr4634343309551623282_a_a_a @ F @ V2 ) )
      = ( image_1366754389297715763_a_a_a @ F @ ( set_Pr7008919305446870117od_a_a @ V2 ) ) ) ).

% list.set_map
thf(fact_73_list_Oset__map,axiom,
    ! [F: a > a,V2: list_a] :
      ( ( set_a2 @ ( map_a_a @ F @ V2 ) )
      = ( image_a_a @ F @ ( set_a2 @ V2 ) ) ) ).

% list.set_map
thf(fact_74_list_Osimps_I8_J,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a] :
      ( ( map_Pr243255708951746116od_a_a @ F @ nil_Pr7291147438282410198od_a_a )
      = nil_Pr7291147438282410198od_a_a ) ).

% list.simps(8)
thf(fact_75_list_Osimps_I8_J,axiom,
    ! [F: produc4044097585999906000od_a_a > f] :
      ( ( map_Pr4634343309551623287_a_a_f @ F @ nil_Pr7291147438282410198od_a_a )
      = nil_f ) ).

% list.simps(8)
thf(fact_76_list_Osimps_I8_J,axiom,
    ! [F: produc4044097585999906000od_a_a > nat] :
      ( ( map_Pr165270791793943900_a_nat @ F @ nil_Pr7291147438282410198od_a_a )
      = nil_nat ) ).

% list.simps(8)
thf(fact_77_list_Osimps_I8_J,axiom,
    ! [F: f > produc4044097585999906000od_a_a] :
      ( ( map_f_5881429773128424145od_a_a @ F @ nil_f )
      = nil_Pr7291147438282410198od_a_a ) ).

% list.simps(8)
thf(fact_78_list_Osimps_I8_J,axiom,
    ! [F: f > f] :
      ( ( map_f_f @ F @ nil_f )
      = nil_f ) ).

% list.simps(8)
thf(fact_79_list_Osimps_I8_J,axiom,
    ! [F: f > nat] :
      ( ( map_f_nat @ F @ nil_f )
      = nil_nat ) ).

% list.simps(8)
thf(fact_80_list_Osimps_I8_J,axiom,
    ! [F: nat > produc4044097585999906000od_a_a] :
      ( ( map_na2567344611816411322od_a_a @ F @ nil_nat )
      = nil_Pr7291147438282410198od_a_a ) ).

% list.simps(8)
thf(fact_81_list_Osimps_I8_J,axiom,
    ! [F: nat > f] :
      ( ( map_nat_f @ F @ nil_nat )
      = nil_f ) ).

% list.simps(8)
thf(fact_82_list_Osimps_I8_J,axiom,
    ! [F: produc4044097585999906000od_a_a > a] :
      ( ( map_Pr4634343309551623282_a_a_a @ F @ nil_Pr7291147438282410198od_a_a )
      = nil_a ) ).

% list.simps(8)
thf(fact_83_list_Osimps_I8_J,axiom,
    ! [F: nat > nat] :
      ( ( map_nat_nat @ F @ nil_nat )
      = nil_nat ) ).

% list.simps(8)
thf(fact_84_distinct_Osimps_I1_J,axiom,
    distinct_a @ nil_a ).

% distinct.simps(1)
thf(fact_85_distinct_Osimps_I1_J,axiom,
    distin4039418177281331017od_a_a @ nil_Pr7291147438282410198od_a_a ).

% distinct.simps(1)
thf(fact_86_distinct_Osimps_I1_J,axiom,
    distinct_f @ nil_f ).

% distinct.simps(1)
thf(fact_87_distinct_Osimps_I1_J,axiom,
    distinct_nat @ nil_nat ).

% distinct.simps(1)
thf(fact_88_shuffles_Ocases,axiom,
    ! [X3: produc3323165008400776615od_a_a] :
      ( ! [Ys: list_P1802437025701573206od_a_a] :
          ( X3
         != ( produc4694146025100153495od_a_a @ nil_Pr7291147438282410198od_a_a @ Ys ) )
     => ( ! [Xs3: list_P1802437025701573206od_a_a] :
            ( X3
           != ( produc4694146025100153495od_a_a @ Xs3 @ nil_Pr7291147438282410198od_a_a ) )
       => ~ ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] :
              ( X3
             != ( produc4694146025100153495od_a_a @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) ) ) ) ) ).

% shuffles.cases
thf(fact_89_shuffles_Ocases,axiom,
    ! [X3: produc1604256039088728679list_f] :
      ( ! [Ys: list_f] :
          ( X3
         != ( produc8144748701140958423list_f @ nil_f @ Ys ) )
     => ( ! [Xs3: list_f] :
            ( X3
           != ( produc8144748701140958423list_f @ Xs3 @ nil_f ) )
       => ~ ! [X4: f,Xs3: list_f,Y4: f,Ys: list_f] :
              ( X3
             != ( produc8144748701140958423list_f @ ( cons_f @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) ) ) ) ) ).

% shuffles.cases
thf(fact_90_shuffles_Ocases,axiom,
    ! [X3: produc1828647624359046049st_nat] :
      ( ! [Ys: list_nat] :
          ( X3
         != ( produc2694037385005941721st_nat @ nil_nat @ Ys ) )
     => ( ! [Xs3: list_nat] :
            ( X3
           != ( produc2694037385005941721st_nat @ Xs3 @ nil_nat ) )
       => ~ ! [X4: nat,Xs3: list_nat,Y4: nat,Ys: list_nat] :
              ( X3
             != ( produc2694037385005941721st_nat @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) ) ) ) ) ).

% shuffles.cases
thf(fact_91_transpose_Ocases,axiom,
    ! [X3: list_l4888837856047780700od_a_a] :
      ( ( X3 != nil_li6406708984265833308od_a_a )
     => ( ! [Xss: list_l4888837856047780700od_a_a] :
            ( X3
           != ( cons_l7647087712702168844od_a_a @ nil_Pr7291147438282410198od_a_a @ Xss ) )
       => ~ ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Xss: list_l4888837856047780700od_a_a] :
              ( X3
             != ( cons_l7647087712702168844od_a_a @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_92_transpose_Ocases,axiom,
    ! [X3: list_list_f] :
      ( ( X3 != nil_list_f )
     => ( ! [Xss: list_list_f] :
            ( X3
           != ( cons_list_f @ nil_f @ Xss ) )
       => ~ ! [X4: f,Xs3: list_f,Xss: list_list_f] :
              ( X3
             != ( cons_list_f @ ( cons_f @ X4 @ Xs3 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_93_transpose_Ocases,axiom,
    ! [X3: list_list_nat] :
      ( ( X3 != nil_list_nat )
     => ( ! [Xss: list_list_nat] :
            ( X3
           != ( cons_list_nat @ nil_nat @ Xss ) )
       => ~ ! [X4: nat,Xs3: list_nat,Xss: list_list_nat] :
              ( X3
             != ( cons_list_nat @ ( cons_nat @ X4 @ Xs3 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_94_sorted__wrt_Ocases,axiom,
    ! [X3: produc6822914451196094351od_a_a] :
      ( ! [P: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o] :
          ( X3
         != ( produc9098471519666438399od_a_a @ P @ nil_Pr7291147438282410198od_a_a ) )
     => ~ ! [P: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o,X4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] :
            ( X3
           != ( produc9098471519666438399od_a_a @ P @ ( cons_P64011158483510406od_a_a @ X4 @ Ys ) ) ) ) ).

% sorted_wrt.cases
thf(fact_95_sorted__wrt_Ocases,axiom,
    ! [X3: produc5795555978541011586list_f] :
      ( ! [P: f > f > $o] :
          ( X3
         != ( produc8519404107117762418list_f @ P @ nil_f ) )
     => ~ ! [P: f > f > $o,X4: f,Ys: list_f] :
            ( X3
           != ( produc8519404107117762418list_f @ P @ ( cons_f @ X4 @ Ys ) ) ) ) ).

% sorted_wrt.cases
thf(fact_96_sorted__wrt_Ocases,axiom,
    ! [X3: produc254973753779126261st_nat] :
      ( ! [P: nat > nat > $o] :
          ( X3
         != ( produc4727192421694094319st_nat @ P @ nil_nat ) )
     => ~ ! [P: nat > nat > $o,X4: nat,Ys: list_nat] :
            ( X3
           != ( produc4727192421694094319st_nat @ P @ ( cons_nat @ X4 @ Ys ) ) ) ) ).

% sorted_wrt.cases
thf(fact_97_successively_Ocases,axiom,
    ! [X3: produc6822914451196094351od_a_a] :
      ( ! [P: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o] :
          ( X3
         != ( produc9098471519666438399od_a_a @ P @ nil_Pr7291147438282410198od_a_a ) )
     => ( ! [P: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o,X4: produc4044097585999906000od_a_a] :
            ( X3
           != ( produc9098471519666438399od_a_a @ P @ ( cons_P64011158483510406od_a_a @ X4 @ nil_Pr7291147438282410198od_a_a ) ) )
       => ~ ! [P: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a > $o,X4: produc4044097585999906000od_a_a,Y4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] :
              ( X3
             != ( produc9098471519666438399od_a_a @ P @ ( cons_P64011158483510406od_a_a @ X4 @ ( cons_P64011158483510406od_a_a @ Y4 @ Xs3 ) ) ) ) ) ) ).

% successively.cases
thf(fact_98_successively_Ocases,axiom,
    ! [X3: produc5795555978541011586list_f] :
      ( ! [P: f > f > $o] :
          ( X3
         != ( produc8519404107117762418list_f @ P @ nil_f ) )
     => ( ! [P: f > f > $o,X4: f] :
            ( X3
           != ( produc8519404107117762418list_f @ P @ ( cons_f @ X4 @ nil_f ) ) )
       => ~ ! [P: f > f > $o,X4: f,Y4: f,Xs3: list_f] :
              ( X3
             != ( produc8519404107117762418list_f @ P @ ( cons_f @ X4 @ ( cons_f @ Y4 @ Xs3 ) ) ) ) ) ) ).

% successively.cases
thf(fact_99_successively_Ocases,axiom,
    ! [X3: produc254973753779126261st_nat] :
      ( ! [P: nat > nat > $o] :
          ( X3
         != ( produc4727192421694094319st_nat @ P @ nil_nat ) )
     => ( ! [P: nat > nat > $o,X4: nat] :
            ( X3
           != ( produc4727192421694094319st_nat @ P @ ( cons_nat @ X4 @ nil_nat ) ) )
       => ~ ! [P: nat > nat > $o,X4: nat,Y4: nat,Xs3: list_nat] :
              ( X3
             != ( produc4727192421694094319st_nat @ P @ ( cons_nat @ X4 @ ( cons_nat @ Y4 @ Xs3 ) ) ) ) ) ) ).

% successively.cases
thf(fact_100_list_Omap__ident,axiom,
    ! [T: list_nat] :
      ( ( map_nat_nat
        @ ^ [X2: nat] : X2
        @ T )
      = T ) ).

% list.map_ident
thf(fact_101_sorted__list__of__set_Odistinct__if__distinct__map,axiom,
    ! [Xs2: list_nat] :
      ( ( distinct_nat @ Xs2 )
     => ( distinct_nat @ Xs2 ) ) ).

% sorted_list_of_set.distinct_if_distinct_map
thf(fact_102_distinct__singleton,axiom,
    ! [X3: a] : ( distinct_a @ ( cons_a @ X3 @ nil_a ) ) ).

% distinct_singleton
thf(fact_103_distinct__singleton,axiom,
    ! [X3: produc4044097585999906000od_a_a] : ( distin4039418177281331017od_a_a @ ( cons_P64011158483510406od_a_a @ X3 @ nil_Pr7291147438282410198od_a_a ) ) ).

% distinct_singleton
thf(fact_104_distinct__singleton,axiom,
    ! [X3: f] : ( distinct_f @ ( cons_f @ X3 @ nil_f ) ) ).

% distinct_singleton
thf(fact_105_distinct__singleton,axiom,
    ! [X3: nat] : ( distinct_nat @ ( cons_nat @ X3 @ nil_nat ) ) ).

% distinct_singleton
thf(fact_106_map__eq__Cons__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a,Y3: a,Ys2: list_a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( cons_a @ Y3 @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Xs2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_Pr4634343309551623282_a_a_a @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_107_map__eq__Cons__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr243255708951746116od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Xs2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_Pr243255708951746116od_a_a @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_108_map__eq__Cons__conv,axiom,
    ! [F: f > produc4044097585999906000od_a_a,Xs2: list_f,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_f_5881429773128424145od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_f_5881429773128424145od_a_a @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_109_map__eq__Cons__conv,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,Xs2: list_nat,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_na2567344611816411322od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_na2567344611816411322od_a_a @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_110_map__eq__Cons__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > f,Xs2: list_P1802437025701573206od_a_a,Y3: f,Ys2: list_f] :
      ( ( ( map_Pr4634343309551623287_a_a_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Xs2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_Pr4634343309551623287_a_a_f @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_111_map__eq__Cons__conv,axiom,
    ! [F: f > f,Xs2: list_f,Y3: f,Ys2: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_f_f @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_112_map__eq__Cons__conv,axiom,
    ! [F: nat > f,Xs2: list_nat,Y3: f,Ys2: list_f] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_nat_f @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_113_map__eq__Cons__conv,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a,Y3: nat,Ys2: list_nat] :
      ( ( ( map_Pr165270791793943900_a_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Xs2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_Pr165270791793943900_a_nat @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_114_map__eq__Cons__conv,axiom,
    ! [F: f > nat,Xs2: list_f,Y3: nat,Ys2: list_nat] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_f_nat @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_115_map__eq__Cons__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat,Y3: nat,Ys2: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z @ Zs ) )
            & ( ( F @ Z )
              = Y3 )
            & ( ( map_nat_nat @ F @ Zs )
              = Ys2 ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_116_Cons__eq__map__conv,axiom,
    ! [X3: a,Xs2: list_a,F: produc4044097585999906000od_a_a > a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_a @ X3 @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ F @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Ys2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_Pr4634343309551623282_a_a_a @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_117_Cons__eq__map__conv,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_Pr243255708951746116od_a_a @ F @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Ys2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_Pr243255708951746116od_a_a @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_118_Cons__eq__map__conv,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: f > produc4044097585999906000od_a_a,Ys2: list_f] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_f_5881429773128424145od_a_a @ F @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Ys2
              = ( cons_f @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_f_5881429773128424145od_a_a @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_119_Cons__eq__map__conv,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: nat > produc4044097585999906000od_a_a,Ys2: list_nat] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_na2567344611816411322od_a_a @ F @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Ys2
              = ( cons_nat @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_na2567344611816411322od_a_a @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_120_Cons__eq__map__conv,axiom,
    ! [X3: f,Xs2: list_f,F: produc4044097585999906000od_a_a > f,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_Pr4634343309551623287_a_a_f @ F @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Ys2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_Pr4634343309551623287_a_a_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_121_Cons__eq__map__conv,axiom,
    ! [X3: f,Xs2: list_f,F: f > f,Ys2: list_f] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_f_f @ F @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Ys2
              = ( cons_f @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_f_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_122_Cons__eq__map__conv,axiom,
    ! [X3: f,Xs2: list_f,F: nat > f,Ys2: list_nat] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_nat_f @ F @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Ys2
              = ( cons_nat @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_nat_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_123_Cons__eq__map__conv,axiom,
    ! [X3: nat,Xs2: list_nat,F: produc4044097585999906000od_a_a > nat,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_Pr165270791793943900_a_nat @ F @ Ys2 ) )
      = ( ? [Z: produc4044097585999906000od_a_a,Zs: list_P1802437025701573206od_a_a] :
            ( ( Ys2
              = ( cons_P64011158483510406od_a_a @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_Pr165270791793943900_a_nat @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_124_Cons__eq__map__conv,axiom,
    ! [X3: nat,Xs2: list_nat,F: f > nat,Ys2: list_f] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_f_nat @ F @ Ys2 ) )
      = ( ? [Z: f,Zs: list_f] :
            ( ( Ys2
              = ( cons_f @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_f_nat @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_125_Cons__eq__map__conv,axiom,
    ! [X3: nat,Xs2: list_nat,F: nat > nat,Ys2: list_nat] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_nat_nat @ F @ Ys2 ) )
      = ( ? [Z: nat,Zs: list_nat] :
            ( ( Ys2
              = ( cons_nat @ Z @ Zs ) )
            & ( X3
              = ( F @ Z ) )
            & ( Xs2
              = ( map_nat_nat @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_126_map__eq__Cons__D,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a,Y3: a,Ys2: list_a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( cons_a @ Y3 @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Xs2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_Pr4634343309551623282_a_a_a @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_127_map__eq__Cons__D,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr243255708951746116od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Xs2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_Pr243255708951746116od_a_a @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_128_map__eq__Cons__D,axiom,
    ! [F: f > produc4044097585999906000od_a_a,Xs2: list_f,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_f_5881429773128424145od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_f_5881429773128424145od_a_a @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_129_map__eq__Cons__D,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,Xs2: list_nat,Y3: produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_na2567344611816411322od_a_a @ F @ Xs2 )
        = ( cons_P64011158483510406od_a_a @ Y3 @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_na2567344611816411322od_a_a @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_130_map__eq__Cons__D,axiom,
    ! [F: produc4044097585999906000od_a_a > f,Xs2: list_P1802437025701573206od_a_a,Y3: f,Ys2: list_f] :
      ( ( ( map_Pr4634343309551623287_a_a_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Xs2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_Pr4634343309551623287_a_a_f @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_131_map__eq__Cons__D,axiom,
    ! [F: f > f,Xs2: list_f,Y3: f,Ys2: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_f_f @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_132_map__eq__Cons__D,axiom,
    ! [F: nat > f,Xs2: list_nat,Y3: f,Ys2: list_f] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = ( cons_f @ Y3 @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_nat_f @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_133_map__eq__Cons__D,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a,Y3: nat,Ys2: list_nat] :
      ( ( ( map_Pr165270791793943900_a_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Xs2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_Pr165270791793943900_a_nat @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_134_map__eq__Cons__D,axiom,
    ! [F: f > nat,Xs2: list_f,Y3: nat,Ys2: list_nat] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_f_nat @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_135_map__eq__Cons__D,axiom,
    ! [F: nat > nat,Xs2: list_nat,Y3: nat,Ys2: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( cons_nat @ Y3 @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( ( F @ Z2 )
            = Y3 )
          & ( ( map_nat_nat @ F @ Zs2 )
            = Ys2 ) ) ) ).

% map_eq_Cons_D
thf(fact_136_Cons__eq__map__D,axiom,
    ! [X3: a,Xs2: list_a,F: produc4044097585999906000od_a_a > a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_a @ X3 @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ F @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Ys2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_Pr4634343309551623282_a_a_a @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_137_Cons__eq__map__D,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_Pr243255708951746116od_a_a @ F @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Ys2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_Pr243255708951746116od_a_a @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_138_Cons__eq__map__D,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: f > produc4044097585999906000od_a_a,Ys2: list_f] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_f_5881429773128424145od_a_a @ F @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Ys2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_f_5881429773128424145od_a_a @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_139_Cons__eq__map__D,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a,F: nat > produc4044097585999906000od_a_a,Ys2: list_nat] :
      ( ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
        = ( map_na2567344611816411322od_a_a @ F @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Ys2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_na2567344611816411322od_a_a @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_140_Cons__eq__map__D,axiom,
    ! [X3: f,Xs2: list_f,F: produc4044097585999906000od_a_a > f,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_Pr4634343309551623287_a_a_f @ F @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Ys2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_Pr4634343309551623287_a_a_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_141_Cons__eq__map__D,axiom,
    ! [X3: f,Xs2: list_f,F: f > f,Ys2: list_f] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_f_f @ F @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Ys2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_f_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_142_Cons__eq__map__D,axiom,
    ! [X3: f,Xs2: list_f,F: nat > f,Ys2: list_nat] :
      ( ( ( cons_f @ X3 @ Xs2 )
        = ( map_nat_f @ F @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Ys2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_nat_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_143_Cons__eq__map__D,axiom,
    ! [X3: nat,Xs2: list_nat,F: produc4044097585999906000od_a_a > nat,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_Pr165270791793943900_a_nat @ F @ Ys2 ) )
     => ? [Z2: produc4044097585999906000od_a_a,Zs2: list_P1802437025701573206od_a_a] :
          ( ( Ys2
            = ( cons_P64011158483510406od_a_a @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_Pr165270791793943900_a_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_144_Cons__eq__map__D,axiom,
    ! [X3: nat,Xs2: list_nat,F: f > nat,Ys2: list_f] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_f_nat @ F @ Ys2 ) )
     => ? [Z2: f,Zs2: list_f] :
          ( ( Ys2
            = ( cons_f @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_f_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_145_Cons__eq__map__D,axiom,
    ! [X3: nat,Xs2: list_nat,F: nat > nat,Ys2: list_nat] :
      ( ( ( cons_nat @ X3 @ Xs2 )
        = ( map_nat_nat @ F @ Ys2 ) )
     => ? [Z2: nat,Zs2: list_nat] :
          ( ( Ys2
            = ( cons_nat @ Z2 @ Zs2 ) )
          & ( X3
            = ( F @ Z2 ) )
          & ( Xs2
            = ( map_nat_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_146_list_Osimps_I9_J,axiom,
    ! [F: produc4044097585999906000od_a_a > a,X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( map_Pr4634343309551623282_a_a_a @ F @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
      = ( cons_a @ ( F @ X21 ) @ ( map_Pr4634343309551623282_a_a_a @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_147_list_Osimps_I9_J,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( map_Pr243255708951746116od_a_a @ F @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
      = ( cons_P64011158483510406od_a_a @ ( F @ X21 ) @ ( map_Pr243255708951746116od_a_a @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_148_list_Osimps_I9_J,axiom,
    ! [F: produc4044097585999906000od_a_a > f,X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( map_Pr4634343309551623287_a_a_f @ F @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
      = ( cons_f @ ( F @ X21 ) @ ( map_Pr4634343309551623287_a_a_f @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_149_list_Osimps_I9_J,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( map_Pr165270791793943900_a_nat @ F @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
      = ( cons_nat @ ( F @ X21 ) @ ( map_Pr165270791793943900_a_nat @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_150_list_Osimps_I9_J,axiom,
    ! [F: f > produc4044097585999906000od_a_a,X21: f,X22: list_f] :
      ( ( map_f_5881429773128424145od_a_a @ F @ ( cons_f @ X21 @ X22 ) )
      = ( cons_P64011158483510406od_a_a @ ( F @ X21 ) @ ( map_f_5881429773128424145od_a_a @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_151_list_Osimps_I9_J,axiom,
    ! [F: f > f,X21: f,X22: list_f] :
      ( ( map_f_f @ F @ ( cons_f @ X21 @ X22 ) )
      = ( cons_f @ ( F @ X21 ) @ ( map_f_f @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_152_list_Osimps_I9_J,axiom,
    ! [F: f > nat,X21: f,X22: list_f] :
      ( ( map_f_nat @ F @ ( cons_f @ X21 @ X22 ) )
      = ( cons_nat @ ( F @ X21 ) @ ( map_f_nat @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_153_list_Osimps_I9_J,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,X21: nat,X22: list_nat] :
      ( ( map_na2567344611816411322od_a_a @ F @ ( cons_nat @ X21 @ X22 ) )
      = ( cons_P64011158483510406od_a_a @ ( F @ X21 ) @ ( map_na2567344611816411322od_a_a @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_154_list_Osimps_I9_J,axiom,
    ! [F: nat > f,X21: nat,X22: list_nat] :
      ( ( map_nat_f @ F @ ( cons_nat @ X21 @ X22 ) )
      = ( cons_f @ ( F @ X21 ) @ ( map_nat_f @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_155_list_Osimps_I9_J,axiom,
    ! [F: nat > nat,X21: nat,X22: list_nat] :
      ( ( map_nat_nat @ F @ ( cons_nat @ X21 @ X22 ) )
      = ( cons_nat @ ( F @ X21 ) @ ( map_nat_nat @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_156_ex__map__conv,axiom,
    ! [Ys2: list_nat,F: nat > nat] :
      ( ( ? [Xs: list_nat] :
            ( Ys2
            = ( map_nat_nat @ F @ Xs ) ) )
      = ( ! [X2: nat] :
            ( ( member_nat @ X2 @ ( set_nat2 @ Ys2 ) )
           => ? [Y: nat] :
                ( X2
                = ( F @ Y ) ) ) ) ) ).

% ex_map_conv
thf(fact_157_ex__map__conv,axiom,
    ! [Ys2: list_a,F: produc4044097585999906000od_a_a > a] :
      ( ( ? [Xs: list_P1802437025701573206od_a_a] :
            ( Ys2
            = ( map_Pr4634343309551623282_a_a_a @ F @ Xs ) ) )
      = ( ! [X2: a] :
            ( ( member_a @ X2 @ ( set_a2 @ Ys2 ) )
           => ? [Y: produc4044097585999906000od_a_a] :
                ( X2
                = ( F @ Y ) ) ) ) ) ).

% ex_map_conv
thf(fact_158_map__cong,axiom,
    ! [Xs2: list_nat,Ys2: list_nat,F: nat > nat,G: nat > nat] :
      ( ( Xs2 = Ys2 )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys2 ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_nat_nat @ F @ Xs2 )
          = ( map_nat_nat @ G @ Ys2 ) ) ) ) ).

% map_cong
thf(fact_159_map__cong,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,Ys2: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > a] :
      ( ( Xs2 = Ys2 )
     => ( ! [X4: produc4044097585999906000od_a_a] :
            ( ( member3071122053849602553od_a_a @ X4 @ ( set_Pr7008919305446870117od_a_a @ Ys2 ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
          = ( map_Pr4634343309551623282_a_a_a @ G @ Ys2 ) ) ) ) ).

% map_cong
thf(fact_160_mem__Collect__eq,axiom,
    ! [A2: a,P2: a > $o] :
      ( ( member_a @ A2 @ ( collect_a @ P2 ) )
      = ( P2 @ A2 ) ) ).

% mem_Collect_eq
thf(fact_161_Collect__mem__eq,axiom,
    ! [A: set_a] :
      ( ( collect_a
        @ ^ [X2: a] : ( member_a @ X2 @ A ) )
      = A ) ).

% Collect_mem_eq
thf(fact_162_map__idI,axiom,
    ! [Xs2: list_nat,F: nat > nat] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_nat_nat @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_163_map__idI,axiom,
    ! [Xs2: list_f,F: f > f] :
      ( ! [X4: f] :
          ( ( member_f @ X4 @ ( set_f2 @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_f_f @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_164_map__idI,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a] :
      ( ! [X4: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ X4 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_Pr243255708951746116od_a_a @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_165_map__idI,axiom,
    ! [Xs2: list_a,F: a > a] :
      ( ! [X4: a] :
          ( ( member_a @ X4 @ ( set_a2 @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_a_a @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_166_map__ext,axiom,
    ! [Xs2: list_nat,F: nat > nat,G: nat > nat] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_nat_nat @ F @ Xs2 )
        = ( map_nat_nat @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_167_map__ext,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > a] :
      ( ! [X4: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ X4 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_168_list_Omap__ident__strong,axiom,
    ! [T: list_nat,F: nat > nat] :
      ( ! [Z2: nat] :
          ( ( member_nat @ Z2 @ ( set_nat2 @ T ) )
         => ( ( F @ Z2 )
            = Z2 ) )
     => ( ( map_nat_nat @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_169_list_Omap__ident__strong,axiom,
    ! [T: list_f,F: f > f] :
      ( ! [Z2: f] :
          ( ( member_f @ Z2 @ ( set_f2 @ T ) )
         => ( ( F @ Z2 )
            = Z2 ) )
     => ( ( map_f_f @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_170_list_Omap__ident__strong,axiom,
    ! [T: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a] :
      ( ! [Z2: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ Z2 @ ( set_Pr7008919305446870117od_a_a @ T ) )
         => ( ( F @ Z2 )
            = Z2 ) )
     => ( ( map_Pr243255708951746116od_a_a @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_171_list_Omap__ident__strong,axiom,
    ! [T: list_a,F: a > a] :
      ( ! [Z2: a] :
          ( ( member_a @ Z2 @ ( set_a2 @ T ) )
         => ( ( F @ Z2 )
            = Z2 ) )
     => ( ( map_a_a @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_172_list_Oinj__map__strong,axiom,
    ! [X3: list_nat,Xa: list_nat,F: nat > nat,Fa: nat > nat] :
      ( ! [Z2: nat,Za: nat] :
          ( ( member_nat @ Z2 @ ( set_nat2 @ X3 ) )
         => ( ( member_nat @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z2 )
                = ( Fa @ Za ) )
             => ( Z2 = Za ) ) ) )
     => ( ( ( map_nat_nat @ F @ X3 )
          = ( map_nat_nat @ Fa @ Xa ) )
       => ( X3 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_173_list_Oinj__map__strong,axiom,
    ! [X3: list_P1802437025701573206od_a_a,Xa: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > a,Fa: produc4044097585999906000od_a_a > a] :
      ( ! [Z2: produc4044097585999906000od_a_a,Za: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ Z2 @ ( set_Pr7008919305446870117od_a_a @ X3 ) )
         => ( ( member3071122053849602553od_a_a @ Za @ ( set_Pr7008919305446870117od_a_a @ Xa ) )
           => ( ( ( F @ Z2 )
                = ( Fa @ Za ) )
             => ( Z2 = Za ) ) ) )
     => ( ( ( map_Pr4634343309551623282_a_a_a @ F @ X3 )
          = ( map_Pr4634343309551623282_a_a_a @ Fa @ Xa ) )
       => ( X3 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_174_list_Omap__cong0,axiom,
    ! [X3: list_nat,F: nat > nat,G: nat > nat] :
      ( ! [Z2: nat] :
          ( ( member_nat @ Z2 @ ( set_nat2 @ X3 ) )
         => ( ( F @ Z2 )
            = ( G @ Z2 ) ) )
     => ( ( map_nat_nat @ F @ X3 )
        = ( map_nat_nat @ G @ X3 ) ) ) ).

% list.map_cong0
thf(fact_175_list_Omap__cong0,axiom,
    ! [X3: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > a] :
      ( ! [Z2: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ Z2 @ ( set_Pr7008919305446870117od_a_a @ X3 ) )
         => ( ( F @ Z2 )
            = ( G @ Z2 ) ) )
     => ( ( map_Pr4634343309551623282_a_a_a @ F @ X3 )
        = ( map_Pr4634343309551623282_a_a_a @ G @ X3 ) ) ) ).

% list.map_cong0
thf(fact_176_list_Omap__cong,axiom,
    ! [X3: list_nat,Ya: list_nat,F: nat > nat,G: nat > nat] :
      ( ( X3 = Ya )
     => ( ! [Z2: nat] :
            ( ( member_nat @ Z2 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( map_nat_nat @ F @ X3 )
          = ( map_nat_nat @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_177_list_Omap__cong,axiom,
    ! [X3: list_P1802437025701573206od_a_a,Ya: list_P1802437025701573206od_a_a,F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > a] :
      ( ( X3 = Ya )
     => ( ! [Z2: produc4044097585999906000od_a_a] :
            ( ( member3071122053849602553od_a_a @ Z2 @ ( set_Pr7008919305446870117od_a_a @ Ya ) )
           => ( ( F @ Z2 )
              = ( G @ Z2 ) ) )
       => ( ( map_Pr4634343309551623282_a_a_a @ F @ X3 )
          = ( map_Pr4634343309551623282_a_a_a @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_178_distinct__length__2__or__more,axiom,
    ! [A2: a,B: a,Xs2: list_a] :
      ( ( distinct_a @ ( cons_a @ A2 @ ( cons_a @ B @ Xs2 ) ) )
      = ( ( A2 != B )
        & ( distinct_a @ ( cons_a @ A2 @ Xs2 ) )
        & ( distinct_a @ ( cons_a @ B @ Xs2 ) ) ) ) ).

% distinct_length_2_or_more
thf(fact_179_distinct__length__2__or__more,axiom,
    ! [A2: produc4044097585999906000od_a_a,B: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( distin4039418177281331017od_a_a @ ( cons_P64011158483510406od_a_a @ A2 @ ( cons_P64011158483510406od_a_a @ B @ Xs2 ) ) )
      = ( ( A2 != B )
        & ( distin4039418177281331017od_a_a @ ( cons_P64011158483510406od_a_a @ A2 @ Xs2 ) )
        & ( distin4039418177281331017od_a_a @ ( cons_P64011158483510406od_a_a @ B @ Xs2 ) ) ) ) ).

% distinct_length_2_or_more
thf(fact_180_distinct__length__2__or__more,axiom,
    ! [A2: f,B: f,Xs2: list_f] :
      ( ( distinct_f @ ( cons_f @ A2 @ ( cons_f @ B @ Xs2 ) ) )
      = ( ( A2 != B )
        & ( distinct_f @ ( cons_f @ A2 @ Xs2 ) )
        & ( distinct_f @ ( cons_f @ B @ Xs2 ) ) ) ) ).

% distinct_length_2_or_more
thf(fact_181_distinct__length__2__or__more,axiom,
    ! [A2: nat,B: nat,Xs2: list_nat] :
      ( ( distinct_nat @ ( cons_nat @ A2 @ ( cons_nat @ B @ Xs2 ) ) )
      = ( ( A2 != B )
        & ( distinct_nat @ ( cons_nat @ A2 @ Xs2 ) )
        & ( distinct_nat @ ( cons_nat @ B @ Xs2 ) ) ) ) ).

% distinct_length_2_or_more
thf(fact_182_list__nonempty__induct,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,P2: list_P1802437025701573206od_a_a > $o] :
      ( ( Xs2 != nil_Pr7291147438282410198od_a_a )
     => ( ! [X4: produc4044097585999906000od_a_a] : ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ nil_Pr7291147438282410198od_a_a ) )
       => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] :
              ( ( Xs3 != nil_Pr7291147438282410198od_a_a )
             => ( ( P2 @ Xs3 )
               => ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) ) ) )
         => ( P2 @ Xs2 ) ) ) ) ).

% list_nonempty_induct
thf(fact_183_list__nonempty__induct,axiom,
    ! [Xs2: list_f,P2: list_f > $o] :
      ( ( Xs2 != nil_f )
     => ( ! [X4: f] : ( P2 @ ( cons_f @ X4 @ nil_f ) )
       => ( ! [X4: f,Xs3: list_f] :
              ( ( Xs3 != nil_f )
             => ( ( P2 @ Xs3 )
               => ( P2 @ ( cons_f @ X4 @ Xs3 ) ) ) )
         => ( P2 @ Xs2 ) ) ) ) ).

% list_nonempty_induct
thf(fact_184_list__nonempty__induct,axiom,
    ! [Xs2: list_nat,P2: list_nat > $o] :
      ( ( Xs2 != nil_nat )
     => ( ! [X4: nat] : ( P2 @ ( cons_nat @ X4 @ nil_nat ) )
       => ( ! [X4: nat,Xs3: list_nat] :
              ( ( Xs3 != nil_nat )
             => ( ( P2 @ Xs3 )
               => ( P2 @ ( cons_nat @ X4 @ Xs3 ) ) ) )
         => ( P2 @ Xs2 ) ) ) ) ).

% list_nonempty_induct
thf(fact_185_list__induct2_H,axiom,
    ! [P2: list_P1802437025701573206od_a_a > list_P1802437025701573206od_a_a > $o,Xs2: list_P1802437025701573206od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( P2 @ nil_Pr7291147438282410198od_a_a @ nil_Pr7291147438282410198od_a_a )
     => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] : ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ nil_Pr7291147438282410198od_a_a )
       => ( ! [Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] : ( P2 @ nil_Pr7291147438282410198od_a_a @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) )
         => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_186_list__induct2_H,axiom,
    ! [P2: list_P1802437025701573206od_a_a > list_f > $o,Xs2: list_P1802437025701573206od_a_a,Ys2: list_f] :
      ( ( P2 @ nil_Pr7291147438282410198od_a_a @ nil_f )
     => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] : ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ nil_f )
       => ( ! [Y4: f,Ys: list_f] : ( P2 @ nil_Pr7291147438282410198od_a_a @ ( cons_f @ Y4 @ Ys ) )
         => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Y4: f,Ys: list_f] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_187_list__induct2_H,axiom,
    ! [P2: list_P1802437025701573206od_a_a > list_nat > $o,Xs2: list_P1802437025701573206od_a_a,Ys2: list_nat] :
      ( ( P2 @ nil_Pr7291147438282410198od_a_a @ nil_nat )
     => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] : ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ nil_nat )
       => ( ! [Y4: nat,Ys: list_nat] : ( P2 @ nil_Pr7291147438282410198od_a_a @ ( cons_nat @ Y4 @ Ys ) )
         => ( ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Y4: nat,Ys: list_nat] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_188_list__induct2_H,axiom,
    ! [P2: list_f > list_P1802437025701573206od_a_a > $o,Xs2: list_f,Ys2: list_P1802437025701573206od_a_a] :
      ( ( P2 @ nil_f @ nil_Pr7291147438282410198od_a_a )
     => ( ! [X4: f,Xs3: list_f] : ( P2 @ ( cons_f @ X4 @ Xs3 ) @ nil_Pr7291147438282410198od_a_a )
       => ( ! [Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] : ( P2 @ nil_f @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) )
         => ( ! [X4: f,Xs3: list_f,Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_189_list__induct2_H,axiom,
    ! [P2: list_f > list_f > $o,Xs2: list_f,Ys2: list_f] :
      ( ( P2 @ nil_f @ nil_f )
     => ( ! [X4: f,Xs3: list_f] : ( P2 @ ( cons_f @ X4 @ Xs3 ) @ nil_f )
       => ( ! [Y4: f,Ys: list_f] : ( P2 @ nil_f @ ( cons_f @ Y4 @ Ys ) )
         => ( ! [X4: f,Xs3: list_f,Y4: f,Ys: list_f] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_190_list__induct2_H,axiom,
    ! [P2: list_f > list_nat > $o,Xs2: list_f,Ys2: list_nat] :
      ( ( P2 @ nil_f @ nil_nat )
     => ( ! [X4: f,Xs3: list_f] : ( P2 @ ( cons_f @ X4 @ Xs3 ) @ nil_nat )
       => ( ! [Y4: nat,Ys: list_nat] : ( P2 @ nil_f @ ( cons_nat @ Y4 @ Ys ) )
         => ( ! [X4: f,Xs3: list_f,Y4: nat,Ys: list_nat] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_191_list__induct2_H,axiom,
    ! [P2: list_nat > list_P1802437025701573206od_a_a > $o,Xs2: list_nat,Ys2: list_P1802437025701573206od_a_a] :
      ( ( P2 @ nil_nat @ nil_Pr7291147438282410198od_a_a )
     => ( ! [X4: nat,Xs3: list_nat] : ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ nil_Pr7291147438282410198od_a_a )
       => ( ! [Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] : ( P2 @ nil_nat @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) )
         => ( ! [X4: nat,Xs3: list_nat,Y4: produc4044097585999906000od_a_a,Ys: list_P1802437025701573206od_a_a] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_P64011158483510406od_a_a @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_192_list__induct2_H,axiom,
    ! [P2: list_nat > list_f > $o,Xs2: list_nat,Ys2: list_f] :
      ( ( P2 @ nil_nat @ nil_f )
     => ( ! [X4: nat,Xs3: list_nat] : ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ nil_f )
       => ( ! [Y4: f,Ys: list_f] : ( P2 @ nil_nat @ ( cons_f @ Y4 @ Ys ) )
         => ( ! [X4: nat,Xs3: list_nat,Y4: f,Ys: list_f] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_193_list__induct2_H,axiom,
    ! [P2: list_nat > list_nat > $o,Xs2: list_nat,Ys2: list_nat] :
      ( ( P2 @ nil_nat @ nil_nat )
     => ( ! [X4: nat,Xs3: list_nat] : ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ nil_nat )
       => ( ! [Y4: nat,Ys: list_nat] : ( P2 @ nil_nat @ ( cons_nat @ Y4 @ Ys ) )
         => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys: list_nat] :
                ( ( P2 @ Xs3 @ Ys )
               => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) ) )
           => ( P2 @ Xs2 @ Ys2 ) ) ) ) ) ).

% list_induct2'
thf(fact_194_neq__Nil__conv,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a] :
      ( ( Xs2 != nil_Pr7291147438282410198od_a_a )
      = ( ? [Y: produc4044097585999906000od_a_a,Ys3: list_P1802437025701573206od_a_a] :
            ( Xs2
            = ( cons_P64011158483510406od_a_a @ Y @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_195_neq__Nil__conv,axiom,
    ! [Xs2: list_f] :
      ( ( Xs2 != nil_f )
      = ( ? [Y: f,Ys3: list_f] :
            ( Xs2
            = ( cons_f @ Y @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_196_neq__Nil__conv,axiom,
    ! [Xs2: list_nat] :
      ( ( Xs2 != nil_nat )
      = ( ? [Y: nat,Ys3: list_nat] :
            ( Xs2
            = ( cons_nat @ Y @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_197_remdups__adj_Ocases,axiom,
    ! [X3: list_P1802437025701573206od_a_a] :
      ( ( X3 != nil_Pr7291147438282410198od_a_a )
     => ( ! [X4: produc4044097585999906000od_a_a] :
            ( X3
           != ( cons_P64011158483510406od_a_a @ X4 @ nil_Pr7291147438282410198od_a_a ) )
       => ~ ! [X4: produc4044097585999906000od_a_a,Y4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a] :
              ( X3
             != ( cons_P64011158483510406od_a_a @ X4 @ ( cons_P64011158483510406od_a_a @ Y4 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_198_remdups__adj_Ocases,axiom,
    ! [X3: list_f] :
      ( ( X3 != nil_f )
     => ( ! [X4: f] :
            ( X3
           != ( cons_f @ X4 @ nil_f ) )
       => ~ ! [X4: f,Y4: f,Xs3: list_f] :
              ( X3
             != ( cons_f @ X4 @ ( cons_f @ Y4 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_199_remdups__adj_Ocases,axiom,
    ! [X3: list_nat] :
      ( ( X3 != nil_nat )
     => ( ! [X4: nat] :
            ( X3
           != ( cons_nat @ X4 @ nil_nat ) )
       => ~ ! [X4: nat,Y4: nat,Xs3: list_nat] :
              ( X3
             != ( cons_nat @ X4 @ ( cons_nat @ Y4 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_200_min__list_Ocases,axiom,
    ! [X3: list_nat] :
      ( ! [X4: nat,Xs3: list_nat] :
          ( X3
         != ( cons_nat @ X4 @ Xs3 ) )
     => ( X3 = nil_nat ) ) ).

% min_list.cases
thf(fact_201_list_Oexhaust,axiom,
    ! [Y3: list_P1802437025701573206od_a_a] :
      ( ( Y3 != nil_Pr7291147438282410198od_a_a )
     => ~ ! [X212: produc4044097585999906000od_a_a,X222: list_P1802437025701573206od_a_a] :
            ( Y3
           != ( cons_P64011158483510406od_a_a @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_202_list_Oexhaust,axiom,
    ! [Y3: list_f] :
      ( ( Y3 != nil_f )
     => ~ ! [X212: f,X222: list_f] :
            ( Y3
           != ( cons_f @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_203_list_Oexhaust,axiom,
    ! [Y3: list_nat] :
      ( ( Y3 != nil_nat )
     => ~ ! [X212: nat,X222: list_nat] :
            ( Y3
           != ( cons_nat @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_204_list_OdiscI,axiom,
    ! [List: list_P1802437025701573206od_a_a,X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( List
        = ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
     => ( List != nil_Pr7291147438282410198od_a_a ) ) ).

% list.discI
thf(fact_205_list_OdiscI,axiom,
    ! [List: list_f,X21: f,X22: list_f] :
      ( ( List
        = ( cons_f @ X21 @ X22 ) )
     => ( List != nil_f ) ) ).

% list.discI
thf(fact_206_list_OdiscI,axiom,
    ! [List: list_nat,X21: nat,X22: list_nat] :
      ( ( List
        = ( cons_nat @ X21 @ X22 ) )
     => ( List != nil_nat ) ) ).

% list.discI
thf(fact_207_list_Odistinct_I1_J,axiom,
    ! [X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( nil_Pr7291147438282410198od_a_a
     != ( cons_P64011158483510406od_a_a @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_208_list_Odistinct_I1_J,axiom,
    ! [X21: f,X22: list_f] :
      ( nil_f
     != ( cons_f @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_209_list_Odistinct_I1_J,axiom,
    ! [X21: nat,X22: list_nat] :
      ( nil_nat
     != ( cons_nat @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_210_image__set,axiom,
    ! [F: nat > nat,Xs2: list_nat] :
      ( ( image_nat_nat @ F @ ( set_nat2 @ Xs2 ) )
      = ( set_nat2 @ ( map_nat_nat @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_211_image__set,axiom,
    ! [F: f > f,Xs2: list_f] :
      ( ( image_f_f @ F @ ( set_f2 @ Xs2 ) )
      = ( set_f2 @ ( map_f_f @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_212_image__set,axiom,
    ! [F: f > produc4044097585999906000od_a_a,Xs2: list_f] :
      ( ( image_2613840852874516626od_a_a @ F @ ( set_f2 @ Xs2 ) )
      = ( set_Pr7008919305446870117od_a_a @ ( map_f_5881429773128424145od_a_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_213_image__set,axiom,
    ! [F: f > a,Xs2: list_f] :
      ( ( image_f_a @ F @ ( set_f2 @ Xs2 ) )
      = ( set_a2 @ ( map_f_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_214_image__set,axiom,
    ! [F: produc4044097585999906000od_a_a > f,Xs2: list_P1802437025701573206od_a_a] :
      ( ( image_1366754389297715768_a_a_f @ F @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
      = ( set_f2 @ ( map_Pr4634343309551623287_a_a_f @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_215_image__set,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( image_4448319501361693189od_a_a @ F @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
      = ( set_Pr7008919305446870117od_a_a @ ( map_Pr243255708951746116od_a_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_216_image__set,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( image_1366754389297715763_a_a_a @ F @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
      = ( set_a2 @ ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_217_image__set,axiom,
    ! [F: a > f,Xs2: list_a] :
      ( ( image_a_f @ F @ ( set_a2 @ Xs2 ) )
      = ( set_f2 @ ( map_a_f @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_218_image__set,axiom,
    ! [F: a > produc4044097585999906000od_a_a,Xs2: list_a] :
      ( ( image_4423683816074015575od_a_a @ F @ ( set_a2 @ Xs2 ) )
      = ( set_Pr7008919305446870117od_a_a @ ( map_a_7691272736327923094od_a_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_219_image__set,axiom,
    ! [F: a > a,Xs2: list_a] :
      ( ( image_a_a @ F @ ( set_a2 @ Xs2 ) )
      = ( set_a2 @ ( map_a_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_220_distinct_Osimps_I2_J,axiom,
    ! [X3: a,Xs2: list_a] :
      ( ( distinct_a @ ( cons_a @ X3 @ Xs2 ) )
      = ( ~ ( member_a @ X3 @ ( set_a2 @ Xs2 ) )
        & ( distinct_a @ Xs2 ) ) ) ).

% distinct.simps(2)
thf(fact_221_distinct_Osimps_I2_J,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( distin4039418177281331017od_a_a @ ( cons_P64011158483510406od_a_a @ X3 @ Xs2 ) )
      = ( ~ ( member3071122053849602553od_a_a @ X3 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
        & ( distin4039418177281331017od_a_a @ Xs2 ) ) ) ).

% distinct.simps(2)
thf(fact_222_distinct_Osimps_I2_J,axiom,
    ! [X3: f,Xs2: list_f] :
      ( ( distinct_f @ ( cons_f @ X3 @ Xs2 ) )
      = ( ~ ( member_f @ X3 @ ( set_f2 @ Xs2 ) )
        & ( distinct_f @ Xs2 ) ) ) ).

% distinct.simps(2)
thf(fact_223_distinct_Osimps_I2_J,axiom,
    ! [X3: nat,Xs2: list_nat] :
      ( ( distinct_nat @ ( cons_nat @ X3 @ Xs2 ) )
      = ( ~ ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
        & ( distinct_nat @ Xs2 ) ) ) ).

% distinct.simps(2)
thf(fact_224_Pair__inject,axiom,
    ! [A2: f,B: list_f,A3: f,B2: list_f] :
      ( ( ( produc4886901243613182557list_f @ A2 @ B )
        = ( produc4886901243613182557list_f @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_225_Pair__inject,axiom,
    ! [A2: a,B: product_prod_o_o,A3: a,B2: product_prod_o_o] :
      ( ( ( produc1797438980157902144od_o_o @ A2 @ B )
        = ( produc1797438980157902144od_o_o @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_226_Pair__inject,axiom,
    ! [A2: a,B: produc4033586494401613520od_o_o,A3: a,B2: produc4033586494401613520od_o_o] :
      ( ( ( produc580260797871235561od_o_o @ A2 @ B )
        = ( produc580260797871235561od_o_o @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_227_Pair__inject,axiom,
    ! [A2: a,B: product_prod_a_a,A3: a,B2: product_prod_a_a] :
      ( ( ( produc431845341423274048od_a_a @ A2 @ B )
        = ( produc431845341423274048od_a_a @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_228_Pair__inject,axiom,
    ! [A2: a,B: a,A3: a,B2: a] :
      ( ( ( product_Pair_a_a @ A2 @ B )
        = ( product_Pair_a_a @ A3 @ B2 ) )
     => ~ ( ( A2 = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_229_prod__cases,axiom,
    ! [P2: produc7257588745650887789list_f > $o,P3: produc7257588745650887789list_f] :
      ( ! [A4: f,B3: list_f] : ( P2 @ ( produc4886901243613182557list_f @ A4 @ B3 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_230_prod__cases,axiom,
    ! [P2: produc4033586494401613520od_o_o > $o,P3: produc4033586494401613520od_o_o] :
      ( ! [A4: a,B3: product_prod_o_o] : ( P2 @ ( produc1797438980157902144od_o_o @ A4 @ B3 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_231_prod__cases,axiom,
    ! [P2: produc628930716821598713od_o_o > $o,P3: produc628930716821598713od_o_o] :
      ( ! [A4: a,B3: produc4033586494401613520od_o_o] : ( P2 @ ( produc580260797871235561od_o_o @ A4 @ B3 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_232_prod__cases,axiom,
    ! [P2: produc4044097585999906000od_a_a > $o,P3: produc4044097585999906000od_a_a] :
      ( ! [A4: a,B3: product_prod_a_a] : ( P2 @ ( produc431845341423274048od_a_a @ A4 @ B3 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_233_prod__cases,axiom,
    ! [P2: product_prod_a_a > $o,P3: product_prod_a_a] :
      ( ! [A4: a,B3: a] : ( P2 @ ( product_Pair_a_a @ A4 @ B3 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_234_surj__pair,axiom,
    ! [P3: produc7257588745650887789list_f] :
    ? [X4: f,Y4: list_f] :
      ( P3
      = ( produc4886901243613182557list_f @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_235_surj__pair,axiom,
    ! [P3: produc4033586494401613520od_o_o] :
    ? [X4: a,Y4: product_prod_o_o] :
      ( P3
      = ( produc1797438980157902144od_o_o @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_236_surj__pair,axiom,
    ! [P3: produc628930716821598713od_o_o] :
    ? [X4: a,Y4: produc4033586494401613520od_o_o] :
      ( P3
      = ( produc580260797871235561od_o_o @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_237_surj__pair,axiom,
    ! [P3: produc4044097585999906000od_a_a] :
    ? [X4: a,Y4: product_prod_a_a] :
      ( P3
      = ( produc431845341423274048od_a_a @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_238_surj__pair,axiom,
    ! [P3: product_prod_a_a] :
    ? [X4: a,Y4: a] :
      ( P3
      = ( product_Pair_a_a @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_239_old_Oprod_Oexhaust,axiom,
    ! [Y3: produc7257588745650887789list_f] :
      ~ ! [A4: f,B3: list_f] :
          ( Y3
         != ( produc4886901243613182557list_f @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_240_old_Oprod_Oexhaust,axiom,
    ! [Y3: produc4033586494401613520od_o_o] :
      ~ ! [A4: a,B3: product_prod_o_o] :
          ( Y3
         != ( produc1797438980157902144od_o_o @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_241_old_Oprod_Oexhaust,axiom,
    ! [Y3: produc628930716821598713od_o_o] :
      ~ ! [A4: a,B3: produc4033586494401613520od_o_o] :
          ( Y3
         != ( produc580260797871235561od_o_o @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_242_old_Oprod_Oexhaust,axiom,
    ! [Y3: produc4044097585999906000od_a_a] :
      ~ ! [A4: a,B3: product_prod_a_a] :
          ( Y3
         != ( produc431845341423274048od_a_a @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_243_old_Oprod_Oexhaust,axiom,
    ! [Y3: product_prod_a_a] :
      ~ ! [A4: a,B3: a] :
          ( Y3
         != ( product_Pair_a_a @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_244_rev__image__eqI,axiom,
    ! [X3: produc4044097585999906000od_a_a,A: set_Pr5530083903271594800od_a_a,B: a,F: produc4044097585999906000od_a_a > a] :
      ( ( member3071122053849602553od_a_a @ X3 @ A )
     => ( ( B
          = ( F @ X3 ) )
       => ( member_a @ B @ ( image_1366754389297715763_a_a_a @ F @ A ) ) ) ) ).

% rev_image_eqI
thf(fact_245_rev__image__eqI,axiom,
    ! [X3: a,A: set_a,B: a,F: a > a] :
      ( ( member_a @ X3 @ A )
     => ( ( B
          = ( F @ X3 ) )
       => ( member_a @ B @ ( image_a_a @ F @ A ) ) ) ) ).

% rev_image_eqI
thf(fact_246_ball__imageD,axiom,
    ! [F: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a,P2: a > $o] :
      ( ! [X4: a] :
          ( ( member_a @ X4 @ ( image_1366754389297715763_a_a_a @ F @ A ) )
         => ( P2 @ X4 ) )
     => ! [X: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ X @ A )
         => ( P2 @ ( F @ X ) ) ) ) ).

% ball_imageD
thf(fact_247_image__cong,axiom,
    ! [M: set_Pr5530083903271594800od_a_a,N: set_Pr5530083903271594800od_a_a,F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > a] :
      ( ( M = N )
     => ( ! [X4: produc4044097585999906000od_a_a] :
            ( ( member3071122053849602553od_a_a @ X4 @ N )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( image_1366754389297715763_a_a_a @ F @ M )
          = ( image_1366754389297715763_a_a_a @ G @ N ) ) ) ) ).

% image_cong
thf(fact_248_bex__imageD,axiom,
    ! [F: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a,P2: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( image_1366754389297715763_a_a_a @ F @ A ) )
          & ( P2 @ X ) )
     => ? [X4: produc4044097585999906000od_a_a] :
          ( ( member3071122053849602553od_a_a @ X4 @ A )
          & ( P2 @ ( F @ X4 ) ) ) ) ).

% bex_imageD
thf(fact_249_image__iff,axiom,
    ! [Z3: a,F: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a] :
      ( ( member_a @ Z3 @ ( image_1366754389297715763_a_a_a @ F @ A ) )
      = ( ? [X2: produc4044097585999906000od_a_a] :
            ( ( member3071122053849602553od_a_a @ X2 @ A )
            & ( Z3
              = ( F @ X2 ) ) ) ) ) ).

% image_iff
thf(fact_250_imageI,axiom,
    ! [X3: produc4044097585999906000od_a_a,A: set_Pr5530083903271594800od_a_a,F: produc4044097585999906000od_a_a > a] :
      ( ( member3071122053849602553od_a_a @ X3 @ A )
     => ( member_a @ ( F @ X3 ) @ ( image_1366754389297715763_a_a_a @ F @ A ) ) ) ).

% imageI
thf(fact_251_imageI,axiom,
    ! [X3: a,A: set_a,F: a > a] :
      ( ( member_a @ X3 @ A )
     => ( member_a @ ( F @ X3 ) @ ( image_a_a @ F @ A ) ) ) ).

% imageI
thf(fact_252_not__Cons__self2,axiom,
    ! [X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( cons_P64011158483510406od_a_a @ X3 @ Xs2 )
     != Xs2 ) ).

% not_Cons_self2
thf(fact_253_not__Cons__self2,axiom,
    ! [X3: f,Xs2: list_f] :
      ( ( cons_f @ X3 @ Xs2 )
     != Xs2 ) ).

% not_Cons_self2
thf(fact_254_not__Cons__self2,axiom,
    ! [X3: nat,Xs2: list_nat] :
      ( ( cons_nat @ X3 @ Xs2 )
     != Xs2 ) ).

% not_Cons_self2
thf(fact_255_Compr__image__eq,axiom,
    ! [F: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a,P2: a > $o] :
      ( ( collect_a
        @ ^ [X2: a] :
            ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ F @ A ) )
            & ( P2 @ X2 ) ) )
      = ( image_1366754389297715763_a_a_a @ F
        @ ( collec5045780995415420475od_a_a
          @ ^ [X2: produc4044097585999906000od_a_a] :
              ( ( member3071122053849602553od_a_a @ X2 @ A )
              & ( P2 @ ( F @ X2 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_256_Compr__image__eq,axiom,
    ! [F: a > a,A: set_a,P2: a > $o] :
      ( ( collect_a
        @ ^ [X2: a] :
            ( ( member_a @ X2 @ ( image_a_a @ F @ A ) )
            & ( P2 @ X2 ) ) )
      = ( image_a_a @ F
        @ ( collect_a
          @ ^ [X2: a] :
              ( ( member_a @ X2 @ A )
              & ( P2 @ ( F @ X2 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_257_image__image,axiom,
    ! [F: a > a,G: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a] :
      ( ( image_a_a @ F @ ( image_1366754389297715763_a_a_a @ G @ A ) )
      = ( image_1366754389297715763_a_a_a
        @ ^ [X2: produc4044097585999906000od_a_a] : ( F @ ( G @ X2 ) )
        @ A ) ) ).

% image_image
thf(fact_258_image__image,axiom,
    ! [F: produc4044097585999906000od_a_a > a,G: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,A: set_Pr5530083903271594800od_a_a] :
      ( ( image_1366754389297715763_a_a_a @ F @ ( image_4448319501361693189od_a_a @ G @ A ) )
      = ( image_1366754389297715763_a_a_a
        @ ^ [X2: produc4044097585999906000od_a_a] : ( F @ ( G @ X2 ) )
        @ A ) ) ).

% image_image
thf(fact_259_imageE,axiom,
    ! [B: a,F: produc4044097585999906000od_a_a > a,A: set_Pr5530083903271594800od_a_a] :
      ( ( member_a @ B @ ( image_1366754389297715763_a_a_a @ F @ A ) )
     => ~ ! [X4: produc4044097585999906000od_a_a] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member3071122053849602553od_a_a @ X4 @ A ) ) ) ).

% imageE
thf(fact_260_imageE,axiom,
    ! [B: a,F: a > a,A: set_a] :
      ( ( member_a @ B @ ( image_a_a @ F @ A ) )
     => ~ ! [X4: a] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_a @ X4 @ A ) ) ) ).

% imageE
thf(fact_261_set__ConsD,axiom,
    ! [Y3: a,X3: a,Xs2: list_a] :
      ( ( member_a @ Y3 @ ( set_a2 @ ( cons_a @ X3 @ Xs2 ) ) )
     => ( ( Y3 = X3 )
        | ( member_a @ Y3 @ ( set_a2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_262_set__ConsD,axiom,
    ! [Y3: produc4044097585999906000od_a_a,X3: produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( member3071122053849602553od_a_a @ Y3 @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ X3 @ Xs2 ) ) )
     => ( ( Y3 = X3 )
        | ( member3071122053849602553od_a_a @ Y3 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_263_set__ConsD,axiom,
    ! [Y3: f,X3: f,Xs2: list_f] :
      ( ( member_f @ Y3 @ ( set_f2 @ ( cons_f @ X3 @ Xs2 ) ) )
     => ( ( Y3 = X3 )
        | ( member_f @ Y3 @ ( set_f2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_264_set__ConsD,axiom,
    ! [Y3: nat,X3: nat,Xs2: list_nat] :
      ( ( member_nat @ Y3 @ ( set_nat2 @ ( cons_nat @ X3 @ Xs2 ) ) )
     => ( ( Y3 = X3 )
        | ( member_nat @ Y3 @ ( set_nat2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_265_list_Oset__cases,axiom,
    ! [E: a,A2: list_a] :
      ( ( member_a @ E @ ( set_a2 @ A2 ) )
     => ( ! [Z22: list_a] :
            ( A2
           != ( cons_a @ E @ Z22 ) )
       => ~ ! [Z1: a,Z22: list_a] :
              ( ( A2
                = ( cons_a @ Z1 @ Z22 ) )
             => ~ ( member_a @ E @ ( set_a2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_266_list_Oset__cases,axiom,
    ! [E: produc4044097585999906000od_a_a,A2: list_P1802437025701573206od_a_a] :
      ( ( member3071122053849602553od_a_a @ E @ ( set_Pr7008919305446870117od_a_a @ A2 ) )
     => ( ! [Z22: list_P1802437025701573206od_a_a] :
            ( A2
           != ( cons_P64011158483510406od_a_a @ E @ Z22 ) )
       => ~ ! [Z1: produc4044097585999906000od_a_a,Z22: list_P1802437025701573206od_a_a] :
              ( ( A2
                = ( cons_P64011158483510406od_a_a @ Z1 @ Z22 ) )
             => ~ ( member3071122053849602553od_a_a @ E @ ( set_Pr7008919305446870117od_a_a @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_267_list_Oset__cases,axiom,
    ! [E: f,A2: list_f] :
      ( ( member_f @ E @ ( set_f2 @ A2 ) )
     => ( ! [Z22: list_f] :
            ( A2
           != ( cons_f @ E @ Z22 ) )
       => ~ ! [Z1: f,Z22: list_f] :
              ( ( A2
                = ( cons_f @ Z1 @ Z22 ) )
             => ~ ( member_f @ E @ ( set_f2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_268_list_Oset__cases,axiom,
    ! [E: nat,A2: list_nat] :
      ( ( member_nat @ E @ ( set_nat2 @ A2 ) )
     => ( ! [Z22: list_nat] :
            ( A2
           != ( cons_nat @ E @ Z22 ) )
       => ~ ! [Z1: nat,Z22: list_nat] :
              ( ( A2
                = ( cons_nat @ Z1 @ Z22 ) )
             => ~ ( member_nat @ E @ ( set_nat2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_269_list_Oset__intros_I1_J,axiom,
    ! [X21: a,X22: list_a] : ( member_a @ X21 @ ( set_a2 @ ( cons_a @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_270_list_Oset__intros_I1_J,axiom,
    ! [X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] : ( member3071122053849602553od_a_a @ X21 @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_271_list_Oset__intros_I1_J,axiom,
    ! [X21: f,X22: list_f] : ( member_f @ X21 @ ( set_f2 @ ( cons_f @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_272_list_Oset__intros_I1_J,axiom,
    ! [X21: nat,X22: list_nat] : ( member_nat @ X21 @ ( set_nat2 @ ( cons_nat @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_273_list_Oset__intros_I2_J,axiom,
    ! [Y3: a,X22: list_a,X21: a] :
      ( ( member_a @ Y3 @ ( set_a2 @ X22 ) )
     => ( member_a @ Y3 @ ( set_a2 @ ( cons_a @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_274_list_Oset__intros_I2_J,axiom,
    ! [Y3: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a,X21: produc4044097585999906000od_a_a] :
      ( ( member3071122053849602553od_a_a @ Y3 @ ( set_Pr7008919305446870117od_a_a @ X22 ) )
     => ( member3071122053849602553od_a_a @ Y3 @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_275_list_Oset__intros_I2_J,axiom,
    ! [Y3: f,X22: list_f,X21: f] :
      ( ( member_f @ Y3 @ ( set_f2 @ X22 ) )
     => ( member_f @ Y3 @ ( set_f2 @ ( cons_f @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_276_list_Oset__intros_I2_J,axiom,
    ! [Y3: nat,X22: list_nat,X21: nat] :
      ( ( member_nat @ Y3 @ ( set_nat2 @ X22 ) )
     => ( member_nat @ Y3 @ ( set_nat2 @ ( cons_nat @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_277_fst__conv,axiom,
    ! [X1: f,X23: list_f] :
      ( ( product_fst_f_list_f @ ( produc4886901243613182557list_f @ X1 @ X23 ) )
      = X1 ) ).

% fst_conv
thf(fact_278_fst__conv,axiom,
    ! [X1: a,X23: product_prod_o_o] :
      ( ( produc1798141892355912492od_o_o @ ( produc1797438980157902144od_o_o @ X1 @ X23 ) )
      = X1 ) ).

% fst_conv
thf(fact_279_fst__conv,axiom,
    ! [X1: a,X23: produc4033586494401613520od_o_o] :
      ( ( produc6085592959510199253od_o_o @ ( produc580260797871235561od_o_o @ X1 @ X23 ) )
      = X1 ) ).

% fst_conv
thf(fact_280_fst__conv,axiom,
    ! [X1: a,X23: a] :
      ( ( product_fst_a_a @ ( product_Pair_a_a @ X1 @ X23 ) )
      = X1 ) ).

% fst_conv
thf(fact_281_fst__conv,axiom,
    ! [X1: a,X23: product_prod_a_a] :
      ( ( produc6516300539023753772od_a_a @ ( produc431845341423274048od_a_a @ X1 @ X23 ) )
      = X1 ) ).

% fst_conv
thf(fact_282_fst__eqD,axiom,
    ! [X3: f,Y3: list_f,A2: f] :
      ( ( ( product_fst_f_list_f @ ( produc4886901243613182557list_f @ X3 @ Y3 ) )
        = A2 )
     => ( X3 = A2 ) ) ).

% fst_eqD
thf(fact_283_fst__eqD,axiom,
    ! [X3: a,Y3: product_prod_o_o,A2: a] :
      ( ( ( produc1798141892355912492od_o_o @ ( produc1797438980157902144od_o_o @ X3 @ Y3 ) )
        = A2 )
     => ( X3 = A2 ) ) ).

% fst_eqD
thf(fact_284_fst__eqD,axiom,
    ! [X3: a,Y3: produc4033586494401613520od_o_o,A2: a] :
      ( ( ( produc6085592959510199253od_o_o @ ( produc580260797871235561od_o_o @ X3 @ Y3 ) )
        = A2 )
     => ( X3 = A2 ) ) ).

% fst_eqD
thf(fact_285_fst__eqD,axiom,
    ! [X3: a,Y3: a,A2: a] :
      ( ( ( product_fst_a_a @ ( product_Pair_a_a @ X3 @ Y3 ) )
        = A2 )
     => ( X3 = A2 ) ) ).

% fst_eqD
thf(fact_286_fst__eqD,axiom,
    ! [X3: a,Y3: product_prod_a_a,A2: a] :
      ( ( ( produc6516300539023753772od_a_a @ ( produc431845341423274048od_a_a @ X3 @ Y3 ) )
        = A2 )
     => ( X3 = A2 ) ) ).

% fst_eqD
thf(fact_287_prod__induct4,axiom,
    ! [P2: produc628930716821598713od_o_o > $o,X3: produc628930716821598713od_o_o] :
      ( ! [A4: a,B3: a,C: $o,D: $o] : ( P2 @ ( produc580260797871235561od_o_o @ A4 @ ( produc1797438980157902144od_o_o @ B3 @ ( product_Pair_o_o @ C @ D ) ) ) )
     => ( P2 @ X3 ) ) ).

% prod_induct4
thf(fact_288_prod__induct3,axiom,
    ! [P2: produc4033586494401613520od_o_o > $o,X3: produc4033586494401613520od_o_o] :
      ( ! [A4: a,B3: $o,C: $o] : ( P2 @ ( produc1797438980157902144od_o_o @ A4 @ ( product_Pair_o_o @ B3 @ C ) ) )
     => ( P2 @ X3 ) ) ).

% prod_induct3
thf(fact_289_prod__induct3,axiom,
    ! [P2: produc628930716821598713od_o_o > $o,X3: produc628930716821598713od_o_o] :
      ( ! [A4: a,B3: a,C: product_prod_o_o] : ( P2 @ ( produc580260797871235561od_o_o @ A4 @ ( produc1797438980157902144od_o_o @ B3 @ C ) ) )
     => ( P2 @ X3 ) ) ).

% prod_induct3
thf(fact_290_prod__induct3,axiom,
    ! [P2: produc4044097585999906000od_a_a > $o,X3: produc4044097585999906000od_a_a] :
      ( ! [A4: a,B3: a,C: a] : ( P2 @ ( produc431845341423274048od_a_a @ A4 @ ( product_Pair_a_a @ B3 @ C ) ) )
     => ( P2 @ X3 ) ) ).

% prod_induct3
thf(fact_291_prod__cases4,axiom,
    ! [Y3: produc628930716821598713od_o_o] :
      ~ ! [A4: a,B3: a,C: $o,D: $o] :
          ( Y3
         != ( produc580260797871235561od_o_o @ A4 @ ( produc1797438980157902144od_o_o @ B3 @ ( product_Pair_o_o @ C @ D ) ) ) ) ).

% prod_cases4
thf(fact_292_assms_I3_J,axiom,
    ( ~ prop
   => ! [X: f] :
        ( ( member_f @ X @ ( set_f2 @ conds ) )
       => ( eval @ alpha @ X ) ) ) ).

% assms(3)
thf(fact_293_eq__key__imp__eq__value,axiom,
    ! [Xs2: list_P2466969118621037811list_f,K: f,V1: list_f,V22: list_f] :
      ( ( distinct_f @ ( map_Pr3956008058198342810st_f_f @ product_fst_f_list_f @ Xs2 ) )
     => ( ( member3461277295392922134list_f @ ( produc4886901243613182557list_f @ K @ V1 ) @ ( set_Pr1611525768661774978list_f @ Xs2 ) )
       => ( ( member3461277295392922134list_f @ ( produc4886901243613182557list_f @ K @ V22 ) @ ( set_Pr1611525768661774978list_f @ Xs2 ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_294_eq__key__imp__eq__value,axiom,
    ! [Xs2: list_P4322691845745735510od_o_o,K: a,V1: product_prod_o_o,V22: product_prod_o_o] :
      ( ( distinct_a @ ( map_Pr6946130393055991666_o_o_a @ produc1798141892355912492od_o_o @ Xs2 ) )
     => ( ( member1089989612134903033od_o_o @ ( produc1797438980157902144od_o_o @ K @ V1 ) @ ( set_Pr984843999762680677od_o_o @ Xs2 ) )
       => ( ( member1089989612134903033od_o_o @ ( produc1797438980157902144od_o_o @ K @ V22 ) @ ( set_Pr984843999762680677od_o_o @ Xs2 ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_295_eq__key__imp__eq__value,axiom,
    ! [Xs2: list_P6397469967847391999od_o_o,K: a,V1: produc4033586494401613520od_o_o,V22: produc4033586494401613520od_o_o] :
      ( ( distinct_a @ ( map_Pr1560379411928638345_o_o_a @ produc6085592959510199253od_o_o @ Xs2 ) )
     => ( ( member8623860796875751202od_o_o @ ( produc580260797871235561od_o_o @ K @ V1 ) @ ( set_Pr9104161137945596302od_o_o @ Xs2 ) )
       => ( ( member8623860796875751202od_o_o @ ( produc580260797871235561od_o_o @ K @ V22 ) @ ( set_Pr9104161137945596302od_o_o @ Xs2 ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_296_eq__key__imp__eq__value,axiom,
    ! [Xs2: list_P1396940483166286381od_a_a,K: a,V1: a,V22: a] :
      ( ( distinct_a @ ( map_Pr3897371633210041563_a_a_a @ product_fst_a_a @ Xs2 ) )
     => ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ K @ V1 ) @ ( set_Product_prod_a_a2 @ Xs2 ) )
       => ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ K @ V22 ) @ ( set_Product_prod_a_a2 @ Xs2 ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_297_eq__key__imp__eq__value,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,K: a,V1: product_prod_a_a,V22: product_prod_a_a] :
      ( ( distinct_a @ ( map_Pr4634343309551623282_a_a_a @ produc6516300539023753772od_a_a @ Xs2 ) )
     => ( ( member3071122053849602553od_a_a @ ( produc431845341423274048od_a_a @ K @ V1 ) @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
       => ( ( member3071122053849602553od_a_a @ ( produc431845341423274048od_a_a @ K @ V22 ) @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) )
         => ( V1 = V22 ) ) ) ) ).

% eq_key_imp_eq_value
thf(fact_298__092_060open_062eval__all_A_092_060alpha_062_Aconds_A_092_060and_062_A_092_060alpha_062_Afzero_A_061_A_I_092_060not_062_A_I_092_060exists_062a_092_060in_062fst_A_096_Aset_A_Ir_A_D_Arr_J_O_A_092_060alpha_062_Aa_J_J_A_092_060and_062_A_092_060alpha_062_Afone_A_061_A_I_092_060exists_062_Bx_O_Ax_A_092_060in_062_Afst_A_096_Aset_A_Ir_A_D_Arr_J_A_092_060and_062_A_092_060alpha_062_Ax_J_092_060close_062,axiom,
    ( ! [X: f] :
        ( ( member_f @ X @ ( set_f2 @ condsa ) )
       => ( eval @ alpha @ X ) )
    & ( ( alpha @ fzero )
      = ( ~ ? [X2: a] :
              ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
              & ( alpha @ X2 ) ) ) )
    & ( ( alpha @ fone )
      = ( ? [X2: a] :
            ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
            & ( alpha @ X2 )
            & ! [Y: a] :
                ( ( ( member_a @ Y @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
                  & ( alpha @ Y ) )
               => ( Y = X2 ) ) ) ) ) ) ).

% \<open>eval_all \<alpha> conds \<and> \<alpha> fzero = (\<not> (\<exists>a\<in>fst ` set (r # rr). \<alpha> a)) \<and> \<alpha> fone = (\<exists>!x. x \<in> fst ` set (r # rr) \<and> \<alpha> x)\<close>
thf(fact_299__092_060open_062_Ienc__equiv__and__not_Azero_Afzero_Ax_A_D_Aenc__equiv__ite_Aone_Ax_Afzero_Afone_A_D_Aconds_M_Azero_M_Aone_J_A_061_A_Iconds_H_M_Azero_H_M_Aone_H_J_092_060close_062,axiom,
    ( ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_equiv_and_not @ zeroa @ fzero @ x ) @ ( cons_f @ ( enc_equiv_ite @ onea @ x @ fzero @ fone ) @ condsa ) ) @ ( product_Pair_a_a @ zeroa @ onea ) )
    = ( produc3886013187752893941od_a_a @ conds2 @ ( product_Pair_a_a @ zero2 @ one2 ) ) ) ).

% \<open>(enc_equiv_and_not zero fzero x # enc_equiv_ite one x fzero fone # conds, zero, one) = (conds', zero', one')\<close>
thf(fact_300_distinct__union,axiom,
    ! [Xs2: list_a,Ys2: list_a] :
      ( ( distinct_a @ ( union_a @ Xs2 @ Ys2 ) )
      = ( distinct_a @ Ys2 ) ) ).

% distinct_union
thf(fact_301_distinct__union,axiom,
    ! [Xs2: list_nat,Ys2: list_nat] :
      ( ( distinct_nat @ ( union_nat @ Xs2 @ Ys2 ) )
      = ( distinct_nat @ Ys2 ) ) ).

% distinct_union
thf(fact_302_the__elem__set,axiom,
    ! [X3: a] :
      ( ( the_elem_a @ ( set_a2 @ ( cons_a @ X3 @ nil_a ) ) )
      = X3 ) ).

% the_elem_set
thf(fact_303_the__elem__set,axiom,
    ! [X3: produc4044097585999906000od_a_a] :
      ( ( the_el7097569866588581061od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ X3 @ nil_Pr7291147438282410198od_a_a ) ) )
      = X3 ) ).

% the_elem_set
thf(fact_304_the__elem__set,axiom,
    ! [X3: f] :
      ( ( the_elem_f @ ( set_f2 @ ( cons_f @ X3 @ nil_f ) ) )
      = X3 ) ).

% the_elem_set
thf(fact_305_the__elem__set,axiom,
    ! [X3: nat] :
      ( ( the_elem_nat @ ( set_nat2 @ ( cons_nat @ X3 @ nil_nat ) ) )
      = X3 ) ).

% the_elem_set
thf(fact_306_Cons_Oprems_I1_J,axiom,
    ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) )
    = ( produc3886013187752893941od_a_a @ conds2 @ ( product_Pair_a_a @ zero2 @ one2 ) ) ) ).

% Cons.prems(1)
thf(fact_307_eq__fst__iff,axiom,
    ! [A2: f,P3: produc7257588745650887789list_f] :
      ( ( A2
        = ( product_fst_f_list_f @ P3 ) )
      = ( ? [B4: list_f] :
            ( P3
            = ( produc4886901243613182557list_f @ A2 @ B4 ) ) ) ) ).

% eq_fst_iff
thf(fact_308_eq__fst__iff,axiom,
    ! [A2: a,P3: produc4033586494401613520od_o_o] :
      ( ( A2
        = ( produc1798141892355912492od_o_o @ P3 ) )
      = ( ? [B4: product_prod_o_o] :
            ( P3
            = ( produc1797438980157902144od_o_o @ A2 @ B4 ) ) ) ) ).

% eq_fst_iff
thf(fact_309_eq__fst__iff,axiom,
    ! [A2: a,P3: produc628930716821598713od_o_o] :
      ( ( A2
        = ( produc6085592959510199253od_o_o @ P3 ) )
      = ( ? [B4: produc4033586494401613520od_o_o] :
            ( P3
            = ( produc580260797871235561od_o_o @ A2 @ B4 ) ) ) ) ).

% eq_fst_iff
thf(fact_310_eq__fst__iff,axiom,
    ! [A2: a,P3: product_prod_a_a] :
      ( ( A2
        = ( product_fst_a_a @ P3 ) )
      = ( ? [B4: a] :
            ( P3
            = ( product_Pair_a_a @ A2 @ B4 ) ) ) ) ).

% eq_fst_iff
thf(fact_311_eq__fst__iff,axiom,
    ! [A2: a,P3: produc4044097585999906000od_a_a] :
      ( ( A2
        = ( produc6516300539023753772od_a_a @ P3 ) )
      = ( ? [B4: product_prod_a_a] :
            ( P3
            = ( produc431845341423274048od_a_a @ A2 @ B4 ) ) ) ) ).

% eq_fst_iff
thf(fact_312_fstI,axiom,
    ! [X3: produc7257588745650887789list_f,Y3: f,Z3: list_f] :
      ( ( X3
        = ( produc4886901243613182557list_f @ Y3 @ Z3 ) )
     => ( ( product_fst_f_list_f @ X3 )
        = Y3 ) ) ).

% fstI
thf(fact_313_fstI,axiom,
    ! [X3: produc4033586494401613520od_o_o,Y3: a,Z3: product_prod_o_o] :
      ( ( X3
        = ( produc1797438980157902144od_o_o @ Y3 @ Z3 ) )
     => ( ( produc1798141892355912492od_o_o @ X3 )
        = Y3 ) ) ).

% fstI
thf(fact_314_fstI,axiom,
    ! [X3: produc628930716821598713od_o_o,Y3: a,Z3: produc4033586494401613520od_o_o] :
      ( ( X3
        = ( produc580260797871235561od_o_o @ Y3 @ Z3 ) )
     => ( ( produc6085592959510199253od_o_o @ X3 )
        = Y3 ) ) ).

% fstI
thf(fact_315_fstI,axiom,
    ! [X3: product_prod_a_a,Y3: a,Z3: a] :
      ( ( X3
        = ( product_Pair_a_a @ Y3 @ Z3 ) )
     => ( ( product_fst_a_a @ X3 )
        = Y3 ) ) ).

% fstI
thf(fact_316_fstI,axiom,
    ! [X3: produc4044097585999906000od_a_a,Y3: a,Z3: product_prod_a_a] :
      ( ( X3
        = ( produc431845341423274048od_a_a @ Y3 @ Z3 ) )
     => ( ( produc6516300539023753772od_a_a @ X3 )
        = Y3 ) ) ).

% fstI
thf(fact_317_subset__eq__mset__impl_Ocases,axiom,
    ! [X3: produc3323165008400776615od_a_a] :
      ( ! [Ys: list_P1802437025701573206od_a_a] :
          ( X3
         != ( produc4694146025100153495od_a_a @ nil_Pr7291147438282410198od_a_a @ Ys ) )
     => ~ ! [X4: produc4044097585999906000od_a_a,Xs3: list_P1802437025701573206od_a_a,Ys: list_P1802437025701573206od_a_a] :
            ( X3
           != ( produc4694146025100153495od_a_a @ ( cons_P64011158483510406od_a_a @ X4 @ Xs3 ) @ Ys ) ) ) ).

% subset_eq_mset_impl.cases
thf(fact_318_subset__eq__mset__impl_Ocases,axiom,
    ! [X3: produc1604256039088728679list_f] :
      ( ! [Ys: list_f] :
          ( X3
         != ( produc8144748701140958423list_f @ nil_f @ Ys ) )
     => ~ ! [X4: f,Xs3: list_f,Ys: list_f] :
            ( X3
           != ( produc8144748701140958423list_f @ ( cons_f @ X4 @ Xs3 ) @ Ys ) ) ) ).

% subset_eq_mset_impl.cases
thf(fact_319_subset__eq__mset__impl_Ocases,axiom,
    ! [X3: produc1828647624359046049st_nat] :
      ( ! [Ys: list_nat] :
          ( X3
         != ( produc2694037385005941721st_nat @ nil_nat @ Ys ) )
     => ~ ! [X4: nat,Xs3: list_nat,Ys: list_nat] :
            ( X3
           != ( produc2694037385005941721st_nat @ ( cons_nat @ X4 @ Xs3 ) @ Ys ) ) ) ).

% subset_eq_mset_impl.cases
thf(fact_320_Cons_Oprems_I2_J,axiom,
    ! [I: nat,X3: a,Ze: a,On: a,Re: list_P1802437025701573206od_a_a] :
      ( prop
     => ( ( ord_less_nat @ I @ ( size_s6425312265427517634od_a_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
       => ( ( ( drop_P3280791721155218966od_a_a @ I @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) )
            = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X3 @ ( product_Pair_a_a @ Ze @ On ) ) @ Re ) )
         => ( ( ( alpha @ Ze )
              = ( ~ ? [X2: a] :
                      ( ( member_a @ X2 @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                      & ( alpha @ X2 ) ) ) )
            & ( ( alpha @ On )
              = ( ? [X2: a] :
                    ( ( member_a @ X2 @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                    & ( alpha @ X2 )
                    & ! [Y: a] :
                        ( ( ( member_a @ Y @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                          & ( alpha @ Y ) )
                       => ( Y = X2 ) ) ) ) ) ) ) ) ) ).

% Cons.prems(2)
thf(fact_321_insertCI,axiom,
    ! [A2: a,B5: set_a,B: a] :
      ( ( ~ ( member_a @ A2 @ B5 )
       => ( A2 = B ) )
     => ( member_a @ A2 @ ( insert_a @ B @ B5 ) ) ) ).

% insertCI
thf(fact_322_insert__iff,axiom,
    ! [A2: a,B: a,A: set_a] :
      ( ( member_a @ A2 @ ( insert_a @ B @ A ) )
      = ( ( A2 = B )
        | ( member_a @ A2 @ A ) ) ) ).

% insert_iff
thf(fact_323_insert__absorb2,axiom,
    ! [X3: a,A: set_a] :
      ( ( insert_a @ X3 @ ( insert_a @ X3 @ A ) )
      = ( insert_a @ X3 @ A ) ) ).

% insert_absorb2
thf(fact_324_image__insert,axiom,
    ! [F: produc4044097585999906000od_a_a > a,A2: produc4044097585999906000od_a_a,B5: set_Pr5530083903271594800od_a_a] :
      ( ( image_1366754389297715763_a_a_a @ F @ ( insert5959526376311583392od_a_a @ A2 @ B5 ) )
      = ( insert_a @ ( F @ A2 ) @ ( image_1366754389297715763_a_a_a @ F @ B5 ) ) ) ).

% image_insert
thf(fact_325_image__insert,axiom,
    ! [F: a > a,A2: a,B5: set_a] :
      ( ( image_a_a @ F @ ( insert_a @ A2 @ B5 ) )
      = ( insert_a @ ( F @ A2 ) @ ( image_a_a @ F @ B5 ) ) ) ).

% image_insert
thf(fact_326_insert__image,axiom,
    ! [X3: produc4044097585999906000od_a_a,A: set_Pr5530083903271594800od_a_a,F: produc4044097585999906000od_a_a > a] :
      ( ( member3071122053849602553od_a_a @ X3 @ A )
     => ( ( insert_a @ ( F @ X3 ) @ ( image_1366754389297715763_a_a_a @ F @ A ) )
        = ( image_1366754389297715763_a_a_a @ F @ A ) ) ) ).

% insert_image
thf(fact_327_insert__image,axiom,
    ! [X3: a,A: set_a,F: a > a] :
      ( ( member_a @ X3 @ A )
     => ( ( insert_a @ ( F @ X3 ) @ ( image_a_a @ F @ A ) )
        = ( image_a_a @ F @ A ) ) ) ).

% insert_image
thf(fact_328_length__map,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( size_size_list_a @ ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 ) )
      = ( size_s6425312265427517634od_a_a @ Xs2 ) ) ).

% length_map
thf(fact_329_length__map,axiom,
    ! [F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( size_s6425312265427517634od_a_a @ ( map_Pr243255708951746116od_a_a @ F @ Xs2 ) )
      = ( size_s6425312265427517634od_a_a @ Xs2 ) ) ).

% length_map
thf(fact_330_length__map,axiom,
    ! [F: nat > produc4044097585999906000od_a_a,Xs2: list_nat] :
      ( ( size_s6425312265427517634od_a_a @ ( map_na2567344611816411322od_a_a @ F @ Xs2 ) )
      = ( size_size_list_nat @ Xs2 ) ) ).

% length_map
thf(fact_331_length__map,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a] :
      ( ( size_size_list_nat @ ( map_Pr165270791793943900_a_nat @ F @ Xs2 ) )
      = ( size_s6425312265427517634od_a_a @ Xs2 ) ) ).

% length_map
thf(fact_332_length__map,axiom,
    ! [F: nat > nat,Xs2: list_nat] :
      ( ( size_size_list_nat @ ( map_nat_nat @ F @ Xs2 ) )
      = ( size_size_list_nat @ Xs2 ) ) ).

% length_map
thf(fact_333_IH_I1_J,axiom,
    ! [X: f] :
      ( ( member_f @ X @ ( set_f2 @ condsa ) )
     => ( eval @ alpha @ X ) ) ).

% IH(1)
thf(fact_334_res,axiom,
    ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ r @ rr ) )
    = ( produc3886013187752893941od_a_a @ condsa @ ( product_Pair_a_a @ fzero @ fone ) ) ) ).

% res
thf(fact_335_list_Osimps_I15_J,axiom,
    ! [X21: a,X22: list_a] :
      ( ( set_a2 @ ( cons_a @ X21 @ X22 ) )
      = ( insert_a @ X21 @ ( set_a2 @ X22 ) ) ) ).

% list.simps(15)
thf(fact_336_list_Osimps_I15_J,axiom,
    ! [X21: produc4044097585999906000od_a_a,X22: list_P1802437025701573206od_a_a] :
      ( ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ X21 @ X22 ) )
      = ( insert5959526376311583392od_a_a @ X21 @ ( set_Pr7008919305446870117od_a_a @ X22 ) ) ) ).

% list.simps(15)
thf(fact_337_list_Osimps_I15_J,axiom,
    ! [X21: f,X22: list_f] :
      ( ( set_f2 @ ( cons_f @ X21 @ X22 ) )
      = ( insert_f @ X21 @ ( set_f2 @ X22 ) ) ) ).

% list.simps(15)
thf(fact_338_list_Osimps_I15_J,axiom,
    ! [X21: nat,X22: list_nat] :
      ( ( set_nat2 @ ( cons_nat @ X21 @ X22 ) )
      = ( insert_nat @ X21 @ ( set_nat2 @ X22 ) ) ) ).

% list.simps(15)
thf(fact_339_assms_I1_J,axiom,
    ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ vars )
    = ( produc3886013187752893941od_a_a @ conds @ ( product_Pair_a_a @ zero @ one ) ) ) ).

% assms(1)
thf(fact_340__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062conds_Afzero_Afone_O_Aencode__sum__0__1__main_A_Ir_A_D_Arr_J_A_061_A_Iconds_M_Afzero_M_Afone_J_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [Conds: list_f,Fzero: a,Fone: a] :
        ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ r @ rr ) )
       != ( produc3886013187752893941od_a_a @ Conds @ ( product_Pair_a_a @ Fzero @ Fone ) ) ) ).

% \<open>\<And>thesis. (\<And>conds fzero fone. encode_sum_0_1_main (r # rr) = (conds, fzero, fone) \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_341_encode__sum__0__1__main_Osimps_I1_J,axiom,
    ! [X3: a,Zero2: a,One2: a] :
      ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X3 @ ( product_Pair_a_a @ Zero2 @ One2 ) ) @ nil_Pr7291147438282410198od_a_a ) )
      = ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_different @ Zero2 @ X3 ) @ nil_f ) @ ( product_Pair_a_a @ Zero2 @ X3 ) ) ) ).

% encode_sum_0_1_main.simps(1)
thf(fact_342_enc__sound_I7_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a,Z3: a,U: a] :
      ( ( eval @ Alpha @ ( enc_equiv_ite @ X3 @ Y3 @ Z3 @ U ) )
      = ( ( Alpha @ X3 )
        = ( ( ( Alpha @ Y3 )
           => ( Alpha @ Z3 ) )
          & ( ~ ( Alpha @ Y3 )
           => ( Alpha @ U ) ) ) ) ) ).

% enc_sound(7)
thf(fact_343_enc__sound_I6_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a,Z3: a] :
      ( ( eval @ Alpha @ ( enc_equiv_and_not @ X3 @ Y3 @ Z3 ) )
      = ( ( Alpha @ X3 )
        = ( ( Alpha @ Y3 )
          & ~ ( Alpha @ Z3 ) ) ) ) ).

% enc_sound(6)
thf(fact_344_enc__sound_I5_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a] :
      ( ( eval @ Alpha @ ( enc_different @ X3 @ Y3 ) )
      = ( ( Alpha @ X3 )
       != ( Alpha @ Y3 ) ) ) ).

% enc_sound(5)
thf(fact_345_assms_I2_J,axiom,
    ! [I: nat,X3: a,Ze: a,On: a,Re: list_P1802437025701573206od_a_a] :
      ( prop
     => ( ( ord_less_nat @ I @ ( size_s6425312265427517634od_a_a @ vars ) )
       => ( ( ( drop_P3280791721155218966od_a_a @ I @ vars )
            = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X3 @ ( product_Pair_a_a @ Ze @ On ) ) @ Re ) )
         => ( ( ( alpha @ Ze )
              = ( ~ ? [X2: a] :
                      ( ( member_a @ X2 @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                      & ( alpha @ X2 ) ) ) )
            & ( ( alpha @ On )
              = ( ? [X2: a] :
                    ( ( member_a @ X2 @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                    & ( alpha @ X2 )
                    & ! [Y: a] :
                        ( ( ( member_a @ Y @ ( insert_a @ X3 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re ) ) ) )
                          & ( alpha @ Y ) )
                       => ( Y = X2 ) ) ) ) ) ) ) ) ) ).

% assms(2)
thf(fact_346_conds_H,axiom,
    ( conds2
    = ( cons_f @ ( enc_equiv_and_not @ zeroa @ fzero @ x ) @ ( cons_f @ ( enc_equiv_ite @ onea @ x @ fzero @ fone ) @ condsa ) ) ) ).

% conds'
thf(fact_347_Cons_Ohyps,axiom,
    ! [Conds2: list_f,Zero2: a,One2: a] :
      ( ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ r @ rr ) )
        = ( produc3886013187752893941od_a_a @ Conds2 @ ( product_Pair_a_a @ Zero2 @ One2 ) ) )
     => ( ( prop
         => ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s6425312265427517634od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) )
             => ! [X4: a,Ze2: a,On2: a,Re2: list_P1802437025701573206od_a_a] :
                  ( ( ( drop_P3280791721155218966od_a_a @ I2 @ ( cons_P64011158483510406od_a_a @ r @ rr ) )
                    = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Ze2 @ On2 ) ) @ Re2 ) )
                 => ( ( ( alpha @ Ze2 )
                      = ( ~ ? [Y: a] :
                              ( ( member_a @ Y @ ( insert_a @ X4 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re2 ) ) ) )
                              & ( alpha @ Y ) ) ) )
                    & ( ( alpha @ On2 )
                      = ( ? [Y: a] :
                            ( ( member_a @ Y @ ( insert_a @ X4 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re2 ) ) ) )
                            & ( alpha @ Y )
                            & ! [Z: a] :
                                ( ( ( member_a @ Z @ ( insert_a @ X4 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ Re2 ) ) ) )
                                  & ( alpha @ Z ) )
                               => ( Z = Y ) ) ) ) ) ) ) ) )
       => ( ( ~ prop
           => ! [X4: f] :
                ( ( member_f @ X4 @ ( set_f2 @ Conds2 ) )
               => ( eval @ alpha @ X4 ) ) )
         => ( ( distinct_a @ ( map_Pr4634343309551623282_a_a_a @ produc6516300539023753772od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) )
           => ( ( ( cons_P64011158483510406od_a_a @ r @ rr )
               != nil_Pr7291147438282410198od_a_a )
             => ( ! [X: f] :
                    ( ( member_f @ X @ ( set_f2 @ Conds2 ) )
                   => ( eval @ alpha @ X ) )
                & ( ( alpha @ Zero2 )
                  = ( ~ ? [X2: a] :
                          ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
                          & ( alpha @ X2 ) ) ) )
                & ( ( alpha @ One2 )
                  = ( ? [X2: a] :
                        ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
                        & ( alpha @ X2 )
                        & ! [Y: a] :
                            ( ( ( member_a @ Y @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) )
                              & ( alpha @ Y ) )
                           => ( Y = X2 ) ) ) ) ) ) ) ) ) ) ) ).

% Cons.hyps
thf(fact_348_insertE,axiom,
    ! [A2: a,B: a,A: set_a] :
      ( ( member_a @ A2 @ ( insert_a @ B @ A ) )
     => ( ( A2 != B )
       => ( member_a @ A2 @ A ) ) ) ).

% insertE
thf(fact_349_Ball__def,axiom,
    ( ball_a
    = ( ^ [A5: set_a,P4: a > $o] :
        ! [X2: a] :
          ( ( member_a @ X2 @ A5 )
         => ( P4 @ X2 ) ) ) ) ).

% Ball_def
thf(fact_350_insertI1,axiom,
    ! [A2: a,B5: set_a] : ( member_a @ A2 @ ( insert_a @ A2 @ B5 ) ) ).

% insertI1
thf(fact_351_insertI2,axiom,
    ! [A2: a,B5: set_a,B: a] :
      ( ( member_a @ A2 @ B5 )
     => ( member_a @ A2 @ ( insert_a @ B @ B5 ) ) ) ).

% insertI2
thf(fact_352_Set_Oset__insert,axiom,
    ! [X3: a,A: set_a] :
      ( ( member_a @ X3 @ A )
     => ~ ! [B6: set_a] :
            ( ( A
              = ( insert_a @ X3 @ B6 ) )
           => ( member_a @ X3 @ B6 ) ) ) ).

% Set.set_insert
thf(fact_353_insert__ident,axiom,
    ! [X3: a,A: set_a,B5: set_a] :
      ( ~ ( member_a @ X3 @ A )
     => ( ~ ( member_a @ X3 @ B5 )
       => ( ( ( insert_a @ X3 @ A )
            = ( insert_a @ X3 @ B5 ) )
          = ( A = B5 ) ) ) ) ).

% insert_ident
thf(fact_354_insert__absorb,axiom,
    ! [A2: a,A: set_a] :
      ( ( member_a @ A2 @ A )
     => ( ( insert_a @ A2 @ A )
        = A ) ) ).

% insert_absorb
thf(fact_355_insert__eq__iff,axiom,
    ! [A2: a,A: set_a,B: a,B5: set_a] :
      ( ~ ( member_a @ A2 @ A )
     => ( ~ ( member_a @ B @ B5 )
       => ( ( ( insert_a @ A2 @ A )
            = ( insert_a @ B @ B5 ) )
          = ( ( ( A2 = B )
             => ( A = B5 ) )
            & ( ( A2 != B )
             => ? [C2: set_a] :
                  ( ( A
                    = ( insert_a @ B @ C2 ) )
                  & ~ ( member_a @ B @ C2 )
                  & ( B5
                    = ( insert_a @ A2 @ C2 ) )
                  & ~ ( member_a @ A2 @ C2 ) ) ) ) ) ) ) ).

% insert_eq_iff
thf(fact_356_length__induct,axiom,
    ! [P2: list_P1802437025701573206od_a_a > $o,Xs2: list_P1802437025701573206od_a_a] :
      ( ! [Xs3: list_P1802437025701573206od_a_a] :
          ( ! [Ys4: list_P1802437025701573206od_a_a] :
              ( ( ord_less_nat @ ( size_s6425312265427517634od_a_a @ Ys4 ) @ ( size_s6425312265427517634od_a_a @ Xs3 ) )
             => ( P2 @ Ys4 ) )
         => ( P2 @ Xs3 ) )
     => ( P2 @ Xs2 ) ) ).

% length_induct
thf(fact_357_length__induct,axiom,
    ! [P2: list_nat > $o,Xs2: list_nat] :
      ( ! [Xs3: list_nat] :
          ( ! [Ys4: list_nat] :
              ( ( ord_less_nat @ ( size_size_list_nat @ Ys4 ) @ ( size_size_list_nat @ Xs3 ) )
             => ( P2 @ Ys4 ) )
         => ( P2 @ Xs3 ) )
     => ( P2 @ Xs2 ) ) ).

% length_induct
thf(fact_358_insert__commute,axiom,
    ! [X3: a,Y3: a,A: set_a] :
      ( ( insert_a @ X3 @ ( insert_a @ Y3 @ A ) )
      = ( insert_a @ Y3 @ ( insert_a @ X3 @ A ) ) ) ).

% insert_commute
thf(fact_359_Ex__list__of__length,axiom,
    ! [N2: nat] :
    ? [Xs3: list_P1802437025701573206od_a_a] :
      ( ( size_s6425312265427517634od_a_a @ Xs3 )
      = N2 ) ).

% Ex_list_of_length
thf(fact_360_Ex__list__of__length,axiom,
    ! [N2: nat] :
    ? [Xs3: list_nat] :
      ( ( size_size_list_nat @ Xs3 )
      = N2 ) ).

% Ex_list_of_length
thf(fact_361_neq__if__length__neq,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( size_s6425312265427517634od_a_a @ Xs2 )
       != ( size_s6425312265427517634od_a_a @ Ys2 ) )
     => ( Xs2 != Ys2 ) ) ).

% neq_if_length_neq
thf(fact_362_neq__if__length__neq,axiom,
    ! [Xs2: list_nat,Ys2: list_nat] :
      ( ( ( size_size_list_nat @ Xs2 )
       != ( size_size_list_nat @ Ys2 ) )
     => ( Xs2 != Ys2 ) ) ).

% neq_if_length_neq
thf(fact_363_mk__disjoint__insert,axiom,
    ! [A2: a,A: set_a] :
      ( ( member_a @ A2 @ A )
     => ? [B6: set_a] :
          ( ( A
            = ( insert_a @ A2 @ B6 ) )
          & ~ ( member_a @ A2 @ B6 ) ) ) ).

% mk_disjoint_insert
thf(fact_364_encoder_Oencode__sum__0__1__main_Ocong,axiom,
    multis3280010013254100632in_a_f = multis3280010013254100632in_a_f ).

% encoder.encode_sum_0_1_main.cong
thf(fact_365_insert__Collect,axiom,
    ! [A2: a,P2: a > $o] :
      ( ( insert_a @ A2 @ ( collect_a @ P2 ) )
      = ( collect_a
        @ ^ [U2: a] :
            ( ( U2 != A2 )
           => ( P2 @ U2 ) ) ) ) ).

% insert_Collect
thf(fact_366_insert__compr,axiom,
    ( insert_a
    = ( ^ [A6: a,B7: set_a] :
          ( collect_a
          @ ^ [X2: a] :
              ( ( X2 = A6 )
              | ( member_a @ X2 @ B7 ) ) ) ) ) ).

% insert_compr
thf(fact_367_drop__Nil,axiom,
    ! [N2: nat] :
      ( ( drop_P3280791721155218966od_a_a @ N2 @ nil_Pr7291147438282410198od_a_a )
      = nil_Pr7291147438282410198od_a_a ) ).

% drop_Nil
thf(fact_368_drop__Nil,axiom,
    ! [N2: nat] :
      ( ( drop_f @ N2 @ nil_f )
      = nil_f ) ).

% drop_Nil
thf(fact_369_drop__Nil,axiom,
    ! [N2: nat] :
      ( ( drop_nat @ N2 @ nil_nat )
      = nil_nat ) ).

% drop_Nil
thf(fact_370_in__set__dropD,axiom,
    ! [X3: nat,N2: nat,Xs2: list_nat] :
      ( ( member_nat @ X3 @ ( set_nat2 @ ( drop_nat @ N2 @ Xs2 ) ) )
     => ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) ) ) ).

% in_set_dropD
thf(fact_371_in__set__dropD,axiom,
    ! [X3: f,N2: nat,Xs2: list_f] :
      ( ( member_f @ X3 @ ( set_f2 @ ( drop_f @ N2 @ Xs2 ) ) )
     => ( member_f @ X3 @ ( set_f2 @ Xs2 ) ) ) ).

% in_set_dropD
thf(fact_372_in__set__dropD,axiom,
    ! [X3: produc4044097585999906000od_a_a,N2: nat,Xs2: list_P1802437025701573206od_a_a] :
      ( ( member3071122053849602553od_a_a @ X3 @ ( set_Pr7008919305446870117od_a_a @ ( drop_P3280791721155218966od_a_a @ N2 @ Xs2 ) ) )
     => ( member3071122053849602553od_a_a @ X3 @ ( set_Pr7008919305446870117od_a_a @ Xs2 ) ) ) ).

% in_set_dropD
thf(fact_373_in__set__dropD,axiom,
    ! [X3: a,N2: nat,Xs2: list_a] :
      ( ( member_a @ X3 @ ( set_a2 @ ( drop_a @ N2 @ Xs2 ) ) )
     => ( member_a @ X3 @ ( set_a2 @ Xs2 ) ) ) ).

% in_set_dropD
thf(fact_374_drop__map,axiom,
    ! [N2: nat,F: produc4044097585999906000od_a_a > produc4044097585999906000od_a_a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( drop_P3280791721155218966od_a_a @ N2 @ ( map_Pr243255708951746116od_a_a @ F @ Xs2 ) )
      = ( map_Pr243255708951746116od_a_a @ F @ ( drop_P3280791721155218966od_a_a @ N2 @ Xs2 ) ) ) ).

% drop_map
thf(fact_375_drop__map,axiom,
    ! [N2: nat,F: nat > produc4044097585999906000od_a_a,Xs2: list_nat] :
      ( ( drop_P3280791721155218966od_a_a @ N2 @ ( map_na2567344611816411322od_a_a @ F @ Xs2 ) )
      = ( map_na2567344611816411322od_a_a @ F @ ( drop_nat @ N2 @ Xs2 ) ) ) ).

% drop_map
thf(fact_376_drop__map,axiom,
    ! [N2: nat,F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a] :
      ( ( drop_nat @ N2 @ ( map_Pr165270791793943900_a_nat @ F @ Xs2 ) )
      = ( map_Pr165270791793943900_a_nat @ F @ ( drop_P3280791721155218966od_a_a @ N2 @ Xs2 ) ) ) ).

% drop_map
thf(fact_377_drop__map,axiom,
    ! [N2: nat,F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a] :
      ( ( drop_a @ N2 @ ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 ) )
      = ( map_Pr4634343309551623282_a_a_a @ F @ ( drop_P3280791721155218966od_a_a @ N2 @ Xs2 ) ) ) ).

% drop_map
thf(fact_378_drop__map,axiom,
    ! [N2: nat,F: nat > nat,Xs2: list_nat] :
      ( ( drop_nat @ N2 @ ( map_nat_nat @ F @ Xs2 ) )
      = ( map_nat_nat @ F @ ( drop_nat @ N2 @ Xs2 ) ) ) ).

% drop_map
thf(fact_379_map__eq__imp__length__eq,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a,G: produc4044097585999906000od_a_a > a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ G @ Ys2 ) )
     => ( ( size_s6425312265427517634od_a_a @ Xs2 )
        = ( size_s6425312265427517634od_a_a @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_380_map__eq__imp__length__eq,axiom,
    ! [F: produc4044097585999906000od_a_a > nat,Xs2: list_P1802437025701573206od_a_a,G: nat > nat,Ys2: list_nat] :
      ( ( ( map_Pr165270791793943900_a_nat @ F @ Xs2 )
        = ( map_nat_nat @ G @ Ys2 ) )
     => ( ( size_s6425312265427517634od_a_a @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_381_map__eq__imp__length__eq,axiom,
    ! [F: produc4044097585999906000od_a_a > a,Xs2: list_P1802437025701573206od_a_a,G: nat > a,Ys2: list_nat] :
      ( ( ( map_Pr4634343309551623282_a_a_a @ F @ Xs2 )
        = ( map_nat_a @ G @ Ys2 ) )
     => ( ( size_s6425312265427517634od_a_a @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_382_map__eq__imp__length__eq,axiom,
    ! [F: nat > a,Xs2: list_nat,G: produc4044097585999906000od_a_a > a,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = ( map_Pr4634343309551623282_a_a_a @ G @ Ys2 ) )
     => ( ( size_size_list_nat @ Xs2 )
        = ( size_s6425312265427517634od_a_a @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_383_map__eq__imp__length__eq,axiom,
    ! [F: nat > nat,Xs2: list_nat,G: produc4044097585999906000od_a_a > nat,Ys2: list_P1802437025701573206od_a_a] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( map_Pr165270791793943900_a_nat @ G @ Ys2 ) )
     => ( ( size_size_list_nat @ Xs2 )
        = ( size_s6425312265427517634od_a_a @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_384_map__eq__imp__length__eq,axiom,
    ! [F: nat > nat,Xs2: list_nat,G: nat > nat,Ys2: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( map_nat_nat @ G @ Ys2 ) )
     => ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) ) ) ).

% map_eq_imp_length_eq
thf(fact_385_distinct__drop,axiom,
    ! [Xs2: list_P1802437025701573206od_a_a,I: nat] :
      ( ( distin4039418177281331017od_a_a @ Xs2 )
     => ( distin4039418177281331017od_a_a @ ( drop_P3280791721155218966od_a_a @ I @ Xs2 ) ) ) ).

% distinct_drop
thf(fact_386_distinct__drop,axiom,
    ! [Xs2: list_a,I: nat] :
      ( ( distinct_a @ Xs2 )
     => ( distinct_a @ ( drop_a @ I @ Xs2 ) ) ) ).

% distinct_drop
thf(fact_387_distinct__drop,axiom,
    ! [Xs2: list_nat,I: nat] :
      ( ( distinct_nat @ Xs2 )
     => ( distinct_nat @ ( drop_nat @ I @ Xs2 ) ) ) ).

% distinct_drop
thf(fact_388_list__induct4,axiom,
    ! [Xs2: list_f,Ys2: list_nat,Zs3: list_f,Ws: list_f,P2: list_f > list_nat > list_f > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P2 @ nil_f @ nil_nat @ nil_f @ nil_f )
           => ( ! [X4: f,Xs3: list_f,Y4: nat,Ys: list_nat,Z2: f,Zs2: list_f,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_f @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_389_list__induct4,axiom,
    ! [Xs2: list_f,Ys2: list_nat,Zs3: list_f,Ws: list_nat,P2: list_f > list_nat > list_f > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P2 @ nil_f @ nil_nat @ nil_f @ nil_nat )
           => ( ! [X4: f,Xs3: list_f,Y4: nat,Ys: list_nat,Z2: f,Zs2: list_f,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_f @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_390_list__induct4,axiom,
    ! [Xs2: list_f,Ys2: list_nat,Zs3: list_nat,Ws: list_f,P2: list_f > list_nat > list_nat > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P2 @ nil_f @ nil_nat @ nil_nat @ nil_f )
           => ( ! [X4: f,Xs3: list_f,Y4: nat,Ys: list_nat,Z2: nat,Zs2: list_nat,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_f @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_nat @ Z2 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_391_list__induct4,axiom,
    ! [Xs2: list_f,Ys2: list_nat,Zs3: list_nat,Ws: list_nat,P2: list_f > list_nat > list_nat > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P2 @ nil_f @ nil_nat @ nil_nat @ nil_nat )
           => ( ! [X4: f,Xs3: list_f,Y4: nat,Ys: list_nat,Z2: nat,Zs2: list_nat,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_f @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_f @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_nat @ Z2 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_392_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_f,Zs3: list_f,Ws: list_f,P2: list_nat > list_f > list_f > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys2 ) )
     => ( ( ( size_size_list_f @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_f @ nil_f @ nil_f )
           => ( ! [X4: nat,Xs3: list_nat,Y4: f,Ys: list_f,Z2: f,Zs2: list_f,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_f @ Ys ) )
                 => ( ( ( size_size_list_f @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_393_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_f,Zs3: list_f,Ws: list_nat,P2: list_nat > list_f > list_f > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys2 ) )
     => ( ( ( size_size_list_f @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_f @ nil_f @ nil_nat )
           => ( ! [X4: nat,Xs3: list_nat,Y4: f,Ys: list_f,Z2: f,Zs2: list_f,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_f @ Ys ) )
                 => ( ( ( size_size_list_f @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_394_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_f,Zs3: list_nat,Ws: list_f,P2: list_nat > list_f > list_nat > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys2 ) )
     => ( ( ( size_size_list_f @ Ys2 )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_f @ nil_nat @ nil_f )
           => ( ! [X4: nat,Xs3: list_nat,Y4: f,Ys: list_f,Z2: nat,Zs2: list_nat,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_f @ Ys ) )
                 => ( ( ( size_size_list_f @ Ys )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) @ ( cons_nat @ Z2 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_395_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_f,Zs3: list_nat,Ws: list_nat,P2: list_nat > list_f > list_nat > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys2 ) )
     => ( ( ( size_size_list_f @ Ys2 )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_f @ nil_nat @ nil_nat )
           => ( ! [X4: nat,Xs3: list_nat,Y4: f,Ys: list_f,Z2: nat,Zs2: list_nat,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_f @ Ys ) )
                 => ( ( ( size_size_list_f @ Ys )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_f @ Y4 @ Ys ) @ ( cons_nat @ Z2 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_396_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_nat,Zs3: list_f,Ws: list_f,P2: list_nat > list_nat > list_f > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_nat @ nil_f @ nil_f )
           => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys: list_nat,Z2: f,Zs2: list_f,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_397_list__induct4,axiom,
    ! [Xs2: list_nat,Ys2: list_nat,Zs3: list_f,Ws: list_nat,P2: list_nat > list_nat > list_f > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys2 ) )
     => ( ( ( size_size_list_nat @ Ys2 )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P2 @ nil_nat @ nil_nat @ nil_f @ nil_nat )
           => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys: list_nat,Z2: f,Zs2: list_f,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_nat @ Ys ) )
                 => ( ( ( size_size_list_nat @ Ys )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P2 @ Xs3 @ Ys @ Zs2 @ Ws2 )
                       => ( P2 @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys ) @ ( cons_f @ Z2 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P2 @ Xs2 @ Ys2 @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_398_enc__sound_I13_J,axiom,
    ! [Alpha: a > $o,Fs: list_f] :
      ( ( eval @ Alpha @ ( enc_conj @ Fs ) )
      = ( ! [X2: f] :
            ( ( member_f @ X2 @ ( set_f2 @ Fs ) )
           => ( eval @ Alpha @ X2 ) ) ) ) ).

% enc_sound(13)
thf(fact_399_encode__sum__0__1__main_Osimps_I2_J,axiom,
    ! [X3: a,Zero2: a,One2: a,V2: produc4044097585999906000od_a_a,Va2: list_P1802437025701573206od_a_a] :
      ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X3 @ ( product_Pair_a_a @ Zero2 @ One2 ) ) @ ( cons_P64011158483510406od_a_a @ V2 @ Va2 ) ) )
      = ( produc7623036209211823483od_a_a
        @ ^ [Conds3: list_f] :
            ( produc3537265031573258201od_a_a
            @ ^ [Fzero2: a,Fone2: a] : ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_equiv_and_not @ Zero2 @ Fzero2 @ X3 ) @ ( cons_f @ ( enc_equiv_ite @ One2 @ X3 @ Fzero2 @ Fone2 ) @ Conds3 ) ) @ ( product_Pair_a_a @ Zero2 @ One2 ) ) )
        @ ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ V2 @ Va2 ) ) ) ) ).

% encode_sum_0_1_main.simps(2)
thf(fact_400_encode__sum__0__1__main_Oelims,axiom,
    ! [X3: list_P1802437025701573206od_a_a,Y3: produc1836594585875604997od_a_a] :
      ( ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ X3 )
        = Y3 )
     => ( ! [X4: a,Zero: a] :
            ( ? [One: a] :
                ( X3
                = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ nil_Pr7291147438282410198od_a_a ) )
           => ( Y3
             != ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_different @ Zero @ X4 ) @ nil_f ) @ ( product_Pair_a_a @ Zero @ X4 ) ) ) )
       => ( ! [X4: a,Zero: a,One: a,V: produc4044097585999906000od_a_a,Va: list_P1802437025701573206od_a_a] :
              ( ( X3
                = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) )
             => ( Y3
               != ( produc7623036209211823483od_a_a
                  @ ^ [Conds3: list_f] :
                      ( produc3537265031573258201od_a_a
                      @ ^ [Fzero2: a,Fone2: a] : ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_equiv_and_not @ Zero @ Fzero2 @ X4 ) @ ( cons_f @ ( enc_equiv_ite @ One @ X4 @ Fzero2 @ Fone2 ) @ Conds3 ) ) @ ( product_Pair_a_a @ Zero @ One ) ) )
                  @ ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) ) ) )
         => ~ ( ( X3 = nil_Pr7291147438282410198od_a_a )
             => ( Y3 != undefi5686959434358318189od_a_a ) ) ) ) ) ).

% encode_sum_0_1_main.elims
thf(fact_401_encode__sum__0__1__main_Opelims,axiom,
    ! [X3: list_P1802437025701573206od_a_a,Y3: produc1836594585875604997od_a_a] :
      ( ( ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ X3 )
        = Y3 )
     => ( ( accp_l6008386518424361951od_a_a @ multis755825801818188855_rel_a @ X3 )
       => ( ! [X4: a,Zero: a,One: a] :
              ( ( X3
                = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ nil_Pr7291147438282410198od_a_a ) )
             => ( ( Y3
                  = ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_different @ Zero @ X4 ) @ nil_f ) @ ( product_Pair_a_a @ Zero @ X4 ) ) )
               => ~ ( accp_l6008386518424361951od_a_a @ multis755825801818188855_rel_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ nil_Pr7291147438282410198od_a_a ) ) ) )
         => ( ! [X4: a,Zero: a,One: a,V: produc4044097585999906000od_a_a,Va: list_P1802437025701573206od_a_a] :
                ( ( X3
                  = ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) )
               => ( ( Y3
                    = ( produc7623036209211823483od_a_a
                      @ ^ [Conds3: list_f] :
                          ( produc3537265031573258201od_a_a
                          @ ^ [Fzero2: a,Fone2: a] : ( produc3886013187752893941od_a_a @ ( cons_f @ ( enc_equiv_and_not @ Zero @ Fzero2 @ X4 ) @ ( cons_f @ ( enc_equiv_ite @ One @ X4 @ Fzero2 @ Fone2 ) @ Conds3 ) ) @ ( product_Pair_a_a @ Zero @ One ) ) )
                      @ ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) ) )
                 => ~ ( accp_l6008386518424361951od_a_a @ multis755825801818188855_rel_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ X4 @ ( product_Pair_a_a @ Zero @ One ) ) @ ( cons_P64011158483510406od_a_a @ V @ Va ) ) ) ) )
           => ~ ( ( X3 = nil_Pr7291147438282410198od_a_a )
               => ( ( Y3 = undefi5686959434358318189od_a_a )
                 => ~ ( accp_l6008386518424361951od_a_a @ multis755825801818188855_rel_a @ nil_Pr7291147438282410198od_a_a ) ) ) ) ) ) ) ).

% encode_sum_0_1_main.pelims
thf(fact_402_enc__sound_I12_J,axiom,
    ! [Alpha: a > $o,Xs2: list_a] :
      ( ( eval @ Alpha @ ( enc_not_all @ Xs2 ) )
      = ( ~ ! [X2: a] :
              ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
             => ( Alpha @ X2 ) ) ) ) ).

% enc_sound(12)
thf(fact_403_encodeGammaCond_Ocases,axiom,
    ! [X3: produc628930716821598713od_o_o] :
      ( ! [Gam: a,Eps: a] :
          ( X3
         != ( produc580260797871235561od_o_o @ Gam @ ( produc1797438980157902144od_o_o @ Eps @ ( product_Pair_o_o @ $true @ $true ) ) ) )
     => ( ! [Gam: a,Eps: a] :
            ( X3
           != ( produc580260797871235561od_o_o @ Gam @ ( produc1797438980157902144od_o_o @ Eps @ ( product_Pair_o_o @ $false @ $false ) ) ) )
       => ( ! [Gam: a,Eps: a] :
              ( X3
             != ( produc580260797871235561od_o_o @ Gam @ ( produc1797438980157902144od_o_o @ Eps @ ( product_Pair_o_o @ $false @ $true ) ) ) )
         => ~ ! [Gam: a,Eps: a] :
                ( X3
               != ( produc580260797871235561od_o_o @ Gam @ ( produc1797438980157902144od_o_o @ Eps @ ( product_Pair_o_o @ $true @ $false ) ) ) ) ) ) ) ).

% encodeGammaCond.cases
thf(fact_404_enc__sound_I1_J,axiom,
    ! [Alpha: a > $o] :
      ~ ( eval @ Alpha @ enc_False ) ).

% enc_sound(1)
thf(fact_405_enc__sound_I8_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a,Z3: a] :
      ( ( eval @ Alpha @ ( enc_ite @ X3 @ Y3 @ Z3 ) )
      = ( ( ( Alpha @ X3 )
         => ( Alpha @ Y3 ) )
        & ( ~ ( Alpha @ X3 )
         => ( Alpha @ Z3 ) ) ) ) ).

% enc_sound(8)
thf(fact_406_enc__sound_I3_J,axiom,
    ! [Alpha: a > $o,X3: a] :
      ( ( eval @ Alpha @ ( enc_pos @ X3 ) )
      = ( Alpha @ X3 ) ) ).

% enc_sound(3)
thf(fact_407_encode__exactly__one__def,axiom,
    ! [Vars: list_P1802437025701573206od_a_a] :
      ( ( multis6733176023901674631ne_f_a @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ Vars )
      = ( case_l2391366069430990601od_a_a @ ( produc4886901243613182557list_f @ enc_False @ nil_f )
        @ ^ [A6: produc4044097585999906000od_a_a,Vars2: list_P1802437025701573206od_a_a] :
            ( produc5031227304981719768list_f
            @ ^ [X2: a] :
                ( produc2694644985735031361list_f
                @ ^ [Xa2: a,Xb: a] :
                    ( case_l2391366069430990601od_a_a @ ( produc4886901243613182557list_f @ ( enc_pos @ X2 ) @ nil_f )
                    @ ^ [Aa: produc4044097585999906000od_a_a,List2: list_P1802437025701573206od_a_a] :
                        ( produc2342999718295319011list_f
                        @ ^ [Conds3: list_f] :
                            ( produc2694644985735031361list_f
                            @ ^ [Zero3: a,One3: a] : ( produc4886901243613182557list_f @ ( enc_ite @ X2 @ Zero3 @ One3 ) @ Conds3 ) )
                        @ ( multis3280010013254100632in_a_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P64011158483510406od_a_a @ Aa @ List2 ) ) )
                    @ Vars2 ) )
            @ A6 )
        @ Vars ) ) ).

% encode_exactly_one_def
thf(fact_408_encoder__axioms,axiom,
    multis2105231276199332433er_a_f @ eval @ enc_False @ enc_True @ enc_pos @ enc_neg @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ enc_impl @ enc_var_impl @ enc_not_and @ enc_not_all @ enc_conj ).

% encoder_axioms
thf(fact_409_enc__sound_I11_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a] :
      ( ( eval @ Alpha @ ( enc_not_and @ X3 @ Y3 ) )
      = ( ~ ( ( Alpha @ X3 )
            & ( Alpha @ Y3 ) ) ) ) ).

% enc_sound(11)
thf(fact_410_enc__sound_I10_J,axiom,
    ! [Alpha: a > $o,X3: a,Y3: a] :
      ( ( eval @ Alpha @ ( enc_var_impl @ X3 @ Y3 ) )
      = ( ( Alpha @ X3 )
       => ( Alpha @ Y3 ) ) ) ).

% enc_sound(10)
thf(fact_411_enc__sound_I4_J,axiom,
    ! [Alpha: a > $o,X3: a] :
      ( ( eval @ Alpha @ ( enc_neg @ X3 ) )
      = ( ~ ( Alpha @ X3 ) ) ) ).

% enc_sound(4)
thf(fact_412_enc__sound_I2_J,axiom,
    ! [Alpha: a > $o] : ( eval @ Alpha @ enc_True ) ).

% enc_sound(2)
thf(fact_413_encodeGammaCond_Oelims,axiom,
    ! [X3: a,Xa: a,Xb2: $o,Xc: $o,Y3: f] :
      ( ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ X3 @ Xa @ Xb2 @ Xc )
        = Y3 )
     => ( ( Xb2
         => ( Xc
           => ( Y3 != enc_True ) ) )
       => ( ( ~ Xb2
           => ( ~ Xc
             => ( Y3
               != ( enc_neg @ X3 ) ) ) )
         => ( ( ~ Xb2
             => ( Xc
               => ( Y3
                 != ( enc_var_impl @ X3 @ Xa ) ) ) )
           => ~ ( Xb2
               => ( ~ Xc
                 => ( Y3
                   != ( enc_not_and @ X3 @ Xa ) ) ) ) ) ) ) ) ).

% encodeGammaCond.elims
thf(fact_414_encodeGammaCond_Osimps_I1_J,axiom,
    ! [Gam2: a,Eps2: a] :
      ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ $true @ $true )
      = enc_True ) ).

% encodeGammaCond.simps(1)
thf(fact_415_encodeGammaCond_Osimps_I2_J,axiom,
    ! [Gam2: a,Eps2: a] :
      ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ $false @ $false )
      = ( enc_neg @ Gam2 ) ) ).

% encodeGammaCond.simps(2)
thf(fact_416_encodeGammaCond_Osimps_I3_J,axiom,
    ! [Gam2: a,Eps2: a] :
      ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ $false @ $true )
      = ( enc_var_impl @ Gam2 @ Eps2 ) ) ).

% encodeGammaCond.simps(3)
thf(fact_417_encodeGammaCond_Osimps_I4_J,axiom,
    ! [Gam2: a,Eps2: a] :
      ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ $true @ $false )
      = ( enc_not_and @ Gam2 @ Eps2 ) ) ).

% encodeGammaCond.simps(4)
thf(fact_418_encodeGammaCond_Opelims,axiom,
    ! [X3: a,Xa: a,Xb2: $o,Xc: $o,Y3: f] :
      ( ( ( multis5227817600615747794nd_f_a @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ X3 @ Xa @ Xb2 @ Xc )
        = Y3 )
     => ( ( accp_P6333248501074455554od_o_o @ multis4109485244188643131_rel_a @ ( produc580260797871235561od_o_o @ X3 @ ( produc1797438980157902144od_o_o @ Xa @ ( product_Pair_o_o @ Xb2 @ Xc ) ) ) )
       => ( ( Xb2
           => ( Xc
             => ( ( Y3 = enc_True )
               => ~ ( accp_P6333248501074455554od_o_o @ multis4109485244188643131_rel_a @ ( produc580260797871235561od_o_o @ X3 @ ( produc1797438980157902144od_o_o @ Xa @ ( product_Pair_o_o @ $true @ $true ) ) ) ) ) ) )
         => ( ( ~ Xb2
             => ( ~ Xc
               => ( ( Y3
                    = ( enc_neg @ X3 ) )
                 => ~ ( accp_P6333248501074455554od_o_o @ multis4109485244188643131_rel_a @ ( produc580260797871235561od_o_o @ X3 @ ( produc1797438980157902144od_o_o @ Xa @ ( product_Pair_o_o @ $false @ $false ) ) ) ) ) ) )
           => ( ( ~ Xb2
               => ( Xc
                 => ( ( Y3
                      = ( enc_var_impl @ X3 @ Xa ) )
                   => ~ ( accp_P6333248501074455554od_o_o @ multis4109485244188643131_rel_a @ ( produc580260797871235561od_o_o @ X3 @ ( produc1797438980157902144od_o_o @ Xa @ ( product_Pair_o_o @ $false @ $true ) ) ) ) ) ) )
             => ~ ( Xb2
                 => ( ~ Xc
                   => ( ( Y3
                        = ( enc_not_and @ X3 @ Xa ) )
                     => ~ ( accp_P6333248501074455554od_o_o @ multis4109485244188643131_rel_a @ ( produc580260797871235561od_o_o @ X3 @ ( produc1797438980157902144od_o_o @ Xa @ ( product_Pair_o_o @ $true @ $false ) ) ) ) ) ) ) ) ) ) ) ) ).

% encodeGammaCond.pelims
thf(fact_419_Suc__less__eq,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ ( suc @ M2 ) @ ( suc @ N2 ) )
      = ( ord_less_nat @ M2 @ N2 ) ) ).

% Suc_less_eq
thf(fact_420_Suc__mono,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ord_less_nat @ ( suc @ M2 ) @ ( suc @ N2 ) ) ) ).

% Suc_mono
thf(fact_421_lessI,axiom,
    ! [N2: nat] : ( ord_less_nat @ N2 @ ( suc @ N2 ) ) ).

% lessI
thf(fact_422_nat__neq__iff,axiom,
    ! [M2: nat,N2: nat] :
      ( ( M2 != N2 )
      = ( ( ord_less_nat @ M2 @ N2 )
        | ( ord_less_nat @ N2 @ M2 ) ) ) ).

% nat_neq_iff
thf(fact_423_less__not__refl,axiom,
    ! [N2: nat] :
      ~ ( ord_less_nat @ N2 @ N2 ) ).

% less_not_refl
thf(fact_424_less__not__refl2,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ N2 @ M2 )
     => ( M2 != N2 ) ) ).

% less_not_refl2
thf(fact_425_less__not__refl3,axiom,
    ! [S: nat,T: nat] :
      ( ( ord_less_nat @ S @ T )
     => ( S != T ) ) ).

% less_not_refl3
thf(fact_426_less__irrefl__nat,axiom,
    ! [N2: nat] :
      ~ ( ord_less_nat @ N2 @ N2 ) ).

% less_irrefl_nat
thf(fact_427_nat__less__induct,axiom,
    ! [P2: nat > $o,N2: nat] :
      ( ! [N3: nat] :
          ( ! [M3: nat] :
              ( ( ord_less_nat @ M3 @ N3 )
             => ( P2 @ M3 ) )
         => ( P2 @ N3 ) )
     => ( P2 @ N2 ) ) ).

% nat_less_induct
thf(fact_428_infinite__descent,axiom,
    ! [P2: nat > $o,N2: nat] :
      ( ! [N3: nat] :
          ( ~ ( P2 @ N3 )
         => ? [M3: nat] :
              ( ( ord_less_nat @ M3 @ N3 )
              & ~ ( P2 @ M3 ) ) )
     => ( P2 @ N2 ) ) ).

% infinite_descent
thf(fact_429_linorder__neqE__nat,axiom,
    ! [X3: nat,Y3: nat] :
      ( ( X3 != Y3 )
     => ( ~ ( ord_less_nat @ X3 @ Y3 )
       => ( ord_less_nat @ Y3 @ X3 ) ) ) ).

% linorder_neqE_nat
thf(fact_430_Nat_OlessE,axiom,
    ! [I: nat,K: nat] :
      ( ( ord_less_nat @ I @ K )
     => ( ( K
         != ( suc @ I ) )
       => ~ ! [J: nat] :
              ( ( ord_less_nat @ I @ J )
             => ( K
               != ( suc @ J ) ) ) ) ) ).

% Nat.lessE
thf(fact_431_Suc__lessD,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ ( suc @ M2 ) @ N2 )
     => ( ord_less_nat @ M2 @ N2 ) ) ).

% Suc_lessD
thf(fact_432_Suc__lessE,axiom,
    ! [I: nat,K: nat] :
      ( ( ord_less_nat @ ( suc @ I ) @ K )
     => ~ ! [J: nat] :
            ( ( ord_less_nat @ I @ J )
           => ( K
             != ( suc @ J ) ) ) ) ).

% Suc_lessE
thf(fact_433_Suc__lessI,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ( ( suc @ M2 )
         != N2 )
       => ( ord_less_nat @ ( suc @ M2 ) @ N2 ) ) ) ).

% Suc_lessI
thf(fact_434_less__SucE,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N2 ) )
     => ( ~ ( ord_less_nat @ M2 @ N2 )
       => ( M2 = N2 ) ) ) ).

% less_SucE
thf(fact_435_less__SucI,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ord_less_nat @ M2 @ ( suc @ N2 ) ) ) ).

% less_SucI
thf(fact_436_Ex__less__Suc,axiom,
    ! [N2: nat,P2: nat > $o] :
      ( ( ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N2 ) )
            & ( P2 @ I3 ) ) )
      = ( ( P2 @ N2 )
        | ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ N2 )
            & ( P2 @ I3 ) ) ) ) ).

% Ex_less_Suc
thf(fact_437_less__Suc__eq,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N2 ) )
      = ( ( ord_less_nat @ M2 @ N2 )
        | ( M2 = N2 ) ) ) ).

% less_Suc_eq
thf(fact_438_not__less__eq,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ~ ( ord_less_nat @ M2 @ N2 ) )
      = ( ord_less_nat @ N2 @ ( suc @ M2 ) ) ) ).

% not_less_eq
thf(fact_439_All__less__Suc,axiom,
    ! [N2: nat,P2: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N2 ) )
           => ( P2 @ I3 ) ) )
      = ( ( P2 @ N2 )
        & ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ N2 )
           => ( P2 @ I3 ) ) ) ) ).

% All_less_Suc
thf(fact_440_Suc__less__eq2,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ ( suc @ N2 ) @ M2 )
      = ( ? [M4: nat] :
            ( ( M2
              = ( suc @ M4 ) )
            & ( ord_less_nat @ N2 @ M4 ) ) ) ) ).

% Suc_less_eq2
thf(fact_441_less__antisym,axiom,
    ! [N2: nat,M2: nat] :
      ( ~ ( ord_less_nat @ N2 @ M2 )
     => ( ( ord_less_nat @ N2 @ ( suc @ M2 ) )
       => ( M2 = N2 ) ) ) ).

% less_antisym
thf(fact_442_Suc__less__SucD,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ ( suc @ M2 ) @ ( suc @ N2 ) )
     => ( ord_less_nat @ M2 @ N2 ) ) ).

% Suc_less_SucD
thf(fact_443_less__trans__Suc,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ( ord_less_nat @ J2 @ K )
       => ( ord_less_nat @ ( suc @ I ) @ K ) ) ) ).

% less_trans_Suc
thf(fact_444_less__Suc__induct,axiom,
    ! [I: nat,J2: nat,P2: nat > nat > $o] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ! [I2: nat] : ( P2 @ I2 @ ( suc @ I2 ) )
       => ( ! [I2: nat,J: nat,K2: nat] :
              ( ( ord_less_nat @ I2 @ J )
             => ( ( ord_less_nat @ J @ K2 )
               => ( ( P2 @ I2 @ J )
                 => ( ( P2 @ J @ K2 )
                   => ( P2 @ I2 @ K2 ) ) ) ) )
         => ( P2 @ I @ J2 ) ) ) ) ).

% less_Suc_induct
thf(fact_445_strict__inc__induct,axiom,
    ! [I: nat,J2: nat,P2: nat > $o] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ! [I2: nat] :
            ( ( J2
              = ( suc @ I2 ) )
           => ( P2 @ I2 ) )
       => ( ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ J2 )
             => ( ( P2 @ ( suc @ I2 ) )
               => ( P2 @ I2 ) ) )
         => ( P2 @ I ) ) ) ) ).

% strict_inc_induct
thf(fact_446_not__less__less__Suc__eq,axiom,
    ! [N2: nat,M2: nat] :
      ( ~ ( ord_less_nat @ N2 @ M2 )
     => ( ( ord_less_nat @ N2 @ ( suc @ M2 ) )
        = ( N2 = M2 ) ) ) ).

% not_less_less_Suc_eq
thf(fact_447_bot__nat__0_Onot__eq__extremum,axiom,
    ! [A2: nat] :
      ( ( A2 != zero_zero_nat )
      = ( ord_less_nat @ zero_zero_nat @ A2 ) ) ).

% bot_nat_0.not_eq_extremum
thf(fact_448_neq0__conv,axiom,
    ! [N2: nat] :
      ( ( N2 != zero_zero_nat )
      = ( ord_less_nat @ zero_zero_nat @ N2 ) ) ).

% neq0_conv
thf(fact_449_less__nat__zero__code,axiom,
    ! [N2: nat] :
      ~ ( ord_less_nat @ N2 @ zero_zero_nat ) ).

% less_nat_zero_code
thf(fact_450_zero__less__Suc,axiom,
    ! [N2: nat] : ( ord_less_nat @ zero_zero_nat @ ( suc @ N2 ) ) ).

% zero_less_Suc
thf(fact_451_less__Suc0,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ N2 @ ( suc @ zero_zero_nat ) )
      = ( N2 = zero_zero_nat ) ) ).

% less_Suc0
thf(fact_452_inf__concat__simple_Ocases,axiom,
    ! [X3: produc8199716216217303280at_nat] :
      ( ! [F2: nat > nat] :
          ( X3
         != ( produc72220940542539688at_nat @ F2 @ zero_zero_nat ) )
     => ~ ! [F2: nat > nat,N3: nat] :
            ( X3
           != ( produc72220940542539688at_nat @ F2 @ ( suc @ N3 ) ) ) ) ).

% inf_concat_simple.cases
thf(fact_453_infinite__descent0,axiom,
    ! [P2: nat > $o,N2: nat] :
      ( ( P2 @ zero_zero_nat )
     => ( ! [N3: nat] :
            ( ( ord_less_nat @ zero_zero_nat @ N3 )
           => ( ~ ( P2 @ N3 )
             => ? [M3: nat] :
                  ( ( ord_less_nat @ M3 @ N3 )
                  & ~ ( P2 @ M3 ) ) ) )
       => ( P2 @ N2 ) ) ) ).

% infinite_descent0
thf(fact_454_gr__implies__not0,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( N2 != zero_zero_nat ) ) ).

% gr_implies_not0
thf(fact_455_less__zeroE,axiom,
    ! [N2: nat] :
      ~ ( ord_less_nat @ N2 @ zero_zero_nat ) ).

% less_zeroE
thf(fact_456_not__less0,axiom,
    ! [N2: nat] :
      ~ ( ord_less_nat @ N2 @ zero_zero_nat ) ).

% not_less0
thf(fact_457_not__gr0,axiom,
    ! [N2: nat] :
      ( ( ~ ( ord_less_nat @ zero_zero_nat @ N2 ) )
      = ( N2 = zero_zero_nat ) ) ).

% not_gr0
thf(fact_458_gr0I,axiom,
    ! [N2: nat] :
      ( ( N2 != zero_zero_nat )
     => ( ord_less_nat @ zero_zero_nat @ N2 ) ) ).

% gr0I
thf(fact_459_bot__nat__0_Oextremum__strict,axiom,
    ! [A2: nat] :
      ~ ( ord_less_nat @ A2 @ zero_zero_nat ) ).

% bot_nat_0.extremum_strict
thf(fact_460_less__Suc__eq__0__disj,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N2 ) )
      = ( ( M2 = zero_zero_nat )
        | ? [J3: nat] :
            ( ( M2
              = ( suc @ J3 ) )
            & ( ord_less_nat @ J3 @ N2 ) ) ) ) ).

% less_Suc_eq_0_disj
thf(fact_461_gr0__implies__Suc,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ? [M5: nat] :
          ( N2
          = ( suc @ M5 ) ) ) ).

% gr0_implies_Suc
thf(fact_462_All__less__Suc2,axiom,
    ! [N2: nat,P2: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N2 ) )
           => ( P2 @ I3 ) ) )
      = ( ( P2 @ zero_zero_nat )
        & ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ N2 )
           => ( P2 @ ( suc @ I3 ) ) ) ) ) ).

% All_less_Suc2
thf(fact_463_gr0__conv__Suc,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
      = ( ? [M6: nat] :
            ( N2
            = ( suc @ M6 ) ) ) ) ).

% gr0_conv_Suc
thf(fact_464_Ex__less__Suc2,axiom,
    ! [N2: nat,P2: nat > $o] :
      ( ( ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N2 ) )
            & ( P2 @ I3 ) ) )
      = ( ( P2 @ zero_zero_nat )
        | ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ N2 )
            & ( P2 @ ( suc @ I3 ) ) ) ) ) ).

% Ex_less_Suc2
thf(fact_465_tl__upt,axiom,
    ! [M2: nat,N2: nat] :
      ( ( tl_nat @ ( upt @ M2 @ N2 ) )
      = ( upt @ ( suc @ M2 ) @ N2 ) ) ).

% tl_upt
thf(fact_466_hd__upt,axiom,
    ! [I: nat,J2: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ( hd_nat @ ( upt @ I @ J2 ) )
        = I ) ) ).

% hd_upt
thf(fact_467_upt__0,axiom,
    ! [I: nat] :
      ( ( upt @ I @ zero_zero_nat )
      = nil_nat ) ).

% upt_0
thf(fact_468_nat__gcd_Ocases,axiom,
    ! [X3: product_prod_nat_nat] :
      ~ ! [X4: nat,Y4: nat] :
          ( X3
         != ( product_Pair_nat_nat @ X4 @ Y4 ) ) ).

% nat_gcd.cases
thf(fact_469_distinct__upt,axiom,
    ! [I: nat,J2: nat] : ( distinct_nat @ ( upt @ I @ J2 ) ) ).

% distinct_upt
thf(fact_470_upt__conv__Cons__Cons,axiom,
    ! [M2: nat,N2: nat,Ns: list_nat,Q: nat] :
      ( ( ( cons_nat @ M2 @ ( cons_nat @ N2 @ Ns ) )
        = ( upt @ M2 @ Q ) )
      = ( ( cons_nat @ N2 @ Ns )
        = ( upt @ ( suc @ M2 ) @ Q ) ) ) ).

% upt_conv_Cons_Cons
thf(fact_471_map__Suc__upt,axiom,
    ! [M2: nat,N2: nat] :
      ( ( map_nat_nat @ suc @ ( upt @ M2 @ N2 ) )
      = ( upt @ ( suc @ M2 ) @ ( suc @ N2 ) ) ) ).

% map_Suc_upt
thf(fact_472_upt__conv__Cons,axiom,
    ! [I: nat,J2: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ( upt @ I @ J2 )
        = ( cons_nat @ I @ ( upt @ ( suc @ I ) @ J2 ) ) ) ) ).

% upt_conv_Cons
thf(fact_473_upt__rec,axiom,
    ( upt
    = ( ^ [I3: nat,J3: nat] : ( if_list_nat @ ( ord_less_nat @ I3 @ J3 ) @ ( cons_nat @ I3 @ ( upt @ ( suc @ I3 ) @ J3 ) ) @ nil_nat ) ) ) ).

% upt_rec
thf(fact_474_inf__concat__simple_Oelims,axiom,
    ! [X3: nat > nat,Xa: nat,Y3: product_prod_nat_nat] :
      ( ( ( inf_concat_simple @ X3 @ Xa )
        = Y3 )
     => ( ( ( Xa = zero_zero_nat )
         => ( Y3
           != ( product_Pair_nat_nat @ zero_zero_nat @ zero_zero_nat ) ) )
       => ~ ! [N3: nat] :
              ( ( Xa
                = ( suc @ N3 ) )
             => ( Y3
               != ( produc2626176000494625587at_nat
                  @ ^ [I3: nat,J3: nat] : ( if_Pro6206227464963214023at_nat @ ( ord_less_nat @ ( suc @ J3 ) @ ( X3 @ I3 ) ) @ ( product_Pair_nat_nat @ I3 @ ( suc @ J3 ) ) @ ( product_Pair_nat_nat @ ( suc @ I3 ) @ zero_zero_nat ) )
                  @ ( inf_concat_simple @ X3 @ N3 ) ) ) ) ) ) ).

% inf_concat_simple.elims
thf(fact_475_inf__concat__simple_Osimps_I2_J,axiom,
    ! [F: nat > nat,N2: nat] :
      ( ( inf_concat_simple @ F @ ( suc @ N2 ) )
      = ( produc2626176000494625587at_nat
        @ ^ [I3: nat,J3: nat] : ( if_Pro6206227464963214023at_nat @ ( ord_less_nat @ ( suc @ J3 ) @ ( F @ I3 ) ) @ ( product_Pair_nat_nat @ I3 @ ( suc @ J3 ) ) @ ( product_Pair_nat_nat @ ( suc @ I3 ) @ zero_zero_nat ) )
        @ ( inf_concat_simple @ F @ N2 ) ) ) ).

% inf_concat_simple.simps(2)
thf(fact_476_inf__concat__simple__surj__zero,axiom,
    ! [F: nat > nat,I: nat] :
    ? [K2: nat] :
      ( ( inf_concat_simple @ F @ K2 )
      = ( product_Pair_nat_nat @ I @ zero_zero_nat ) ) ).

% inf_concat_simple_surj_zero
thf(fact_477_inf__concat__simple_Osimps_I1_J,axiom,
    ! [F: nat > nat] :
      ( ( inf_concat_simple @ F @ zero_zero_nat )
      = ( product_Pair_nat_nat @ zero_zero_nat @ zero_zero_nat ) ) ).

% inf_concat_simple.simps(1)
thf(fact_478_inf__concat__simple__surj,axiom,
    ! [J2: nat,F: nat > nat,I: nat] :
      ( ( ord_less_nat @ J2 @ ( F @ I ) )
     => ? [K2: nat] :
          ( ( inf_concat_simple @ F @ K2 )
          = ( product_Pair_nat_nat @ I @ J2 ) ) ) ).

% inf_concat_simple_surj
thf(fact_479_upt__rec__numeral,axiom,
    ! [M2: num,N2: num] :
      ( ( ( ord_less_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) )
       => ( ( upt @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) )
          = ( cons_nat @ ( numeral_numeral_nat @ M2 ) @ ( upt @ ( suc @ ( numeral_numeral_nat @ M2 ) ) @ ( numeral_numeral_nat @ N2 ) ) ) ) )
      & ( ~ ( ord_less_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) )
       => ( ( upt @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) )
          = nil_nat ) ) ) ).

% upt_rec_numeral
thf(fact_480_nat__add__left__cancel__less,axiom,
    ! [K: nat,M2: nat,N2: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ K @ M2 ) @ ( plus_plus_nat @ K @ N2 ) )
      = ( ord_less_nat @ M2 @ N2 ) ) ).

% nat_add_left_cancel_less
thf(fact_481_drop__upt,axiom,
    ! [M2: nat,I: nat,J2: nat] :
      ( ( drop_nat @ M2 @ ( upt @ I @ J2 ) )
      = ( upt @ ( plus_plus_nat @ I @ M2 ) @ J2 ) ) ).

% drop_upt
thf(fact_482_add__gr__0,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( plus_plus_nat @ M2 @ N2 ) )
      = ( ( ord_less_nat @ zero_zero_nat @ M2 )
        | ( ord_less_nat @ zero_zero_nat @ N2 ) ) ) ).

% add_gr_0
thf(fact_483_nth__upt,axiom,
    ! [I: nat,K: nat,J2: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ I @ K ) @ J2 )
     => ( ( nth_nat @ ( upt @ I @ J2 ) @ K )
        = ( plus_plus_nat @ I @ K ) ) ) ).

% nth_upt
thf(fact_484_add__lessD1,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ I @ J2 ) @ K )
     => ( ord_less_nat @ I @ K ) ) ).

% add_lessD1
thf(fact_485_add__less__mono,axiom,
    ! [I: nat,J2: nat,K: nat,L: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ( ord_less_nat @ K @ L )
       => ( ord_less_nat @ ( plus_plus_nat @ I @ K ) @ ( plus_plus_nat @ J2 @ L ) ) ) ) ).

% add_less_mono
thf(fact_486_not__add__less1,axiom,
    ! [I: nat,J2: nat] :
      ~ ( ord_less_nat @ ( plus_plus_nat @ I @ J2 ) @ I ) ).

% not_add_less1
thf(fact_487_not__add__less2,axiom,
    ! [J2: nat,I: nat] :
      ~ ( ord_less_nat @ ( plus_plus_nat @ J2 @ I ) @ I ) ).

% not_add_less2
thf(fact_488_add__less__mono1,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ord_less_nat @ ( plus_plus_nat @ I @ K ) @ ( plus_plus_nat @ J2 @ K ) ) ) ).

% add_less_mono1
thf(fact_489_trans__less__add1,axiom,
    ! [I: nat,J2: nat,M2: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ord_less_nat @ I @ ( plus_plus_nat @ J2 @ M2 ) ) ) ).

% trans_less_add1
thf(fact_490_trans__less__add2,axiom,
    ! [I: nat,J2: nat,M2: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ord_less_nat @ I @ ( plus_plus_nat @ M2 @ J2 ) ) ) ).

% trans_less_add2
thf(fact_491_less__add__eq__less,axiom,
    ! [K: nat,L: nat,M2: nat,N2: nat] :
      ( ( ord_less_nat @ K @ L )
     => ( ( ( plus_plus_nat @ M2 @ L )
          = ( plus_plus_nat @ K @ N2 ) )
       => ( ord_less_nat @ M2 @ N2 ) ) ) ).

% less_add_eq_less
thf(fact_492_less__imp__add__positive,axiom,
    ! [I: nat,J2: nat] :
      ( ( ord_less_nat @ I @ J2 )
     => ? [K2: nat] :
          ( ( ord_less_nat @ zero_zero_nat @ K2 )
          & ( ( plus_plus_nat @ I @ K2 )
            = J2 ) ) ) ).

% less_imp_add_positive
thf(fact_493_less__imp__Suc__add,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ? [K2: nat] :
          ( N2
          = ( suc @ ( plus_plus_nat @ M2 @ K2 ) ) ) ) ).

% less_imp_Suc_add
thf(fact_494_less__iff__Suc__add,axiom,
    ( ord_less_nat
    = ( ^ [M6: nat,N4: nat] :
        ? [K3: nat] :
          ( N4
          = ( suc @ ( plus_plus_nat @ M6 @ K3 ) ) ) ) ) ).

% less_iff_Suc_add
thf(fact_495_less__add__Suc2,axiom,
    ! [I: nat,M2: nat] : ( ord_less_nat @ I @ ( suc @ ( plus_plus_nat @ M2 @ I ) ) ) ).

% less_add_Suc2
thf(fact_496_less__add__Suc1,axiom,
    ! [I: nat,M2: nat] : ( ord_less_nat @ I @ ( suc @ ( plus_plus_nat @ I @ M2 ) ) ) ).

% less_add_Suc1
thf(fact_497_less__natE,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ~ ! [Q2: nat] :
            ( N2
           != ( suc @ ( plus_plus_nat @ M2 @ Q2 ) ) ) ) ).

% less_natE
thf(fact_498_inf__concat__simple__add,axiom,
    ! [F: nat > nat,K: nat,I: nat,J2: nat,L: nat] :
      ( ( ( inf_concat_simple @ F @ K )
        = ( product_Pair_nat_nat @ I @ J2 ) )
     => ( ( ord_less_nat @ ( plus_plus_nat @ J2 @ L ) @ ( F @ I ) )
       => ( ( inf_concat_simple @ F @ ( plus_plus_nat @ K @ L ) )
          = ( product_Pair_nat_nat @ I @ ( plus_plus_nat @ J2 @ L ) ) ) ) ) ).

% inf_concat_simple_add
thf(fact_499_map__add__upt,axiom,
    ! [N2: nat,M2: nat] :
      ( ( map_nat_nat
        @ ^ [I3: nat] : ( plus_plus_nat @ I3 @ N2 )
        @ ( upt @ zero_zero_nat @ M2 ) )
      = ( upt @ N2 @ ( plus_plus_nat @ M2 @ N2 ) ) ) ).

% map_add_upt
thf(fact_500_length__upt,axiom,
    ! [I: nat,J2: nat] :
      ( ( size_size_list_nat @ ( upt @ I @ J2 ) )
      = ( minus_minus_nat @ J2 @ I ) ) ).

% length_upt
thf(fact_501_zero__less__diff,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( minus_minus_nat @ N2 @ M2 ) )
      = ( ord_less_nat @ M2 @ N2 ) ) ).

% zero_less_diff
thf(fact_502_Suc__pred,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ( suc @ ( minus_minus_nat @ N2 @ ( suc @ zero_zero_nat ) ) )
        = N2 ) ) ).

% Suc_pred
thf(fact_503_diff__less__mono2,axiom,
    ! [M2: nat,N2: nat,L: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ( ord_less_nat @ M2 @ L )
       => ( ord_less_nat @ ( minus_minus_nat @ L @ N2 ) @ ( minus_minus_nat @ L @ M2 ) ) ) ) ).

% diff_less_mono2
thf(fact_504_less__imp__diff__less,axiom,
    ! [J2: nat,K: nat,N2: nat] :
      ( ( ord_less_nat @ J2 @ K )
     => ( ord_less_nat @ ( minus_minus_nat @ J2 @ N2 ) @ K ) ) ).

% less_imp_diff_less
thf(fact_505_diff__less,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ( ord_less_nat @ zero_zero_nat @ M2 )
       => ( ord_less_nat @ ( minus_minus_nat @ M2 @ N2 ) @ M2 ) ) ) ).

% diff_less
thf(fact_506_Suc__diff__Suc,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ N2 @ M2 )
     => ( ( suc @ ( minus_minus_nat @ M2 @ ( suc @ N2 ) ) )
        = ( minus_minus_nat @ M2 @ N2 ) ) ) ).

% Suc_diff_Suc
thf(fact_507_diff__less__Suc,axiom,
    ! [M2: nat,N2: nat] : ( ord_less_nat @ ( minus_minus_nat @ M2 @ N2 ) @ ( suc @ M2 ) ) ).

% diff_less_Suc
thf(fact_508_add__diff__inverse__nat,axiom,
    ! [M2: nat,N2: nat] :
      ( ~ ( ord_less_nat @ M2 @ N2 )
     => ( ( plus_plus_nat @ N2 @ ( minus_minus_nat @ M2 @ N2 ) )
        = M2 ) ) ).

% add_diff_inverse_nat
thf(fact_509_less__diff__conv,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ I @ ( minus_minus_nat @ J2 @ K ) )
      = ( ord_less_nat @ ( plus_plus_nat @ I @ K ) @ J2 ) ) ).

% less_diff_conv
thf(fact_510_diff__Suc__less,axiom,
    ! [N2: nat,I: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ord_less_nat @ ( minus_minus_nat @ N2 @ ( suc @ I ) ) @ N2 ) ) ).

% diff_Suc_less
thf(fact_511_nat__diff__split,axiom,
    ! [P2: nat > $o,A2: nat,B: nat] :
      ( ( P2 @ ( minus_minus_nat @ A2 @ B ) )
      = ( ( ( ord_less_nat @ A2 @ B )
         => ( P2 @ zero_zero_nat ) )
        & ! [D2: nat] :
            ( ( A2
              = ( plus_plus_nat @ B @ D2 ) )
           => ( P2 @ D2 ) ) ) ) ).

% nat_diff_split
thf(fact_512_nat__diff__split__asm,axiom,
    ! [P2: nat > $o,A2: nat,B: nat] :
      ( ( P2 @ ( minus_minus_nat @ A2 @ B ) )
      = ( ~ ( ( ( ord_less_nat @ A2 @ B )
              & ~ ( P2 @ zero_zero_nat ) )
            | ? [D2: nat] :
                ( ( A2
                  = ( plus_plus_nat @ B @ D2 ) )
                & ~ ( P2 @ D2 ) ) ) ) ) ).

% nat_diff_split_asm
thf(fact_513_map__decr__upt,axiom,
    ! [M2: nat,N2: nat] :
      ( ( map_nat_nat
        @ ^ [N4: nat] : ( minus_minus_nat @ N4 @ ( suc @ zero_zero_nat ) )
        @ ( upt @ ( suc @ M2 ) @ ( suc @ N2 ) ) )
      = ( upt @ M2 @ N2 ) ) ).

% map_decr_upt
thf(fact_514_Euclidean__Division_Odivmod__nat__if,axiom,
    ( euclidean_divmod_nat
    = ( ^ [M6: nat,N4: nat] :
          ( if_Pro6206227464963214023at_nat
          @ ( ( N4 = zero_zero_nat )
            | ( ord_less_nat @ M6 @ N4 ) )
          @ ( product_Pair_nat_nat @ zero_zero_nat @ M6 )
          @ ( produc2626176000494625587at_nat
            @ ^ [Q3: nat] : ( product_Pair_nat_nat @ ( suc @ Q3 ) )
            @ ( euclidean_divmod_nat @ ( minus_minus_nat @ M6 @ N4 ) @ N4 ) ) ) ) ) ).

% Euclidean_Division.divmod_nat_if
thf(fact_515_upt__conv__Nil,axiom,
    ! [J2: nat,I: nat] :
      ( ( ord_less_eq_nat @ J2 @ I )
     => ( ( upt @ I @ J2 )
        = nil_nat ) ) ).

% upt_conv_Nil
thf(fact_516_upt__eq__Nil__conv,axiom,
    ! [I: nat,J2: nat] :
      ( ( ( upt @ I @ J2 )
        = nil_nat )
      = ( ( J2 = zero_zero_nat )
        | ( ord_less_eq_nat @ J2 @ I ) ) ) ).

% upt_eq_Nil_conv
thf(fact_517_nat__less__le,axiom,
    ( ord_less_nat
    = ( ^ [M6: nat,N4: nat] :
          ( ( ord_less_eq_nat @ M6 @ N4 )
          & ( M6 != N4 ) ) ) ) ).

% nat_less_le
thf(fact_518_less__imp__le__nat,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ord_less_eq_nat @ M2 @ N2 ) ) ).

% less_imp_le_nat
thf(fact_519_le__eq__less__or__eq,axiom,
    ( ord_less_eq_nat
    = ( ^ [M6: nat,N4: nat] :
          ( ( ord_less_nat @ M6 @ N4 )
          | ( M6 = N4 ) ) ) ) ).

% le_eq_less_or_eq
thf(fact_520_less__or__eq__imp__le,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ( ord_less_nat @ M2 @ N2 )
        | ( M2 = N2 ) )
     => ( ord_less_eq_nat @ M2 @ N2 ) ) ).

% less_or_eq_imp_le
thf(fact_521_le__neq__implies__less,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ M2 @ N2 )
     => ( ( M2 != N2 )
       => ( ord_less_nat @ M2 @ N2 ) ) ) ).

% le_neq_implies_less
thf(fact_522_less__mono__imp__le__mono,axiom,
    ! [F: nat > nat,I: nat,J2: nat] :
      ( ! [I2: nat,J: nat] :
          ( ( ord_less_nat @ I2 @ J )
         => ( ord_less_nat @ ( F @ I2 ) @ ( F @ J ) ) )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ord_less_eq_nat @ ( F @ I ) @ ( F @ J2 ) ) ) ) ).

% less_mono_imp_le_mono
thf(fact_523_nat__descend__induct,axiom,
    ! [N2: nat,P2: nat > $o,M2: nat] :
      ( ! [K2: nat] :
          ( ( ord_less_nat @ N2 @ K2 )
         => ( P2 @ K2 ) )
     => ( ! [K2: nat] :
            ( ( ord_less_eq_nat @ K2 @ N2 )
           => ( ! [I4: nat] :
                  ( ( ord_less_nat @ K2 @ I4 )
                 => ( P2 @ I4 ) )
             => ( P2 @ K2 ) ) )
       => ( P2 @ M2 ) ) ) ).

% nat_descend_induct
thf(fact_524_ex__least__nat__le,axiom,
    ! [P2: nat > $o,N2: nat] :
      ( ( P2 @ N2 )
     => ( ~ ( P2 @ zero_zero_nat )
       => ? [K2: nat] :
            ( ( ord_less_eq_nat @ K2 @ N2 )
            & ! [I4: nat] :
                ( ( ord_less_nat @ I4 @ K2 )
               => ~ ( P2 @ I4 ) )
            & ( P2 @ K2 ) ) ) ) ).

% ex_least_nat_le
thf(fact_525_le__imp__less__Suc,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ M2 @ N2 )
     => ( ord_less_nat @ M2 @ ( suc @ N2 ) ) ) ).

% le_imp_less_Suc
thf(fact_526_less__eq__Suc__le,axiom,
    ( ord_less_nat
    = ( ^ [N4: nat] : ( ord_less_eq_nat @ ( suc @ N4 ) ) ) ) ).

% less_eq_Suc_le
thf(fact_527_less__Suc__eq__le,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N2 ) )
      = ( ord_less_eq_nat @ M2 @ N2 ) ) ).

% less_Suc_eq_le
thf(fact_528_le__less__Suc__eq,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ M2 @ N2 )
     => ( ( ord_less_nat @ N2 @ ( suc @ M2 ) )
        = ( N2 = M2 ) ) ) ).

% le_less_Suc_eq
thf(fact_529_Suc__le__lessD,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ ( suc @ M2 ) @ N2 )
     => ( ord_less_nat @ M2 @ N2 ) ) ).

% Suc_le_lessD
thf(fact_530_inc__induct,axiom,
    ! [I: nat,J2: nat,P2: nat > $o] :
      ( ( ord_less_eq_nat @ I @ J2 )
     => ( ( P2 @ J2 )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ I @ N3 )
             => ( ( ord_less_nat @ N3 @ J2 )
               => ( ( P2 @ ( suc @ N3 ) )
                 => ( P2 @ N3 ) ) ) )
         => ( P2 @ I ) ) ) ) ).

% inc_induct
thf(fact_531_dec__induct,axiom,
    ! [I: nat,J2: nat,P2: nat > $o] :
      ( ( ord_less_eq_nat @ I @ J2 )
     => ( ( P2 @ I )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ I @ N3 )
             => ( ( ord_less_nat @ N3 @ J2 )
               => ( ( P2 @ N3 )
                 => ( P2 @ ( suc @ N3 ) ) ) ) )
         => ( P2 @ J2 ) ) ) ) ).

% dec_induct
thf(fact_532_Suc__le__eq,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ ( suc @ M2 ) @ N2 )
      = ( ord_less_nat @ M2 @ N2 ) ) ).

% Suc_le_eq
thf(fact_533_Suc__leI,axiom,
    ! [M2: nat,N2: nat] :
      ( ( ord_less_nat @ M2 @ N2 )
     => ( ord_less_eq_nat @ ( suc @ M2 ) @ N2 ) ) ).

% Suc_leI
thf(fact_534_mono__nat__linear__lb,axiom,
    ! [F: nat > nat,M2: nat,K: nat] :
      ( ! [M5: nat,N3: nat] :
          ( ( ord_less_nat @ M5 @ N3 )
         => ( ord_less_nat @ ( F @ M5 ) @ ( F @ N3 ) ) )
     => ( ord_less_eq_nat @ ( plus_plus_nat @ ( F @ M2 ) @ K ) @ ( F @ ( plus_plus_nat @ M2 @ K ) ) ) ) ).

% mono_nat_linear_lb
thf(fact_535_diff__less__mono,axiom,
    ! [A2: nat,B: nat,C3: nat] :
      ( ( ord_less_nat @ A2 @ B )
     => ( ( ord_less_eq_nat @ C3 @ A2 )
       => ( ord_less_nat @ ( minus_minus_nat @ A2 @ C3 ) @ ( minus_minus_nat @ B @ C3 ) ) ) ) ).

% diff_less_mono
thf(fact_536_less__diff__iff,axiom,
    ! [K: nat,M2: nat,N2: nat] :
      ( ( ord_less_eq_nat @ K @ M2 )
     => ( ( ord_less_eq_nat @ K @ N2 )
       => ( ( ord_less_nat @ ( minus_minus_nat @ M2 @ K ) @ ( minus_minus_nat @ N2 @ K ) )
          = ( ord_less_nat @ M2 @ N2 ) ) ) ) ).

% less_diff_iff
thf(fact_537_ex__least__nat__less,axiom,
    ! [P2: nat > $o,N2: nat] :
      ( ( P2 @ N2 )
     => ( ~ ( P2 @ zero_zero_nat )
       => ? [K2: nat] :
            ( ( ord_less_nat @ K2 @ N2 )
            & ! [I4: nat] :
                ( ( ord_less_eq_nat @ I4 @ K2 )
               => ~ ( P2 @ I4 ) )
            & ( P2 @ ( suc @ K2 ) ) ) ) ) ).

% ex_least_nat_less
thf(fact_538_less__diff__conv2,axiom,
    ! [K: nat,J2: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( ord_less_nat @ ( minus_minus_nat @ J2 @ K ) @ I )
        = ( ord_less_nat @ J2 @ ( plus_plus_nat @ I @ K ) ) ) ) ).

% less_diff_conv2
thf(fact_539_less__one,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ N2 @ one_one_nat )
      = ( N2 = zero_zero_nat ) ) ).

% less_one
thf(fact_540_Suc__diff__1,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ( suc @ ( minus_minus_nat @ N2 @ one_one_nat ) )
        = N2 ) ) ).

% Suc_diff_1
thf(fact_541_nat__induct__non__zero,axiom,
    ! [N2: nat,P2: nat > $o] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ( P2 @ one_one_nat )
       => ( ! [N3: nat] :
              ( ( ord_less_nat @ zero_zero_nat @ N3 )
             => ( ( P2 @ N3 )
               => ( P2 @ ( suc @ N3 ) ) ) )
         => ( P2 @ N2 ) ) ) ) ).

% nat_induct_non_zero
thf(fact_542_Suc__diff__eq__diff__pred,axiom,
    ! [N2: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( ( minus_minus_nat @ ( suc @ M2 ) @ N2 )
        = ( minus_minus_nat @ M2 @ ( minus_minus_nat @ N2 @ one_one_nat ) ) ) ) ).

% Suc_diff_eq_diff_pred
thf(fact_543_Suc__pred_H,axiom,
    ! [N2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N2 )
     => ( N2
        = ( suc @ ( minus_minus_nat @ N2 @ one_one_nat ) ) ) ) ).

% Suc_pred'
thf(fact_544_upt__eq__Cons__conv,axiom,
    ! [I: nat,J2: nat,X3: nat,Xs2: list_nat] :
      ( ( ( upt @ I @ J2 )
        = ( cons_nat @ X3 @ Xs2 ) )
      = ( ( ord_less_nat @ I @ J2 )
        & ( I = X3 )
        & ( ( upt @ ( plus_plus_nat @ I @ one_one_nat ) @ J2 )
          = Xs2 ) ) ) ).

% upt_eq_Cons_conv
thf(fact_545_inf__concat__simple_Opelims,axiom,
    ! [X3: nat > nat,Xa: nat,Y3: product_prod_nat_nat] :
      ( ( ( inf_concat_simple @ X3 @ Xa )
        = Y3 )
     => ( ( accp_P6412015083367660281at_nat @ inf_co2821209343098213861le_rel @ ( produc72220940542539688at_nat @ X3 @ Xa ) )
       => ( ( ( Xa = zero_zero_nat )
           => ( ( Y3
                = ( product_Pair_nat_nat @ zero_zero_nat @ zero_zero_nat ) )
             => ~ ( accp_P6412015083367660281at_nat @ inf_co2821209343098213861le_rel @ ( produc72220940542539688at_nat @ X3 @ zero_zero_nat ) ) ) )
         => ~ ! [N3: nat] :
                ( ( Xa
                  = ( suc @ N3 ) )
               => ( ( Y3
                    = ( produc2626176000494625587at_nat
                      @ ^ [I3: nat,J3: nat] : ( if_Pro6206227464963214023at_nat @ ( ord_less_nat @ ( suc @ J3 ) @ ( X3 @ I3 ) ) @ ( product_Pair_nat_nat @ I3 @ ( suc @ J3 ) ) @ ( product_Pair_nat_nat @ ( suc @ I3 ) @ zero_zero_nat ) )
                      @ ( inf_concat_simple @ X3 @ N3 ) ) )
                 => ~ ( accp_P6412015083367660281at_nat @ inf_co2821209343098213861le_rel @ ( produc72220940542539688at_nat @ X3 @ ( suc @ N3 ) ) ) ) ) ) ) ) ).

% inf_concat_simple.pelims

% Helper facts (5)
thf(help_If_2_1_If_001t__List__Olist_It__Nat__Onat_J_T,axiom,
    ! [X3: list_nat,Y3: list_nat] :
      ( ( if_list_nat @ $false @ X3 @ Y3 )
      = Y3 ) ).

thf(help_If_1_1_If_001t__List__Olist_It__Nat__Onat_J_T,axiom,
    ! [X3: list_nat,Y3: list_nat] :
      ( ( if_list_nat @ $true @ X3 @ Y3 )
      = X3 ) ).

thf(help_If_3_1_If_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_T,axiom,
    ! [P2: $o] :
      ( ( P2 = $true )
      | ( P2 = $false ) ) ).

thf(help_If_2_1_If_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_T,axiom,
    ! [X3: product_prod_nat_nat,Y3: product_prod_nat_nat] :
      ( ( if_Pro6206227464963214023at_nat @ $false @ X3 @ Y3 )
      = Y3 ) ).

thf(help_If_1_1_If_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_T,axiom,
    ! [X3: product_prod_nat_nat,Y3: product_prod_nat_nat] :
      ( ( if_Pro6206227464963214023at_nat @ $true @ X3 @ Y3 )
      = X3 ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    ( ! [X4: f] :
        ( ( member_f @ X4 @ ( set_f2 @ conds2 ) )
       => ( eval @ alpha @ X4 ) )
    & ( ( alpha @ zero2 )
     != ( ? [X2: a] :
            ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) ) )
            & ( alpha @ X2 ) ) ) )
    & ( ( alpha @ one2 )
     != ( ~ ? [X2: a] :
              ( ( member_a @ X2 @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) ) )
              & ( alpha @ X2 )
              & ! [Y: a] :
                  ( ( ( member_a @ Y @ ( image_1366754389297715763_a_a_a @ produc6516300539023753772od_a_a @ ( set_Pr7008919305446870117od_a_a @ ( cons_P64011158483510406od_a_a @ ( produc431845341423274048od_a_a @ x @ ( product_Pair_a_a @ zeroa @ onea ) ) @ ( cons_P64011158483510406od_a_a @ r @ rr ) ) ) ) )
                    & ( alpha @ Y ) )
                 => ( Y = X2 ) ) ) ) ) ) ).

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