TPTP Problem File: SLH0598^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_00631_028228__13796770_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1268 ( 533 unt; 294 typ;   0 def)
%            Number of atoms       : 2727 (1688 equ;   0 cnn)
%            Maximal formula atoms :   23 (   2 avg)
%            Number of connectives : 10349 ( 347   ~;  23   |; 410   &;8490   @)
%                                         (   0 <=>;1079  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   32 (   7 avg)
%            Number of types       :   35 (  34 usr)
%            Number of type conns  : 1746 (1746   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  263 ( 260 usr;  29 con; 0-16 aty)
%            Number of variables   : 3652 ( 204   ^;3042   !; 406   ?;3652   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-18 16:29:53.090
%------------------------------------------------------------------------------
% Could-be-implicit typings (34)
thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_Mt__List__Olist_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J_J,type,
    produc4542211886649297581ropVar: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J,type,
    list_P8791008543742759928ropVar: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J,type,
    set_Pr6405597471078531282ropVar: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    produc2642885279816024434ropVar: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    produc3507939890032686909od_o_o: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    produc7903949528580895877ropVar: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J,type,
    produc7679832412844898215ropVar: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    produc1930994613425906418od_o_o: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J_J,type,
    list_P6988024003011616557iset_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J_J,type,
    set_Pr79727621955416071iset_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    produc6518373309651786023iset_a: $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_It__Nat__Onat_Mt__List__Olist_It__Nat__Onat_J_J,type,
    produc4575160907756185873st_nat: $tType ).

thf(ty_n_t__List__Olist_It__Multiset____Ordering____in____NP__OPropVar_J,type,
    list_M6740372356978808802ropVar: $tType ).

thf(ty_n_t__Set__Oset_It__Multiset____Ordering____in____NP__OPropVar_J,type,
    set_Mu5658373669842198716ropVar: $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__Set__Oset_It__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    set_Product_prod_o_o: $tType ).

thf(ty_n_t__Multiset____Ordering____in____NP__OPropVar,type,
    multis3193088007478089820ropVar: $tType ).

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

thf(ty_n_t__Multiset__Omultiset_It__Nat__Onat_J,type,
    multiset_nat: $tType ).

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

thf(ty_n_t__Multiset__Omultiset_Itf__a_J,type,
    multiset_a: $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__String__Ochar,type,
    char: $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 (260)
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__Multiset__Omultiset_It__Nat__Onat_J,type,
    plus_p6334493942879108393et_nat: multiset_nat > multiset_nat > multiset_nat ).

thf(sy_c_Groups_Oplus__class_Oplus_001t__Multiset__Omultiset_Itf__a_J,type,
    plus_plus_multiset_a: multiset_a > multiset_a > multiset_a ).

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_OThe_001t__Nat__Onat,type,
    the_nat: ( nat > $o ) > nat ).

thf(sy_c_HOL_Oundefined_001_Eo,type,
    undefined_o: $o ).

thf(sy_c_HOL_Oundefined_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    undefi316149074942268141ropVar: produc7903949528580895877ropVar ).

thf(sy_c_If_001t__List__Olist_Itf__f_J,type,
    if_list_f: $o > list_f > list_f > list_f ).

thf(sy_c_List_Oappend_001t__Multiset____Ordering____in____NP__OPropVar,type,
    append2684835082924936439ropVar: list_M6740372356978808802ropVar > list_M6740372356978808802ropVar > list_M6740372356978808802ropVar ).

thf(sy_c_List_Oappend_001t__Nat__Onat,type,
    append_nat: list_nat > list_nat > list_nat ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    append1975991668658899394iset_a: list_P6988024003011616557iset_a > list_P6988024003011616557iset_a > list_P6988024003011616557iset_a ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    append4352292717583037453ropVar: list_P8791008543742759928ropVar > list_P8791008543742759928ropVar > list_P8791008543742759928ropVar ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    append5335208819046833346od_a_a: list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a ).

thf(sy_c_List_Oappend_001tf__a,type,
    append_a: list_a > list_a > list_a ).

thf(sy_c_List_Oappend_001tf__f,type,
    append_f: list_f > list_f > list_f ).

thf(sy_c_List_Odistinct_001t__Multiset____Ordering____in____NP__OPropVar,type,
    distin2675581014522817237ropVar: list_M6740372356978808802ropVar > $o ).

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

thf(sy_c_List_Odistinct_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    distin2267423591311547883ropVar: list_P8791008543742759928ropVar > $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__Multiset____Ordering____in____NP__OPropVar,type,
    drop_M2293212096379261346ropVar: nat > list_M6740372356978808802ropVar > list_M6740372356978808802ropVar ).

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_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    drop_P4829783966340880056ropVar: nat > list_P8791008543742759928ropVar > list_P8791008543742759928ropVar ).

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__Multiset____Ordering____in____NP__OPropVar,type,
    cons_M4277272395645347858ropVar: multis3193088007478089820ropVar > list_M6740372356978808802ropVar > list_M6740372356978808802ropVar ).

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_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    cons_P7086145107730948317iset_a: produc6518373309651786023iset_a > list_P6988024003011616557iset_a > list_P6988024003011616557iset_a ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    cons_P1504208554336013608ropVar: produc2642885279816024434ropVar > list_P8791008543742759928ropVar > list_P8791008543742759928ropVar ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    cons_P7316939126706565853od_a_a: product_prod_a_a > list_P1396940483166286381od_a_a > list_P1396940483166286381od_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__Multiset____Ordering____in____NP__OPropVar,type,
    nil_Mu4132399263956683874ropVar: list_M6740372356978808802ropVar ).

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    nil_Pr6119456312066593144ropVar: list_P8791008543742759928ropVar ).

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_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    case_l5231247004599698859ropVar: produc7257588745650887789list_f > ( produc2642885279816024434ropVar > list_P8791008543742759928ropVar > produc7257588745650887789list_f ) > list_P8791008543742759928ropVar > produc7257588745650887789list_f ).

thf(sy_c_List_Olist_Omap_001t__Multiset____Ordering____in____NP__OPropVar_001t__Multiset____Ordering____in____NP__OPropVar,type,
    map_Mu2265489581466636612ropVar: ( multis3193088007478089820ropVar > multis3193088007478089820ropVar ) > list_M6740372356978808802ropVar > list_M6740372356978808802ropVar ).

thf(sy_c_List_Olist_Omap_001t__Multiset____Ordering____in____NP__OPropVar_001t__Nat__Onat,type,
    map_Mu1970517791673442536ar_nat: ( multis3193088007478089820ropVar > nat ) > list_M6740372356978808802ropVar > list_nat ).

thf(sy_c_List_Olist_Omap_001t__Multiset____Ordering____in____NP__OPropVar_001tf__f,type,
    map_Mu6818335725640936427pVar_f: ( multis3193088007478089820ropVar > f ) > list_M6740372356978808802ropVar > list_f ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__Multiset____Ordering____in____NP__OPropVar,type,
    map_na2466558649495876678ropVar: ( nat > multis3193088007478089820ropVar ) > list_nat > list_M6740372356978808802ropVar ).

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_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    map_na2145702811007361372ropVar: ( nat > produc2642885279816024434ropVar ) > list_nat > list_P8791008543742759928ropVar ).

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_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J_001t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    map_Pr5905680810515755012iset_a: ( produc6518373309651786023iset_a > produc6518373309651786023iset_a ) > list_P6988024003011616557iset_a > list_P6988024003011616557iset_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Multiset____Ordering____in____NP__OPropVar,type,
    map_Pr3335389669906741166ropVar: ( produc2642885279816024434ropVar > multis3193088007478089820ropVar ) > list_P8791008543742759928ropVar > list_M6740372356978808802ropVar ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Nat__Onat,type,
    map_Pr7810381211709419518ar_nat: ( produc2642885279816024434ropVar > nat ) > list_P8791008543742759928ropVar > list_nat ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    map_Pr3565048146863404228ropVar: ( produc2642885279816024434ropVar > produc2642885279816024434ropVar ) > list_P8791008543742759928ropVar > list_P8791008543742759928ropVar ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001tf__a,type,
    map_Pr1064736048566318672pVar_a: ( produc2642885279816024434ropVar > a ) > list_P8791008543742759928ropVar > list_a ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001tf__f,type,
    map_Pr1064736048566318677pVar_f: ( produc2642885279816024434ropVar > f ) > list_P8791008543742759928ropVar > list_f ).

thf(sy_c_List_Olist_Omap_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    map_Pr7904243085458786820od_a_a: ( product_prod_a_a > product_prod_a_a ) > list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a ).

thf(sy_c_List_Olist_Omap_001tf__a_001t__Nat__Onat,type,
    map_a_nat: ( a > nat ) > list_a > list_nat ).

thf(sy_c_List_Olist_Omap_001tf__a_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    map_a_1400613014311812664ropVar: ( a > produc2642885279816024434ropVar ) > list_a > list_P8791008543742759928ropVar ).

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__Multiset____Ordering____in____NP__OPropVar,type,
    map_f_4134023513460405853ropVar: ( f > multis3193088007478089820ropVar ) > list_f > list_M6740372356978808802ropVar ).

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_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    map_f_2905954635146393971ropVar: ( f > produc2642885279816024434ropVar ) > list_f > list_P8791008543742759928ropVar ).

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__Multiset____Ordering____in____NP__OPropVar,type,
    set_Mu146256361055586289ropVar: list_M6740372356978808802ropVar > set_Mu5658373669842198716ropVar ).

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_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    set_Pr5550698219922361532iset_a: list_P6988024003011616557iset_a > set_Pr79727621955416071iset_a ).

thf(sy_c_List_Olist_Oset_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    set_Pr3946994337432900359ropVar: list_P8791008543742759928ropVar > set_Pr6405597471078531282ropVar ).

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_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_Omaps_001t__Multiset____Ordering____in____NP__OPropVar_001tf__f,type,
    maps_M425433082187236072pVar_f: ( multis3193088007478089820ropVar > list_f ) > list_M6740372356978808802ropVar > list_f ).

thf(sy_c_List_Omaps_001t__Nat__Onat_001t__Nat__Onat,type,
    maps_nat_nat: ( nat > list_nat ) > list_nat > list_nat ).

thf(sy_c_List_Omaps_001t__Nat__Onat_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    maps_n6440817060062774047ropVar: ( nat > list_P8791008543742759928ropVar ) > list_nat > list_P8791008543742759928ropVar ).

thf(sy_c_List_Omaps_001t__Nat__Onat_001tf__f,type,
    maps_nat_f: ( nat > list_f ) > list_nat > list_f ).

thf(sy_c_List_Omaps_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Nat__Onat,type,
    maps_P2882123423910056385ar_nat: ( produc2642885279816024434ropVar > list_nat ) > list_P8791008543742759928ropVar > list_nat ).

thf(sy_c_List_Omaps_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001tf__f,type,
    maps_P2527380396400262994pVar_f: ( produc2642885279816024434ropVar > list_f ) > list_P8791008543742759928ropVar > list_f ).

thf(sy_c_List_Omaps_001tf__a_001tf__f,type,
    maps_a_f: ( a > list_f ) > list_a > list_f ).

thf(sy_c_List_Omaps_001tf__f_001t__Nat__Onat,type,
    maps_f_nat: ( f > list_nat ) > list_f > list_nat ).

thf(sy_c_List_Omaps_001tf__f_001tf__f,type,
    maps_f_f: ( f > list_f ) > list_f > list_f ).

thf(sy_c_List_Onth_001t__Multiset____Ordering____in____NP__OPropVar,type,
    nth_Mu4537670848183934179ropVar: list_M6740372356978808802ropVar > nat > multis3193088007478089820ropVar ).

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

thf(sy_c_List_Onth_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    nth_Pr227365692153740281ropVar: list_P8791008543742759928ropVar > nat > produc2642885279816024434ropVar ).

thf(sy_c_List_Onth_001tf__a,type,
    nth_a: list_a > nat > a ).

thf(sy_c_List_Onth_001tf__f,type,
    nth_f: list_f > nat > f ).

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

thf(sy_c_Multiset_Omset_001t__Nat__Onat,type,
    mset_nat: list_nat > multiset_nat ).

thf(sy_c_Multiset_Omset_001tf__a,type,
    mset_a: list_a > multiset_a ).

thf(sy_c_Multiset__Extension2_Ons__mul__ext_001tf__a,type,
    multis4023584895248362547_ext_a: set_Product_prod_a_a > set_Product_prod_a_a > set_Pr79727621955416071iset_a ).

thf(sy_c_Multiset__Extension2_Os__mul__ext_001tf__a,type,
    multiset_s_mul_ext_a: set_Product_prod_a_a > set_Product_prod_a_a > set_Pr79727621955416071iset_a ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OAuxOneIJ,type,
    multis6646701651571498855xOneIJ: nat > nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OAuxOneJI,type,
    multis6646701651571564453xOneJI: nat > nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OAuxZeroIJ,type,
    multis2983220944385456105ZeroIJ: nat > nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OAuxZeroJI,type,
    multis2983220944385521703ZeroJI: nat > nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OEpsilon,type,
    multis2544335231667181926psilon: nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_OGamma,type,
    multis387687052011358179_Gamma: nat > nat > multis3193088007478089820ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_OPropVar_Ocase__PropVar_001_Eo,type,
    multis8641292176345589959pVar_o: ( nat > nat > $o ) > ( nat > $o ) > ( nat > nat > $o ) > ( nat > nat > $o ) > ( nat > nat > $o ) > ( nat > nat > $o ) > multis3193088007478089820ropVar > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_001t__Multiset____Ordering____in____NP__OPropVar_001tf__f,type,
    multis2000375938434000499pVar_f: ( ( multis3193088007478089820ropVar > $o ) > f > $o ) > f > f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( list_M6740372356978808802ropVar > f ) > ( list_f > f ) > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_OencodeGammaCond_001tf__f_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis1454621290665623088ropVar: f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > multis3193088007478089820ropVar > multis3193088007478089820ropVar > $o > $o > f ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_OencodeGammaCond__rel_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis3344368520953930393ropVar: produc3507939890032686909od_o_o > produc3507939890032686909od_o_o > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__exactly__one_001t__Nat__Onat_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis5159292385415766206ropVar: nat > ( multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > list_P8791008543742759928ropVar > produc4575160907756185873st_nat ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__exactly__one_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis8736296938027350326ropVar: produc2642885279816024434ropVar > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > list_P8791008543742759928ropVar > produc4542211886649297581ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__exactly__one_001tf__f_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis2195156209094129637ropVar: f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > list_P8791008543742759928ropVar > produc7257588745650887789list_f ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__sum__0__1__main_001t__Multiset____Ordering____in____NP__OPropVar_001tf__f,type,
    multis7428212316306422970pVar_f: ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > list_P8791008543742759928ropVar > produc7903949528580895877ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_Oencoder_Oencode__sum__0__1__main__rel_001t__Multiset____Ordering____in____NP__OPropVar,type,
    multis162751971668797333ropVar: list_P8791008543742759928ropVar > list_P8791008543742759928ropVar > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_001t__Nat__Onat,type,
    multis4476563104974320119er_nat: nat > nat > ( multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > nat > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( list_M6740372356978808802ropVar > nat ) > ( list_nat > nat ) > ( ( multis3193088007478089820ropVar > $o ) > nat > $o ) > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    multis8181102237825478411ropVar: produc2642885279816024434ropVar > produc2642885279816024434ropVar > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( list_M6740372356978808802ropVar > produc2642885279816024434ropVar ) > ( list_P8791008543742759928ropVar > produc2642885279816024434ropVar ) > ( ( multis3193088007478089820ropVar > $o ) > produc2642885279816024434ropVar > $o ) > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_001tf__f,type,
    multis7215977293502021788oder_f: f > f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( list_M6740372356978808802ropVar > f ) > ( list_f > f ) > ( ( multis3193088007478089820ropVar > $o ) > f > $o ) > $o ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_Oformula14_001t__Nat__Onat,type,
    multis778902868463715824414_nat: nat > ( multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat ) > ( multis3193088007478089820ropVar > nat > nat ) > nat > nat > list_nat ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_Oformula14_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    multis3450153464401155806ropVar: produc2642885279816024434ropVar > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar ) > ( multis3193088007478089820ropVar > produc2642885279816024434ropVar > produc2642885279816024434ropVar ) > nat > nat > list_P8791008543742759928ropVar ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_Oformula14_001tf__f,type,
    multis1248899897006733423la14_f: f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f > f ) > nat > nat > list_f ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_Oformula15_001tf__f,type,
    multis7684816351888833198la15_f: f > f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( nat > nat > $o ) > ( nat > nat > $o ) > nat > nat > list_f ).

thf(sy_c_Multiset__Ordering__in__NP_Oms__encoder_Oformula16_001tf__f,type,
    multis4897360769916157165la16_f: f > f > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > f > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ) > ( list_M6740372356978808802ropVar > f ) > ( nat > nat > $o ) > ( nat > nat > $o ) > nat > nat > list_f ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Multiset____Ordering____in____NP__OPropVar_J,type,
    size_s1943289338788136526ropVar: list_M6740372356978808802ropVar > 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_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J,type,
    size_s6752116297430514276ropVar: list_P8791008543742759928ropVar > 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_Nat_Osize__class_Osize_001t__Multiset____Ordering____in____NP__OPropVar,type,
    size_s6253272723116879048ropVar: multis3193088007478089820ropVar > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__String__Ochar,type,
    size_size_char: char > 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_Eo_001_Eo,type,
    product_Pair_o_o: $o > $o > product_prod_o_o ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J,type,
    produc5732303558254465141ropVar: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar ).

thf(sy_c_Product__Type_OPair_001t__Multiset__Omultiset_Itf__a_J_001t__Multiset__Omultiset_Itf__a_J,type,
    produc654756711066625303iset_a: multiset_a > multiset_a > produc6518373309651786023iset_a ).

thf(sy_c_Product__Type_OPair_001t__Multiset____Ordering____in____NP__OPropVar_001t__Multiset____Ordering____in____NP__OPropVar,type,
    produc6936306168532358295ropVar: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7679832412844898215ropVar ).

thf(sy_c_Product__Type_OPair_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_I_Eo_M_Eo_J,type,
    produc9033520932313852770od_o_o: multis3193088007478089820ropVar > product_prod_o_o > produc1930994613425906418od_o_o ).

thf(sy_c_Product__Type_OPair_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J,type,
    produc6194868611276206818ropVar: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc2642885279816024434ropVar ).

thf(sy_c_Product__Type_OPair_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J,type,
    produc4931073445691921453od_o_o: multis3193088007478089820ropVar > produc1930994613425906418od_o_o > produc3507939890032686909od_o_o ).

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_001_Eo_001_Eo_001_Eo,type,
    produc6197397395684419436_o_o_o: ( $o > $o > $o ) > product_prod_o_o > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001t__Nat__Onat,type,
    produc5300922066696922364_o_nat: ( $o > $o > nat ) > product_prod_o_o > nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001t__Set__Oset_It__Nat__Onat_J,type,
    produc6723186405834743986et_nat: ( $o > $o > set_nat ) > product_prod_o_o > set_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001t__Set__Oset_Itf__a_J,type,
    produc8162358539887287858_set_a: ( $o > $o > set_a ) > product_prod_o_o > set_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001t__Set__Oset_Itf__f_J,type,
    produc8162358561403431863_set_f: ( $o > $o > set_f ) > product_prod_o_o > set_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001tf__a,type,
    produc368963595484087506_o_o_a: ( $o > $o > a ) > product_prod_o_o > a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001_Eo_001_Eo_001tf__f,type,
    produc368963595484087511_o_o_f: ( $o > $o > f ) > product_prod_o_o > f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_001_Eo,type,
    produc4579496310850675342pVar_o: ( list_f > produc7679832412844898215ropVar > $o ) > produc7903949528580895877ropVar > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    produc5770109036932753787ropVar: ( list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar ) > produc7903949528580895877ropVar > produc7903949528580895877ropVar ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc9062381539647762275list_f: ( list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f ) > produc7903949528580895877ropVar > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset__Omultiset_Itf__a_J_001t__Multiset__Omultiset_Itf__a_J_001_Eo,type,
    produc3007774963387989868et_a_o: ( multiset_a > multiset_a > $o ) > produc6518373309651786023iset_a > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset__Omultiset_Itf__a_J_001t__Multiset__Omultiset_Itf__a_J_001t__Set__Oset_It__Nat__Onat_J,type,
    produc8854979857967171762et_nat: ( multiset_a > multiset_a > set_nat ) > produc6518373309651786023iset_a > set_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset____Ordering____in____NP__OPropVar_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__List__Olist_Itf__f_J_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    produc5689224170127644889ropVar: ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7903949528580895877ropVar ) > produc7679832412844898215ropVar > produc7903949528580895877ropVar ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset____Ordering____in____NP__OPropVar_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc5811297888731727041list_f: ( multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f ) > produc7679832412844898215ropVar > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_001t__Multiset____Ordering____in____NP__OPropVar,type,
    produc4525797517566130981ropVar: ( multis3193088007478089820ropVar > produc7679832412844898215ropVar > multis3193088007478089820ropVar ) > produc2642885279816024434ropVar > multis3193088007478089820ropVar ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J,type,
    produc1364905799853895606list_f: ( multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f ) > produc2642885279816024434ropVar > produc7257588745650887789list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Nat__Onat_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__Nat__Onat_J,type,
    produc6860903796091618494st_nat: ( nat > list_nat > list_nat ) > produc4575160907756185873st_nat > list_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__List__Olist_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J_001t__List__Olist_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J,type,
    produc5464477786531444550ropVar: ( produc2642885279816024434ropVar > list_P8791008543742759928ropVar > list_P8791008543742759928ropVar ) > produc4542211886649297581ropVar > list_P8791008543742759928ropVar ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001_Eo,type,
    produc6436628058953941356_a_a_o: ( a > a > $o ) > product_prod_a_a > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Nat__Onat,type,
    produc3852632504931109628_a_nat: ( a > a > nat ) > product_prod_a_a > nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Set__Oset_It__Nat__Onat_J,type,
    produc153843693180602034et_nat: ( a > a > set_nat ) > product_prod_a_a > set_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Set__Oset_Itf__a_J,type,
    produc9217457822752978994_set_a: ( a > a > set_a ) > product_prod_a_a > set_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001t__Set__Oset_Itf__f_J,type,
    produc9217457844269122999_set_f: ( a > a > set_f ) > product_prod_a_a > set_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001tf__a,type,
    produc8815886927560695506_a_a_a: ( a > a > a ) > product_prod_a_a > a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001tf__a_001tf__f,type,
    produc8815886927560695511_a_a_f: ( a > a > f ) > product_prod_a_a > f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001_Eo,type,
    produc5350256331493419686st_f_o: ( f > list_f > $o ) > produc7257588745650887789list_f > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001t__List__Olist_Itf__f_J,type,
    produc150797823399499287list_f: ( f > list_f > list_f ) > produc7257588745650887789list_f > list_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001t__Nat__Onat,type,
    produc4347502681227453506_f_nat: ( f > list_f > nat ) > produc7257588745650887789list_f > nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001t__Set__Oset_It__Nat__Onat_J,type,
    produc6898626462297016312et_nat: ( f > list_f > set_nat ) > produc7257588745650887789list_f > set_nat ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001t__Set__Oset_Itf__a_J,type,
    produc9216198033542446188_set_a: ( f > list_f > set_a ) > produc7257588745650887789list_f > set_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001t__Set__Oset_Itf__f_J,type,
    produc9216198055058590193_set_f: ( f > list_f > set_f ) > produc7257588745650887789list_f > set_f ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001tf__a,type,
    produc2813270370470005516st_f_a: ( f > list_f > a ) > produc7257588745650887789list_f > a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__f_001t__List__Olist_Itf__f_J_001tf__f,type,
    produc2813270370470005521st_f_f: ( f > list_f > f ) > produc7257588745650887789list_f > f ).

thf(sy_c_Product__Type_Oprod_Ofst_001_Eo_001_Eo,type,
    product_fst_o_o: product_prod_o_o > $o ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__List__Olist_Itf__f_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J,type,
    produc3716127084588840033ropVar: produc7903949528580895877ropVar > list_f ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Multiset__Omultiset_Itf__a_J_001t__Multiset__Omultiset_Itf__a_J,type,
    produc4115391677465734915iset_a: produc6518373309651786023iset_a > multiset_a ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Multiset____Ordering____in____NP__OPropVar_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J,type,
    produc6918815732823278798ropVar: produc2642885279816024434ropVar > multis3193088007478089820ropVar ).

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_Set_OBall_001t__Nat__Onat,type,
    ball_nat: set_nat > ( nat > $o ) > $o ).

thf(sy_c_Set_OBall_001t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    ball_P928055741032791761iset_a: set_Pr79727621955416071iset_a > ( produc6518373309651786023iset_a > $o ) > $o ).

thf(sy_c_Set_OBall_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    ball_P843720320142865617od_a_a: set_Product_prod_a_a > ( product_prod_a_a > $o ) > $o ).

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

thf(sy_c_Set_OBall_001tf__f,type,
    ball_f: set_f > ( f > $o ) > $o ).

thf(sy_c_Set_OCollect_001t__Multiset____Ordering____in____NP__OPropVar,type,
    collec8658135508005558727ropVar: ( multis3193088007478089820ropVar > $o ) > set_Mu5658373669842198716ropVar ).

thf(sy_c_Set_OCollect_001t__Nat__Onat,type,
    collect_nat: ( nat > $o ) > set_nat ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    collec6344740439120713362iset_a: ( produc6518373309651786023iset_a > $o ) > set_Pr79727621955416071iset_a ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    collec3336397797384452498od_a_a: ( product_prod_a_a > $o ) > set_Product_prod_a_a ).

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

thf(sy_c_Set_OCollect_001tf__f,type,
    collect_f: ( f > $o ) > set_f ).

thf(sy_c_Set_Oimage_001t__Multiset____Ordering____in____NP__OPropVar_001t__Multiset____Ordering____in____NP__OPropVar,type,
    image_7661484744434814213ropVar: ( multis3193088007478089820ropVar > multis3193088007478089820ropVar ) > set_Mu5658373669842198716ropVar > set_Mu5658373669842198716ropVar ).

thf(sy_c_Set_Oimage_001t__Multiset____Ordering____in____NP__OPropVar_001t__Nat__Onat,type,
    image_3439306068482956519ar_nat: ( multis3193088007478089820ropVar > nat ) > set_Mu5658373669842198716ropVar > set_nat ).

thf(sy_c_Set_Oimage_001t__Multiset____Ordering____in____NP__OPropVar_001tf__f,type,
    image_7076402817453355436pVar_f: ( multis3193088007478089820ropVar > f ) > set_Mu5658373669842198716ropVar > set_f ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001t__Multiset____Ordering____in____NP__OPropVar,type,
    image_3935346926305390661ropVar: ( nat > multis3193088007478089820ropVar ) > set_nat > set_Mu5658373669842198716ropVar ).

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__Nat__Onat_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    image_4337987624672609115ropVar: ( nat > produc2642885279816024434ropVar ) > set_nat > set_Pr6405597471078531282ropVar ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001tf__a,type,
    image_nat_a: ( nat > a ) > set_nat > set_a ).

thf(sy_c_Set_Oimage_001t__Nat__Onat_001tf__f,type,
    image_nat_f: ( nat > f ) > set_nat > set_f ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_Eo_M_Eo_J_001t__Nat__Onat,type,
    image_3818509671500154290_o_nat: ( product_prod_o_o > nat ) > set_Product_prod_o_o > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_Eo_M_Eo_J_001tf__a,type,
    image_1625555692148909468_o_o_a: ( product_prod_o_o > a ) > set_Product_prod_o_o > set_a ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_I_Eo_M_Eo_J_001tf__f,type,
    image_1625555692148909473_o_o_f: ( product_prod_o_o > f ) > set_Product_prod_o_o > set_f ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Multiset____Ordering____in____NP__OPropVar,type,
    image_4513341045867859311ropVar: ( produc2642885279816024434ropVar > multis3193088007478089820ropVar ) > set_Pr6405597471078531282ropVar > set_Mu5658373669842198716ropVar ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Nat__Onat,type,
    image_779293988519891453ar_nat: ( produc2642885279816024434ropVar > nat ) > set_Pr6405597471078531282ropVar > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    image_8703032969001444485ropVar: ( produc2642885279816024434ropVar > produc2642885279816024434ropVar ) > set_Pr6405597471078531282ropVar > set_Pr6405597471078531282ropVar ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Nat__Onat,type,
    image_9053670898913107890_a_nat: ( product_prod_a_a > nat ) > set_Product_prod_a_a > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001tf__a,type,
    image_3437945252899457948_a_a_a: ( product_prod_a_a > a ) > set_Product_prod_a_a > set_a ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001tf__f,type,
    image_3437945252899457953_a_a_f: ( product_prod_a_a > f ) > set_Product_prod_a_a > set_f ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_001t__Nat__Onat,type,
    image_1429827293116670456_f_nat: ( produc7257588745650887789list_f > nat ) > set_Pr9218602257211810509list_f > set_nat ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_001tf__a,type,
    image_6487518781707439830st_f_a: ( produc7257588745650887789list_f > a ) > set_Pr9218602257211810509list_f > set_a ).

thf(sy_c_Set_Oimage_001t__Product____Type__Oprod_Itf__f_Mt__List__Olist_Itf__f_J_J_001tf__f,type,
    image_6487518781707439835st_f_f: ( produc7257588745650887789list_f > f ) > set_Pr9218602257211810509list_f > set_f ).

thf(sy_c_Set_Oimage_001tf__a_001t__Nat__Onat,type,
    image_a_nat: ( a > nat ) > set_a > set_nat ).

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__Multiset____Ordering____in____NP__OPropVar,type,
    image_4392090605272824862ropVar: ( f > multis3193088007478089820ropVar ) > set_f > set_Mu5658373669842198716ropVar ).

thf(sy_c_Set_Oimage_001tf__f_001t__Nat__Onat,type,
    image_f_nat: ( f > nat ) > set_f > set_nat ).

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__Multiset____Ordering____in____NP__OPropVar,type,
    insert1868789817947358764ropVar: multis3193088007478089820ropVar > set_Mu5658373669842198716ropVar > set_Mu5658373669842198716ropVar ).

thf(sy_c_String_Ochar_Osize__char,type,
    size_char: char > nat ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J_J,type,
    accp_l8790861725341200257ropVar: ( list_P8791008543742759928ropVar > list_P8791008543742759928ropVar > $o ) > list_P8791008543742759928ropVar > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_I_Eo_M_Eo_J_J_J,type,
    accp_P8208393750683106630od_o_o: ( produc3507939890032686909od_o_o > produc3507939890032686909od_o_o > $o ) > produc3507939890032686909od_o_o > $o ).

thf(sy_c_fChoice_001t__Nat__Onat,type,
    fChoice_nat: ( nat > $o ) > nat ).

thf(sy_c_member_001t__Multiset____Ordering____in____NP__OPropVar,type,
    member8421201611525043589ropVar: multis3193088007478089820ropVar > set_Mu5658373669842198716ropVar > $o ).

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

thf(sy_c_member_001t__Product____Type__Oprod_I_Eo_M_Eo_J,type,
    member7466972457876170832od_o_o: product_prod_o_o > set_Product_prod_o_o > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Multiset__Omultiset_Itf__a_J_Mt__Multiset__Omultiset_Itf__a_J_J,type,
    member5199237121806060112iset_a: produc6518373309651786023iset_a > set_Pr79727621955416071iset_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Product____Type__Oprod_It__Multiset____Ordering____in____NP__OPropVar_Mt__Multiset____Ordering____in____NP__OPropVar_J_J,type,
    member9210975342120487067ropVar: produc2642885279816024434ropVar > set_Pr6405597471078531282ropVar > $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_NS,type,
    ns: set_Product_prod_a_a ).

thf(sy_v_S,type,
    s: set_Product_prod_a_a ).

thf(sy_v_Xs1____,type,
    xs1: list_a ).

thf(sy_v_Xs2____,type,
    xs2: list_a ).

thf(sy_v_Ys1____,type,
    ys1: list_a ).

thf(sy_v_Ys2____,type,
    ys2: list_a ).

thf(sy_v_cands____,type,
    cands: list_f ).

thf(sy_v_cns,type,
    cns: nat > nat > $o ).

thf(sy_v_cs,type,
    cs: nat > nat > $o ).

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: multis3193088007478089820ropVar > multis3193088007478089820ropVar > f ).

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

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

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

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

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

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

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

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

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

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

thf(sy_v_f____,type,
    f2: f ).

thf(sy_v_i____,type,
    i: nat ).

thf(sy_v_i__of__j2____,type,
    i_of_j2: nat > nat ).

thf(sy_v_m,type,
    m: nat ).

thf(sy_v_n,type,
    n: nat ).

thf(sy_v_one____,type,
    one: f ).

thf(sy_v_pos__of____,type,
    pos_of: list_nat > nat > nat ).

thf(sy_v_s,type,
    s2: nat > a ).

thf(sy_v_t,type,
    t: nat > a ).

thf(sy_v_v_H____,type,
    v: multis3193088007478089820ropVar > $o ).

thf(sy_v_v____,type,
    v2: multis3193088007478089820ropVar > $o ).

thf(sy_v_xs1____,type,
    xs12: list_nat ).

thf(sy_v_xs2____,type,
    xs22: list_nat ).

thf(sy_v_ys1____,type,
    ys12: list_nat ).

thf(sy_v_ys2____,type,
    ys22: list_nat ).

% Relevant facts (969)
thf(fact_0__C2_C_I1_J,axiom,
    member_nat @ i @ ( set_nat2 @ ( upt @ zero_zero_nat @ n ) ) ).

% "2"(1)
thf(fact_1_cands,axiom,
    ! [X: f] :
      ( ( member_f @ X @ ( set_f2 @ cands ) )
     => ( eval @ v2 @ X ) ) ).

% cands
thf(fact_2_f,axiom,
    member_f @ f2 @ ( set_f2 @ ( cons_f @ ( enc_impl @ ( multis2544335231667181926psilon @ i ) @ one ) @ cands ) ) ).

% f
thf(fact_3_enc__sound_I9_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,F: f] :
      ( ( eval @ Alpha @ ( enc_impl @ X2 @ F ) )
      = ( ( Alpha @ X2 )
       => ( eval @ Alpha @ F ) ) ) ).

% enc_sound(9)
thf(fact_4_PropVar_Oinject_I6_J,axiom,
    ! [X61: nat,X62: nat,Y61: nat,Y62: nat] :
      ( ( ( multis6646701651571498855xOneIJ @ X61 @ X62 )
        = ( multis6646701651571498855xOneIJ @ Y61 @ Y62 ) )
      = ( ( X61 = Y61 )
        & ( X62 = Y62 ) ) ) ).

% PropVar.inject(6)
thf(fact_5_PropVar_Oinject_I5_J,axiom,
    ! [X51: nat,X52: nat,Y51: nat,Y52: nat] :
      ( ( ( multis2983220944385456105ZeroIJ @ X51 @ X52 )
        = ( multis2983220944385456105ZeroIJ @ Y51 @ Y52 ) )
      = ( ( X51 = Y51 )
        & ( X52 = Y52 ) ) ) ).

% PropVar.inject(5)
thf(fact_6_enc__sound_I1_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o] :
      ~ ( eval @ Alpha @ enc_False ) ).

% enc_sound(1)
thf(fact_7_enc__sound_I8_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar,Z: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_ite @ X2 @ Y @ Z ) )
      = ( ( ( Alpha @ X2 )
         => ( Alpha @ Y ) )
        & ( ~ ( Alpha @ X2 )
         => ( Alpha @ Z ) ) ) ) ).

% enc_sound(8)
thf(fact_8_enc__sound_I3_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_pos @ X2 ) )
      = ( Alpha @ X2 ) ) ).

% enc_sound(3)
thf(fact_9_enc__sound_I7_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar,Z: multis3193088007478089820ropVar,U: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_equiv_ite @ X2 @ Y @ Z @ U ) )
      = ( ( Alpha @ X2 )
        = ( ( ( Alpha @ Y )
           => ( Alpha @ Z ) )
          & ( ~ ( Alpha @ Y )
           => ( Alpha @ U ) ) ) ) ) ).

% enc_sound(7)
thf(fact_10_enc__sound_I6_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar,Z: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_equiv_and_not @ X2 @ Y @ Z ) )
      = ( ( Alpha @ X2 )
        = ( ( Alpha @ Y )
          & ~ ( Alpha @ Z ) ) ) ) ).

% enc_sound(6)
thf(fact_11_enc__sound_I5_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_different @ X2 @ Y ) )
      = ( ( Alpha @ X2 )
       != ( Alpha @ Y ) ) ) ).

% enc_sound(5)
thf(fact_12_PropVar_Oinject_I2_J,axiom,
    ! [X22: nat,Y2: nat] :
      ( ( ( multis2544335231667181926psilon @ X22 )
        = ( multis2544335231667181926psilon @ Y2 ) )
      = ( X22 = Y2 ) ) ).

% PropVar.inject(2)
thf(fact_13_PropVar_Oinject_I1_J,axiom,
    ! [X11: nat,X12: nat,Y11: nat,Y12: nat] :
      ( ( ( multis387687052011358179_Gamma @ X11 @ X12 )
        = ( multis387687052011358179_Gamma @ Y11 @ Y12 ) )
      = ( ( X11 = Y11 )
        & ( X12 = Y12 ) ) ) ).

% PropVar.inject(1)
thf(fact_14_eval__all__Cons,axiom,
    ! [F: f,Gs: list_f,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( cons_f @ F @ Gs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ( eval @ Alpha @ F )
        & ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Gs ) )
           => ( eval @ Alpha @ X3 ) ) ) ) ).

% eval_all_Cons
thf(fact_15_i,axiom,
    ord_less_nat @ i @ n ).

% i
thf(fact_16_PropVar_Odistinct_I1_J,axiom,
    ! [X11: nat,X12: nat,X22: nat] :
      ( ( multis387687052011358179_Gamma @ X11 @ X12 )
     != ( multis2544335231667181926psilon @ X22 ) ) ).

% PropVar.distinct(1)
thf(fact_17_PropVar_Odistinct_I7_J,axiom,
    ! [X11: nat,X12: nat,X51: nat,X52: nat] :
      ( ( multis387687052011358179_Gamma @ X11 @ X12 )
     != ( multis2983220944385456105ZeroIJ @ X51 @ X52 ) ) ).

% PropVar.distinct(7)
thf(fact_18_PropVar_Odistinct_I9_J,axiom,
    ! [X11: nat,X12: nat,X61: nat,X62: nat] :
      ( ( multis387687052011358179_Gamma @ X11 @ X12 )
     != ( multis6646701651571498855xOneIJ @ X61 @ X62 ) ) ).

% PropVar.distinct(9)
thf(fact_19_PropVar_Odistinct_I15_J,axiom,
    ! [X22: nat,X51: nat,X52: nat] :
      ( ( multis2544335231667181926psilon @ X22 )
     != ( multis2983220944385456105ZeroIJ @ X51 @ X52 ) ) ).

% PropVar.distinct(15)
thf(fact_20_PropVar_Odistinct_I17_J,axiom,
    ! [X22: nat,X61: nat,X62: nat] :
      ( ( multis2544335231667181926psilon @ X22 )
     != ( multis6646701651571498855xOneIJ @ X61 @ X62 ) ) ).

% PropVar.distinct(17)
thf(fact_21_PropVar_Odistinct_I29_J,axiom,
    ! [X51: nat,X52: nat,X61: nat,X62: nat] :
      ( ( multis2983220944385456105ZeroIJ @ X51 @ X52 )
     != ( multis6646701651571498855xOneIJ @ X61 @ X62 ) ) ).

% PropVar.distinct(29)
thf(fact_22__092_060open_062eval_Av_Aone_A_061_A_I_092_060exists_062_Bx_O_Ax_A_092_060in_062_AGamma_Ai_A_096_Aset_A_0910_O_O_060m_093_A_092_060and_062_Av_Ax_J_092_060close_062,axiom,
    ( ( eval @ v2 @ one )
    = ( ? [X3: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X3 @ ( image_3935346926305390661ropVar @ ( multis387687052011358179_Gamma @ i ) @ ( set_nat2 @ ( upt @ zero_zero_nat @ m ) ) ) )
          & ( v2 @ X3 )
          & ! [Y3: multis3193088007478089820ropVar] :
              ( ( ( member8421201611525043589ropVar @ Y3 @ ( image_3935346926305390661ropVar @ ( multis387687052011358179_Gamma @ i ) @ ( set_nat2 @ ( upt @ zero_zero_nat @ m ) ) ) )
                & ( v2 @ Y3 ) )
             => ( Y3 = X3 ) ) ) ) ) ).

% \<open>eval v one = (\<exists>!x. x \<in> Gamma i ` set [0..<m] \<and> v x)\<close>
thf(fact_23_eval__all__maps,axiom,
    ! [F: nat > list_f,Fs: list_nat,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( maps_nat_f @ F @ Fs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Fs ) )
           => ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ ( F @ X3 ) ) )
               => ( eval @ Alpha @ Y3 ) ) ) ) ) ).

% eval_all_maps
thf(fact_24_eval__all__maps,axiom,
    ! [F: f > list_f,Fs: list_f,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( maps_f_f @ F @ Fs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Fs ) )
           => ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ ( F @ X3 ) ) )
               => ( eval @ Alpha @ Y3 ) ) ) ) ) ).

% eval_all_maps
thf(fact_25_eval__all__maps,axiom,
    ! [F: produc2642885279816024434ropVar > list_f,Fs: list_P8791008543742759928ropVar,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( maps_P2527380396400262994pVar_f @ F @ Fs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ ( set_Pr3946994337432900359ropVar @ Fs ) )
           => ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ ( F @ X3 ) ) )
               => ( eval @ Alpha @ Y3 ) ) ) ) ) ).

% eval_all_maps
thf(fact_26_eval__all__maps,axiom,
    ! [F: multis3193088007478089820ropVar > list_f,Fs: list_M6740372356978808802ropVar,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( maps_M425433082187236072pVar_f @ F @ Fs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Fs ) )
           => ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ ( F @ X3 ) ) )
               => ( eval @ Alpha @ Y3 ) ) ) ) ) ).

% eval_all_maps
thf(fact_27_eval__all__maps,axiom,
    ! [F: a > list_f,Fs: list_a,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( maps_a_f @ F @ Fs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Fs ) )
           => ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ ( F @ X3 ) ) )
               => ( eval @ Alpha @ Y3 ) ) ) ) ) ).

% eval_all_maps
thf(fact_28__C2_C_I2_J,axiom,
    ( member_f @ f2
    @ ( set_f2
      @ ( produc150797823399499287list_f
        @ ^ [One: f] : ( cons_f @ ( enc_impl @ ( multis2544335231667181926psilon @ i ) @ One ) )
        @ ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite
          @ ( map_na2145702811007361372ropVar
            @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
            @ ( upt @ zero_zero_nat @ m ) ) ) ) ) ) ).

% "2"(2)
thf(fact_29__092_060open_062v_A_IEpsilon_Ai_J_A_092_060Longrightarrow_062_A_I_092_060exists_062_Bx_O_Ax_A_092_060in_062_AGamma_Ai_A_096_Aset_A_0910_O_O_060m_093_A_092_060and_062_Av_Ax_J_A_061_ATrue_092_060close_062,axiom,
    ( ( v2 @ ( multis2544335231667181926psilon @ i ) )
   => ? [X4: multis3193088007478089820ropVar] :
        ( ( member8421201611525043589ropVar @ X4 @ ( image_3935346926305390661ropVar @ ( multis387687052011358179_Gamma @ i ) @ ( set_nat2 @ ( upt @ zero_zero_nat @ m ) ) ) )
        & ( v2 @ X4 )
        & ! [Y4: multis3193088007478089820ropVar] :
            ( ( ( member8421201611525043589ropVar @ Y4 @ ( image_3935346926305390661ropVar @ ( multis387687052011358179_Gamma @ i ) @ ( set_nat2 @ ( upt @ zero_zero_nat @ m ) ) ) )
              & ( v2 @ Y4 ) )
           => ( Y4 = X4 ) ) ) ) ).

% \<open>v (Epsilon i) \<Longrightarrow> (\<exists>!x. x \<in> Gamma i ` set [0..<m] \<and> v x) = True\<close>
thf(fact_30_enc,axiom,
    ( ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite
      @ ( map_na2145702811007361372ropVar
        @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
        @ ( upt @ zero_zero_nat @ m ) ) )
    = ( produc4886901243613182557list_f @ one @ cands ) ) ).

% enc
thf(fact_31_list_Oinject,axiom,
    ! [X21: f,X222: list_f,Y21: f,Y22: list_f] :
      ( ( ( cons_f @ X21 @ X222 )
        = ( cons_f @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_32_list_Oinject,axiom,
    ! [X21: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar,Y21: produc2642885279816024434ropVar,Y22: list_P8791008543742759928ropVar] :
      ( ( ( cons_P1504208554336013608ropVar @ X21 @ X222 )
        = ( cons_P1504208554336013608ropVar @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

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

% list.inject
thf(fact_34_enc__sound_I13_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,Fs: list_f] :
      ( ( eval @ Alpha @ ( enc_conj @ Fs ) )
      = ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Fs ) )
           => ( eval @ Alpha @ X3 ) ) ) ) ).

% enc_sound(13)
thf(fact_35__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062one_Acands_O_A_092_060lbrakk_062i_A_060_An_059_Af_A_092_060in_062_Aset_A_Ienc__impl_A_IEpsilon_Ai_J_Aone_A_D_Acands_J_059_Aencode__exactly__one_A_Imap_A_I_092_060lambda_062j_O_A_IGamma_Ai_Aj_M_AAuxZeroIJ_Ai_Aj_M_AAuxOneIJ_Ai_Aj_J_J_A_0910_O_O_060m_093_J_A_061_A_Ione_M_Acands_J_092_060rbrakk_062_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ( ( ord_less_nat @ i @ n )
     => ! [One2: f,Cands: list_f] :
          ( ( member_f @ f2 @ ( set_f2 @ ( cons_f @ ( enc_impl @ ( multis2544335231667181926psilon @ i ) @ One2 ) @ Cands ) ) )
         => ( ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite
              @ ( map_na2145702811007361372ropVar
                @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
                @ ( upt @ zero_zero_nat @ m ) ) )
           != ( produc4886901243613182557list_f @ One2 @ Cands ) ) ) ) ).

% \<open>\<And>thesis. (\<And>one cands. \<lbrakk>i < n; f \<in> set (enc_impl (Epsilon i) one # cands); encode_exactly_one (map (\<lambda>j. (Gamma i j, AuxZeroIJ i j, AuxOneIJ i j)) [0..<m]) = (one, cands)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_36_list_Oset__intros_I2_J,axiom,
    ! [Y: produc6518373309651786023iset_a,X222: list_P6988024003011616557iset_a,X21: produc6518373309651786023iset_a] :
      ( ( member5199237121806060112iset_a @ Y @ ( set_Pr5550698219922361532iset_a @ X222 ) )
     => ( member5199237121806060112iset_a @ Y @ ( set_Pr5550698219922361532iset_a @ ( cons_P7086145107730948317iset_a @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_37_list_Oset__intros_I2_J,axiom,
    ! [Y: product_prod_a_a,X222: list_P1396940483166286381od_a_a,X21: product_prod_a_a] :
      ( ( member1426531477525435216od_a_a @ Y @ ( set_Product_prod_a_a2 @ X222 ) )
     => ( member1426531477525435216od_a_a @ Y @ ( set_Product_prod_a_a2 @ ( cons_P7316939126706565853od_a_a @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_38_list_Oset__intros_I2_J,axiom,
    ! [Y: multis3193088007478089820ropVar,X222: list_M6740372356978808802ropVar,X21: multis3193088007478089820ropVar] :
      ( ( member8421201611525043589ropVar @ Y @ ( set_Mu146256361055586289ropVar @ X222 ) )
     => ( member8421201611525043589ropVar @ Y @ ( set_Mu146256361055586289ropVar @ ( cons_M4277272395645347858ropVar @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_39_list_Oset__intros_I2_J,axiom,
    ! [Y: a,X222: list_a,X21: a] :
      ( ( member_a @ Y @ ( set_a2 @ X222 ) )
     => ( member_a @ Y @ ( set_a2 @ ( cons_a @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_40_list_Oset__intros_I2_J,axiom,
    ! [Y: f,X222: list_f,X21: f] :
      ( ( member_f @ Y @ ( set_f2 @ X222 ) )
     => ( member_f @ Y @ ( set_f2 @ ( cons_f @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_41_list_Oset__intros_I2_J,axiom,
    ! [Y: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar,X21: produc2642885279816024434ropVar] :
      ( ( member9210975342120487067ropVar @ Y @ ( set_Pr3946994337432900359ropVar @ X222 ) )
     => ( member9210975342120487067ropVar @ Y @ ( set_Pr3946994337432900359ropVar @ ( cons_P1504208554336013608ropVar @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_42_list_Oset__intros_I2_J,axiom,
    ! [Y: nat,X222: list_nat,X21: nat] :
      ( ( member_nat @ Y @ ( set_nat2 @ X222 ) )
     => ( member_nat @ Y @ ( set_nat2 @ ( cons_nat @ X21 @ X222 ) ) ) ) ).

% list.set_intros(2)
thf(fact_43_list_Oset__intros_I1_J,axiom,
    ! [X21: produc6518373309651786023iset_a,X222: list_P6988024003011616557iset_a] : ( member5199237121806060112iset_a @ X21 @ ( set_Pr5550698219922361532iset_a @ ( cons_P7086145107730948317iset_a @ X21 @ X222 ) ) ) ).

% list.set_intros(1)
thf(fact_44_list_Oset__intros_I1_J,axiom,
    ! [X21: product_prod_a_a,X222: list_P1396940483166286381od_a_a] : ( member1426531477525435216od_a_a @ X21 @ ( set_Product_prod_a_a2 @ ( cons_P7316939126706565853od_a_a @ X21 @ X222 ) ) ) ).

% list.set_intros(1)
thf(fact_45_list_Oset__intros_I1_J,axiom,
    ! [X21: multis3193088007478089820ropVar,X222: list_M6740372356978808802ropVar] : ( member8421201611525043589ropVar @ X21 @ ( set_Mu146256361055586289ropVar @ ( cons_M4277272395645347858ropVar @ X21 @ X222 ) ) ) ).

% list.set_intros(1)
thf(fact_46_list_Oset__intros_I1_J,axiom,
    ! [X21: a,X222: list_a] : ( member_a @ X21 @ ( set_a2 @ ( cons_a @ X21 @ X222 ) ) ) ).

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

% list.set_intros(1)
thf(fact_48_list_Oset__intros_I1_J,axiom,
    ! [X21: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar] : ( member9210975342120487067ropVar @ X21 @ ( set_Pr3946994337432900359ropVar @ ( cons_P1504208554336013608ropVar @ X21 @ X222 ) ) ) ).

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

% list.set_intros(1)
thf(fact_50_list_Oset__cases,axiom,
    ! [E: produc6518373309651786023iset_a,A: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ E @ ( set_Pr5550698219922361532iset_a @ A ) )
     => ( ! [Z2: list_P6988024003011616557iset_a] :
            ( A
           != ( cons_P7086145107730948317iset_a @ E @ Z2 ) )
       => ~ ! [Z1: produc6518373309651786023iset_a,Z2: list_P6988024003011616557iset_a] :
              ( ( A
                = ( cons_P7086145107730948317iset_a @ Z1 @ Z2 ) )
             => ~ ( member5199237121806060112iset_a @ E @ ( set_Pr5550698219922361532iset_a @ Z2 ) ) ) ) ) ).

% list.set_cases
thf(fact_51_list_Oset__cases,axiom,
    ! [E: product_prod_a_a,A: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ E @ ( set_Product_prod_a_a2 @ A ) )
     => ( ! [Z2: list_P1396940483166286381od_a_a] :
            ( A
           != ( cons_P7316939126706565853od_a_a @ E @ Z2 ) )
       => ~ ! [Z1: product_prod_a_a,Z2: list_P1396940483166286381od_a_a] :
              ( ( A
                = ( cons_P7316939126706565853od_a_a @ Z1 @ Z2 ) )
             => ~ ( member1426531477525435216od_a_a @ E @ ( set_Product_prod_a_a2 @ Z2 ) ) ) ) ) ).

% list.set_cases
thf(fact_52_list_Oset__cases,axiom,
    ! [E: multis3193088007478089820ropVar,A: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ E @ ( set_Mu146256361055586289ropVar @ A ) )
     => ( ! [Z2: list_M6740372356978808802ropVar] :
            ( A
           != ( cons_M4277272395645347858ropVar @ E @ Z2 ) )
       => ~ ! [Z1: multis3193088007478089820ropVar,Z2: list_M6740372356978808802ropVar] :
              ( ( A
                = ( cons_M4277272395645347858ropVar @ Z1 @ Z2 ) )
             => ~ ( member8421201611525043589ropVar @ E @ ( set_Mu146256361055586289ropVar @ Z2 ) ) ) ) ) ).

% list.set_cases
thf(fact_53_list_Oset__cases,axiom,
    ! [E: a,A: list_a] :
      ( ( member_a @ E @ ( set_a2 @ A ) )
     => ( ! [Z2: list_a] :
            ( A
           != ( cons_a @ E @ Z2 ) )
       => ~ ! [Z1: a,Z2: list_a] :
              ( ( A
                = ( cons_a @ Z1 @ Z2 ) )
             => ~ ( member_a @ E @ ( set_a2 @ Z2 ) ) ) ) ) ).

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

% list.set_cases
thf(fact_55_list_Oset__cases,axiom,
    ! [E: produc2642885279816024434ropVar,A: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ E @ ( set_Pr3946994337432900359ropVar @ A ) )
     => ( ! [Z2: list_P8791008543742759928ropVar] :
            ( A
           != ( cons_P1504208554336013608ropVar @ E @ Z2 ) )
       => ~ ! [Z1: produc2642885279816024434ropVar,Z2: list_P8791008543742759928ropVar] :
              ( ( A
                = ( cons_P1504208554336013608ropVar @ Z1 @ Z2 ) )
             => ~ ( member9210975342120487067ropVar @ E @ ( set_Pr3946994337432900359ropVar @ Z2 ) ) ) ) ) ).

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

% list.set_cases
thf(fact_57_map__ident,axiom,
    ( ( map_nat_nat
      @ ^ [X3: nat] : X3 )
    = ( ^ [Xs: list_nat] : Xs ) ) ).

% map_ident
thf(fact_58_not__gr__zero,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less_nat @ zero_zero_nat @ N ) )
      = ( N = zero_zero_nat ) ) ).

% not_gr_zero
thf(fact_59_map__eq__conv,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat,G: nat > produc2642885279816024434ropVar] :
      ( ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
        = ( map_na2145702811007361372ropVar @ G @ Xs2 ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) ) ) ) ).

% map_eq_conv
thf(fact_60_map__eq__conv,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat,G: nat > multis3193088007478089820ropVar] :
      ( ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = ( map_na2466558649495876678ropVar @ G @ Xs2 ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) ) ) ) ).

% map_eq_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 ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) ) ) ) ).

% map_eq_conv
thf(fact_62_map__eq__conv,axiom,
    ! [F: nat > a,Xs2: list_nat,G: nat > a] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = ( map_nat_a @ G @ Xs2 ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) ) ) ) ).

% map_eq_conv
thf(fact_63_map__eq__conv,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
        = ( map_Pr3335389669906741166ropVar @ G @ Xs2 ) )
      = ( ! [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) ) ) ) ).

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

% list.set_map
thf(fact_65_list_Oset__map,axiom,
    ! [F: f > nat,V: list_f] :
      ( ( set_nat2 @ ( map_f_nat @ F @ V ) )
      = ( image_f_nat @ F @ ( set_f2 @ V ) ) ) ).

% list.set_map
thf(fact_66_list_Oset__map,axiom,
    ! [F: multis3193088007478089820ropVar > nat,V: list_M6740372356978808802ropVar] :
      ( ( set_nat2 @ ( map_Mu1970517791673442536ar_nat @ F @ V ) )
      = ( image_3439306068482956519ar_nat @ F @ ( set_Mu146256361055586289ropVar @ V ) ) ) ).

% list.set_map
thf(fact_67_list_Oset__map,axiom,
    ! [F: a > nat,V: list_a] :
      ( ( set_nat2 @ ( map_a_nat @ F @ V ) )
      = ( image_a_nat @ F @ ( set_a2 @ V ) ) ) ).

% list.set_map
thf(fact_68_list_Oset__map,axiom,
    ! [F: nat > f,V: list_nat] :
      ( ( set_f2 @ ( map_nat_f @ F @ V ) )
      = ( image_nat_f @ F @ ( set_nat2 @ V ) ) ) ).

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

% list.set_map
thf(fact_70_list_Oset__map,axiom,
    ! [F: multis3193088007478089820ropVar > f,V: list_M6740372356978808802ropVar] :
      ( ( set_f2 @ ( map_Mu6818335725640936427pVar_f @ F @ V ) )
      = ( image_7076402817453355436pVar_f @ F @ ( set_Mu146256361055586289ropVar @ V ) ) ) ).

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

% list.set_map
thf(fact_72_list_Oset__map,axiom,
    ! [F: nat > multis3193088007478089820ropVar,V: list_nat] :
      ( ( set_Mu146256361055586289ropVar @ ( map_na2466558649495876678ropVar @ F @ V ) )
      = ( image_3935346926305390661ropVar @ F @ ( set_nat2 @ V ) ) ) ).

% list.set_map
thf(fact_73_list_Oset__map,axiom,
    ! [F: f > multis3193088007478089820ropVar,V: list_f] :
      ( ( set_Mu146256361055586289ropVar @ ( map_f_4134023513460405853ropVar @ F @ V ) )
      = ( image_4392090605272824862ropVar @ F @ ( set_f2 @ V ) ) ) ).

% list.set_map
thf(fact_74_list_Omap__ident,axiom,
    ! [T: list_nat] :
      ( ( map_nat_nat
        @ ^ [X3: nat] : X3
        @ T )
      = T ) ).

% list.map_ident
thf(fact_75_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_76_image__set,axiom,
    ! [F: nat > f,Xs2: list_nat] :
      ( ( image_nat_f @ F @ ( set_nat2 @ Xs2 ) )
      = ( set_f2 @ ( map_nat_f @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_77_image__set,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat] :
      ( ( image_3935346926305390661ropVar @ F @ ( set_nat2 @ Xs2 ) )
      = ( set_Mu146256361055586289ropVar @ ( map_na2466558649495876678ropVar @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_78_image__set,axiom,
    ! [F: nat > a,Xs2: list_nat] :
      ( ( image_nat_a @ F @ ( set_nat2 @ Xs2 ) )
      = ( set_a2 @ ( map_nat_a @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_79_image__set,axiom,
    ! [F: f > nat,Xs2: list_f] :
      ( ( image_f_nat @ F @ ( set_f2 @ Xs2 ) )
      = ( set_nat2 @ ( map_f_nat @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_80_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_81_image__set,axiom,
    ! [F: f > multis3193088007478089820ropVar,Xs2: list_f] :
      ( ( image_4392090605272824862ropVar @ F @ ( set_f2 @ Xs2 ) )
      = ( set_Mu146256361055586289ropVar @ ( map_f_4134023513460405853ropVar @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_82_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_83_image__set,axiom,
    ! [F: multis3193088007478089820ropVar > nat,Xs2: list_M6740372356978808802ropVar] :
      ( ( image_3439306068482956519ar_nat @ F @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
      = ( set_nat2 @ ( map_Mu1970517791673442536ar_nat @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_84_image__set,axiom,
    ! [F: multis3193088007478089820ropVar > f,Xs2: list_M6740372356978808802ropVar] :
      ( ( image_7076402817453355436pVar_f @ F @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
      = ( set_f2 @ ( map_Mu6818335725640936427pVar_f @ F @ Xs2 ) ) ) ).

% image_set
thf(fact_85_zero__less__iff__neq__zero,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
      = ( N != zero_zero_nat ) ) ).

% zero_less_iff_neq_zero
thf(fact_86_gr__implies__not__zero,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( N != zero_zero_nat ) ) ).

% gr_implies_not_zero
thf(fact_87_not__less__zero,axiom,
    ! [N: nat] :
      ~ ( ord_less_nat @ N @ zero_zero_nat ) ).

% not_less_zero
thf(fact_88_gr__zeroI,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
     => ( ord_less_nat @ zero_zero_nat @ N ) ) ).

% gr_zeroI
thf(fact_89_map__eq__Cons__conv,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat,Y: multis3193088007478089820ropVar,Ys: list_M6740372356978808802ropVar] :
      ( ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = ( cons_M4277272395645347858ropVar @ Y @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_na2466558649495876678ropVar @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_90_map__eq__Cons__conv,axiom,
    ! [F: nat > a,Xs2: list_nat,Y: a,Ys: list_a] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = ( cons_a @ Y @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_nat_a @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_91_map__eq__Cons__conv,axiom,
    ! [F: f > f,Xs2: list_f,Y: f,Ys: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_f_f @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_92_map__eq__Cons__conv,axiom,
    ! [F: nat > f,Xs2: list_nat,Y: f,Ys: list_f] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_nat_f @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_93_map__eq__Cons__conv,axiom,
    ! [F: f > nat,Xs2: list_f,Y: nat,Ys: list_nat] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = ( cons_nat @ Y @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_f_nat @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_94_map__eq__Cons__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( cons_nat @ Y @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_nat_nat @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_95_map__eq__Cons__conv,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar,Y: multis3193088007478089820ropVar,Ys: list_M6740372356978808802ropVar] :
      ( ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
        = ( cons_M4277272395645347858ropVar @ Y @ Ys ) )
      = ( ? [Z3: produc2642885279816024434ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( cons_P1504208554336013608ropVar @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_Pr3335389669906741166ropVar @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_96_map__eq__Cons__conv,axiom,
    ! [F: produc2642885279816024434ropVar > f,Xs2: list_P8791008543742759928ropVar,Y: f,Ys: list_f] :
      ( ( ( map_Pr1064736048566318677pVar_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
      = ( ? [Z3: produc2642885279816024434ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( cons_P1504208554336013608ropVar @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_Pr1064736048566318677pVar_f @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_97_map__eq__Cons__conv,axiom,
    ! [F: f > produc2642885279816024434ropVar,Xs2: list_f,Y: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( map_f_2905954635146393971ropVar @ F @ Xs2 )
        = ( cons_P1504208554336013608ropVar @ Y @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Xs2
              = ( cons_f @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_f_2905954635146393971ropVar @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_98_map__eq__Cons__conv,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat,Y: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
        = ( cons_P1504208554336013608ropVar @ Y @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( cons_nat @ Z3 @ Zs ) )
            & ( ( F @ Z3 )
              = Y )
            & ( ( map_na2145702811007361372ropVar @ F @ Zs )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_99_mem__Collect__eq,axiom,
    ! [A: produc6518373309651786023iset_a,P: produc6518373309651786023iset_a > $o] :
      ( ( member5199237121806060112iset_a @ A @ ( collec6344740439120713362iset_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_100_mem__Collect__eq,axiom,
    ! [A: product_prod_a_a,P: product_prod_a_a > $o] :
      ( ( member1426531477525435216od_a_a @ A @ ( collec3336397797384452498od_a_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_101_mem__Collect__eq,axiom,
    ! [A: nat,P: nat > $o] :
      ( ( member_nat @ A @ ( collect_nat @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_102_mem__Collect__eq,axiom,
    ! [A: f,P: f > $o] :
      ( ( member_f @ A @ ( collect_f @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_103_mem__Collect__eq,axiom,
    ! [A: a,P: a > $o] :
      ( ( member_a @ A @ ( collect_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_104_Collect__mem__eq,axiom,
    ! [A2: set_Pr79727621955416071iset_a] :
      ( ( collec6344740439120713362iset_a
        @ ^ [X3: produc6518373309651786023iset_a] : ( member5199237121806060112iset_a @ X3 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_105_Collect__mem__eq,axiom,
    ! [A2: set_Product_prod_a_a] :
      ( ( collec3336397797384452498od_a_a
        @ ^ [X3: product_prod_a_a] : ( member1426531477525435216od_a_a @ X3 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_106_Collect__mem__eq,axiom,
    ! [A2: set_nat] :
      ( ( collect_nat
        @ ^ [X3: nat] : ( member_nat @ X3 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_107_Collect__mem__eq,axiom,
    ! [A2: set_f] :
      ( ( collect_f
        @ ^ [X3: f] : ( member_f @ X3 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_108_Collect__mem__eq,axiom,
    ! [A2: set_a] :
      ( ( collect_a
        @ ^ [X3: a] : ( member_a @ X3 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_109_Cons__eq__map__conv,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar,F: nat > multis3193088007478089820ropVar,Ys: list_nat] :
      ( ( ( cons_M4277272395645347858ropVar @ X2 @ Xs2 )
        = ( map_na2466558649495876678ropVar @ F @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_na2466558649495876678ropVar @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_110_Cons__eq__map__conv,axiom,
    ! [X2: a,Xs2: list_a,F: nat > a,Ys: list_nat] :
      ( ( ( cons_a @ X2 @ Xs2 )
        = ( map_nat_a @ F @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_nat_a @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_111_Cons__eq__map__conv,axiom,
    ! [X2: f,Xs2: list_f,F: f > f,Ys: list_f] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_f_f @ F @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Ys
              = ( cons_f @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_f_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_112_Cons__eq__map__conv,axiom,
    ! [X2: f,Xs2: list_f,F: nat > f,Ys: list_nat] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_nat_f @ F @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_nat_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_113_Cons__eq__map__conv,axiom,
    ! [X2: nat,Xs2: list_nat,F: f > nat,Ys: list_f] :
      ( ( ( cons_nat @ X2 @ Xs2 )
        = ( map_f_nat @ F @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Ys
              = ( cons_f @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_f_nat @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_114_Cons__eq__map__conv,axiom,
    ! [X2: nat,Xs2: list_nat,F: nat > nat,Ys: list_nat] :
      ( ( ( cons_nat @ X2 @ Xs2 )
        = ( map_nat_nat @ F @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_nat_nat @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_115_Cons__eq__map__conv,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( cons_M4277272395645347858ropVar @ X2 @ Xs2 )
        = ( map_Pr3335389669906741166ropVar @ F @ Ys ) )
      = ( ? [Z3: produc2642885279816024434ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Ys
              = ( cons_P1504208554336013608ropVar @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_Pr3335389669906741166ropVar @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_116_Cons__eq__map__conv,axiom,
    ! [X2: f,Xs2: list_f,F: produc2642885279816024434ropVar > f,Ys: list_P8791008543742759928ropVar] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_Pr1064736048566318677pVar_f @ F @ Ys ) )
      = ( ? [Z3: produc2642885279816024434ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Ys
              = ( cons_P1504208554336013608ropVar @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_Pr1064736048566318677pVar_f @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_117_Cons__eq__map__conv,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,F: f > produc2642885279816024434ropVar,Ys: list_f] :
      ( ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
        = ( map_f_2905954635146393971ropVar @ F @ Ys ) )
      = ( ? [Z3: f,Zs: list_f] :
            ( ( Ys
              = ( cons_f @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_f_2905954635146393971ropVar @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_118_Cons__eq__map__conv,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,F: nat > produc2642885279816024434ropVar,Ys: list_nat] :
      ( ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
        = ( map_na2145702811007361372ropVar @ F @ Ys ) )
      = ( ? [Z3: nat,Zs: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z3 @ Zs ) )
            & ( X2
              = ( F @ Z3 ) )
            & ( Xs2
              = ( map_na2145702811007361372ropVar @ F @ Zs ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_119_map__eq__Cons__D,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat,Y: multis3193088007478089820ropVar,Ys: list_M6740372356978808802ropVar] :
      ( ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = ( cons_M4277272395645347858ropVar @ Y @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_na2466558649495876678ropVar @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_120_map__eq__Cons__D,axiom,
    ! [F: nat > a,Xs2: list_nat,Y: a,Ys: list_a] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = ( cons_a @ Y @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_nat_a @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_121_map__eq__Cons__D,axiom,
    ! [F: f > f,Xs2: list_f,Y: f,Ys: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_f_f @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_122_map__eq__Cons__D,axiom,
    ! [F: nat > f,Xs2: list_nat,Y: f,Ys: list_f] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_nat_f @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_123_map__eq__Cons__D,axiom,
    ! [F: f > nat,Xs2: list_f,Y: nat,Ys: list_nat] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = ( cons_nat @ Y @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_f_nat @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_124_map__eq__Cons__D,axiom,
    ! [F: nat > nat,Xs2: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( cons_nat @ Y @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_nat_nat @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_125_map__eq__Cons__D,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar,Y: multis3193088007478089820ropVar,Ys: list_M6740372356978808802ropVar] :
      ( ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
        = ( cons_M4277272395645347858ropVar @ Y @ Ys ) )
     => ? [Z4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Xs2
            = ( cons_P1504208554336013608ropVar @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_Pr3335389669906741166ropVar @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_126_map__eq__Cons__D,axiom,
    ! [F: produc2642885279816024434ropVar > f,Xs2: list_P8791008543742759928ropVar,Y: f,Ys: list_f] :
      ( ( ( map_Pr1064736048566318677pVar_f @ F @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
     => ? [Z4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Xs2
            = ( cons_P1504208554336013608ropVar @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_Pr1064736048566318677pVar_f @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_127_map__eq__Cons__D,axiom,
    ! [F: f > produc2642885279816024434ropVar,Xs2: list_f,Y: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( map_f_2905954635146393971ropVar @ F @ Xs2 )
        = ( cons_P1504208554336013608ropVar @ Y @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Xs2
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_f_2905954635146393971ropVar @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_128_map__eq__Cons__D,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat,Y: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
        = ( cons_P1504208554336013608ropVar @ Y @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( ( F @ Z4 )
            = Y )
          & ( ( map_na2145702811007361372ropVar @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_129_Cons__eq__map__D,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar,F: nat > multis3193088007478089820ropVar,Ys: list_nat] :
      ( ( ( cons_M4277272395645347858ropVar @ X2 @ Xs2 )
        = ( map_na2466558649495876678ropVar @ F @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_na2466558649495876678ropVar @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_130_Cons__eq__map__D,axiom,
    ! [X2: a,Xs2: list_a,F: nat > a,Ys: list_nat] :
      ( ( ( cons_a @ X2 @ Xs2 )
        = ( map_nat_a @ F @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_nat_a @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_131_Cons__eq__map__D,axiom,
    ! [X2: f,Xs2: list_f,F: f > f,Ys: list_f] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_f_f @ F @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Ys
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_f_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_132_Cons__eq__map__D,axiom,
    ! [X2: f,Xs2: list_f,F: nat > f,Ys: list_nat] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_nat_f @ F @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_nat_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_133_Cons__eq__map__D,axiom,
    ! [X2: nat,Xs2: list_nat,F: f > nat,Ys: list_f] :
      ( ( ( cons_nat @ X2 @ Xs2 )
        = ( map_f_nat @ F @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Ys
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_f_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_134_Cons__eq__map__D,axiom,
    ! [X2: nat,Xs2: list_nat,F: nat > nat,Ys: list_nat] :
      ( ( ( cons_nat @ X2 @ Xs2 )
        = ( map_nat_nat @ F @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_nat_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_135_Cons__eq__map__D,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( cons_M4277272395645347858ropVar @ X2 @ Xs2 )
        = ( map_Pr3335389669906741166ropVar @ F @ Ys ) )
     => ? [Z4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Ys
            = ( cons_P1504208554336013608ropVar @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_Pr3335389669906741166ropVar @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_136_Cons__eq__map__D,axiom,
    ! [X2: f,Xs2: list_f,F: produc2642885279816024434ropVar > f,Ys: list_P8791008543742759928ropVar] :
      ( ( ( cons_f @ X2 @ Xs2 )
        = ( map_Pr1064736048566318677pVar_f @ F @ Ys ) )
     => ? [Z4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Ys
            = ( cons_P1504208554336013608ropVar @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_Pr1064736048566318677pVar_f @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_137_Cons__eq__map__D,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,F: f > produc2642885279816024434ropVar,Ys: list_f] :
      ( ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
        = ( map_f_2905954635146393971ropVar @ F @ Ys ) )
     => ? [Z4: f,Zs2: list_f] :
          ( ( Ys
            = ( cons_f @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_f_2905954635146393971ropVar @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_138_Cons__eq__map__D,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,F: nat > produc2642885279816024434ropVar,Ys: list_nat] :
      ( ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
        = ( map_na2145702811007361372ropVar @ F @ Ys ) )
     => ? [Z4: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z4 @ Zs2 ) )
          & ( X2
            = ( F @ Z4 ) )
          & ( Xs2
            = ( map_na2145702811007361372ropVar @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_139_list_Osimps_I9_J,axiom,
    ! [F: f > f,X21: f,X222: list_f] :
      ( ( map_f_f @ F @ ( cons_f @ X21 @ X222 ) )
      = ( cons_f @ ( F @ X21 ) @ ( map_f_f @ F @ X222 ) ) ) ).

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

% list.simps(9)
thf(fact_141_list_Osimps_I9_J,axiom,
    ! [F: nat > multis3193088007478089820ropVar,X21: nat,X222: list_nat] :
      ( ( map_na2466558649495876678ropVar @ F @ ( cons_nat @ X21 @ X222 ) )
      = ( cons_M4277272395645347858ropVar @ ( F @ X21 ) @ ( map_na2466558649495876678ropVar @ F @ X222 ) ) ) ).

% list.simps(9)
thf(fact_142_list_Osimps_I9_J,axiom,
    ! [F: nat > a,X21: nat,X222: list_nat] :
      ( ( map_nat_a @ F @ ( cons_nat @ X21 @ X222 ) )
      = ( cons_a @ ( F @ X21 ) @ ( map_nat_a @ F @ X222 ) ) ) ).

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

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

% list.simps(9)
thf(fact_145_list_Osimps_I9_J,axiom,
    ! [F: f > produc2642885279816024434ropVar,X21: f,X222: list_f] :
      ( ( map_f_2905954635146393971ropVar @ F @ ( cons_f @ X21 @ X222 ) )
      = ( cons_P1504208554336013608ropVar @ ( F @ X21 ) @ ( map_f_2905954635146393971ropVar @ F @ X222 ) ) ) ).

% list.simps(9)
thf(fact_146_list_Osimps_I9_J,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,X21: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar] :
      ( ( map_Pr3335389669906741166ropVar @ F @ ( cons_P1504208554336013608ropVar @ X21 @ X222 ) )
      = ( cons_M4277272395645347858ropVar @ ( F @ X21 ) @ ( map_Pr3335389669906741166ropVar @ F @ X222 ) ) ) ).

% list.simps(9)
thf(fact_147_list_Osimps_I9_J,axiom,
    ! [F: produc2642885279816024434ropVar > f,X21: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar] :
      ( ( map_Pr1064736048566318677pVar_f @ F @ ( cons_P1504208554336013608ropVar @ X21 @ X222 ) )
      = ( cons_f @ ( F @ X21 ) @ ( map_Pr1064736048566318677pVar_f @ F @ X222 ) ) ) ).

% list.simps(9)
thf(fact_148_list_Osimps_I9_J,axiom,
    ! [F: produc2642885279816024434ropVar > nat,X21: produc2642885279816024434ropVar,X222: list_P8791008543742759928ropVar] :
      ( ( map_Pr7810381211709419518ar_nat @ F @ ( cons_P1504208554336013608ropVar @ X21 @ X222 ) )
      = ( cons_nat @ ( F @ X21 ) @ ( map_Pr7810381211709419518ar_nat @ F @ X222 ) ) ) ).

% list.simps(9)
thf(fact_149_ex__map__conv,axiom,
    ! [Ys: list_nat,F: nat > nat] :
      ( ( ? [Xs: list_nat] :
            ( Ys
            = ( map_nat_nat @ F @ Xs ) ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Ys ) )
           => ? [Y3: nat] :
                ( X3
                = ( F @ Y3 ) ) ) ) ) ).

% ex_map_conv
thf(fact_150_ex__map__conv,axiom,
    ! [Ys: list_P8791008543742759928ropVar,F: nat > produc2642885279816024434ropVar] :
      ( ( ? [Xs: list_nat] :
            ( Ys
            = ( map_na2145702811007361372ropVar @ F @ Xs ) ) )
      = ( ! [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ ( set_Pr3946994337432900359ropVar @ Ys ) )
           => ? [Y3: nat] :
                ( X3
                = ( F @ Y3 ) ) ) ) ) ).

% ex_map_conv
thf(fact_151_ex__map__conv,axiom,
    ! [Ys: list_M6740372356978808802ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( ? [Xs: list_P8791008543742759928ropVar] :
            ( Ys
            = ( map_Pr3335389669906741166ropVar @ F @ Xs ) ) )
      = ( ! [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Ys ) )
           => ? [Y3: produc2642885279816024434ropVar] :
                ( X3
                = ( F @ Y3 ) ) ) ) ) ).

% ex_map_conv
thf(fact_152_ex__map__conv,axiom,
    ! [Ys: list_M6740372356978808802ropVar,F: nat > multis3193088007478089820ropVar] :
      ( ( ? [Xs: list_nat] :
            ( Ys
            = ( map_na2466558649495876678ropVar @ F @ Xs ) ) )
      = ( ! [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Ys ) )
           => ? [Y3: nat] :
                ( X3
                = ( F @ Y3 ) ) ) ) ) ).

% ex_map_conv
thf(fact_153_ex__map__conv,axiom,
    ! [Ys: list_a,F: nat > a] :
      ( ( ? [Xs: list_nat] :
            ( Ys
            = ( map_nat_a @ F @ Xs ) ) )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Ys ) )
           => ? [Y3: nat] :
                ( X3
                = ( F @ Y3 ) ) ) ) ) ).

% ex_map_conv
thf(fact_154_map__cong,axiom,
    ! [Xs2: list_nat,Ys: list_nat,F: nat > produc2642885279816024434ropVar,G: nat > produc2642885279816024434ropVar] :
      ( ( Xs2 = Ys )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
          = ( map_na2145702811007361372ropVar @ G @ Ys ) ) ) ) ).

% map_cong
thf(fact_155_map__cong,axiom,
    ! [Xs2: list_nat,Ys: list_nat,F: nat > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar] :
      ( ( Xs2 = Ys )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
          = ( map_na2466558649495876678ropVar @ G @ Ys ) ) ) ) ).

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

% map_cong
thf(fact_157_map__cong,axiom,
    ! [Xs2: list_nat,Ys: list_nat,F: nat > a,G: nat > a] :
      ( ( Xs2 = Ys )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_nat_a @ F @ Xs2 )
          = ( map_nat_a @ G @ Ys ) ) ) ) ).

% map_cong
thf(fact_158_map__cong,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( Xs2 = Ys )
     => ( ! [X4: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X4 @ ( set_Pr3946994337432900359ropVar @ Ys ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
          = ( map_Pr3335389669906741166ropVar @ G @ Ys ) ) ) ) ).

% map_cong
thf(fact_159_map__idI,axiom,
    ! [Xs2: list_P6988024003011616557iset_a,F: produc6518373309651786023iset_a > produc6518373309651786023iset_a] :
      ( ! [X4: produc6518373309651786023iset_a] :
          ( ( member5199237121806060112iset_a @ X4 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_Pr5905680810515755012iset_a @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_160_map__idI,axiom,
    ! [Xs2: list_P1396940483166286381od_a_a,F: product_prod_a_a > product_prod_a_a] :
      ( ! [X4: product_prod_a_a] :
          ( ( member1426531477525435216od_a_a @ X4 @ ( set_Product_prod_a_a2 @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_Pr7904243085458786820od_a_a @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_161_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_162_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_163_map__idI,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > produc2642885279816024434ropVar] :
      ( ! [X4: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X4 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_Pr3565048146863404228ropVar @ F @ Xs2 )
        = Xs2 ) ) ).

% map_idI
thf(fact_164_map__idI,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,F: multis3193088007478089820ropVar > multis3193088007478089820ropVar] :
      ( ! [X4: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X4 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
         => ( ( F @ X4 )
            = X4 ) )
     => ( ( map_Mu2265489581466636612ropVar @ 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 > produc2642885279816024434ropVar,G: nat > produc2642885279816024434ropVar] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
        = ( map_na2145702811007361372ropVar @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_167_map__ext,axiom,
    ! [Xs2: list_nat,F: nat > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = ( map_na2466558649495876678ropVar @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_168_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_169_map__ext,axiom,
    ! [Xs2: list_nat,F: nat > a,G: nat > a] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_nat_a @ F @ Xs2 )
        = ( map_nat_a @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_170_map__ext,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ! [X4: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X4 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
        = ( map_Pr3335389669906741166ropVar @ G @ Xs2 ) ) ) ).

% map_ext
thf(fact_171_list_Omap__ident__strong,axiom,
    ! [T: list_P6988024003011616557iset_a,F: produc6518373309651786023iset_a > produc6518373309651786023iset_a] :
      ( ! [Z4: produc6518373309651786023iset_a] :
          ( ( member5199237121806060112iset_a @ Z4 @ ( set_Pr5550698219922361532iset_a @ T ) )
         => ( ( F @ Z4 )
            = Z4 ) )
     => ( ( map_Pr5905680810515755012iset_a @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_172_list_Omap__ident__strong,axiom,
    ! [T: list_P1396940483166286381od_a_a,F: product_prod_a_a > product_prod_a_a] :
      ( ! [Z4: product_prod_a_a] :
          ( ( member1426531477525435216od_a_a @ Z4 @ ( set_Product_prod_a_a2 @ T ) )
         => ( ( F @ Z4 )
            = Z4 ) )
     => ( ( map_Pr7904243085458786820od_a_a @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_173_list_Omap__ident__strong,axiom,
    ! [T: list_nat,F: nat > nat] :
      ( ! [Z4: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ T ) )
         => ( ( F @ Z4 )
            = Z4 ) )
     => ( ( map_nat_nat @ F @ T )
        = T ) ) ).

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

% list.map_ident_strong
thf(fact_175_list_Omap__ident__strong,axiom,
    ! [T: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > produc2642885279816024434ropVar] :
      ( ! [Z4: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ Z4 @ ( set_Pr3946994337432900359ropVar @ T ) )
         => ( ( F @ Z4 )
            = Z4 ) )
     => ( ( map_Pr3565048146863404228ropVar @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_176_list_Omap__ident__strong,axiom,
    ! [T: list_M6740372356978808802ropVar,F: multis3193088007478089820ropVar > multis3193088007478089820ropVar] :
      ( ! [Z4: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ Z4 @ ( set_Mu146256361055586289ropVar @ T ) )
         => ( ( F @ Z4 )
            = Z4 ) )
     => ( ( map_Mu2265489581466636612ropVar @ F @ T )
        = T ) ) ).

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

% list.map_ident_strong
thf(fact_178_list_Oinj__map__strong,axiom,
    ! [X2: list_nat,Xa: list_nat,F: nat > produc2642885279816024434ropVar,Fa: nat > produc2642885279816024434ropVar] :
      ( ! [Z4: nat,Za: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( member_nat @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z4 )
                = ( Fa @ Za ) )
             => ( Z4 = Za ) ) ) )
     => ( ( ( map_na2145702811007361372ropVar @ F @ X2 )
          = ( map_na2145702811007361372ropVar @ Fa @ Xa ) )
       => ( X2 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_179_list_Oinj__map__strong,axiom,
    ! [X2: list_nat,Xa: list_nat,F: nat > multis3193088007478089820ropVar,Fa: nat > multis3193088007478089820ropVar] :
      ( ! [Z4: nat,Za: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( member_nat @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z4 )
                = ( Fa @ Za ) )
             => ( Z4 = Za ) ) ) )
     => ( ( ( map_na2466558649495876678ropVar @ F @ X2 )
          = ( map_na2466558649495876678ropVar @ Fa @ Xa ) )
       => ( X2 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_180_list_Oinj__map__strong,axiom,
    ! [X2: list_nat,Xa: list_nat,F: nat > nat,Fa: nat > nat] :
      ( ! [Z4: nat,Za: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( member_nat @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z4 )
                = ( Fa @ Za ) )
             => ( Z4 = Za ) ) ) )
     => ( ( ( map_nat_nat @ F @ X2 )
          = ( map_nat_nat @ Fa @ Xa ) )
       => ( X2 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_181_list_Oinj__map__strong,axiom,
    ! [X2: list_nat,Xa: list_nat,F: nat > a,Fa: nat > a] :
      ( ! [Z4: nat,Za: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( member_nat @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z4 )
                = ( Fa @ Za ) )
             => ( Z4 = Za ) ) ) )
     => ( ( ( map_nat_a @ F @ X2 )
          = ( map_nat_a @ Fa @ Xa ) )
       => ( X2 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_182_list_Oinj__map__strong,axiom,
    ! [X2: list_P8791008543742759928ropVar,Xa: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Fa: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ! [Z4: produc2642885279816024434ropVar,Za: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ Z4 @ ( set_Pr3946994337432900359ropVar @ X2 ) )
         => ( ( member9210975342120487067ropVar @ Za @ ( set_Pr3946994337432900359ropVar @ Xa ) )
           => ( ( ( F @ Z4 )
                = ( Fa @ Za ) )
             => ( Z4 = Za ) ) ) )
     => ( ( ( map_Pr3335389669906741166ropVar @ F @ X2 )
          = ( map_Pr3335389669906741166ropVar @ Fa @ Xa ) )
       => ( X2 = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_183_list_Omap__cong0,axiom,
    ! [X2: list_nat,F: nat > produc2642885279816024434ropVar,G: nat > produc2642885279816024434ropVar] :
      ( ! [Z4: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( F @ Z4 )
            = ( G @ Z4 ) ) )
     => ( ( map_na2145702811007361372ropVar @ F @ X2 )
        = ( map_na2145702811007361372ropVar @ G @ X2 ) ) ) ).

% list.map_cong0
thf(fact_184_list_Omap__cong0,axiom,
    ! [X2: list_nat,F: nat > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar] :
      ( ! [Z4: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( F @ Z4 )
            = ( G @ Z4 ) ) )
     => ( ( map_na2466558649495876678ropVar @ F @ X2 )
        = ( map_na2466558649495876678ropVar @ G @ X2 ) ) ) ).

% list.map_cong0
thf(fact_185_list_Omap__cong0,axiom,
    ! [X2: list_nat,F: nat > nat,G: nat > nat] :
      ( ! [Z4: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( F @ Z4 )
            = ( G @ Z4 ) ) )
     => ( ( map_nat_nat @ F @ X2 )
        = ( map_nat_nat @ G @ X2 ) ) ) ).

% list.map_cong0
thf(fact_186_list_Omap__cong0,axiom,
    ! [X2: list_nat,F: nat > a,G: nat > a] :
      ( ! [Z4: nat] :
          ( ( member_nat @ Z4 @ ( set_nat2 @ X2 ) )
         => ( ( F @ Z4 )
            = ( G @ Z4 ) ) )
     => ( ( map_nat_a @ F @ X2 )
        = ( map_nat_a @ G @ X2 ) ) ) ).

% list.map_cong0
thf(fact_187_list_Omap__cong0,axiom,
    ! [X2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ! [Z4: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ Z4 @ ( set_Pr3946994337432900359ropVar @ X2 ) )
         => ( ( F @ Z4 )
            = ( G @ Z4 ) ) )
     => ( ( map_Pr3335389669906741166ropVar @ F @ X2 )
        = ( map_Pr3335389669906741166ropVar @ G @ X2 ) ) ) ).

% list.map_cong0
thf(fact_188_list_Omap__cong,axiom,
    ! [X2: list_nat,Ya: list_nat,F: nat > produc2642885279816024434ropVar,G: nat > produc2642885279816024434ropVar] :
      ( ( X2 = Ya )
     => ( ! [Z4: nat] :
            ( ( member_nat @ Z4 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z4 )
              = ( G @ Z4 ) ) )
       => ( ( map_na2145702811007361372ropVar @ F @ X2 )
          = ( map_na2145702811007361372ropVar @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_189_list_Omap__cong,axiom,
    ! [X2: list_nat,Ya: list_nat,F: nat > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar] :
      ( ( X2 = Ya )
     => ( ! [Z4: nat] :
            ( ( member_nat @ Z4 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z4 )
              = ( G @ Z4 ) ) )
       => ( ( map_na2466558649495876678ropVar @ F @ X2 )
          = ( map_na2466558649495876678ropVar @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_190_list_Omap__cong,axiom,
    ! [X2: list_nat,Ya: list_nat,F: nat > nat,G: nat > nat] :
      ( ( X2 = Ya )
     => ( ! [Z4: nat] :
            ( ( member_nat @ Z4 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z4 )
              = ( G @ Z4 ) ) )
       => ( ( map_nat_nat @ F @ X2 )
          = ( map_nat_nat @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_191_list_Omap__cong,axiom,
    ! [X2: list_nat,Ya: list_nat,F: nat > a,G: nat > a] :
      ( ( X2 = Ya )
     => ( ! [Z4: nat] :
            ( ( member_nat @ Z4 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z4 )
              = ( G @ Z4 ) ) )
       => ( ( map_nat_a @ F @ X2 )
          = ( map_nat_a @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_192_list_Omap__cong,axiom,
    ! [X2: list_P8791008543742759928ropVar,Ya: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( X2 = Ya )
     => ( ! [Z4: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ Z4 @ ( set_Pr3946994337432900359ropVar @ Ya ) )
           => ( ( F @ Z4 )
              = ( G @ Z4 ) ) )
       => ( ( map_Pr3335389669906741166ropVar @ F @ X2 )
          = ( map_Pr3335389669906741166ropVar @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_193_encoder_Oencode__exactly__one_Ocong,axiom,
    multis2195156209094129637ropVar = multis2195156209094129637ropVar ).

% encoder.encode_exactly_one.cong
thf(fact_194_zero__reorient,axiom,
    ! [X2: nat] :
      ( ( zero_zero_nat = X2 )
      = ( X2 = zero_zero_nat ) ) ).

% zero_reorient
thf(fact_195_not__Cons__self2,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( cons_f @ X2 @ Xs2 )
     != Xs2 ) ).

% not_Cons_self2
thf(fact_196_not__Cons__self2,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
     != Xs2 ) ).

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

% not_Cons_self2
thf(fact_198_set__ConsD,axiom,
    ! [Y: produc6518373309651786023iset_a,X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ Y @ ( set_Pr5550698219922361532iset_a @ ( cons_P7086145107730948317iset_a @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member5199237121806060112iset_a @ Y @ ( set_Pr5550698219922361532iset_a @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_199_set__ConsD,axiom,
    ! [Y: product_prod_a_a,X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ Y @ ( set_Product_prod_a_a2 @ ( cons_P7316939126706565853od_a_a @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member1426531477525435216od_a_a @ Y @ ( set_Product_prod_a_a2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_200_set__ConsD,axiom,
    ! [Y: multis3193088007478089820ropVar,X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ Y @ ( set_Mu146256361055586289ropVar @ ( cons_M4277272395645347858ropVar @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member8421201611525043589ropVar @ Y @ ( set_Mu146256361055586289ropVar @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_201_set__ConsD,axiom,
    ! [Y: a,X2: a,Xs2: list_a] :
      ( ( member_a @ Y @ ( set_a2 @ ( cons_a @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member_a @ Y @ ( set_a2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_202_set__ConsD,axiom,
    ! [Y: f,X2: f,Xs2: list_f] :
      ( ( member_f @ Y @ ( set_f2 @ ( cons_f @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member_f @ Y @ ( set_f2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_203_set__ConsD,axiom,
    ! [Y: produc2642885279816024434ropVar,X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ Y @ ( set_Pr3946994337432900359ropVar @ ( cons_P1504208554336013608ropVar @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member9210975342120487067ropVar @ Y @ ( set_Pr3946994337432900359ropVar @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_204_set__ConsD,axiom,
    ! [Y: nat,X2: nat,Xs2: list_nat] :
      ( ( member_nat @ Y @ ( set_nat2 @ ( cons_nat @ X2 @ Xs2 ) ) )
     => ( ( Y = X2 )
        | ( member_nat @ Y @ ( set_nat2 @ Xs2 ) ) ) ) ).

% set_ConsD
thf(fact_205_case__prod__conv,axiom,
    ! [F: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f,A: multis3193088007478089820ropVar,B: multis3193088007478089820ropVar] :
      ( ( produc5811297888731727041list_f @ F @ ( produc6936306168532358295ropVar @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_206_case__prod__conv,axiom,
    ! [F: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f,A: multis3193088007478089820ropVar,B: produc7679832412844898215ropVar] :
      ( ( produc1364905799853895606list_f @ F @ ( produc6194868611276206818ropVar @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_207_case__prod__conv,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,A: list_f,B: produc7679832412844898215ropVar] :
      ( ( produc5770109036932753787ropVar @ F @ ( produc5732303558254465141ropVar @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_208_case__prod__conv,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,A: list_f,B: produc7679832412844898215ropVar] :
      ( ( produc9062381539647762275list_f @ F @ ( produc5732303558254465141ropVar @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_209_case__prod__conv,axiom,
    ! [F: f > list_f > list_f,A: f,B: list_f] :
      ( ( produc150797823399499287list_f @ F @ ( produc4886901243613182557list_f @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_210_less__nat__zero__code,axiom,
    ! [N: nat] :
      ~ ( ord_less_nat @ N @ zero_zero_nat ) ).

% less_nat_zero_code
thf(fact_211_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
      = ( ord_less_nat @ zero_zero_nat @ N ) ) ).

% neq0_conv
thf(fact_212_bot__nat__0_Onot__eq__extremum,axiom,
    ! [A: nat] :
      ( ( A != zero_zero_nat )
      = ( ord_less_nat @ zero_zero_nat @ A ) ) ).

% bot_nat_0.not_eq_extremum
thf(fact_213__092_060open_062eval__all_Av_Acands_A_092_060and_062_Aeval_Av_Aone_A_061_A_I_092_060exists_062_Bx_O_Ax_A_092_060in_062_Afst_A_096_Aset_A_Imap_A_I_092_060lambda_062j_O_A_IGamma_Ai_Aj_M_AAuxZeroIJ_Ai_Aj_M_AAuxOneIJ_Ai_Aj_J_J_A_0910_O_O_060m_093_J_A_092_060and_062_Av_Ax_J_092_060close_062,axiom,
    ( ! [X: f] :
        ( ( member_f @ X @ ( set_f2 @ cands ) )
       => ( eval @ v2 @ X ) )
    & ( ( eval @ v2 @ one )
      = ( ? [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3
              @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar
                @ ( set_Pr3946994337432900359ropVar
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
                    @ ( upt @ zero_zero_nat @ m ) ) ) ) )
            & ( v2 @ X3 )
            & ! [Y3: multis3193088007478089820ropVar] :
                ( ( ( member8421201611525043589ropVar @ Y3
                    @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar
                      @ ( set_Pr3946994337432900359ropVar
                        @ ( map_na2145702811007361372ropVar
                          @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
                          @ ( upt @ zero_zero_nat @ m ) ) ) ) )
                  & ( v2 @ Y3 ) )
               => ( Y3 = X3 ) ) ) ) ) ) ).

% \<open>eval_all v cands \<and> eval v one = (\<exists>!x. x \<in> fst ` set (map (\<lambda>j. (Gamma i j, AuxZeroIJ i j, AuxOneIJ i j)) [0..<m]) \<and> v x)\<close>
thf(fact_214_formula14__def,axiom,
    ! [N: nat,M: nat] :
      ( ( multis1248899897006733423la14_f @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ enc_impl @ N @ M )
      = ( append_f
        @ ( maps_nat_f
          @ ^ [J: nat] :
              ( produc150797823399499287list_f @ cons_f
              @ ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite
                @ ( map_na2145702811007361372ropVar
                  @ ^ [I: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385521703ZeroJI @ I @ J ) @ ( multis6646701651571564453xOneJI @ I @ J ) ) )
                  @ ( upt @ zero_zero_nat @ N ) ) ) )
          @ ( upt @ zero_zero_nat @ M ) )
        @ ( maps_nat_f
          @ ^ [I: nat] :
              ( produc150797823399499287list_f
              @ ^ [One: f] : ( cons_f @ ( enc_impl @ ( multis2544335231667181926psilon @ I ) @ One ) )
              @ ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite
                @ ( map_na2145702811007361372ropVar
                  @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ I @ J ) @ ( multis6646701651571498855xOneIJ @ I @ J ) ) )
                  @ ( upt @ zero_zero_nat @ M ) ) ) )
          @ ( upt @ zero_zero_nat @ N ) ) ) ) ).

% formula14_def
thf(fact_215__092_060open_062fst_A_096_Aset_A_Imap_A_I_092_060lambda_062j_O_A_IGamma_Ai_Aj_M_AAuxZeroIJ_Ai_Aj_M_AAuxOneIJ_Ai_Aj_J_J_A_0910_O_O_060m_093_J_A_061_AGamma_Ai_A_096_Aset_A_0910_O_O_060m_093_092_060close_062,axiom,
    ( ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar
      @ ( set_Pr3946994337432900359ropVar
        @ ( map_na2145702811007361372ropVar
          @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ i @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ i @ J ) @ ( multis6646701651571498855xOneIJ @ i @ J ) ) )
          @ ( upt @ zero_zero_nat @ m ) ) ) )
    = ( image_3935346926305390661ropVar @ ( multis387687052011358179_Gamma @ i ) @ ( set_nat2 @ ( upt @ zero_zero_nat @ m ) ) ) ) ).

% \<open>fst ` set (map (\<lambda>j. (Gamma i j, AuxZeroIJ i j, AuxOneIJ i j)) [0..<m]) = Gamma i ` set [0..<m]\<close>
thf(fact_216_image__eqI,axiom,
    ! [B: multis3193088007478089820ropVar,F: nat > multis3193088007478089820ropVar,X2: nat,A2: set_nat] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_nat @ X2 @ A2 )
       => ( member8421201611525043589ropVar @ B @ ( image_3935346926305390661ropVar @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_217_image__eqI,axiom,
    ! [B: nat,F: nat > nat,X2: nat,A2: set_nat] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_nat @ X2 @ A2 )
       => ( member_nat @ B @ ( image_nat_nat @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_218_image__eqI,axiom,
    ! [B: f,F: nat > f,X2: nat,A2: set_nat] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_nat @ X2 @ A2 )
       => ( member_f @ B @ ( image_nat_f @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_219_image__eqI,axiom,
    ! [B: a,F: nat > a,X2: nat,A2: set_nat] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_nat @ X2 @ A2 )
       => ( member_a @ B @ ( image_nat_a @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_220_image__eqI,axiom,
    ! [B: nat,F: f > nat,X2: f,A2: set_f] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_f @ X2 @ A2 )
       => ( member_nat @ B @ ( image_f_nat @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_221_image__eqI,axiom,
    ! [B: f,F: f > f,X2: f,A2: set_f] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_f @ X2 @ A2 )
       => ( member_f @ B @ ( image_f_f @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_222_image__eqI,axiom,
    ! [B: a,F: f > a,X2: f,A2: set_f] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_f @ X2 @ A2 )
       => ( member_a @ B @ ( image_f_a @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_223_image__eqI,axiom,
    ! [B: nat,F: a > nat,X2: a,A2: set_a] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_a @ X2 @ A2 )
       => ( member_nat @ B @ ( image_a_nat @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_224_image__eqI,axiom,
    ! [B: f,F: a > f,X2: a,A2: set_a] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_a @ X2 @ A2 )
       => ( member_f @ B @ ( image_a_f @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_225_image__eqI,axiom,
    ! [B: a,F: a > a,X2: a,A2: set_a] :
      ( ( B
        = ( F @ X2 ) )
     => ( ( member_a @ X2 @ A2 )
       => ( member_a @ B @ ( image_a_a @ F @ A2 ) ) ) ) ).

% image_eqI
thf(fact_226_old_Oprod_Oinject,axiom,
    ! [A: multiset_a,B: multiset_a,A3: multiset_a,B2: multiset_a] :
      ( ( ( produc654756711066625303iset_a @ A @ B )
        = ( produc654756711066625303iset_a @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_227_old_Oprod_Oinject,axiom,
    ! [A: list_f,B: produc7679832412844898215ropVar,A3: list_f,B2: produc7679832412844898215ropVar] :
      ( ( ( produc5732303558254465141ropVar @ A @ B )
        = ( produc5732303558254465141ropVar @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_228_old_Oprod_Oinject,axiom,
    ! [A: $o,B: $o,A3: $o,B2: $o] :
      ( ( ( product_Pair_o_o @ A @ B )
        = ( product_Pair_o_o @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

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

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

% old.prod.inject
thf(fact_231_prod_Oinject,axiom,
    ! [X1: multiset_a,X22: multiset_a,Y1: multiset_a,Y2: multiset_a] :
      ( ( ( produc654756711066625303iset_a @ X1 @ X22 )
        = ( produc654756711066625303iset_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y2 ) ) ) ).

% prod.inject
thf(fact_232_prod_Oinject,axiom,
    ! [X1: list_f,X22: produc7679832412844898215ropVar,Y1: list_f,Y2: produc7679832412844898215ropVar] :
      ( ( ( produc5732303558254465141ropVar @ X1 @ X22 )
        = ( produc5732303558254465141ropVar @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y2 ) ) ) ).

% prod.inject
thf(fact_233_prod_Oinject,axiom,
    ! [X1: $o,X22: $o,Y1: $o,Y2: $o] :
      ( ( ( product_Pair_o_o @ X1 @ X22 )
        = ( product_Pair_o_o @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y2 ) ) ) ).

% prod.inject
thf(fact_234_prod_Oinject,axiom,
    ! [X1: f,X22: list_f,Y1: f,Y2: list_f] :
      ( ( ( produc4886901243613182557list_f @ X1 @ X22 )
        = ( produc4886901243613182557list_f @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X22 = Y2 ) ) ) ).

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

% prod.inject
thf(fact_236_same__append__eq,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_f] :
      ( ( ( append_f @ Xs2 @ Ys )
        = ( append_f @ Xs2 @ Zs3 ) )
      = ( Ys = Zs3 ) ) ).

% same_append_eq
thf(fact_237_same__append__eq,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_nat] :
      ( ( ( append_nat @ Xs2 @ Ys )
        = ( append_nat @ Xs2 @ Zs3 ) )
      = ( Ys = Zs3 ) ) ).

% same_append_eq
thf(fact_238_append__same__eq,axiom,
    ! [Ys: list_f,Xs2: list_f,Zs3: list_f] :
      ( ( ( append_f @ Ys @ Xs2 )
        = ( append_f @ Zs3 @ Xs2 ) )
      = ( Ys = Zs3 ) ) ).

% append_same_eq
thf(fact_239_append__same__eq,axiom,
    ! [Ys: list_nat,Xs2: list_nat,Zs3: list_nat] :
      ( ( ( append_nat @ Ys @ Xs2 )
        = ( append_nat @ Zs3 @ Xs2 ) )
      = ( Ys = Zs3 ) ) ).

% append_same_eq
thf(fact_240_append__assoc,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_f] :
      ( ( append_f @ ( append_f @ Xs2 @ Ys ) @ Zs3 )
      = ( append_f @ Xs2 @ ( append_f @ Ys @ Zs3 ) ) ) ).

% append_assoc
thf(fact_241_append__assoc,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_nat] :
      ( ( append_nat @ ( append_nat @ Xs2 @ Ys ) @ Zs3 )
      = ( append_nat @ Xs2 @ ( append_nat @ Ys @ Zs3 ) ) ) ).

% append_assoc
thf(fact_242_append_Oassoc,axiom,
    ! [A: list_f,B: list_f,C: list_f] :
      ( ( append_f @ ( append_f @ A @ B ) @ C )
      = ( append_f @ A @ ( append_f @ B @ C ) ) ) ).

% append.assoc
thf(fact_243_append_Oassoc,axiom,
    ! [A: list_nat,B: list_nat,C: list_nat] :
      ( ( append_nat @ ( append_nat @ A @ B ) @ C )
      = ( append_nat @ A @ ( append_nat @ B @ C ) ) ) ).

% append.assoc
thf(fact_244_PropVar_Oinject_I3_J,axiom,
    ! [X31: nat,X32: nat,Y31: nat,Y32: nat] :
      ( ( ( multis2983220944385521703ZeroJI @ X31 @ X32 )
        = ( multis2983220944385521703ZeroJI @ Y31 @ Y32 ) )
      = ( ( X31 = Y31 )
        & ( X32 = Y32 ) ) ) ).

% PropVar.inject(3)
thf(fact_245_PropVar_Oinject_I4_J,axiom,
    ! [X41: nat,X42: nat,Y41: nat,Y42: nat] :
      ( ( ( multis6646701651571564453xOneJI @ X41 @ X42 )
        = ( multis6646701651571564453xOneJI @ Y41 @ Y42 ) )
      = ( ( X41 = Y41 )
        & ( X42 = Y42 ) ) ) ).

% PropVar.inject(4)
thf(fact_246_case__prodI,axiom,
    ! [F: multiset_a > multiset_a > $o,A: multiset_a,B: multiset_a] :
      ( ( F @ A @ B )
     => ( produc3007774963387989868et_a_o @ F @ ( produc654756711066625303iset_a @ A @ B ) ) ) ).

% case_prodI
thf(fact_247_case__prodI,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > $o,A: list_f,B: produc7679832412844898215ropVar] :
      ( ( F @ A @ B )
     => ( produc4579496310850675342pVar_o @ F @ ( produc5732303558254465141ropVar @ A @ B ) ) ) ).

% case_prodI
thf(fact_248_case__prodI,axiom,
    ! [F: $o > $o > $o,A: $o,B: $o] :
      ( ( F @ A @ B )
     => ( produc6197397395684419436_o_o_o @ F @ ( product_Pair_o_o @ A @ B ) ) ) ).

% case_prodI
thf(fact_249_case__prodI,axiom,
    ! [F: f > list_f > $o,A: f,B: list_f] :
      ( ( F @ A @ B )
     => ( produc5350256331493419686st_f_o @ F @ ( produc4886901243613182557list_f @ A @ B ) ) ) ).

% case_prodI
thf(fact_250_case__prodI,axiom,
    ! [F: a > a > $o,A: a,B: a] :
      ( ( F @ A @ B )
     => ( produc6436628058953941356_a_a_o @ F @ ( product_Pair_a_a @ A @ B ) ) ) ).

% case_prodI
thf(fact_251_case__prodI2,axiom,
    ! [P2: produc6518373309651786023iset_a,C: multiset_a > multiset_a > $o] :
      ( ! [A4: multiset_a,B3: multiset_a] :
          ( ( P2
            = ( produc654756711066625303iset_a @ A4 @ B3 ) )
         => ( C @ A4 @ B3 ) )
     => ( produc3007774963387989868et_a_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_252_case__prodI2,axiom,
    ! [P2: produc7903949528580895877ropVar,C: list_f > produc7679832412844898215ropVar > $o] :
      ( ! [A4: list_f,B3: produc7679832412844898215ropVar] :
          ( ( P2
            = ( produc5732303558254465141ropVar @ A4 @ B3 ) )
         => ( C @ A4 @ B3 ) )
     => ( produc4579496310850675342pVar_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_253_case__prodI2,axiom,
    ! [P2: product_prod_o_o,C: $o > $o > $o] :
      ( ! [A4: $o,B3: $o] :
          ( ( P2
            = ( product_Pair_o_o @ A4 @ B3 ) )
         => ( C @ A4 @ B3 ) )
     => ( produc6197397395684419436_o_o_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_254_case__prodI2,axiom,
    ! [P2: produc7257588745650887789list_f,C: f > list_f > $o] :
      ( ! [A4: f,B3: list_f] :
          ( ( P2
            = ( produc4886901243613182557list_f @ A4 @ B3 ) )
         => ( C @ A4 @ B3 ) )
     => ( produc5350256331493419686st_f_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_255_case__prodI2,axiom,
    ! [P2: product_prod_a_a,C: a > a > $o] :
      ( ! [A4: a,B3: a] :
          ( ( P2
            = ( product_Pair_a_a @ A4 @ B3 ) )
         => ( C @ A4 @ B3 ) )
     => ( produc6436628058953941356_a_a_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_256_mem__case__prodI,axiom,
    ! [Z: nat,C: $o > $o > set_nat,A: $o,B: $o] :
      ( ( member_nat @ Z @ ( C @ A @ B ) )
     => ( member_nat @ Z @ ( produc6723186405834743986et_nat @ C @ ( product_Pair_o_o @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_257_mem__case__prodI,axiom,
    ! [Z: f,C: $o > $o > set_f,A: $o,B: $o] :
      ( ( member_f @ Z @ ( C @ A @ B ) )
     => ( member_f @ Z @ ( produc8162358561403431863_set_f @ C @ ( product_Pair_o_o @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_258_mem__case__prodI,axiom,
    ! [Z: a,C: $o > $o > set_a,A: $o,B: $o] :
      ( ( member_a @ Z @ ( C @ A @ B ) )
     => ( member_a @ Z @ ( produc8162358539887287858_set_a @ C @ ( product_Pair_o_o @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_259_mem__case__prodI,axiom,
    ! [Z: nat,C: a > a > set_nat,A: a,B: a] :
      ( ( member_nat @ Z @ ( C @ A @ B ) )
     => ( member_nat @ Z @ ( produc153843693180602034et_nat @ C @ ( product_Pair_a_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_260_mem__case__prodI,axiom,
    ! [Z: f,C: a > a > set_f,A: a,B: a] :
      ( ( member_f @ Z @ ( C @ A @ B ) )
     => ( member_f @ Z @ ( produc9217457844269122999_set_f @ C @ ( product_Pair_a_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_261_mem__case__prodI,axiom,
    ! [Z: a,C: a > a > set_a,A: a,B: a] :
      ( ( member_a @ Z @ ( C @ A @ B ) )
     => ( member_a @ Z @ ( produc9217457822752978994_set_a @ C @ ( product_Pair_a_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_262_mem__case__prodI,axiom,
    ! [Z: nat,C: f > list_f > set_nat,A: f,B: list_f] :
      ( ( member_nat @ Z @ ( C @ A @ B ) )
     => ( member_nat @ Z @ ( produc6898626462297016312et_nat @ C @ ( produc4886901243613182557list_f @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_263_mem__case__prodI,axiom,
    ! [Z: f,C: f > list_f > set_f,A: f,B: list_f] :
      ( ( member_f @ Z @ ( C @ A @ B ) )
     => ( member_f @ Z @ ( produc9216198055058590193_set_f @ C @ ( produc4886901243613182557list_f @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_264_mem__case__prodI,axiom,
    ! [Z: a,C: f > list_f > set_a,A: f,B: list_f] :
      ( ( member_a @ Z @ ( C @ A @ B ) )
     => ( member_a @ Z @ ( produc9216198033542446188_set_a @ C @ ( produc4886901243613182557list_f @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_265_mem__case__prodI,axiom,
    ! [Z: nat,C: multiset_a > multiset_a > set_nat,A: multiset_a,B: multiset_a] :
      ( ( member_nat @ Z @ ( C @ A @ B ) )
     => ( member_nat @ Z @ ( produc8854979857967171762et_nat @ C @ ( produc654756711066625303iset_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_266_mem__case__prodI2,axiom,
    ! [P2: product_prod_o_o,Z: nat,C: $o > $o > set_nat] :
      ( ! [A4: $o,B3: $o] :
          ( ( P2
            = ( product_Pair_o_o @ A4 @ B3 ) )
         => ( member_nat @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_nat @ Z @ ( produc6723186405834743986et_nat @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_267_mem__case__prodI2,axiom,
    ! [P2: product_prod_o_o,Z: f,C: $o > $o > set_f] :
      ( ! [A4: $o,B3: $o] :
          ( ( P2
            = ( product_Pair_o_o @ A4 @ B3 ) )
         => ( member_f @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_f @ Z @ ( produc8162358561403431863_set_f @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_268_mem__case__prodI2,axiom,
    ! [P2: product_prod_o_o,Z: a,C: $o > $o > set_a] :
      ( ! [A4: $o,B3: $o] :
          ( ( P2
            = ( product_Pair_o_o @ A4 @ B3 ) )
         => ( member_a @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_a @ Z @ ( produc8162358539887287858_set_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_269_mem__case__prodI2,axiom,
    ! [P2: product_prod_a_a,Z: nat,C: a > a > set_nat] :
      ( ! [A4: a,B3: a] :
          ( ( P2
            = ( product_Pair_a_a @ A4 @ B3 ) )
         => ( member_nat @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_nat @ Z @ ( produc153843693180602034et_nat @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_270_mem__case__prodI2,axiom,
    ! [P2: product_prod_a_a,Z: f,C: a > a > set_f] :
      ( ! [A4: a,B3: a] :
          ( ( P2
            = ( product_Pair_a_a @ A4 @ B3 ) )
         => ( member_f @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_f @ Z @ ( produc9217457844269122999_set_f @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_271_mem__case__prodI2,axiom,
    ! [P2: product_prod_a_a,Z: a,C: a > a > set_a] :
      ( ! [A4: a,B3: a] :
          ( ( P2
            = ( product_Pair_a_a @ A4 @ B3 ) )
         => ( member_a @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_a @ Z @ ( produc9217457822752978994_set_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_272_mem__case__prodI2,axiom,
    ! [P2: produc7257588745650887789list_f,Z: nat,C: f > list_f > set_nat] :
      ( ! [A4: f,B3: list_f] :
          ( ( P2
            = ( produc4886901243613182557list_f @ A4 @ B3 ) )
         => ( member_nat @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_nat @ Z @ ( produc6898626462297016312et_nat @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_273_mem__case__prodI2,axiom,
    ! [P2: produc7257588745650887789list_f,Z: f,C: f > list_f > set_f] :
      ( ! [A4: f,B3: list_f] :
          ( ( P2
            = ( produc4886901243613182557list_f @ A4 @ B3 ) )
         => ( member_f @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_f @ Z @ ( produc9216198055058590193_set_f @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_274_mem__case__prodI2,axiom,
    ! [P2: produc7257588745650887789list_f,Z: a,C: f > list_f > set_a] :
      ( ! [A4: f,B3: list_f] :
          ( ( P2
            = ( produc4886901243613182557list_f @ A4 @ B3 ) )
         => ( member_a @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_a @ Z @ ( produc9216198033542446188_set_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_275_mem__case__prodI2,axiom,
    ! [P2: produc6518373309651786023iset_a,Z: nat,C: multiset_a > multiset_a > set_nat] :
      ( ! [A4: multiset_a,B3: multiset_a] :
          ( ( P2
            = ( produc654756711066625303iset_a @ A4 @ B3 ) )
         => ( member_nat @ Z @ ( C @ A4 @ B3 ) ) )
     => ( member_nat @ Z @ ( produc8854979857967171762et_nat @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_276_map__append,axiom,
    ! [F: f > f,Xs2: list_f,Ys: list_f] :
      ( ( map_f_f @ F @ ( append_f @ Xs2 @ Ys ) )
      = ( append_f @ ( map_f_f @ F @ Xs2 ) @ ( map_f_f @ F @ Ys ) ) ) ).

% map_append
thf(fact_277_map__append,axiom,
    ! [F: f > nat,Xs2: list_f,Ys: list_f] :
      ( ( map_f_nat @ F @ ( append_f @ Xs2 @ Ys ) )
      = ( append_nat @ ( map_f_nat @ F @ Xs2 ) @ ( map_f_nat @ F @ Ys ) ) ) ).

% map_append
thf(fact_278_map__append,axiom,
    ! [F: nat > f,Xs2: list_nat,Ys: list_nat] :
      ( ( map_nat_f @ F @ ( append_nat @ Xs2 @ Ys ) )
      = ( append_f @ ( map_nat_f @ F @ Xs2 ) @ ( map_nat_f @ F @ Ys ) ) ) ).

% map_append
thf(fact_279_map__append,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat,Ys: list_nat] :
      ( ( map_na2145702811007361372ropVar @ F @ ( append_nat @ Xs2 @ Ys ) )
      = ( append4352292717583037453ropVar @ ( map_na2145702811007361372ropVar @ F @ Xs2 ) @ ( map_na2145702811007361372ropVar @ F @ Ys ) ) ) ).

% map_append
thf(fact_280_map__append,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( map_Pr3335389669906741166ropVar @ F @ ( append4352292717583037453ropVar @ Xs2 @ Ys ) )
      = ( append2684835082924936439ropVar @ ( map_Pr3335389669906741166ropVar @ F @ Xs2 ) @ ( map_Pr3335389669906741166ropVar @ F @ Ys ) ) ) ).

% map_append
thf(fact_281_map__append,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat,Ys: list_nat] :
      ( ( map_na2466558649495876678ropVar @ F @ ( append_nat @ Xs2 @ Ys ) )
      = ( append2684835082924936439ropVar @ ( map_na2466558649495876678ropVar @ F @ Xs2 ) @ ( map_na2466558649495876678ropVar @ F @ Ys ) ) ) ).

% map_append
thf(fact_282_map__append,axiom,
    ! [F: nat > nat,Xs2: list_nat,Ys: list_nat] :
      ( ( map_nat_nat @ F @ ( append_nat @ Xs2 @ Ys ) )
      = ( append_nat @ ( map_nat_nat @ F @ Xs2 ) @ ( map_nat_nat @ F @ Ys ) ) ) ).

% map_append
thf(fact_283_map__append,axiom,
    ! [F: nat > a,Xs2: list_nat,Ys: list_nat] :
      ( ( map_nat_a @ F @ ( append_nat @ Xs2 @ Ys ) )
      = ( append_a @ ( map_nat_a @ F @ Xs2 ) @ ( map_nat_a @ F @ Ys ) ) ) ).

% map_append
thf(fact_284_pair__imageI,axiom,
    ! [A: $o,B: $o,A2: set_Product_prod_o_o,F: $o > $o > nat] :
      ( ( member7466972457876170832od_o_o @ ( product_Pair_o_o @ A @ B ) @ A2 )
     => ( member_nat @ ( F @ A @ B ) @ ( image_3818509671500154290_o_nat @ ( produc5300922066696922364_o_nat @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_285_pair__imageI,axiom,
    ! [A: $o,B: $o,A2: set_Product_prod_o_o,F: $o > $o > f] :
      ( ( member7466972457876170832od_o_o @ ( product_Pair_o_o @ A @ B ) @ A2 )
     => ( member_f @ ( F @ A @ B ) @ ( image_1625555692148909473_o_o_f @ ( produc368963595484087511_o_o_f @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_286_pair__imageI,axiom,
    ! [A: $o,B: $o,A2: set_Product_prod_o_o,F: $o > $o > a] :
      ( ( member7466972457876170832od_o_o @ ( product_Pair_o_o @ A @ B ) @ A2 )
     => ( member_a @ ( F @ A @ B ) @ ( image_1625555692148909468_o_o_a @ ( produc368963595484087506_o_o_a @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_287_pair__imageI,axiom,
    ! [A: a,B: a,A2: set_Product_prod_a_a,F: a > a > nat] :
      ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A @ B ) @ A2 )
     => ( member_nat @ ( F @ A @ B ) @ ( image_9053670898913107890_a_nat @ ( produc3852632504931109628_a_nat @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_288_pair__imageI,axiom,
    ! [A: a,B: a,A2: set_Product_prod_a_a,F: a > a > f] :
      ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A @ B ) @ A2 )
     => ( member_f @ ( F @ A @ B ) @ ( image_3437945252899457953_a_a_f @ ( produc8815886927560695511_a_a_f @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_289_pair__imageI,axiom,
    ! [A: a,B: a,A2: set_Product_prod_a_a,F: a > a > a] :
      ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A @ B ) @ A2 )
     => ( member_a @ ( F @ A @ B ) @ ( image_3437945252899457948_a_a_a @ ( produc8815886927560695506_a_a_a @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_290_pair__imageI,axiom,
    ! [A: f,B: list_f,A2: set_Pr9218602257211810509list_f,F: f > list_f > nat] :
      ( ( member3461277295392922134list_f @ ( produc4886901243613182557list_f @ A @ B ) @ A2 )
     => ( member_nat @ ( F @ A @ B ) @ ( image_1429827293116670456_f_nat @ ( produc4347502681227453506_f_nat @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_291_pair__imageI,axiom,
    ! [A: f,B: list_f,A2: set_Pr9218602257211810509list_f,F: f > list_f > f] :
      ( ( member3461277295392922134list_f @ ( produc4886901243613182557list_f @ A @ B ) @ A2 )
     => ( member_f @ ( F @ A @ B ) @ ( image_6487518781707439835st_f_f @ ( produc2813270370470005521st_f_f @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_292_pair__imageI,axiom,
    ! [A: f,B: list_f,A2: set_Pr9218602257211810509list_f,F: f > list_f > a] :
      ( ( member3461277295392922134list_f @ ( produc4886901243613182557list_f @ A @ B ) @ A2 )
     => ( member_a @ ( F @ A @ B ) @ ( image_6487518781707439830st_f_a @ ( produc2813270370470005516st_f_a @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_293_pair__imageI,axiom,
    ! [A: multis3193088007478089820ropVar,B: produc7679832412844898215ropVar,A2: set_Pr6405597471078531282ropVar,F: multis3193088007478089820ropVar > produc7679832412844898215ropVar > multis3193088007478089820ropVar] :
      ( ( member9210975342120487067ropVar @ ( produc6194868611276206818ropVar @ A @ B ) @ A2 )
     => ( member8421201611525043589ropVar @ ( F @ A @ B ) @ ( image_4513341045867859311ropVar @ ( produc4525797517566130981ropVar @ F ) @ A2 ) ) ) ).

% pair_imageI
thf(fact_294_eval__all__append,axiom,
    ! [Fs: list_f,Gs: list_f,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ ( append_f @ Fs @ Gs ) ) )
           => ( eval @ Alpha @ X3 ) ) )
      = ( ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Fs ) )
           => ( eval @ Alpha @ X3 ) )
        & ! [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Gs ) )
           => ( eval @ Alpha @ X3 ) ) ) ) ).

% eval_all_append
thf(fact_295_append__eq__append__conv2,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_f,Ts: list_f] :
      ( ( ( append_f @ Xs2 @ Ys )
        = ( append_f @ Zs3 @ Ts ) )
      = ( ? [Us: list_f] :
            ( ( ( Xs2
                = ( append_f @ Zs3 @ Us ) )
              & ( ( append_f @ Us @ Ys )
                = Ts ) )
            | ( ( ( append_f @ Xs2 @ Us )
                = Zs3 )
              & ( Ys
                = ( append_f @ Us @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_296_append__eq__append__conv2,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_nat,Ts: list_nat] :
      ( ( ( append_nat @ Xs2 @ Ys )
        = ( append_nat @ Zs3 @ Ts ) )
      = ( ? [Us: list_nat] :
            ( ( ( Xs2
                = ( append_nat @ Zs3 @ Us ) )
              & ( ( append_nat @ Us @ Ys )
                = Ts ) )
            | ( ( ( append_nat @ Xs2 @ Us )
                = Zs3 )
              & ( Ys
                = ( append_nat @ Us @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_297_append__eq__appendI,axiom,
    ! [Xs2: list_f,Xs1: list_f,Zs3: list_f,Ys: list_f,Us2: list_f] :
      ( ( ( append_f @ Xs2 @ Xs1 )
        = Zs3 )
     => ( ( Ys
          = ( append_f @ Xs1 @ Us2 ) )
       => ( ( append_f @ Xs2 @ Ys )
          = ( append_f @ Zs3 @ Us2 ) ) ) ) ).

% append_eq_appendI
thf(fact_298_append__eq__appendI,axiom,
    ! [Xs2: list_nat,Xs1: list_nat,Zs3: list_nat,Ys: list_nat,Us2: list_nat] :
      ( ( ( append_nat @ Xs2 @ Xs1 )
        = Zs3 )
     => ( ( Ys
          = ( append_nat @ Xs1 @ Us2 ) )
       => ( ( append_nat @ Xs2 @ Ys )
          = ( append_nat @ Zs3 @ Us2 ) ) ) ) ).

% append_eq_appendI
thf(fact_299_PropVar_Odistinct_I19_J,axiom,
    ! [X31: nat,X32: nat,X41: nat,X42: nat] :
      ( ( multis2983220944385521703ZeroJI @ X31 @ X32 )
     != ( multis6646701651571564453xOneJI @ X41 @ X42 ) ) ).

% PropVar.distinct(19)
thf(fact_300_fst__eqD,axiom,
    ! [X2: multiset_a,Y: multiset_a,A: multiset_a] :
      ( ( ( produc4115391677465734915iset_a @ ( produc654756711066625303iset_a @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_301_fst__eqD,axiom,
    ! [X2: list_f,Y: produc7679832412844898215ropVar,A: list_f] :
      ( ( ( produc3716127084588840033ropVar @ ( produc5732303558254465141ropVar @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_302_fst__eqD,axiom,
    ! [X2: $o,Y: $o,A: $o] :
      ( ( ( product_fst_o_o @ ( product_Pair_o_o @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_303_fst__eqD,axiom,
    ! [X2: f,Y: list_f,A: f] :
      ( ( ( product_fst_f_list_f @ ( produc4886901243613182557list_f @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_304_fst__eqD,axiom,
    ! [X2: a,Y: a,A: a] :
      ( ( ( product_fst_a_a @ ( product_Pair_a_a @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_305_fst__eqD,axiom,
    ! [X2: multis3193088007478089820ropVar,Y: produc7679832412844898215ropVar,A: multis3193088007478089820ropVar] :
      ( ( ( produc6918815732823278798ropVar @ ( produc6194868611276206818ropVar @ X2 @ Y ) )
        = A )
     => ( X2 = A ) ) ).

% fst_eqD
thf(fact_306_fst__conv,axiom,
    ! [X1: multiset_a,X22: multiset_a] :
      ( ( produc4115391677465734915iset_a @ ( produc654756711066625303iset_a @ X1 @ X22 ) )
      = X1 ) ).

% fst_conv
thf(fact_307_fst__conv,axiom,
    ! [X1: list_f,X22: produc7679832412844898215ropVar] :
      ( ( produc3716127084588840033ropVar @ ( produc5732303558254465141ropVar @ X1 @ X22 ) )
      = X1 ) ).

% fst_conv
thf(fact_308_fst__conv,axiom,
    ! [X1: $o,X22: $o] :
      ( ( product_fst_o_o @ ( product_Pair_o_o @ X1 @ X22 ) )
      = X1 ) ).

% fst_conv
thf(fact_309_fst__conv,axiom,
    ! [X1: f,X22: list_f] :
      ( ( product_fst_f_list_f @ ( produc4886901243613182557list_f @ X1 @ X22 ) )
      = X1 ) ).

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

% fst_conv
thf(fact_311_fst__conv,axiom,
    ! [X1: multis3193088007478089820ropVar,X22: produc7679832412844898215ropVar] :
      ( ( produc6918815732823278798ropVar @ ( produc6194868611276206818ropVar @ X1 @ X22 ) )
      = X1 ) ).

% fst_conv
thf(fact_312_mem__case__prodE,axiom,
    ! [Z: nat,C: $o > $o > set_nat,P2: product_prod_o_o] :
      ( ( member_nat @ Z @ ( produc6723186405834743986et_nat @ C @ P2 ) )
     => ~ ! [X4: $o,Y5: $o] :
            ( ( P2
              = ( product_Pair_o_o @ X4 @ Y5 ) )
           => ~ ( member_nat @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_313_mem__case__prodE,axiom,
    ! [Z: f,C: $o > $o > set_f,P2: product_prod_o_o] :
      ( ( member_f @ Z @ ( produc8162358561403431863_set_f @ C @ P2 ) )
     => ~ ! [X4: $o,Y5: $o] :
            ( ( P2
              = ( product_Pair_o_o @ X4 @ Y5 ) )
           => ~ ( member_f @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_314_mem__case__prodE,axiom,
    ! [Z: a,C: $o > $o > set_a,P2: product_prod_o_o] :
      ( ( member_a @ Z @ ( produc8162358539887287858_set_a @ C @ P2 ) )
     => ~ ! [X4: $o,Y5: $o] :
            ( ( P2
              = ( product_Pair_o_o @ X4 @ Y5 ) )
           => ~ ( member_a @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_315_mem__case__prodE,axiom,
    ! [Z: nat,C: a > a > set_nat,P2: product_prod_a_a] :
      ( ( member_nat @ Z @ ( produc153843693180602034et_nat @ C @ P2 ) )
     => ~ ! [X4: a,Y5: a] :
            ( ( P2
              = ( product_Pair_a_a @ X4 @ Y5 ) )
           => ~ ( member_nat @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_316_mem__case__prodE,axiom,
    ! [Z: f,C: a > a > set_f,P2: product_prod_a_a] :
      ( ( member_f @ Z @ ( produc9217457844269122999_set_f @ C @ P2 ) )
     => ~ ! [X4: a,Y5: a] :
            ( ( P2
              = ( product_Pair_a_a @ X4 @ Y5 ) )
           => ~ ( member_f @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_317_mem__case__prodE,axiom,
    ! [Z: a,C: a > a > set_a,P2: product_prod_a_a] :
      ( ( member_a @ Z @ ( produc9217457822752978994_set_a @ C @ P2 ) )
     => ~ ! [X4: a,Y5: a] :
            ( ( P2
              = ( product_Pair_a_a @ X4 @ Y5 ) )
           => ~ ( member_a @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_318_mem__case__prodE,axiom,
    ! [Z: nat,C: f > list_f > set_nat,P2: produc7257588745650887789list_f] :
      ( ( member_nat @ Z @ ( produc6898626462297016312et_nat @ C @ P2 ) )
     => ~ ! [X4: f,Y5: list_f] :
            ( ( P2
              = ( produc4886901243613182557list_f @ X4 @ Y5 ) )
           => ~ ( member_nat @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_319_mem__case__prodE,axiom,
    ! [Z: f,C: f > list_f > set_f,P2: produc7257588745650887789list_f] :
      ( ( member_f @ Z @ ( produc9216198055058590193_set_f @ C @ P2 ) )
     => ~ ! [X4: f,Y5: list_f] :
            ( ( P2
              = ( produc4886901243613182557list_f @ X4 @ Y5 ) )
           => ~ ( member_f @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_320_mem__case__prodE,axiom,
    ! [Z: a,C: f > list_f > set_a,P2: produc7257588745650887789list_f] :
      ( ( member_a @ Z @ ( produc9216198033542446188_set_a @ C @ P2 ) )
     => ~ ! [X4: f,Y5: list_f] :
            ( ( P2
              = ( produc4886901243613182557list_f @ X4 @ Y5 ) )
           => ~ ( member_a @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_321_mem__case__prodE,axiom,
    ! [Z: nat,C: multiset_a > multiset_a > set_nat,P2: produc6518373309651786023iset_a] :
      ( ( member_nat @ Z @ ( produc8854979857967171762et_nat @ C @ P2 ) )
     => ~ ! [X4: multiset_a,Y5: multiset_a] :
            ( ( P2
              = ( produc654756711066625303iset_a @ X4 @ Y5 ) )
           => ~ ( member_nat @ Z @ ( C @ X4 @ Y5 ) ) ) ) ).

% mem_case_prodE
thf(fact_322_ms__encoder_Oformula14_Ocong,axiom,
    multis1248899897006733423la14_f = multis1248899897006733423la14_f ).

% ms_encoder.formula14.cong
thf(fact_323_case__prodD,axiom,
    ! [F: multiset_a > multiset_a > $o,A: multiset_a,B: multiset_a] :
      ( ( produc3007774963387989868et_a_o @ F @ ( produc654756711066625303iset_a @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_324_case__prodD,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > $o,A: list_f,B: produc7679832412844898215ropVar] :
      ( ( produc4579496310850675342pVar_o @ F @ ( produc5732303558254465141ropVar @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_325_case__prodD,axiom,
    ! [F: $o > $o > $o,A: $o,B: $o] :
      ( ( produc6197397395684419436_o_o_o @ F @ ( product_Pair_o_o @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_326_case__prodD,axiom,
    ! [F: f > list_f > $o,A: f,B: list_f] :
      ( ( produc5350256331493419686st_f_o @ F @ ( produc4886901243613182557list_f @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_327_case__prodD,axiom,
    ! [F: a > a > $o,A: a,B: a] :
      ( ( produc6436628058953941356_a_a_o @ F @ ( product_Pair_a_a @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_328_case__prodE,axiom,
    ! [C: multiset_a > multiset_a > $o,P2: produc6518373309651786023iset_a] :
      ( ( produc3007774963387989868et_a_o @ C @ P2 )
     => ~ ! [X4: multiset_a,Y5: multiset_a] :
            ( ( P2
              = ( produc654756711066625303iset_a @ X4 @ Y5 ) )
           => ~ ( C @ X4 @ Y5 ) ) ) ).

% case_prodE
thf(fact_329_case__prodE,axiom,
    ! [C: list_f > produc7679832412844898215ropVar > $o,P2: produc7903949528580895877ropVar] :
      ( ( produc4579496310850675342pVar_o @ C @ P2 )
     => ~ ! [X4: list_f,Y5: produc7679832412844898215ropVar] :
            ( ( P2
              = ( produc5732303558254465141ropVar @ X4 @ Y5 ) )
           => ~ ( C @ X4 @ Y5 ) ) ) ).

% case_prodE
thf(fact_330_case__prodE,axiom,
    ! [C: $o > $o > $o,P2: product_prod_o_o] :
      ( ( produc6197397395684419436_o_o_o @ C @ P2 )
     => ~ ! [X4: $o,Y5: $o] :
            ( ( P2
              = ( product_Pair_o_o @ X4 @ Y5 ) )
           => ~ ( C @ X4 @ Y5 ) ) ) ).

% case_prodE
thf(fact_331_case__prodE,axiom,
    ! [C: f > list_f > $o,P2: produc7257588745650887789list_f] :
      ( ( produc5350256331493419686st_f_o @ C @ P2 )
     => ~ ! [X4: f,Y5: list_f] :
            ( ( P2
              = ( produc4886901243613182557list_f @ X4 @ Y5 ) )
           => ~ ( C @ X4 @ Y5 ) ) ) ).

% case_prodE
thf(fact_332_case__prodE,axiom,
    ! [C: a > a > $o,P2: product_prod_a_a] :
      ( ( produc6436628058953941356_a_a_o @ C @ P2 )
     => ~ ! [X4: a,Y5: a] :
            ( ( P2
              = ( product_Pair_a_a @ X4 @ Y5 ) )
           => ~ ( C @ X4 @ Y5 ) ) ) ).

% case_prodE
thf(fact_333_fst__def,axiom,
    ( produc6918815732823278798ropVar
    = ( produc4525797517566130981ropVar
      @ ^ [X13: multis3193088007478089820ropVar,X23: produc7679832412844898215ropVar] : X13 ) ) ).

% fst_def
thf(fact_334_append__Cons,axiom,
    ! [X2: f,Xs2: list_f,Ys: list_f] :
      ( ( append_f @ ( cons_f @ X2 @ Xs2 ) @ Ys )
      = ( cons_f @ X2 @ ( append_f @ Xs2 @ Ys ) ) ) ).

% append_Cons
thf(fact_335_append__Cons,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( append4352292717583037453ropVar @ ( cons_P1504208554336013608ropVar @ X2 @ Xs2 ) @ Ys )
      = ( cons_P1504208554336013608ropVar @ X2 @ ( append4352292717583037453ropVar @ Xs2 @ Ys ) ) ) ).

% append_Cons
thf(fact_336_append__Cons,axiom,
    ! [X2: nat,Xs2: list_nat,Ys: list_nat] :
      ( ( append_nat @ ( cons_nat @ X2 @ Xs2 ) @ Ys )
      = ( cons_nat @ X2 @ ( append_nat @ Xs2 @ Ys ) ) ) ).

% append_Cons
thf(fact_337_Cons__eq__appendI,axiom,
    ! [X2: f,Xs1: list_f,Ys: list_f,Xs2: list_f,Zs3: list_f] :
      ( ( ( cons_f @ X2 @ Xs1 )
        = Ys )
     => ( ( Xs2
          = ( append_f @ Xs1 @ Zs3 ) )
       => ( ( cons_f @ X2 @ Xs2 )
          = ( append_f @ Ys @ Zs3 ) ) ) ) ).

% Cons_eq_appendI
thf(fact_338_Cons__eq__appendI,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs1: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar,Xs2: list_P8791008543742759928ropVar,Zs3: list_P8791008543742759928ropVar] :
      ( ( ( cons_P1504208554336013608ropVar @ X2 @ Xs1 )
        = Ys )
     => ( ( Xs2
          = ( append4352292717583037453ropVar @ Xs1 @ Zs3 ) )
       => ( ( cons_P1504208554336013608ropVar @ X2 @ Xs2 )
          = ( append4352292717583037453ropVar @ Ys @ Zs3 ) ) ) ) ).

% Cons_eq_appendI
thf(fact_339_Cons__eq__appendI,axiom,
    ! [X2: nat,Xs1: list_nat,Ys: list_nat,Xs2: list_nat,Zs3: list_nat] :
      ( ( ( cons_nat @ X2 @ Xs1 )
        = Ys )
     => ( ( Xs2
          = ( append_nat @ Xs1 @ Zs3 ) )
       => ( ( cons_nat @ X2 @ Xs2 )
          = ( append_nat @ Ys @ Zs3 ) ) ) ) ).

% Cons_eq_appendI
thf(fact_340_append__eq__map__conv,axiom,
    ! [Ys: list_f,Zs3: list_f,F: f > f,Xs2: list_f] :
      ( ( ( append_f @ Ys @ Zs3 )
        = ( map_f_f @ F @ Xs2 ) )
      = ( ? [Us: list_f,Vs: list_f] :
            ( ( Xs2
              = ( append_f @ Us @ Vs ) )
            & ( Ys
              = ( map_f_f @ F @ Us ) )
            & ( Zs3
              = ( map_f_f @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_341_append__eq__map__conv,axiom,
    ! [Ys: list_f,Zs3: list_f,F: nat > f,Xs2: list_nat] :
      ( ( ( append_f @ Ys @ Zs3 )
        = ( map_nat_f @ F @ Xs2 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_f @ F @ Us ) )
            & ( Zs3
              = ( map_nat_f @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_342_append__eq__map__conv,axiom,
    ! [Ys: list_nat,Zs3: list_nat,F: f > nat,Xs2: list_f] :
      ( ( ( append_nat @ Ys @ Zs3 )
        = ( map_f_nat @ F @ Xs2 ) )
      = ( ? [Us: list_f,Vs: list_f] :
            ( ( Xs2
              = ( append_f @ Us @ Vs ) )
            & ( Ys
              = ( map_f_nat @ F @ Us ) )
            & ( Zs3
              = ( map_f_nat @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_343_append__eq__map__conv,axiom,
    ! [Ys: list_P8791008543742759928ropVar,Zs3: list_P8791008543742759928ropVar,F: nat > produc2642885279816024434ropVar,Xs2: list_nat] :
      ( ( ( append4352292717583037453ropVar @ Ys @ Zs3 )
        = ( map_na2145702811007361372ropVar @ F @ Xs2 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_na2145702811007361372ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_na2145702811007361372ropVar @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_344_append__eq__map__conv,axiom,
    ! [Ys: list_M6740372356978808802ropVar,Zs3: list_M6740372356978808802ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( ( append2684835082924936439ropVar @ Ys @ Zs3 )
        = ( map_Pr3335389669906741166ropVar @ F @ Xs2 ) )
      = ( ? [Us: list_P8791008543742759928ropVar,Vs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Us @ Vs ) )
            & ( Ys
              = ( map_Pr3335389669906741166ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_Pr3335389669906741166ropVar @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_345_append__eq__map__conv,axiom,
    ! [Ys: list_M6740372356978808802ropVar,Zs3: list_M6740372356978808802ropVar,F: nat > multis3193088007478089820ropVar,Xs2: list_nat] :
      ( ( ( append2684835082924936439ropVar @ Ys @ Zs3 )
        = ( map_na2466558649495876678ropVar @ F @ Xs2 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_na2466558649495876678ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_na2466558649495876678ropVar @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_346_append__eq__map__conv,axiom,
    ! [Ys: list_nat,Zs3: list_nat,F: nat > nat,Xs2: list_nat] :
      ( ( ( append_nat @ Ys @ Zs3 )
        = ( map_nat_nat @ F @ Xs2 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_nat @ F @ Us ) )
            & ( Zs3
              = ( map_nat_nat @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_347_append__eq__map__conv,axiom,
    ! [Ys: list_a,Zs3: list_a,F: nat > a,Xs2: list_nat] :
      ( ( ( append_a @ Ys @ Zs3 )
        = ( map_nat_a @ F @ Xs2 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_a @ F @ Us ) )
            & ( Zs3
              = ( map_nat_a @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_348_map__eq__append__conv,axiom,
    ! [F: f > f,Xs2: list_f,Ys: list_f,Zs3: list_f] :
      ( ( ( map_f_f @ F @ Xs2 )
        = ( append_f @ Ys @ Zs3 ) )
      = ( ? [Us: list_f,Vs: list_f] :
            ( ( Xs2
              = ( append_f @ Us @ Vs ) )
            & ( Ys
              = ( map_f_f @ F @ Us ) )
            & ( Zs3
              = ( map_f_f @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_349_map__eq__append__conv,axiom,
    ! [F: nat > f,Xs2: list_nat,Ys: list_f,Zs3: list_f] :
      ( ( ( map_nat_f @ F @ Xs2 )
        = ( append_f @ Ys @ Zs3 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_f @ F @ Us ) )
            & ( Zs3
              = ( map_nat_f @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_350_map__eq__append__conv,axiom,
    ! [F: f > nat,Xs2: list_f,Ys: list_nat,Zs3: list_nat] :
      ( ( ( map_f_nat @ F @ Xs2 )
        = ( append_nat @ Ys @ Zs3 ) )
      = ( ? [Us: list_f,Vs: list_f] :
            ( ( Xs2
              = ( append_f @ Us @ Vs ) )
            & ( Ys
              = ( map_f_nat @ F @ Us ) )
            & ( Zs3
              = ( map_f_nat @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_351_map__eq__append__conv,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat,Ys: list_P8791008543742759928ropVar,Zs3: list_P8791008543742759928ropVar] :
      ( ( ( map_na2145702811007361372ropVar @ F @ Xs2 )
        = ( append4352292717583037453ropVar @ Ys @ Zs3 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_na2145702811007361372ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_na2145702811007361372ropVar @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_352_map__eq__append__conv,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar,Ys: list_M6740372356978808802ropVar,Zs3: list_M6740372356978808802ropVar] :
      ( ( ( map_Pr3335389669906741166ropVar @ F @ Xs2 )
        = ( append2684835082924936439ropVar @ Ys @ Zs3 ) )
      = ( ? [Us: list_P8791008543742759928ropVar,Vs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Us @ Vs ) )
            & ( Ys
              = ( map_Pr3335389669906741166ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_Pr3335389669906741166ropVar @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_353_map__eq__append__conv,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat,Ys: list_M6740372356978808802ropVar,Zs3: list_M6740372356978808802ropVar] :
      ( ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = ( append2684835082924936439ropVar @ Ys @ Zs3 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_na2466558649495876678ropVar @ F @ Us ) )
            & ( Zs3
              = ( map_na2466558649495876678ropVar @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_354_map__eq__append__conv,axiom,
    ! [F: nat > nat,Xs2: list_nat,Ys: list_nat,Zs3: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs2 )
        = ( append_nat @ Ys @ Zs3 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_nat @ F @ Us ) )
            & ( Zs3
              = ( map_nat_nat @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_355_map__eq__append__conv,axiom,
    ! [F: nat > a,Xs2: list_nat,Ys: list_a,Zs3: list_a] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = ( append_a @ Ys @ Zs3 ) )
      = ( ? [Us: list_nat,Vs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Us @ Vs ) )
            & ( Ys
              = ( map_nat_a @ F @ Us ) )
            & ( Zs3
              = ( map_nat_a @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_356_split__list,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
     => ? [Ys2: list_P6988024003011616557iset_a,Zs2: list_P6988024003011616557iset_a] :
          ( Xs2
          = ( append1975991668658899394iset_a @ Ys2 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_357_split__list,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
     => ? [Ys2: list_P1396940483166286381od_a_a,Zs2: list_P1396940483166286381od_a_a] :
          ( Xs2
          = ( append5335208819046833346od_a_a @ Ys2 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_358_split__list,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
     => ? [Ys2: list_M6740372356978808802ropVar,Zs2: list_M6740372356978808802ropVar] :
          ( Xs2
          = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_359_split__list,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( Xs2
          = ( append_a @ Ys2 @ ( cons_a @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_360_split__list,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
     => ? [Ys2: list_f,Zs2: list_f] :
          ( Xs2
          = ( append_f @ Ys2 @ ( cons_f @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_361_split__list,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
     => ? [Ys2: list_P8791008543742759928ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( Xs2
          = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_362_split__list,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( Xs2
          = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_363_split__list__last,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
     => ? [Ys2: list_P6988024003011616557iset_a,Zs2: list_P6988024003011616557iset_a] :
          ( ( Xs2
            = ( append1975991668658899394iset_a @ Ys2 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs2 ) ) )
          & ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_364_split__list__last,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
     => ? [Ys2: list_P1396940483166286381od_a_a,Zs2: list_P1396940483166286381od_a_a] :
          ( ( Xs2
            = ( append5335208819046833346od_a_a @ Ys2 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs2 ) ) )
          & ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_365_split__list__last,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
     => ? [Ys2: list_M6740372356978808802ropVar,Zs2: list_M6740372356978808802ropVar] :
          ( ( Xs2
            = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs2 ) ) )
          & ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_366_split__list__last,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( ( Xs2
            = ( append_a @ Ys2 @ ( cons_a @ X2 @ Zs2 ) ) )
          & ~ ( member_a @ X2 @ ( set_a2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_367_split__list__last,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
     => ? [Ys2: list_f,Zs2: list_f] :
          ( ( Xs2
            = ( append_f @ Ys2 @ ( cons_f @ X2 @ Zs2 ) ) )
          & ~ ( member_f @ X2 @ ( set_f2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_368_split__list__last,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
     => ? [Ys2: list_P8791008543742759928ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Xs2
            = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs2 ) ) )
          & ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_369_split__list__last,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( ( Xs2
            = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs2 ) ) )
          & ~ ( member_nat @ X2 @ ( set_nat2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_370_split__list__prop,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar] :
          ( ? [Zs2: list_M6740372356978808802ropVar] :
              ( Xs2
              = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 ) ) ) ).

% split_list_prop
thf(fact_371_split__list__prop,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_a,X4: a] :
          ( ? [Zs2: list_a] :
              ( Xs2
              = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
          & ( P @ X4 ) ) ) ).

% split_list_prop
thf(fact_372_split__list__prop,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_f,X4: f] :
          ( ? [Zs2: list_f] :
              ( Xs2
              = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
          & ( P @ X4 ) ) ) ).

% split_list_prop
thf(fact_373_split__list__prop,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar] :
          ( ? [Zs2: list_P8791008543742759928ropVar] :
              ( Xs2
              = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 ) ) ) ).

% split_list_prop
thf(fact_374_split__list__prop,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_nat,X4: nat] :
          ( ? [Zs2: list_nat] :
              ( Xs2
              = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
          & ( P @ X4 ) ) ) ).

% split_list_prop
thf(fact_375_split__list__first,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
     => ? [Ys2: list_P6988024003011616557iset_a,Zs2: list_P6988024003011616557iset_a] :
          ( ( Xs2
            = ( append1975991668658899394iset_a @ Ys2 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs2 ) ) )
          & ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_376_split__list__first,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
     => ? [Ys2: list_P1396940483166286381od_a_a,Zs2: list_P1396940483166286381od_a_a] :
          ( ( Xs2
            = ( append5335208819046833346od_a_a @ Ys2 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs2 ) ) )
          & ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_377_split__list__first,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
     => ? [Ys2: list_M6740372356978808802ropVar,Zs2: list_M6740372356978808802ropVar] :
          ( ( Xs2
            = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs2 ) ) )
          & ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_378_split__list__first,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( ( Xs2
            = ( append_a @ Ys2 @ ( cons_a @ X2 @ Zs2 ) ) )
          & ~ ( member_a @ X2 @ ( set_a2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_379_split__list__first,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
     => ? [Ys2: list_f,Zs2: list_f] :
          ( ( Xs2
            = ( append_f @ Ys2 @ ( cons_f @ X2 @ Zs2 ) ) )
          & ~ ( member_f @ X2 @ ( set_f2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_380_split__list__first,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
     => ? [Ys2: list_P8791008543742759928ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Xs2
            = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs2 ) ) )
          & ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_381_split__list__first,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( ( Xs2
            = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs2 ) ) )
          & ~ ( member_nat @ X2 @ ( set_nat2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_382_split__list__propE,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar] :
            ( ? [Zs2: list_M6740372356978808802ropVar] :
                ( Xs2
                = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
           => ~ ( P @ X4 ) ) ) ).

% split_list_propE
thf(fact_383_split__list__propE,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_a,X4: a] :
            ( ? [Zs2: list_a] :
                ( Xs2
                = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
           => ~ ( P @ X4 ) ) ) ).

% split_list_propE
thf(fact_384_split__list__propE,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_f,X4: f] :
            ( ? [Zs2: list_f] :
                ( Xs2
                = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
           => ~ ( P @ X4 ) ) ) ).

% split_list_propE
thf(fact_385_split__list__propE,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar] :
            ( ? [Zs2: list_P8791008543742759928ropVar] :
                ( Xs2
                = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
           => ~ ( P @ X4 ) ) ) ).

% split_list_propE
thf(fact_386_split__list__propE,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_nat,X4: nat] :
            ( ? [Zs2: list_nat] :
                ( Xs2
                = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
           => ~ ( P @ X4 ) ) ) ).

% split_list_propE
thf(fact_387_append__Cons__eq__iff,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a,Ys: list_P6988024003011616557iset_a,Xs3: list_P6988024003011616557iset_a,Ys3: list_P6988024003011616557iset_a] :
      ( ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
     => ( ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Ys ) )
       => ( ( ( append1975991668658899394iset_a @ Xs2 @ ( cons_P7086145107730948317iset_a @ X2 @ Ys ) )
            = ( append1975991668658899394iset_a @ Xs3 @ ( cons_P7086145107730948317iset_a @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_388_append__Cons__eq__iff,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Xs3: list_P1396940483166286381od_a_a,Ys3: list_P1396940483166286381od_a_a] :
      ( ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
     => ( ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Ys ) )
       => ( ( ( append5335208819046833346od_a_a @ Xs2 @ ( cons_P7316939126706565853od_a_a @ X2 @ Ys ) )
            = ( append5335208819046833346od_a_a @ Xs3 @ ( cons_P7316939126706565853od_a_a @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_389_append__Cons__eq__iff,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar,Ys: list_M6740372356978808802ropVar,Xs3: list_M6740372356978808802ropVar,Ys3: list_M6740372356978808802ropVar] :
      ( ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
     => ( ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Ys ) )
       => ( ( ( append2684835082924936439ropVar @ Xs2 @ ( cons_M4277272395645347858ropVar @ X2 @ Ys ) )
            = ( append2684835082924936439ropVar @ Xs3 @ ( cons_M4277272395645347858ropVar @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_390_append__Cons__eq__iff,axiom,
    ! [X2: a,Xs2: list_a,Ys: list_a,Xs3: list_a,Ys3: list_a] :
      ( ~ ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
     => ( ~ ( member_a @ X2 @ ( set_a2 @ Ys ) )
       => ( ( ( append_a @ Xs2 @ ( cons_a @ X2 @ Ys ) )
            = ( append_a @ Xs3 @ ( cons_a @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_391_append__Cons__eq__iff,axiom,
    ! [X2: f,Xs2: list_f,Ys: list_f,Xs3: list_f,Ys3: list_f] :
      ( ~ ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
     => ( ~ ( member_f @ X2 @ ( set_f2 @ Ys ) )
       => ( ( ( append_f @ Xs2 @ ( cons_f @ X2 @ Ys ) )
            = ( append_f @ Xs3 @ ( cons_f @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_392_append__Cons__eq__iff,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar,Xs3: list_P8791008543742759928ropVar,Ys3: list_P8791008543742759928ropVar] :
      ( ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
     => ( ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Ys ) )
       => ( ( ( append4352292717583037453ropVar @ Xs2 @ ( cons_P1504208554336013608ropVar @ X2 @ Ys ) )
            = ( append4352292717583037453ropVar @ Xs3 @ ( cons_P1504208554336013608ropVar @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_393_append__Cons__eq__iff,axiom,
    ! [X2: nat,Xs2: list_nat,Ys: list_nat,Xs3: list_nat,Ys3: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
     => ( ~ ( member_nat @ X2 @ ( set_nat2 @ Ys ) )
       => ( ( ( append_nat @ Xs2 @ ( cons_nat @ X2 @ Ys ) )
            = ( append_nat @ Xs3 @ ( cons_nat @ X2 @ Ys3 ) ) )
          = ( ( Xs2 = Xs3 )
            & ( Ys = Ys3 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_394_in__set__conv__decomp,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
      = ( ? [Ys4: list_P6988024003011616557iset_a,Zs: list_P6988024003011616557iset_a] :
            ( Xs2
            = ( append1975991668658899394iset_a @ Ys4 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_395_in__set__conv__decomp,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
      = ( ? [Ys4: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
            ( Xs2
            = ( append5335208819046833346od_a_a @ Ys4 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_396_in__set__conv__decomp,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
      = ( ? [Ys4: list_M6740372356978808802ropVar,Zs: list_M6740372356978808802ropVar] :
            ( Xs2
            = ( append2684835082924936439ropVar @ Ys4 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_397_in__set__conv__decomp,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
      = ( ? [Ys4: list_a,Zs: list_a] :
            ( Xs2
            = ( append_a @ Ys4 @ ( cons_a @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_398_in__set__conv__decomp,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
      = ( ? [Ys4: list_f,Zs: list_f] :
            ( Xs2
            = ( append_f @ Ys4 @ ( cons_f @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_399_in__set__conv__decomp,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
      = ( ? [Ys4: list_P8791008543742759928ropVar,Zs: list_P8791008543742759928ropVar] :
            ( Xs2
            = ( append4352292717583037453ropVar @ Ys4 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_400_in__set__conv__decomp,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
      = ( ? [Ys4: list_nat,Zs: list_nat] :
            ( Xs2
            = ( append_nat @ Ys4 @ ( cons_nat @ X2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_401_split__list__last__prop,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar,Zs2: list_M6740372356978808802ropVar] :
          ( ( Xs2
            = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: multis3193088007478089820ropVar] :
              ( ( member8421201611525043589ropVar @ Xa2 @ ( set_Mu146256361055586289ropVar @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_402_split__list__last__prop,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_a,X4: a,Zs2: list_a] :
          ( ( Xs2
            = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: a] :
              ( ( member_a @ Xa2 @ ( set_a2 @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_403_split__list__last__prop,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_f,X4: f,Zs2: list_f] :
          ( ( Xs2
            = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: f] :
              ( ( member_f @ Xa2 @ ( set_f2 @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_404_split__list__last__prop,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
          ( ( Xs2
            = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: produc2642885279816024434ropVar] :
              ( ( member9210975342120487067ropVar @ Xa2 @ ( set_Pr3946994337432900359ropVar @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_405_split__list__last__prop,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_nat,X4: nat,Zs2: list_nat] :
          ( ( Xs2
            = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: nat] :
              ( ( member_nat @ Xa2 @ ( set_nat2 @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_406_split__list__first__prop,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar] :
          ( ? [Zs2: list_M6740372356978808802ropVar] :
              ( Xs2
              = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: multis3193088007478089820ropVar] :
              ( ( member8421201611525043589ropVar @ Xa2 @ ( set_Mu146256361055586289ropVar @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_407_split__list__first__prop,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_a,X4: a] :
          ( ? [Zs2: list_a] :
              ( Xs2
              = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: a] :
              ( ( member_a @ Xa2 @ ( set_a2 @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_408_split__list__first__prop,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_f,X4: f] :
          ( ? [Zs2: list_f] :
              ( Xs2
              = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: f] :
              ( ( member_f @ Xa2 @ ( set_f2 @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_409_split__list__first__prop,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar] :
          ( ? [Zs2: list_P8791008543742759928ropVar] :
              ( Xs2
              = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: produc2642885279816024434ropVar] :
              ( ( member9210975342120487067ropVar @ Xa2 @ ( set_Pr3946994337432900359ropVar @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_410_split__list__first__prop,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ? [Ys2: list_nat,X4: nat] :
          ( ? [Zs2: list_nat] :
              ( Xs2
              = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
          & ( P @ X4 )
          & ! [Xa2: nat] :
              ( ( member_nat @ Xa2 @ ( set_nat2 @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_411_split__list__last__propE,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar,Zs2: list_M6740372356978808802ropVar] :
            ( ( Xs2
              = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: multis3193088007478089820ropVar] :
                    ( ( member8421201611525043589ropVar @ Xa2 @ ( set_Mu146256361055586289ropVar @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_412_split__list__last__propE,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_a,X4: a,Zs2: list_a] :
            ( ( Xs2
              = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: a] :
                    ( ( member_a @ Xa2 @ ( set_a2 @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_413_split__list__last__propE,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_f,X4: f,Zs2: list_f] :
            ( ( Xs2
              = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: f] :
                    ( ( member_f @ Xa2 @ ( set_f2 @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_414_split__list__last__propE,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar,Zs2: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: produc2642885279816024434ropVar] :
                    ( ( member9210975342120487067ropVar @ Xa2 @ ( set_Pr3946994337432900359ropVar @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_415_split__list__last__propE,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_nat,X4: nat,Zs2: list_nat] :
            ( ( Xs2
              = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: nat] :
                    ( ( member_nat @ Xa2 @ ( set_nat2 @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_416_split__list__first__propE,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_M6740372356978808802ropVar,X4: multis3193088007478089820ropVar] :
            ( ? [Zs2: list_M6740372356978808802ropVar] :
                ( Xs2
                = ( append2684835082924936439ropVar @ Ys2 @ ( cons_M4277272395645347858ropVar @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: multis3193088007478089820ropVar] :
                    ( ( member8421201611525043589ropVar @ Xa2 @ ( set_Mu146256361055586289ropVar @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_417_split__list__first__propE,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ? [X: a] :
          ( ( member_a @ X @ ( set_a2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_a,X4: a] :
            ( ? [Zs2: list_a] :
                ( Xs2
                = ( append_a @ Ys2 @ ( cons_a @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: a] :
                    ( ( member_a @ Xa2 @ ( set_a2 @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_418_split__list__first__propE,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ? [X: f] :
          ( ( member_f @ X @ ( set_f2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_f,X4: f] :
            ( ? [Zs2: list_f] :
                ( Xs2
                = ( append_f @ Ys2 @ ( cons_f @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: f] :
                    ( ( member_f @ Xa2 @ ( set_f2 @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_419_split__list__first__propE,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ? [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_P8791008543742759928ropVar,X4: produc2642885279816024434ropVar] :
            ( ? [Zs2: list_P8791008543742759928ropVar] :
                ( Xs2
                = ( append4352292717583037453ropVar @ Ys2 @ ( cons_P1504208554336013608ropVar @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: produc2642885279816024434ropVar] :
                    ( ( member9210975342120487067ropVar @ Xa2 @ ( set_Pr3946994337432900359ropVar @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_420_split__list__first__propE,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ? [X: nat] :
          ( ( member_nat @ X @ ( set_nat2 @ Xs2 ) )
          & ( P @ X ) )
     => ~ ! [Ys2: list_nat,X4: nat] :
            ( ? [Zs2: list_nat] :
                ( Xs2
                = ( append_nat @ Ys2 @ ( cons_nat @ X4 @ Zs2 ) ) )
           => ( ( P @ X4 )
             => ~ ! [Xa2: nat] :
                    ( ( member_nat @ Xa2 @ ( set_nat2 @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_421_in__set__conv__decomp__last,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
      = ( ? [Ys4: list_P6988024003011616557iset_a,Zs: list_P6988024003011616557iset_a] :
            ( ( Xs2
              = ( append1975991668658899394iset_a @ Ys4 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs ) ) )
            & ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_422_in__set__conv__decomp__last,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
      = ( ? [Ys4: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
            ( ( Xs2
              = ( append5335208819046833346od_a_a @ Ys4 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs ) ) )
            & ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_423_in__set__conv__decomp__last,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
      = ( ? [Ys4: list_M6740372356978808802ropVar,Zs: list_M6740372356978808802ropVar] :
            ( ( Xs2
              = ( append2684835082924936439ropVar @ Ys4 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs ) ) )
            & ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_424_in__set__conv__decomp__last,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
      = ( ? [Ys4: list_a,Zs: list_a] :
            ( ( Xs2
              = ( append_a @ Ys4 @ ( cons_a @ X2 @ Zs ) ) )
            & ~ ( member_a @ X2 @ ( set_a2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_425_in__set__conv__decomp__last,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
      = ( ? [Ys4: list_f,Zs: list_f] :
            ( ( Xs2
              = ( append_f @ Ys4 @ ( cons_f @ X2 @ Zs ) ) )
            & ~ ( member_f @ X2 @ ( set_f2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_426_in__set__conv__decomp__last,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
      = ( ? [Ys4: list_P8791008543742759928ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Ys4 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs ) ) )
            & ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_427_in__set__conv__decomp__last,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
      = ( ? [Ys4: list_nat,Zs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Ys4 @ ( cons_nat @ X2 @ Zs ) ) )
            & ~ ( member_nat @ X2 @ ( set_nat2 @ Zs ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_428_in__set__conv__decomp__first,axiom,
    ! [X2: produc6518373309651786023iset_a,Xs2: list_P6988024003011616557iset_a] :
      ( ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Xs2 ) )
      = ( ? [Ys4: list_P6988024003011616557iset_a,Zs: list_P6988024003011616557iset_a] :
            ( ( Xs2
              = ( append1975991668658899394iset_a @ Ys4 @ ( cons_P7086145107730948317iset_a @ X2 @ Zs ) ) )
            & ~ ( member5199237121806060112iset_a @ X2 @ ( set_Pr5550698219922361532iset_a @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_429_in__set__conv__decomp__first,axiom,
    ! [X2: product_prod_a_a,Xs2: list_P1396940483166286381od_a_a] :
      ( ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Xs2 ) )
      = ( ? [Ys4: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
            ( ( Xs2
              = ( append5335208819046833346od_a_a @ Ys4 @ ( cons_P7316939126706565853od_a_a @ X2 @ Zs ) ) )
            & ~ ( member1426531477525435216od_a_a @ X2 @ ( set_Product_prod_a_a2 @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_430_in__set__conv__decomp__first,axiom,
    ! [X2: multis3193088007478089820ropVar,Xs2: list_M6740372356978808802ropVar] :
      ( ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
      = ( ? [Ys4: list_M6740372356978808802ropVar,Zs: list_M6740372356978808802ropVar] :
            ( ( Xs2
              = ( append2684835082924936439ropVar @ Ys4 @ ( cons_M4277272395645347858ropVar @ X2 @ Zs ) ) )
            & ~ ( member8421201611525043589ropVar @ X2 @ ( set_Mu146256361055586289ropVar @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_431_in__set__conv__decomp__first,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs2 ) )
      = ( ? [Ys4: list_a,Zs: list_a] :
            ( ( Xs2
              = ( append_a @ Ys4 @ ( cons_a @ X2 @ Zs ) ) )
            & ~ ( member_a @ X2 @ ( set_a2 @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_432_in__set__conv__decomp__first,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( member_f @ X2 @ ( set_f2 @ Xs2 ) )
      = ( ? [Ys4: list_f,Zs: list_f] :
            ( ( Xs2
              = ( append_f @ Ys4 @ ( cons_f @ X2 @ Zs ) ) )
            & ~ ( member_f @ X2 @ ( set_f2 @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_433_in__set__conv__decomp__first,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
      = ( ? [Ys4: list_P8791008543742759928ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Ys4 @ ( cons_P1504208554336013608ropVar @ X2 @ Zs ) ) )
            & ~ ( member9210975342120487067ropVar @ X2 @ ( set_Pr3946994337432900359ropVar @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_434_in__set__conv__decomp__first,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
      = ( ? [Ys4: list_nat,Zs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Ys4 @ ( cons_nat @ X2 @ Zs ) ) )
            & ~ ( member_nat @ X2 @ ( set_nat2 @ Ys4 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_435_split__list__last__prop__iff,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ( ? [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_M6740372356978808802ropVar,X3: multis3193088007478089820ropVar,Zs: list_M6740372356978808802ropVar] :
            ( ( Xs2
              = ( append2684835082924936439ropVar @ Ys4 @ ( cons_M4277272395645347858ropVar @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: multis3193088007478089820ropVar] :
                ( ( member8421201611525043589ropVar @ Y3 @ ( set_Mu146256361055586289ropVar @ Zs ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_436_split__list__last__prop__iff,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ( ? [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_a,X3: a,Zs: list_a] :
            ( ( Xs2
              = ( append_a @ Ys4 @ ( cons_a @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: a] :
                ( ( member_a @ Y3 @ ( set_a2 @ Zs ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_437_split__list__last__prop__iff,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ( ? [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_f,X3: f,Zs: list_f] :
            ( ( Xs2
              = ( append_f @ Ys4 @ ( cons_f @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ Zs ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_438_split__list__last__prop__iff,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ( ? [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_P8791008543742759928ropVar,X3: produc2642885279816024434ropVar,Zs: list_P8791008543742759928ropVar] :
            ( ( Xs2
              = ( append4352292717583037453ropVar @ Ys4 @ ( cons_P1504208554336013608ropVar @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: produc2642885279816024434ropVar] :
                ( ( member9210975342120487067ropVar @ Y3 @ ( set_Pr3946994337432900359ropVar @ Zs ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_439_split__list__last__prop__iff,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ( ? [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_nat,X3: nat,Zs: list_nat] :
            ( ( Xs2
              = ( append_nat @ Ys4 @ ( cons_nat @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: nat] :
                ( ( member_nat @ Y3 @ ( set_nat2 @ Zs ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_440_split__list__first__prop__iff,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ( ? [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_M6740372356978808802ropVar,X3: multis3193088007478089820ropVar] :
            ( ? [Zs: list_M6740372356978808802ropVar] :
                ( Xs2
                = ( append2684835082924936439ropVar @ Ys4 @ ( cons_M4277272395645347858ropVar @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: multis3193088007478089820ropVar] :
                ( ( member8421201611525043589ropVar @ Y3 @ ( set_Mu146256361055586289ropVar @ Ys4 ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_441_split__list__first__prop__iff,axiom,
    ! [Xs2: list_a,P: a > $o] :
      ( ( ? [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_a,X3: a] :
            ( ? [Zs: list_a] :
                ( Xs2
                = ( append_a @ Ys4 @ ( cons_a @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: a] :
                ( ( member_a @ Y3 @ ( set_a2 @ Ys4 ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_442_split__list__first__prop__iff,axiom,
    ! [Xs2: list_f,P: f > $o] :
      ( ( ? [X3: f] :
            ( ( member_f @ X3 @ ( set_f2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_f,X3: f] :
            ( ? [Zs: list_f] :
                ( Xs2
                = ( append_f @ Ys4 @ ( cons_f @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: f] :
                ( ( member_f @ Y3 @ ( set_f2 @ Ys4 ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_443_split__list__first__prop__iff,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,P: produc2642885279816024434ropVar > $o] :
      ( ( ? [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ ( set_Pr3946994337432900359ropVar @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_P8791008543742759928ropVar,X3: produc2642885279816024434ropVar] :
            ( ? [Zs: list_P8791008543742759928ropVar] :
                ( Xs2
                = ( append4352292717583037453ropVar @ Ys4 @ ( cons_P1504208554336013608ropVar @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: produc2642885279816024434ropVar] :
                ( ( member9210975342120487067ropVar @ Y3 @ ( set_Pr3946994337432900359ropVar @ Ys4 ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_444_split__list__first__prop__iff,axiom,
    ! [Xs2: list_nat,P: nat > $o] :
      ( ( ? [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs2 ) )
            & ( P @ X3 ) ) )
      = ( ? [Ys4: list_nat,X3: nat] :
            ( ? [Zs: list_nat] :
                ( Xs2
                = ( append_nat @ Ys4 @ ( cons_nat @ X3 @ Zs ) ) )
            & ( P @ X3 )
            & ! [Y3: nat] :
                ( ( member_nat @ Y3 @ ( set_nat2 @ Ys4 ) )
               => ~ ( P @ Y3 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_445_PropVar_Odistinct_I5_J,axiom,
    ! [X11: nat,X12: nat,X41: nat,X42: nat] :
      ( ( multis387687052011358179_Gamma @ X11 @ X12 )
     != ( multis6646701651571564453xOneJI @ X41 @ X42 ) ) ).

% PropVar.distinct(5)
thf(fact_446_PropVar_Odistinct_I3_J,axiom,
    ! [X11: nat,X12: nat,X31: nat,X32: nat] :
      ( ( multis387687052011358179_Gamma @ X11 @ X12 )
     != ( multis2983220944385521703ZeroJI @ X31 @ X32 ) ) ).

% PropVar.distinct(3)
thf(fact_447_PropVar_Odistinct_I13_J,axiom,
    ! [X22: nat,X41: nat,X42: nat] :
      ( ( multis2544335231667181926psilon @ X22 )
     != ( multis6646701651571564453xOneJI @ X41 @ X42 ) ) ).

% PropVar.distinct(13)
thf(fact_448_PropVar_Odistinct_I11_J,axiom,
    ! [X22: nat,X31: nat,X32: nat] :
      ( ( multis2544335231667181926psilon @ X22 )
     != ( multis2983220944385521703ZeroJI @ X31 @ X32 ) ) ).

% PropVar.distinct(11)
thf(fact_449_PropVar_Odistinct_I27_J,axiom,
    ! [X41: nat,X42: nat,X61: nat,X62: nat] :
      ( ( multis6646701651571564453xOneJI @ X41 @ X42 )
     != ( multis6646701651571498855xOneIJ @ X61 @ X62 ) ) ).

% PropVar.distinct(27)
thf(fact_450_PropVar_Odistinct_I25_J,axiom,
    ! [X41: nat,X42: nat,X51: nat,X52: nat] :
      ( ( multis6646701651571564453xOneJI @ X41 @ X42 )
     != ( multis2983220944385456105ZeroIJ @ X51 @ X52 ) ) ).

% PropVar.distinct(25)
thf(fact_451_PropVar_Odistinct_I23_J,axiom,
    ! [X31: nat,X32: nat,X61: nat,X62: nat] :
      ( ( multis2983220944385521703ZeroJI @ X31 @ X32 )
     != ( multis6646701651571498855xOneIJ @ X61 @ X62 ) ) ).

% PropVar.distinct(23)
thf(fact_452_PropVar_Odistinct_I21_J,axiom,
    ! [X31: nat,X32: nat,X51: nat,X52: nat] :
      ( ( multis2983220944385521703ZeroJI @ X31 @ X32 )
     != ( multis2983220944385456105ZeroIJ @ X51 @ X52 ) ) ).

% PropVar.distinct(21)
thf(fact_453_maps__simps_I1_J,axiom,
    ! [F: f > list_f,X2: f,Xs2: list_f] :
      ( ( maps_f_f @ F @ ( cons_f @ X2 @ Xs2 ) )
      = ( append_f @ ( F @ X2 ) @ ( maps_f_f @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_454_maps__simps_I1_J,axiom,
    ! [F: f > list_nat,X2: f,Xs2: list_f] :
      ( ( maps_f_nat @ F @ ( cons_f @ X2 @ Xs2 ) )
      = ( append_nat @ ( F @ X2 ) @ ( maps_f_nat @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_455_maps__simps_I1_J,axiom,
    ! [F: produc2642885279816024434ropVar > list_f,X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( maps_P2527380396400262994pVar_f @ F @ ( cons_P1504208554336013608ropVar @ X2 @ Xs2 ) )
      = ( append_f @ ( F @ X2 ) @ ( maps_P2527380396400262994pVar_f @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_456_maps__simps_I1_J,axiom,
    ! [F: produc2642885279816024434ropVar > list_nat,X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( maps_P2882123423910056385ar_nat @ F @ ( cons_P1504208554336013608ropVar @ X2 @ Xs2 ) )
      = ( append_nat @ ( F @ X2 ) @ ( maps_P2882123423910056385ar_nat @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_457_maps__simps_I1_J,axiom,
    ! [F: nat > list_f,X2: nat,Xs2: list_nat] :
      ( ( maps_nat_f @ F @ ( cons_nat @ X2 @ Xs2 ) )
      = ( append_f @ ( F @ X2 ) @ ( maps_nat_f @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_458_maps__simps_I1_J,axiom,
    ! [F: nat > list_nat,X2: nat,Xs2: list_nat] :
      ( ( maps_nat_nat @ F @ ( cons_nat @ X2 @ Xs2 ) )
      = ( append_nat @ ( F @ X2 ) @ ( maps_nat_nat @ F @ Xs2 ) ) ) ).

% maps_simps(1)
thf(fact_459_old_Oprod_Oexhaust,axiom,
    ! [Y: produc6518373309651786023iset_a] :
      ~ ! [A4: multiset_a,B3: multiset_a] :
          ( Y
         != ( produc654756711066625303iset_a @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_460_old_Oprod_Oexhaust,axiom,
    ! [Y: produc7903949528580895877ropVar] :
      ~ ! [A4: list_f,B3: produc7679832412844898215ropVar] :
          ( Y
         != ( produc5732303558254465141ropVar @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_461_old_Oprod_Oexhaust,axiom,
    ! [Y: product_prod_o_o] :
      ~ ! [A4: $o,B3: $o] :
          ( Y
         != ( product_Pair_o_o @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_462_old_Oprod_Oexhaust,axiom,
    ! [Y: produc7257588745650887789list_f] :
      ~ ! [A4: f,B3: list_f] :
          ( Y
         != ( produc4886901243613182557list_f @ A4 @ B3 ) ) ).

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

% old.prod.exhaust
thf(fact_464_surj__pair,axiom,
    ! [P2: produc6518373309651786023iset_a] :
    ? [X4: multiset_a,Y5: multiset_a] :
      ( P2
      = ( produc654756711066625303iset_a @ X4 @ Y5 ) ) ).

% surj_pair
thf(fact_465_surj__pair,axiom,
    ! [P2: produc7903949528580895877ropVar] :
    ? [X4: list_f,Y5: produc7679832412844898215ropVar] :
      ( P2
      = ( produc5732303558254465141ropVar @ X4 @ Y5 ) ) ).

% surj_pair
thf(fact_466_surj__pair,axiom,
    ! [P2: product_prod_o_o] :
    ? [X4: $o,Y5: $o] :
      ( P2
      = ( product_Pair_o_o @ X4 @ Y5 ) ) ).

% surj_pair
thf(fact_467_surj__pair,axiom,
    ! [P2: produc7257588745650887789list_f] :
    ? [X4: f,Y5: list_f] :
      ( P2
      = ( produc4886901243613182557list_f @ X4 @ Y5 ) ) ).

% surj_pair
thf(fact_468_surj__pair,axiom,
    ! [P2: product_prod_a_a] :
    ? [X4: a,Y5: a] :
      ( P2
      = ( product_Pair_a_a @ X4 @ Y5 ) ) ).

% surj_pair
thf(fact_469_prod__cases,axiom,
    ! [P: produc6518373309651786023iset_a > $o,P2: produc6518373309651786023iset_a] :
      ( ! [A4: multiset_a,B3: multiset_a] : ( P @ ( produc654756711066625303iset_a @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_470_prod__cases,axiom,
    ! [P: produc7903949528580895877ropVar > $o,P2: produc7903949528580895877ropVar] :
      ( ! [A4: list_f,B3: produc7679832412844898215ropVar] : ( P @ ( produc5732303558254465141ropVar @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_471_prod__cases,axiom,
    ! [P: product_prod_o_o > $o,P2: product_prod_o_o] :
      ( ! [A4: $o,B3: $o] : ( P @ ( product_Pair_o_o @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_472_prod__cases,axiom,
    ! [P: produc7257588745650887789list_f > $o,P2: produc7257588745650887789list_f] :
      ( ! [A4: f,B3: list_f] : ( P @ ( produc4886901243613182557list_f @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

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

% prod_cases
thf(fact_474_Pair__inject,axiom,
    ! [A: multiset_a,B: multiset_a,A3: multiset_a,B2: multiset_a] :
      ( ( ( produc654756711066625303iset_a @ A @ B )
        = ( produc654756711066625303iset_a @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_475_Pair__inject,axiom,
    ! [A: list_f,B: produc7679832412844898215ropVar,A3: list_f,B2: produc7679832412844898215ropVar] :
      ( ( ( produc5732303558254465141ropVar @ A @ B )
        = ( produc5732303558254465141ropVar @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_476_Pair__inject,axiom,
    ! [A: $o,B: $o,A3: $o,B2: $o] :
      ( ( ( product_Pair_o_o @ A @ B )
        = ( product_Pair_o_o @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B = ~ B2 ) ) ) ).

% Pair_inject
thf(fact_477_Pair__inject,axiom,
    ! [A: f,B: list_f,A3: f,B2: list_f] :
      ( ( ( produc4886901243613182557list_f @ A @ B )
        = ( produc4886901243613182557list_f @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

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

% Pair_inject
thf(fact_479_imageI,axiom,
    ! [X2: nat,A2: set_nat,F: nat > multis3193088007478089820ropVar] :
      ( ( member_nat @ X2 @ A2 )
     => ( member8421201611525043589ropVar @ ( F @ X2 ) @ ( image_3935346926305390661ropVar @ F @ A2 ) ) ) ).

% imageI
thf(fact_480_imageI,axiom,
    ! [X2: nat,A2: set_nat,F: nat > nat] :
      ( ( member_nat @ X2 @ A2 )
     => ( member_nat @ ( F @ X2 ) @ ( image_nat_nat @ F @ A2 ) ) ) ).

% imageI
thf(fact_481_imageI,axiom,
    ! [X2: nat,A2: set_nat,F: nat > f] :
      ( ( member_nat @ X2 @ A2 )
     => ( member_f @ ( F @ X2 ) @ ( image_nat_f @ F @ A2 ) ) ) ).

% imageI
thf(fact_482_imageI,axiom,
    ! [X2: nat,A2: set_nat,F: nat > a] :
      ( ( member_nat @ X2 @ A2 )
     => ( member_a @ ( F @ X2 ) @ ( image_nat_a @ F @ A2 ) ) ) ).

% imageI
thf(fact_483_imageI,axiom,
    ! [X2: f,A2: set_f,F: f > nat] :
      ( ( member_f @ X2 @ A2 )
     => ( member_nat @ ( F @ X2 ) @ ( image_f_nat @ F @ A2 ) ) ) ).

% imageI
thf(fact_484_imageI,axiom,
    ! [X2: f,A2: set_f,F: f > f] :
      ( ( member_f @ X2 @ A2 )
     => ( member_f @ ( F @ X2 ) @ ( image_f_f @ F @ A2 ) ) ) ).

% imageI
thf(fact_485_imageI,axiom,
    ! [X2: f,A2: set_f,F: f > a] :
      ( ( member_f @ X2 @ A2 )
     => ( member_a @ ( F @ X2 ) @ ( image_f_a @ F @ A2 ) ) ) ).

% imageI
thf(fact_486_imageI,axiom,
    ! [X2: a,A2: set_a,F: a > nat] :
      ( ( member_a @ X2 @ A2 )
     => ( member_nat @ ( F @ X2 ) @ ( image_a_nat @ F @ A2 ) ) ) ).

% imageI
thf(fact_487_imageI,axiom,
    ! [X2: a,A2: set_a,F: a > f] :
      ( ( member_a @ X2 @ A2 )
     => ( member_f @ ( F @ X2 ) @ ( image_a_f @ F @ A2 ) ) ) ).

% imageI
thf(fact_488_imageI,axiom,
    ! [X2: a,A2: set_a,F: a > a] :
      ( ( member_a @ X2 @ A2 )
     => ( member_a @ ( F @ X2 ) @ ( image_a_a @ F @ A2 ) ) ) ).

% imageI
thf(fact_489_image__iff,axiom,
    ! [Z: multis3193088007478089820ropVar,F: nat > multis3193088007478089820ropVar,A2: set_nat] :
      ( ( member8421201611525043589ropVar @ Z @ ( image_3935346926305390661ropVar @ F @ A2 ) )
      = ( ? [X3: nat] :
            ( ( member_nat @ X3 @ A2 )
            & ( Z
              = ( F @ X3 ) ) ) ) ) ).

% image_iff
thf(fact_490_image__iff,axiom,
    ! [Z: multis3193088007478089820ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,A2: set_Pr6405597471078531282ropVar] :
      ( ( member8421201611525043589ropVar @ Z @ ( image_4513341045867859311ropVar @ F @ A2 ) )
      = ( ? [X3: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X3 @ A2 )
            & ( Z
              = ( F @ X3 ) ) ) ) ) ).

% image_iff
thf(fact_491_bex__imageD,axiom,
    ! [F: nat > multis3193088007478089820ropVar,A2: set_nat,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( image_3935346926305390661ropVar @ F @ A2 ) )
          & ( P @ X ) )
     => ? [X4: nat] :
          ( ( member_nat @ X4 @ A2 )
          & ( P @ ( F @ X4 ) ) ) ) ).

% bex_imageD
thf(fact_492_bex__imageD,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,A2: set_Pr6405597471078531282ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ? [X: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X @ ( image_4513341045867859311ropVar @ F @ A2 ) )
          & ( P @ X ) )
     => ? [X4: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X4 @ A2 )
          & ( P @ ( F @ X4 ) ) ) ) ).

% bex_imageD
thf(fact_493_image__cong,axiom,
    ! [M2: set_Pr6405597471078531282ropVar,N2: set_Pr6405597471078531282ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( M2 = N2 )
     => ( ! [X4: produc2642885279816024434ropVar] :
            ( ( member9210975342120487067ropVar @ X4 @ N2 )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( image_4513341045867859311ropVar @ F @ M2 )
          = ( image_4513341045867859311ropVar @ G @ N2 ) ) ) ) ).

% image_cong
thf(fact_494_image__cong,axiom,
    ! [M2: set_nat,N2: set_nat,F: nat > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar] :
      ( ( M2 = N2 )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ N2 )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( image_3935346926305390661ropVar @ F @ M2 )
          = ( image_3935346926305390661ropVar @ G @ N2 ) ) ) ) ).

% image_cong
thf(fact_495_ball__imageD,axiom,
    ! [F: nat > multis3193088007478089820ropVar,A2: set_nat,P: multis3193088007478089820ropVar > $o] :
      ( ! [X4: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X4 @ ( image_3935346926305390661ropVar @ F @ A2 ) )
         => ( P @ X4 ) )
     => ! [X: nat] :
          ( ( member_nat @ X @ A2 )
         => ( P @ ( F @ X ) ) ) ) ).

% ball_imageD
thf(fact_496_ball__imageD,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,A2: set_Pr6405597471078531282ropVar,P: multis3193088007478089820ropVar > $o] :
      ( ! [X4: multis3193088007478089820ropVar] :
          ( ( member8421201611525043589ropVar @ X4 @ ( image_4513341045867859311ropVar @ F @ A2 ) )
         => ( P @ X4 ) )
     => ! [X: produc2642885279816024434ropVar] :
          ( ( member9210975342120487067ropVar @ X @ A2 )
         => ( P @ ( F @ X ) ) ) ) ).

% ball_imageD
thf(fact_497_rev__image__eqI,axiom,
    ! [X2: nat,A2: set_nat,B: multis3193088007478089820ropVar,F: nat > multis3193088007478089820ropVar] :
      ( ( member_nat @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member8421201611525043589ropVar @ B @ ( image_3935346926305390661ropVar @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_498_rev__image__eqI,axiom,
    ! [X2: nat,A2: set_nat,B: nat,F: nat > nat] :
      ( ( member_nat @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_nat @ B @ ( image_nat_nat @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_499_rev__image__eqI,axiom,
    ! [X2: nat,A2: set_nat,B: f,F: nat > f] :
      ( ( member_nat @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_f @ B @ ( image_nat_f @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_500_rev__image__eqI,axiom,
    ! [X2: nat,A2: set_nat,B: a,F: nat > a] :
      ( ( member_nat @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_a @ B @ ( image_nat_a @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_501_rev__image__eqI,axiom,
    ! [X2: f,A2: set_f,B: nat,F: f > nat] :
      ( ( member_f @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_nat @ B @ ( image_f_nat @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_502_rev__image__eqI,axiom,
    ! [X2: f,A2: set_f,B: f,F: f > f] :
      ( ( member_f @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_f @ B @ ( image_f_f @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_503_rev__image__eqI,axiom,
    ! [X2: f,A2: set_f,B: a,F: f > a] :
      ( ( member_f @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_a @ B @ ( image_f_a @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_504_rev__image__eqI,axiom,
    ! [X2: a,A2: set_a,B: nat,F: a > nat] :
      ( ( member_a @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_nat @ B @ ( image_a_nat @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_505_rev__image__eqI,axiom,
    ! [X2: a,A2: set_a,B: f,F: a > f] :
      ( ( member_a @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_f @ B @ ( image_a_f @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_506_rev__image__eqI,axiom,
    ! [X2: a,A2: set_a,B: a,F: a > a] :
      ( ( member_a @ X2 @ A2 )
     => ( ( B
          = ( F @ X2 ) )
       => ( member_a @ B @ ( image_a_a @ F @ A2 ) ) ) ) ).

% rev_image_eqI
thf(fact_507_nat__neq__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( M != N )
      = ( ( ord_less_nat @ M @ N )
        | ( ord_less_nat @ N @ M ) ) ) ).

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

% less_not_refl
thf(fact_509_less__not__refl2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ N @ M )
     => ( M != N ) ) ).

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

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

% less_irrefl_nat
thf(fact_512_nat__less__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N3: nat] :
          ( ! [M3: nat] :
              ( ( ord_less_nat @ M3 @ N3 )
             => ( P @ M3 ) )
         => ( P @ N3 ) )
     => ( P @ N ) ) ).

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

% infinite_descent
thf(fact_514_linorder__neqE__nat,axiom,
    ! [X2: nat,Y: nat] :
      ( ( X2 != Y )
     => ( ~ ( ord_less_nat @ X2 @ Y )
       => ( ord_less_nat @ Y @ X2 ) ) ) ).

% linorder_neqE_nat
thf(fact_515_Ball__def,axiom,
    ( ball_P928055741032791761iset_a
    = ( ^ [A5: set_Pr79727621955416071iset_a,P3: produc6518373309651786023iset_a > $o] :
        ! [X3: produc6518373309651786023iset_a] :
          ( ( member5199237121806060112iset_a @ X3 @ A5 )
         => ( P3 @ X3 ) ) ) ) ).

% Ball_def
thf(fact_516_Ball__def,axiom,
    ( ball_P843720320142865617od_a_a
    = ( ^ [A5: set_Product_prod_a_a,P3: product_prod_a_a > $o] :
        ! [X3: product_prod_a_a] :
          ( ( member1426531477525435216od_a_a @ X3 @ A5 )
         => ( P3 @ X3 ) ) ) ) ).

% Ball_def
thf(fact_517_Ball__def,axiom,
    ( ball_nat
    = ( ^ [A5: set_nat,P3: nat > $o] :
        ! [X3: nat] :
          ( ( member_nat @ X3 @ A5 )
         => ( P3 @ X3 ) ) ) ) ).

% Ball_def
thf(fact_518_Ball__def,axiom,
    ( ball_f
    = ( ^ [A5: set_f,P3: f > $o] :
        ! [X3: f] :
          ( ( member_f @ X3 @ A5 )
         => ( P3 @ X3 ) ) ) ) ).

% Ball_def
thf(fact_519_Ball__def,axiom,
    ( ball_a
    = ( ^ [A5: set_a,P3: a > $o] :
        ! [X3: a] :
          ( ( member_a @ X3 @ A5 )
         => ( P3 @ X3 ) ) ) ) ).

% Ball_def
thf(fact_520_PropVar_Oexhaust,axiom,
    ! [Y: multis3193088007478089820ropVar] :
      ( ! [X112: nat,X122: nat] :
          ( Y
         != ( multis387687052011358179_Gamma @ X112 @ X122 ) )
     => ( ! [X24: nat] :
            ( Y
           != ( multis2544335231667181926psilon @ X24 ) )
       => ( ! [X312: nat,X322: nat] :
              ( Y
             != ( multis2983220944385521703ZeroJI @ X312 @ X322 ) )
         => ( ! [X412: nat,X422: nat] :
                ( Y
               != ( multis6646701651571564453xOneJI @ X412 @ X422 ) )
           => ( ! [X512: nat,X522: nat] :
                  ( Y
                 != ( multis2983220944385456105ZeroIJ @ X512 @ X522 ) )
             => ~ ! [X612: nat,X622: nat] :
                    ( Y
                   != ( multis6646701651571498855xOneIJ @ X612 @ X622 ) ) ) ) ) ) ) ).

% PropVar.exhaust
thf(fact_521_imageE,axiom,
    ! [B: multis3193088007478089820ropVar,F: nat > multis3193088007478089820ropVar,A2: set_nat] :
      ( ( member8421201611525043589ropVar @ B @ ( image_3935346926305390661ropVar @ F @ A2 ) )
     => ~ ! [X4: nat] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_nat @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_522_imageE,axiom,
    ! [B: nat,F: nat > nat,A2: set_nat] :
      ( ( member_nat @ B @ ( image_nat_nat @ F @ A2 ) )
     => ~ ! [X4: nat] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_nat @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_523_imageE,axiom,
    ! [B: nat,F: f > nat,A2: set_f] :
      ( ( member_nat @ B @ ( image_f_nat @ F @ A2 ) )
     => ~ ! [X4: f] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_f @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_524_imageE,axiom,
    ! [B: nat,F: a > nat,A2: set_a] :
      ( ( member_nat @ B @ ( image_a_nat @ F @ A2 ) )
     => ~ ! [X4: a] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_a @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_525_imageE,axiom,
    ! [B: f,F: nat > f,A2: set_nat] :
      ( ( member_f @ B @ ( image_nat_f @ F @ A2 ) )
     => ~ ! [X4: nat] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_nat @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_526_imageE,axiom,
    ! [B: f,F: f > f,A2: set_f] :
      ( ( member_f @ B @ ( image_f_f @ F @ A2 ) )
     => ~ ! [X4: f] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_f @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_527_imageE,axiom,
    ! [B: f,F: a > f,A2: set_a] :
      ( ( member_f @ B @ ( image_a_f @ F @ A2 ) )
     => ~ ! [X4: a] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_a @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_528_imageE,axiom,
    ! [B: a,F: nat > a,A2: set_nat] :
      ( ( member_a @ B @ ( image_nat_a @ F @ A2 ) )
     => ~ ! [X4: nat] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_nat @ X4 @ A2 ) ) ) ).

% imageE
thf(fact_529_imageE,axiom,
    ! [B: a,F: f > a,A2: set_f] :
      ( ( member_a @ B @ ( image_f_a @ F @ A2 ) )
     => ~ ! [X4: f] :
            ( ( B
              = ( F @ X4 ) )
           => ~ ( member_f @ X4 @ A2 ) ) ) ).

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

% imageE
thf(fact_531_image__image,axiom,
    ! [F: multis3193088007478089820ropVar > multis3193088007478089820ropVar,G: nat > multis3193088007478089820ropVar,A2: set_nat] :
      ( ( image_7661484744434814213ropVar @ F @ ( image_3935346926305390661ropVar @ G @ A2 ) )
      = ( image_3935346926305390661ropVar
        @ ^ [X3: nat] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_532_image__image,axiom,
    ! [F: multis3193088007478089820ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > multis3193088007478089820ropVar,A2: set_Pr6405597471078531282ropVar] :
      ( ( image_7661484744434814213ropVar @ F @ ( image_4513341045867859311ropVar @ G @ A2 ) )
      = ( image_4513341045867859311ropVar
        @ ^ [X3: produc2642885279816024434ropVar] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_533_image__image,axiom,
    ! [F: nat > multis3193088007478089820ropVar,G: nat > nat,A2: set_nat] :
      ( ( image_3935346926305390661ropVar @ F @ ( image_nat_nat @ G @ A2 ) )
      = ( image_3935346926305390661ropVar
        @ ^ [X3: nat] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_534_image__image,axiom,
    ! [F: nat > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > nat,A2: set_Pr6405597471078531282ropVar] :
      ( ( image_3935346926305390661ropVar @ F @ ( image_779293988519891453ar_nat @ G @ A2 ) )
      = ( image_4513341045867859311ropVar
        @ ^ [X3: produc2642885279816024434ropVar] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_535_image__image,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: nat > produc2642885279816024434ropVar,A2: set_nat] :
      ( ( image_4513341045867859311ropVar @ F @ ( image_4337987624672609115ropVar @ G @ A2 ) )
      = ( image_3935346926305390661ropVar
        @ ^ [X3: nat] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_536_image__image,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,G: produc2642885279816024434ropVar > produc2642885279816024434ropVar,A2: set_Pr6405597471078531282ropVar] :
      ( ( image_4513341045867859311ropVar @ F @ ( image_8703032969001444485ropVar @ G @ A2 ) )
      = ( image_4513341045867859311ropVar
        @ ^ [X3: produc2642885279816024434ropVar] : ( F @ ( G @ X3 ) )
        @ A2 ) ) ).

% image_image
thf(fact_537_Compr__image__eq,axiom,
    ! [F: nat > multis3193088007478089820ropVar,A2: set_nat,P: multis3193088007478089820ropVar > $o] :
      ( ( collec8658135508005558727ropVar
        @ ^ [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( image_3935346926305390661ropVar @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_3935346926305390661ropVar @ F
        @ ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_538_Compr__image__eq,axiom,
    ! [F: nat > nat,A2: set_nat,P: nat > $o] :
      ( ( collect_nat
        @ ^ [X3: nat] :
            ( ( member_nat @ X3 @ ( image_nat_nat @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_nat_nat @ F
        @ ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_539_Compr__image__eq,axiom,
    ! [F: f > nat,A2: set_f,P: nat > $o] :
      ( ( collect_nat
        @ ^ [X3: nat] :
            ( ( member_nat @ X3 @ ( image_f_nat @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_f_nat @ F
        @ ( collect_f
          @ ^ [X3: f] :
              ( ( member_f @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_540_Compr__image__eq,axiom,
    ! [F: a > nat,A2: set_a,P: nat > $o] :
      ( ( collect_nat
        @ ^ [X3: nat] :
            ( ( member_nat @ X3 @ ( image_a_nat @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_a_nat @ F
        @ ( collect_a
          @ ^ [X3: a] :
              ( ( member_a @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_541_Compr__image__eq,axiom,
    ! [F: nat > f,A2: set_nat,P: f > $o] :
      ( ( collect_f
        @ ^ [X3: f] :
            ( ( member_f @ X3 @ ( image_nat_f @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_nat_f @ F
        @ ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_542_Compr__image__eq,axiom,
    ! [F: f > f,A2: set_f,P: f > $o] :
      ( ( collect_f
        @ ^ [X3: f] :
            ( ( member_f @ X3 @ ( image_f_f @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_f_f @ F
        @ ( collect_f
          @ ^ [X3: f] :
              ( ( member_f @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_543_Compr__image__eq,axiom,
    ! [F: a > f,A2: set_a,P: f > $o] :
      ( ( collect_f
        @ ^ [X3: f] :
            ( ( member_f @ X3 @ ( image_a_f @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_a_f @ F
        @ ( collect_a
          @ ^ [X3: a] :
              ( ( member_a @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_544_Compr__image__eq,axiom,
    ! [F: nat > a,A2: set_nat,P: a > $o] :
      ( ( collect_a
        @ ^ [X3: a] :
            ( ( member_a @ X3 @ ( image_nat_a @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_nat_a @ F
        @ ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_545_Compr__image__eq,axiom,
    ! [F: f > a,A2: set_f,P: a > $o] :
      ( ( collect_a
        @ ^ [X3: a] :
            ( ( member_a @ X3 @ ( image_f_a @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_f_a @ F
        @ ( collect_f
          @ ^ [X3: f] :
              ( ( member_f @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_546_Compr__image__eq,axiom,
    ! [F: a > a,A2: set_a,P: a > $o] :
      ( ( collect_a
        @ ^ [X3: a] :
            ( ( member_a @ X3 @ ( image_a_a @ F @ A2 ) )
            & ( P @ X3 ) ) )
      = ( image_a_a @ F
        @ ( collect_a
          @ ^ [X3: a] :
              ( ( member_a @ X3 @ A2 )
              & ( P @ ( F @ X3 ) ) ) ) ) ) ).

% Compr_image_eq
thf(fact_547_prod_Ocase__distrib,axiom,
    ! [H: produc7257588745650887789list_f > produc7257588745650887789list_f,F: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f,Prod: produc7679832412844898215ropVar] :
      ( ( H @ ( produc5811297888731727041list_f @ F @ Prod ) )
      = ( produc5811297888731727041list_f
        @ ^ [X13: multis3193088007478089820ropVar,X23: multis3193088007478089820ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_548_prod_Ocase__distrib,axiom,
    ! [H: produc7257588745650887789list_f > produc7257588745650887789list_f,F: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f,Prod: produc2642885279816024434ropVar] :
      ( ( H @ ( produc1364905799853895606list_f @ F @ Prod ) )
      = ( produc1364905799853895606list_f
        @ ^ [X13: multis3193088007478089820ropVar,X23: produc7679832412844898215ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_549_prod_Ocase__distrib,axiom,
    ! [H: produc7903949528580895877ropVar > produc7903949528580895877ropVar,F: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,Prod: produc7903949528580895877ropVar] :
      ( ( H @ ( produc5770109036932753787ropVar @ F @ Prod ) )
      = ( produc5770109036932753787ropVar
        @ ^ [X13: list_f,X23: produc7679832412844898215ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_550_prod_Ocase__distrib,axiom,
    ! [H: produc7903949528580895877ropVar > produc7257588745650887789list_f,F: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,Prod: produc7903949528580895877ropVar] :
      ( ( H @ ( produc5770109036932753787ropVar @ F @ Prod ) )
      = ( produc9062381539647762275list_f
        @ ^ [X13: list_f,X23: produc7679832412844898215ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_551_prod_Ocase__distrib,axiom,
    ! [H: produc7257588745650887789list_f > produc7903949528580895877ropVar,F: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,Prod: produc7903949528580895877ropVar] :
      ( ( H @ ( produc9062381539647762275list_f @ F @ Prod ) )
      = ( produc5770109036932753787ropVar
        @ ^ [X13: list_f,X23: produc7679832412844898215ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_552_prod_Ocase__distrib,axiom,
    ! [H: produc7257588745650887789list_f > produc7257588745650887789list_f,F: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,Prod: produc7903949528580895877ropVar] :
      ( ( H @ ( produc9062381539647762275list_f @ F @ Prod ) )
      = ( produc9062381539647762275list_f
        @ ^ [X13: list_f,X23: produc7679832412844898215ropVar] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_553_prod_Ocase__distrib,axiom,
    ! [H: list_f > list_f,F: f > list_f > list_f,Prod: produc7257588745650887789list_f] :
      ( ( H @ ( produc150797823399499287list_f @ F @ Prod ) )
      = ( produc150797823399499287list_f
        @ ^ [X13: f,X23: list_f] : ( H @ ( F @ X13 @ X23 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_554_old_Oprod_Ocase,axiom,
    ! [F: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f,X1: multis3193088007478089820ropVar,X22: multis3193088007478089820ropVar] :
      ( ( produc5811297888731727041list_f @ F @ ( produc6936306168532358295ropVar @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_555_old_Oprod_Ocase,axiom,
    ! [F: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f,X1: multis3193088007478089820ropVar,X22: produc7679832412844898215ropVar] :
      ( ( produc1364905799853895606list_f @ F @ ( produc6194868611276206818ropVar @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_556_old_Oprod_Ocase,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,X1: list_f,X22: produc7679832412844898215ropVar] :
      ( ( produc5770109036932753787ropVar @ F @ ( produc5732303558254465141ropVar @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_557_old_Oprod_Ocase,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,X1: list_f,X22: produc7679832412844898215ropVar] :
      ( ( produc9062381539647762275list_f @ F @ ( produc5732303558254465141ropVar @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_558_old_Oprod_Ocase,axiom,
    ! [F: f > list_f > list_f,X1: f,X22: list_f] :
      ( ( produc150797823399499287list_f @ F @ ( produc4886901243613182557list_f @ X1 @ X22 ) )
      = ( F @ X1 @ X22 ) ) ).

% old.prod.case
thf(fact_559_bot__nat__0_Oextremum__strict,axiom,
    ! [A: nat] :
      ~ ( ord_less_nat @ A @ zero_zero_nat ) ).

% bot_nat_0.extremum_strict
thf(fact_560_gr0I,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
     => ( ord_less_nat @ zero_zero_nat @ N ) ) ).

% gr0I
thf(fact_561_not__gr0,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less_nat @ zero_zero_nat @ N ) )
      = ( N = zero_zero_nat ) ) ).

% not_gr0
thf(fact_562_not__less0,axiom,
    ! [N: nat] :
      ~ ( ord_less_nat @ N @ zero_zero_nat ) ).

% not_less0
thf(fact_563_less__zeroE,axiom,
    ! [N: nat] :
      ~ ( ord_less_nat @ N @ zero_zero_nat ) ).

% less_zeroE
thf(fact_564_gr__implies__not0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( N != zero_zero_nat ) ) ).

% gr_implies_not0
thf(fact_565_infinite__descent0,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ zero_zero_nat )
     => ( ! [N3: nat] :
            ( ( ord_less_nat @ zero_zero_nat @ N3 )
           => ( ~ ( P @ N3 )
             => ? [M3: nat] :
                  ( ( ord_less_nat @ M3 @ N3 )
                  & ~ ( P @ M3 ) ) ) )
       => ( P @ N ) ) ) ).

% infinite_descent0
thf(fact_566_prod__cases3,axiom,
    ! [Y: produc7903949528580895877ropVar] :
      ~ ! [A4: list_f,B3: multis3193088007478089820ropVar,C2: multis3193088007478089820ropVar] :
          ( Y
         != ( produc5732303558254465141ropVar @ A4 @ ( produc6936306168532358295ropVar @ B3 @ C2 ) ) ) ).

% prod_cases3
thf(fact_567_prod__induct3,axiom,
    ! [P: produc7903949528580895877ropVar > $o,X2: produc7903949528580895877ropVar] :
      ( ! [A4: list_f,B3: multis3193088007478089820ropVar,C2: multis3193088007478089820ropVar] : ( P @ ( produc5732303558254465141ropVar @ A4 @ ( produc6936306168532358295ropVar @ B3 @ C2 ) ) )
     => ( P @ X2 ) ) ).

% prod_induct3
thf(fact_568_case__prodE2,axiom,
    ! [Q: produc7257588745650887789list_f > $o,P: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f,Z: produc7679832412844898215ropVar] :
      ( ( Q @ ( produc5811297888731727041list_f @ P @ Z ) )
     => ~ ! [X4: multis3193088007478089820ropVar,Y5: multis3193088007478089820ropVar] :
            ( ( Z
              = ( produc6936306168532358295ropVar @ X4 @ Y5 ) )
           => ~ ( Q @ ( P @ X4 @ Y5 ) ) ) ) ).

% case_prodE2
thf(fact_569_case__prodE2,axiom,
    ! [Q: produc7257588745650887789list_f > $o,P: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f,Z: produc2642885279816024434ropVar] :
      ( ( Q @ ( produc1364905799853895606list_f @ P @ Z ) )
     => ~ ! [X4: multis3193088007478089820ropVar,Y5: produc7679832412844898215ropVar] :
            ( ( Z
              = ( produc6194868611276206818ropVar @ X4 @ Y5 ) )
           => ~ ( Q @ ( P @ X4 @ Y5 ) ) ) ) ).

% case_prodE2
thf(fact_570_case__prodE2,axiom,
    ! [Q: produc7903949528580895877ropVar > $o,P: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,Z: produc7903949528580895877ropVar] :
      ( ( Q @ ( produc5770109036932753787ropVar @ P @ Z ) )
     => ~ ! [X4: list_f,Y5: produc7679832412844898215ropVar] :
            ( ( Z
              = ( produc5732303558254465141ropVar @ X4 @ Y5 ) )
           => ~ ( Q @ ( P @ X4 @ Y5 ) ) ) ) ).

% case_prodE2
thf(fact_571_case__prodE2,axiom,
    ! [Q: produc7257588745650887789list_f > $o,P: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,Z: produc7903949528580895877ropVar] :
      ( ( Q @ ( produc9062381539647762275list_f @ P @ Z ) )
     => ~ ! [X4: list_f,Y5: produc7679832412844898215ropVar] :
            ( ( Z
              = ( produc5732303558254465141ropVar @ X4 @ Y5 ) )
           => ~ ( Q @ ( P @ X4 @ Y5 ) ) ) ) ).

% case_prodE2
thf(fact_572_case__prodE2,axiom,
    ! [Q: list_f > $o,P: f > list_f > list_f,Z: produc7257588745650887789list_f] :
      ( ( Q @ ( produc150797823399499287list_f @ P @ Z ) )
     => ~ ! [X4: f,Y5: list_f] :
            ( ( Z
              = ( produc4886901243613182557list_f @ X4 @ Y5 ) )
           => ~ ( Q @ ( P @ X4 @ Y5 ) ) ) ) ).

% case_prodE2
thf(fact_573_case__prod__eta,axiom,
    ! [F: produc7679832412844898215ropVar > produc7257588745650887789list_f] :
      ( ( produc5811297888731727041list_f
        @ ^ [X3: multis3193088007478089820ropVar,Y3: multis3193088007478089820ropVar] : ( F @ ( produc6936306168532358295ropVar @ X3 @ Y3 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_574_case__prod__eta,axiom,
    ! [F: produc2642885279816024434ropVar > produc7257588745650887789list_f] :
      ( ( produc1364905799853895606list_f
        @ ^ [X3: multis3193088007478089820ropVar,Y3: produc7679832412844898215ropVar] : ( F @ ( produc6194868611276206818ropVar @ X3 @ Y3 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_575_case__prod__eta,axiom,
    ! [F: produc7903949528580895877ropVar > produc7903949528580895877ropVar] :
      ( ( produc5770109036932753787ropVar
        @ ^ [X3: list_f,Y3: produc7679832412844898215ropVar] : ( F @ ( produc5732303558254465141ropVar @ X3 @ Y3 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_576_case__prod__eta,axiom,
    ! [F: produc7903949528580895877ropVar > produc7257588745650887789list_f] :
      ( ( produc9062381539647762275list_f
        @ ^ [X3: list_f,Y3: produc7679832412844898215ropVar] : ( F @ ( produc5732303558254465141ropVar @ X3 @ Y3 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_577_case__prod__eta,axiom,
    ! [F: produc7257588745650887789list_f > list_f] :
      ( ( produc150797823399499287list_f
        @ ^ [X3: f,Y3: list_f] : ( F @ ( produc4886901243613182557list_f @ X3 @ Y3 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_578_cond__case__prod__eta,axiom,
    ! [F: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc7257588745650887789list_f,G: produc7679832412844898215ropVar > produc7257588745650887789list_f] :
      ( ! [X4: multis3193088007478089820ropVar,Y5: multis3193088007478089820ropVar] :
          ( ( F @ X4 @ Y5 )
          = ( G @ ( produc6936306168532358295ropVar @ X4 @ Y5 ) ) )
     => ( ( produc5811297888731727041list_f @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_579_cond__case__prod__eta,axiom,
    ! [F: multis3193088007478089820ropVar > produc7679832412844898215ropVar > produc7257588745650887789list_f,G: produc2642885279816024434ropVar > produc7257588745650887789list_f] :
      ( ! [X4: multis3193088007478089820ropVar,Y5: produc7679832412844898215ropVar] :
          ( ( F @ X4 @ Y5 )
          = ( G @ ( produc6194868611276206818ropVar @ X4 @ Y5 ) ) )
     => ( ( produc1364905799853895606list_f @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_580_cond__case__prod__eta,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7903949528580895877ropVar,G: produc7903949528580895877ropVar > produc7903949528580895877ropVar] :
      ( ! [X4: list_f,Y5: produc7679832412844898215ropVar] :
          ( ( F @ X4 @ Y5 )
          = ( G @ ( produc5732303558254465141ropVar @ X4 @ Y5 ) ) )
     => ( ( produc5770109036932753787ropVar @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_581_cond__case__prod__eta,axiom,
    ! [F: list_f > produc7679832412844898215ropVar > produc7257588745650887789list_f,G: produc7903949528580895877ropVar > produc7257588745650887789list_f] :
      ( ! [X4: list_f,Y5: produc7679832412844898215ropVar] :
          ( ( F @ X4 @ Y5 )
          = ( G @ ( produc5732303558254465141ropVar @ X4 @ Y5 ) ) )
     => ( ( produc9062381539647762275list_f @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_582_cond__case__prod__eta,axiom,
    ! [F: f > list_f > list_f,G: produc7257588745650887789list_f > list_f] :
      ( ! [X4: f,Y5: list_f] :
          ( ( F @ X4 @ Y5 )
          = ( G @ ( produc4886901243613182557list_f @ X4 @ Y5 ) ) )
     => ( ( produc150797823399499287list_f @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_583_encode__sum__0__1__main_Osimps_I2_J,axiom,
    ! [X2: multis3193088007478089820ropVar,Zero: multis3193088007478089820ropVar,One3: multis3193088007478089820ropVar,V: produc2642885279816024434ropVar,Va: list_P8791008543742759928ropVar] :
      ( ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X2 @ ( produc6936306168532358295ropVar @ Zero @ One3 ) ) @ ( cons_P1504208554336013608ropVar @ V @ Va ) ) )
      = ( produc5770109036932753787ropVar
        @ ^ [Conds: list_f] :
            ( produc5689224170127644889ropVar
            @ ^ [Fzero: multis3193088007478089820ropVar,Fone: multis3193088007478089820ropVar] : ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_equiv_and_not @ Zero @ Fzero @ X2 ) @ ( cons_f @ ( enc_equiv_ite @ One3 @ X2 @ Fzero @ Fone ) @ Conds ) ) @ ( produc6936306168532358295ropVar @ Zero @ One3 ) ) )
        @ ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ V @ Va ) ) ) ) ).

% encode_sum_0_1_main.simps(2)
thf(fact_584_encode__exactly__one__sound,axiom,
    ! [Vars: list_P8791008543742759928ropVar,One3: f,Conds2: list_f,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ Vars )
        = ( produc4886901243613182557list_f @ One3 @ Conds2 ) )
     => ( ( distin2675581014522817237ropVar @ ( map_Pr3335389669906741166ropVar @ produc6918815732823278798ropVar @ Vars ) )
       => ( ( eval @ Alpha @ One3 )
         => ( ! [X4: f] :
                ( ( member_f @ X4 @ ( set_f2 @ Conds2 ) )
               => ( eval @ Alpha @ X4 ) )
           => ? [X4: multis3193088007478089820ropVar] :
                ( ( member8421201611525043589ropVar @ X4 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                & ( Alpha @ X4 )
                & ! [Y4: multis3193088007478089820ropVar] :
                    ( ( ( member8421201611525043589ropVar @ Y4 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                      & ( Alpha @ Y4 ) )
                   => ( Y4 = X4 ) ) ) ) ) ) ) ).

% encode_exactly_one_sound
thf(fact_585_ms__encoder_Oformula14__def,axiom,
    ! [Enc_False: produc2642885279816024434ropVar,Enc_True: produc2642885279816024434ropVar,Enc_pos: multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_neg: multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_different: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_equiv_and_not: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_equiv_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_impl: multis3193088007478089820ropVar > produc2642885279816024434ropVar > produc2642885279816024434ropVar,Enc_var_impl: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_not_and: multis3193088007478089820ropVar > multis3193088007478089820ropVar > produc2642885279816024434ropVar,Enc_not_all: list_M6740372356978808802ropVar > produc2642885279816024434ropVar,Enc_conj: list_P8791008543742759928ropVar > produc2642885279816024434ropVar,Eval: ( multis3193088007478089820ropVar > $o ) > produc2642885279816024434ropVar > $o,N: nat,M: nat] :
      ( ( multis8181102237825478411ropVar @ 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 @ Eval )
     => ( ( multis3450153464401155806ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite @ Enc_impl @ N @ M )
        = ( append4352292717583037453ropVar
          @ ( maps_n6440817060062774047ropVar
            @ ^ [J: nat] :
                ( produc5464477786531444550ropVar @ cons_P1504208554336013608ropVar
                @ ( multis8736296938027350326ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [I: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385521703ZeroJI @ I @ J ) @ ( multis6646701651571564453xOneJI @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ N ) ) ) )
            @ ( upt @ zero_zero_nat @ M ) )
          @ ( maps_n6440817060062774047ropVar
            @ ^ [I: nat] :
                ( produc5464477786531444550ropVar
                @ ^ [One: produc2642885279816024434ropVar] : ( cons_P1504208554336013608ropVar @ ( Enc_impl @ ( multis2544335231667181926psilon @ I ) @ One ) )
                @ ( multis8736296938027350326ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ I @ J ) @ ( multis6646701651571498855xOneIJ @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ M ) ) ) )
            @ ( upt @ zero_zero_nat @ N ) ) ) ) ) ).

% ms_encoder.formula14_def
thf(fact_586_ms__encoder_Oformula14__def,axiom,
    ! [Enc_False: nat,Enc_True: nat,Enc_pos: multis3193088007478089820ropVar > nat,Enc_neg: multis3193088007478089820ropVar > nat,Enc_different: multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_equiv_and_not: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_equiv_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_impl: multis3193088007478089820ropVar > nat > nat,Enc_var_impl: multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_not_and: multis3193088007478089820ropVar > multis3193088007478089820ropVar > nat,Enc_not_all: list_M6740372356978808802ropVar > nat,Enc_conj: list_nat > nat,Eval: ( multis3193088007478089820ropVar > $o ) > nat > $o,N: nat,M: nat] :
      ( ( multis4476563104974320119er_nat @ 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 @ Eval )
     => ( ( multis778902868463715824414_nat @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite @ Enc_impl @ N @ M )
        = ( append_nat
          @ ( maps_nat_nat
            @ ^ [J: nat] :
                ( produc6860903796091618494st_nat @ cons_nat
                @ ( multis5159292385415766206ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [I: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385521703ZeroJI @ I @ J ) @ ( multis6646701651571564453xOneJI @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ N ) ) ) )
            @ ( upt @ zero_zero_nat @ M ) )
          @ ( maps_nat_nat
            @ ^ [I: nat] :
                ( produc6860903796091618494st_nat
                @ ^ [One: nat] : ( cons_nat @ ( Enc_impl @ ( multis2544335231667181926psilon @ I ) @ One ) )
                @ ( multis5159292385415766206ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ I @ J ) @ ( multis6646701651571498855xOneIJ @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ M ) ) ) )
            @ ( upt @ zero_zero_nat @ N ) ) ) ) ) ).

% ms_encoder.formula14_def
thf(fact_587_ms__encoder_Oformula14__def,axiom,
    ! [Enc_False: f,Enc_True: f,Enc_pos: multis3193088007478089820ropVar > f,Enc_neg: multis3193088007478089820ropVar > f,Enc_different: multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_equiv_and_not: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_equiv_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_ite: multis3193088007478089820ropVar > multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_impl: multis3193088007478089820ropVar > f > f,Enc_var_impl: multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_not_and: multis3193088007478089820ropVar > multis3193088007478089820ropVar > f,Enc_not_all: list_M6740372356978808802ropVar > f,Enc_conj: list_f > f,Eval: ( multis3193088007478089820ropVar > $o ) > f > $o,N: nat,M: nat] :
      ( ( multis7215977293502021788oder_f @ 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 @ Eval )
     => ( ( multis1248899897006733423la14_f @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite @ Enc_impl @ N @ M )
        = ( append_f
          @ ( maps_nat_f
            @ ^ [J: nat] :
                ( produc150797823399499287list_f @ cons_f
                @ ( multis2195156209094129637ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [I: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385521703ZeroJI @ I @ J ) @ ( multis6646701651571564453xOneJI @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ N ) ) ) )
            @ ( upt @ zero_zero_nat @ M ) )
          @ ( maps_nat_f
            @ ^ [I: nat] :
                ( produc150797823399499287list_f
                @ ^ [One: f] : ( cons_f @ ( Enc_impl @ ( multis2544335231667181926psilon @ I ) @ One ) )
                @ ( multis2195156209094129637ropVar @ Enc_False @ Enc_pos @ Enc_different @ Enc_equiv_and_not @ Enc_equiv_ite @ Enc_ite
                  @ ( map_na2145702811007361372ropVar
                    @ ^ [J: nat] : ( produc6194868611276206818ropVar @ ( multis387687052011358179_Gamma @ I @ J ) @ ( produc6936306168532358295ropVar @ ( multis2983220944385456105ZeroIJ @ I @ J ) @ ( multis6646701651571498855xOneIJ @ I @ J ) ) )
                    @ ( upt @ zero_zero_nat @ M ) ) ) )
            @ ( upt @ zero_zero_nat @ N ) ) ) ) ) ).

% ms_encoder.formula14_def
thf(fact_588_encode__sum__0__1__main_Ocases,axiom,
    ! [X2: list_P8791008543742759928ropVar] :
      ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar,One2: multis3193088007478089820ropVar] :
          ( X2
         != ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ nil_Pr6119456312066593144ropVar ) )
     => ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar,One2: multis3193088007478089820ropVar,V2: produc2642885279816024434ropVar,Va2: list_P8791008543742759928ropVar] :
            ( X2
           != ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) )
       => ( X2 = nil_Pr6119456312066593144ropVar ) ) ) ).

% encode_sum_0_1_main.cases
thf(fact_589_encode__exactly__one__def,axiom,
    ! [Vars: list_P8791008543742759928ropVar] :
      ( ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ Vars )
      = ( case_l5231247004599698859ropVar @ ( produc4886901243613182557list_f @ enc_False @ nil_f )
        @ ^ [A6: produc2642885279816024434ropVar,Vars2: list_P8791008543742759928ropVar] :
            ( produc1364905799853895606list_f
            @ ^ [X3: multis3193088007478089820ropVar] :
                ( produc5811297888731727041list_f
                @ ^ [Xa3: multis3193088007478089820ropVar,Xb: multis3193088007478089820ropVar] :
                    ( case_l5231247004599698859ropVar @ ( produc4886901243613182557list_f @ ( enc_pos @ X3 ) @ nil_f )
                    @ ^ [Aa: produc2642885279816024434ropVar,List: list_P8791008543742759928ropVar] :
                        ( produc9062381539647762275list_f
                        @ ^ [Conds: list_f] :
                            ( produc5811297888731727041list_f
                            @ ^ [Zero3: multis3193088007478089820ropVar,One: multis3193088007478089820ropVar] : ( produc4886901243613182557list_f @ ( enc_ite @ X3 @ Zero3 @ One ) @ Conds ) )
                        @ ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ Aa @ List ) ) )
                    @ Vars2 ) )
            @ A6 )
        @ Vars ) ) ).

% encode_exactly_one_def
thf(fact_590_encode__exactly__one__complete,axiom,
    ! [Vars: list_P8791008543742759928ropVar,One3: f,Conds2: list_f,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ( multis2195156209094129637ropVar @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ Vars )
        = ( produc4886901243613182557list_f @ One3 @ Conds2 ) )
     => ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_s6752116297430514276ropVar @ Vars ) )
           => ! [X4: multis3193088007478089820ropVar,Ze: multis3193088007478089820ropVar,On: multis3193088007478089820ropVar] :
                ( ( ( nth_Pr227365692153740281ropVar @ Vars @ I2 )
                  = ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Ze @ On ) ) )
               => ( ( ( Alpha @ Ze )
                    = ( ~ ? [Y3: multis3193088007478089820ropVar] :
                            ( ( member8421201611525043589ropVar @ Y3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ ( drop_P4829783966340880056ropVar @ I2 @ Vars ) ) ) )
                            & ( Alpha @ Y3 ) ) ) )
                  & ( ( Alpha @ On )
                    = ( ? [Y3: multis3193088007478089820ropVar] :
                          ( ( member8421201611525043589ropVar @ Y3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ ( drop_P4829783966340880056ropVar @ I2 @ Vars ) ) ) )
                          & ( Alpha @ Y3 )
                          & ! [Z3: multis3193088007478089820ropVar] :
                              ( ( ( member8421201611525043589ropVar @ Z3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ ( drop_P4829783966340880056ropVar @ I2 @ Vars ) ) ) )
                                & ( Alpha @ Z3 ) )
                             => ( Z3 = Y3 ) ) ) ) ) ) ) )
       => ( ( distin2675581014522817237ropVar @ ( map_Pr3335389669906741166ropVar @ produc6918815732823278798ropVar @ Vars ) )
         => ( ! [X: f] :
                ( ( member_f @ X @ ( set_f2 @ Conds2 ) )
               => ( eval @ Alpha @ X ) )
            & ( ( eval @ Alpha @ One3 )
              = ( ? [X3: multis3193088007478089820ropVar] :
                    ( ( member8421201611525043589ropVar @ X3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                    & ( Alpha @ X3 )
                    & ! [Y3: multis3193088007478089820ropVar] :
                        ( ( ( member8421201611525043589ropVar @ Y3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                          & ( Alpha @ Y3 ) )
                       => ( Y3 = X3 ) ) ) ) ) ) ) ) ) ).

% encode_exactly_one_complete
thf(fact_591_fstI,axiom,
    ! [X2: produc6518373309651786023iset_a,Y: multiset_a,Z: multiset_a] :
      ( ( X2
        = ( produc654756711066625303iset_a @ Y @ Z ) )
     => ( ( produc4115391677465734915iset_a @ X2 )
        = Y ) ) ).

% fstI
thf(fact_592_fstI,axiom,
    ! [X2: produc7903949528580895877ropVar,Y: list_f,Z: produc7679832412844898215ropVar] :
      ( ( X2
        = ( produc5732303558254465141ropVar @ Y @ Z ) )
     => ( ( produc3716127084588840033ropVar @ X2 )
        = Y ) ) ).

% fstI
thf(fact_593_fstI,axiom,
    ! [X2: product_prod_o_o,Y: $o,Z: $o] :
      ( ( X2
        = ( product_Pair_o_o @ Y @ Z ) )
     => ( ( product_fst_o_o @ X2 )
        = Y ) ) ).

% fstI
thf(fact_594_fstI,axiom,
    ! [X2: produc7257588745650887789list_f,Y: f,Z: list_f] :
      ( ( X2
        = ( produc4886901243613182557list_f @ Y @ Z ) )
     => ( ( product_fst_f_list_f @ X2 )
        = Y ) ) ).

% fstI
thf(fact_595_fstI,axiom,
    ! [X2: product_prod_a_a,Y: a,Z: a] :
      ( ( X2
        = ( product_Pair_a_a @ Y @ Z ) )
     => ( ( product_fst_a_a @ X2 )
        = Y ) ) ).

% fstI
thf(fact_596_fstI,axiom,
    ! [X2: produc2642885279816024434ropVar,Y: multis3193088007478089820ropVar,Z: produc7679832412844898215ropVar] :
      ( ( X2
        = ( produc6194868611276206818ropVar @ Y @ Z ) )
     => ( ( produc6918815732823278798ropVar @ X2 )
        = Y ) ) ).

% fstI
thf(fact_597_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_598_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_599_map__is__Nil__conv,axiom,
    ! [F: a > f,Xs2: list_a] :
      ( ( ( map_a_f @ F @ Xs2 )
        = nil_f )
      = ( Xs2 = nil_a ) ) ).

% map_is_Nil_conv
thf(fact_600_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_601_map__is__Nil__conv,axiom,
    ! [F: a > nat,Xs2: list_a] :
      ( ( ( map_a_nat @ F @ Xs2 )
        = nil_nat )
      = ( Xs2 = nil_a ) ) ).

% map_is_Nil_conv
thf(fact_602_map__is__Nil__conv,axiom,
    ! [F: f > a,Xs2: list_f] :
      ( ( ( map_f_a @ F @ Xs2 )
        = nil_a )
      = ( Xs2 = nil_f ) ) ).

% map_is_Nil_conv
thf(fact_603_map__is__Nil__conv,axiom,
    ! [F: a > a,Xs2: list_a] :
      ( ( ( map_a_a @ F @ Xs2 )
        = nil_a )
      = ( Xs2 = nil_a ) ) ).

% map_is_Nil_conv
thf(fact_604_map__is__Nil__conv,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat] :
      ( ( ( map_na2466558649495876678ropVar @ F @ Xs2 )
        = nil_Mu4132399263956683874ropVar )
      = ( Xs2 = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_605_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_606_map__is__Nil__conv,axiom,
    ! [F: nat > a,Xs2: list_nat] :
      ( ( ( map_nat_a @ F @ Xs2 )
        = nil_a )
      = ( Xs2 = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_607_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_608_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_609_Nil__is__map__conv,axiom,
    ! [F: a > f,Xs2: list_a] :
      ( ( nil_f
        = ( map_a_f @ F @ Xs2 ) )
      = ( Xs2 = nil_a ) ) ).

% Nil_is_map_conv
thf(fact_610_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_611_Nil__is__map__conv,axiom,
    ! [F: a > nat,Xs2: list_a] :
      ( ( nil_nat
        = ( map_a_nat @ F @ Xs2 ) )
      = ( Xs2 = nil_a ) ) ).

% Nil_is_map_conv
thf(fact_612_Nil__is__map__conv,axiom,
    ! [F: f > a,Xs2: list_f] :
      ( ( nil_a
        = ( map_f_a @ F @ Xs2 ) )
      = ( Xs2 = nil_f ) ) ).

% Nil_is_map_conv
thf(fact_613_Nil__is__map__conv,axiom,
    ! [F: a > a,Xs2: list_a] :
      ( ( nil_a
        = ( map_a_a @ F @ Xs2 ) )
      = ( Xs2 = nil_a ) ) ).

% Nil_is_map_conv
thf(fact_614_Nil__is__map__conv,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat] :
      ( ( nil_Mu4132399263956683874ropVar
        = ( map_na2466558649495876678ropVar @ F @ Xs2 ) )
      = ( Xs2 = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_615_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_616_Nil__is__map__conv,axiom,
    ! [F: nat > a,Xs2: list_nat] :
      ( ( nil_a
        = ( map_nat_a @ F @ Xs2 ) )
      = ( Xs2 = nil_nat ) ) ).

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

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

% list.map_disc_iff
thf(fact_619_list_Omap__disc__iff,axiom,
    ! [F: a > f,A: list_a] :
      ( ( ( map_a_f @ F @ A )
        = nil_f )
      = ( A = nil_a ) ) ).

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

% list.map_disc_iff
thf(fact_621_list_Omap__disc__iff,axiom,
    ! [F: a > nat,A: list_a] :
      ( ( ( map_a_nat @ F @ A )
        = nil_nat )
      = ( A = nil_a ) ) ).

% list.map_disc_iff
thf(fact_622_list_Omap__disc__iff,axiom,
    ! [F: f > a,A: list_f] :
      ( ( ( map_f_a @ F @ A )
        = nil_a )
      = ( A = nil_f ) ) ).

% list.map_disc_iff
thf(fact_623_list_Omap__disc__iff,axiom,
    ! [F: a > a,A: list_a] :
      ( ( ( map_a_a @ F @ A )
        = nil_a )
      = ( A = nil_a ) ) ).

% list.map_disc_iff
thf(fact_624_list_Omap__disc__iff,axiom,
    ! [F: nat > multis3193088007478089820ropVar,A: list_nat] :
      ( ( ( map_na2466558649495876678ropVar @ F @ A )
        = nil_Mu4132399263956683874ropVar )
      = ( A = nil_nat ) ) ).

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

% list.map_disc_iff
thf(fact_626_list_Omap__disc__iff,axiom,
    ! [F: nat > a,A: list_nat] :
      ( ( ( map_nat_a @ F @ A )
        = nil_a )
      = ( A = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_627_append_Oright__neutral,axiom,
    ! [A: list_P8791008543742759928ropVar] :
      ( ( append4352292717583037453ropVar @ A @ nil_Pr6119456312066593144ropVar )
      = A ) ).

% append.right_neutral
thf(fact_628_append_Oright__neutral,axiom,
    ! [A: list_f] :
      ( ( append_f @ A @ nil_f )
      = A ) ).

% append.right_neutral
thf(fact_629_append_Oright__neutral,axiom,
    ! [A: list_nat] :
      ( ( append_nat @ A @ nil_nat )
      = A ) ).

% append.right_neutral
thf(fact_630_append_Oright__neutral,axiom,
    ! [A: list_a] :
      ( ( append_a @ A @ nil_a )
      = A ) ).

% append.right_neutral
thf(fact_631_append__Nil2,axiom,
    ! [Xs2: list_P8791008543742759928ropVar] :
      ( ( append4352292717583037453ropVar @ Xs2 @ nil_Pr6119456312066593144ropVar )
      = Xs2 ) ).

% append_Nil2
thf(fact_632_append__Nil2,axiom,
    ! [Xs2: list_f] :
      ( ( append_f @ Xs2 @ nil_f )
      = Xs2 ) ).

% append_Nil2
thf(fact_633_append__Nil2,axiom,
    ! [Xs2: list_nat] :
      ( ( append_nat @ Xs2 @ nil_nat )
      = Xs2 ) ).

% append_Nil2
thf(fact_634_append__Nil2,axiom,
    ! [Xs2: list_a] :
      ( ( append_a @ Xs2 @ nil_a )
      = Xs2 ) ).

% append_Nil2
thf(fact_635_append__self__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( append4352292717583037453ropVar @ Xs2 @ Ys )
        = Xs2 )
      = ( Ys = nil_Pr6119456312066593144ropVar ) ) ).

% append_self_conv
thf(fact_636_append__self__conv,axiom,
    ! [Xs2: list_f,Ys: list_f] :
      ( ( ( append_f @ Xs2 @ Ys )
        = Xs2 )
      = ( Ys = nil_f ) ) ).

% append_self_conv
thf(fact_637_append__self__conv,axiom,
    ! [Xs2: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs2 @ Ys )
        = Xs2 )
      = ( Ys = nil_nat ) ) ).

% append_self_conv
thf(fact_638_append__self__conv,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs2 @ Ys )
        = Xs2 )
      = ( Ys = nil_a ) ) ).

% append_self_conv
thf(fact_639_self__append__conv,axiom,
    ! [Y: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( Y
        = ( append4352292717583037453ropVar @ Y @ Ys ) )
      = ( Ys = nil_Pr6119456312066593144ropVar ) ) ).

% self_append_conv
thf(fact_640_self__append__conv,axiom,
    ! [Y: list_f,Ys: list_f] :
      ( ( Y
        = ( append_f @ Y @ Ys ) )
      = ( Ys = nil_f ) ) ).

% self_append_conv
thf(fact_641_self__append__conv,axiom,
    ! [Y: list_nat,Ys: list_nat] :
      ( ( Y
        = ( append_nat @ Y @ Ys ) )
      = ( Ys = nil_nat ) ) ).

% self_append_conv
thf(fact_642_self__append__conv,axiom,
    ! [Y: list_a,Ys: list_a] :
      ( ( Y
        = ( append_a @ Y @ Ys ) )
      = ( Ys = nil_a ) ) ).

% self_append_conv
thf(fact_643_append__self__conv2,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( append4352292717583037453ropVar @ Xs2 @ Ys )
        = Ys )
      = ( Xs2 = nil_Pr6119456312066593144ropVar ) ) ).

% append_self_conv2
thf(fact_644_append__self__conv2,axiom,
    ! [Xs2: list_f,Ys: list_f] :
      ( ( ( append_f @ Xs2 @ Ys )
        = Ys )
      = ( Xs2 = nil_f ) ) ).

% append_self_conv2
thf(fact_645_append__self__conv2,axiom,
    ! [Xs2: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs2 @ Ys )
        = Ys )
      = ( Xs2 = nil_nat ) ) ).

% append_self_conv2
thf(fact_646_append__self__conv2,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs2 @ Ys )
        = Ys )
      = ( Xs2 = nil_a ) ) ).

% append_self_conv2
thf(fact_647_self__append__conv2,axiom,
    ! [Y: list_P8791008543742759928ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( Y
        = ( append4352292717583037453ropVar @ Xs2 @ Y ) )
      = ( Xs2 = nil_Pr6119456312066593144ropVar ) ) ).

% self_append_conv2
thf(fact_648_self__append__conv2,axiom,
    ! [Y: list_f,Xs2: list_f] :
      ( ( Y
        = ( append_f @ Xs2 @ Y ) )
      = ( Xs2 = nil_f ) ) ).

% self_append_conv2
thf(fact_649_self__append__conv2,axiom,
    ! [Y: list_nat,Xs2: list_nat] :
      ( ( Y
        = ( append_nat @ Xs2 @ Y ) )
      = ( Xs2 = nil_nat ) ) ).

% self_append_conv2
thf(fact_650_self__append__conv2,axiom,
    ! [Y: list_a,Xs2: list_a] :
      ( ( Y
        = ( append_a @ Xs2 @ Y ) )
      = ( Xs2 = nil_a ) ) ).

% self_append_conv2
thf(fact_651_Nil__is__append__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( nil_Pr6119456312066593144ropVar
        = ( append4352292717583037453ropVar @ Xs2 @ Ys ) )
      = ( ( Xs2 = nil_Pr6119456312066593144ropVar )
        & ( Ys = nil_Pr6119456312066593144ropVar ) ) ) ).

% Nil_is_append_conv
thf(fact_652_Nil__is__append__conv,axiom,
    ! [Xs2: list_f,Ys: list_f] :
      ( ( nil_f
        = ( append_f @ Xs2 @ Ys ) )
      = ( ( Xs2 = nil_f )
        & ( Ys = nil_f ) ) ) ).

% Nil_is_append_conv
thf(fact_653_Nil__is__append__conv,axiom,
    ! [Xs2: list_nat,Ys: list_nat] :
      ( ( nil_nat
        = ( append_nat @ Xs2 @ Ys ) )
      = ( ( Xs2 = nil_nat )
        & ( Ys = nil_nat ) ) ) ).

% Nil_is_append_conv
thf(fact_654_Nil__is__append__conv,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( nil_a
        = ( append_a @ Xs2 @ Ys ) )
      = ( ( Xs2 = nil_a )
        & ( Ys = nil_a ) ) ) ).

% Nil_is_append_conv
thf(fact_655_append__is__Nil__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( append4352292717583037453ropVar @ Xs2 @ Ys )
        = nil_Pr6119456312066593144ropVar )
      = ( ( Xs2 = nil_Pr6119456312066593144ropVar )
        & ( Ys = nil_Pr6119456312066593144ropVar ) ) ) ).

% append_is_Nil_conv
thf(fact_656_append__is__Nil__conv,axiom,
    ! [Xs2: list_f,Ys: list_f] :
      ( ( ( append_f @ Xs2 @ Ys )
        = nil_f )
      = ( ( Xs2 = nil_f )
        & ( Ys = nil_f ) ) ) ).

% append_is_Nil_conv
thf(fact_657_append__is__Nil__conv,axiom,
    ! [Xs2: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs2 @ Ys )
        = nil_nat )
      = ( ( Xs2 = nil_nat )
        & ( Ys = nil_nat ) ) ) ).

% append_is_Nil_conv
thf(fact_658_append__is__Nil__conv,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs2 @ Ys )
        = nil_a )
      = ( ( Xs2 = nil_a )
        & ( Ys = nil_a ) ) ) ).

% append_is_Nil_conv
thf(fact_659_length__map,axiom,
    ! [F: nat > multis3193088007478089820ropVar,Xs2: list_nat] :
      ( ( size_s1943289338788136526ropVar @ ( map_na2466558649495876678ropVar @ F @ Xs2 ) )
      = ( size_size_list_nat @ Xs2 ) ) ).

% length_map
thf(fact_660_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_661_length__map,axiom,
    ! [F: a > nat,Xs2: list_a] :
      ( ( size_size_list_nat @ ( map_a_nat @ F @ Xs2 ) )
      = ( size_size_list_a @ Xs2 ) ) ).

% length_map
thf(fact_662_length__map,axiom,
    ! [F: nat > a,Xs2: list_nat] :
      ( ( size_size_list_a @ ( map_nat_a @ F @ Xs2 ) )
      = ( size_size_list_nat @ Xs2 ) ) ).

% length_map
thf(fact_663_length__map,axiom,
    ! [F: a > a,Xs2: list_a] :
      ( ( size_size_list_a @ ( map_a_a @ F @ Xs2 ) )
      = ( size_size_list_a @ Xs2 ) ) ).

% length_map
thf(fact_664_length__map,axiom,
    ! [F: produc2642885279816024434ropVar > multis3193088007478089820ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( size_s1943289338788136526ropVar @ ( map_Pr3335389669906741166ropVar @ F @ Xs2 ) )
      = ( size_s6752116297430514276ropVar @ Xs2 ) ) ).

% length_map
thf(fact_665_length__map,axiom,
    ! [F: nat > produc2642885279816024434ropVar,Xs2: list_nat] :
      ( ( size_s6752116297430514276ropVar @ ( map_na2145702811007361372ropVar @ F @ Xs2 ) )
      = ( size_size_list_nat @ Xs2 ) ) ).

% length_map
thf(fact_666_length__map,axiom,
    ! [F: a > produc2642885279816024434ropVar,Xs2: list_a] :
      ( ( size_s6752116297430514276ropVar @ ( map_a_1400613014311812664ropVar @ F @ Xs2 ) )
      = ( size_size_list_a @ Xs2 ) ) ).

% length_map
thf(fact_667_length__map,axiom,
    ! [F: produc2642885279816024434ropVar > nat,Xs2: list_P8791008543742759928ropVar] :
      ( ( size_size_list_nat @ ( map_Pr7810381211709419518ar_nat @ F @ Xs2 ) )
      = ( size_s6752116297430514276ropVar @ Xs2 ) ) ).

% length_map
thf(fact_668_length__map,axiom,
    ! [F: produc2642885279816024434ropVar > a,Xs2: list_P8791008543742759928ropVar] :
      ( ( size_size_list_a @ ( map_Pr1064736048566318672pVar_a @ F @ Xs2 ) )
      = ( size_s6752116297430514276ropVar @ Xs2 ) ) ).

% length_map
thf(fact_669_append__eq__append__conv,axiom,
    ! [Xs2: list_f,Ys: list_f,Us2: list_f,Vs2: list_f] :
      ( ( ( ( size_size_list_f @ Xs2 )
          = ( size_size_list_f @ Ys ) )
        | ( ( size_size_list_f @ Us2 )
          = ( size_size_list_f @ Vs2 ) ) )
     => ( ( ( append_f @ Xs2 @ Us2 )
          = ( append_f @ Ys @ Vs2 ) )
        = ( ( Xs2 = Ys )
          & ( Us2 = Vs2 ) ) ) ) ).

% append_eq_append_conv
thf(fact_670_append__eq__append__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar,Us2: list_P8791008543742759928ropVar,Vs2: list_P8791008543742759928ropVar] :
      ( ( ( ( size_s6752116297430514276ropVar @ Xs2 )
          = ( size_s6752116297430514276ropVar @ Ys ) )
        | ( ( size_s6752116297430514276ropVar @ Us2 )
          = ( size_s6752116297430514276ropVar @ Vs2 ) ) )
     => ( ( ( append4352292717583037453ropVar @ Xs2 @ Us2 )
          = ( append4352292717583037453ropVar @ Ys @ Vs2 ) )
        = ( ( Xs2 = Ys )
          & ( Us2 = Vs2 ) ) ) ) ).

% append_eq_append_conv
thf(fact_671_append__eq__append__conv,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Us2: list_nat,Vs2: list_nat] :
      ( ( ( ( size_size_list_nat @ Xs2 )
          = ( size_size_list_nat @ Ys ) )
        | ( ( size_size_list_nat @ Us2 )
          = ( size_size_list_nat @ Vs2 ) ) )
     => ( ( ( append_nat @ Xs2 @ Us2 )
          = ( append_nat @ Ys @ Vs2 ) )
        = ( ( Xs2 = Ys )
          & ( Us2 = Vs2 ) ) ) ) ).

% append_eq_append_conv
thf(fact_672_append__eq__append__conv,axiom,
    ! [Xs2: list_a,Ys: list_a,Us2: list_a,Vs2: list_a] :
      ( ( ( ( size_size_list_a @ Xs2 )
          = ( size_size_list_a @ Ys ) )
        | ( ( size_size_list_a @ Us2 )
          = ( size_size_list_a @ Vs2 ) ) )
     => ( ( ( append_a @ Xs2 @ Us2 )
          = ( append_a @ Ys @ Vs2 ) )
        = ( ( Xs2 = Ys )
          & ( Us2 = Vs2 ) ) ) ) ).

% append_eq_append_conv
thf(fact_673_drop0,axiom,
    ( ( drop_P4829783966340880056ropVar @ zero_zero_nat )
    = ( ^ [X3: list_P8791008543742759928ropVar] : X3 ) ) ).

% drop0
thf(fact_674_drop0,axiom,
    ( ( drop_M2293212096379261346ropVar @ zero_zero_nat )
    = ( ^ [X3: list_M6740372356978808802ropVar] : X3 ) ) ).

% drop0
thf(fact_675_drop0,axiom,
    ( ( drop_nat @ zero_zero_nat )
    = ( ^ [X3: list_nat] : X3 ) ) ).

% drop0
thf(fact_676_length__0__conv,axiom,
    ! [Xs2: list_f] :
      ( ( ( size_size_list_f @ Xs2 )
        = zero_zero_nat )
      = ( Xs2 = nil_f ) ) ).

% length_0_conv
thf(fact_677_length__0__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar] :
      ( ( ( size_s6752116297430514276ropVar @ Xs2 )
        = zero_zero_nat )
      = ( Xs2 = nil_Pr6119456312066593144ropVar ) ) ).

% length_0_conv
thf(fact_678_length__0__conv,axiom,
    ! [Xs2: list_nat] :
      ( ( ( size_size_list_nat @ Xs2 )
        = zero_zero_nat )
      = ( Xs2 = nil_nat ) ) ).

% length_0_conv
thf(fact_679_length__0__conv,axiom,
    ! [Xs2: list_a] :
      ( ( ( size_size_list_a @ Xs2 )
        = zero_zero_nat )
      = ( Xs2 = nil_a ) ) ).

% length_0_conv
thf(fact_680_append1__eq__conv,axiom,
    ! [Xs2: list_a,X2: a,Ys: list_a,Y: a] :
      ( ( ( append_a @ Xs2 @ ( cons_a @ X2 @ nil_a ) )
        = ( append_a @ Ys @ ( cons_a @ Y @ nil_a ) ) )
      = ( ( Xs2 = Ys )
        & ( X2 = Y ) ) ) ).

% append1_eq_conv
thf(fact_681_append1__eq__conv,axiom,
    ! [Xs2: list_f,X2: f,Ys: list_f,Y: f] :
      ( ( ( append_f @ Xs2 @ ( cons_f @ X2 @ nil_f ) )
        = ( append_f @ Ys @ ( cons_f @ Y @ nil_f ) ) )
      = ( ( Xs2 = Ys )
        & ( X2 = Y ) ) ) ).

% append1_eq_conv
thf(fact_682_append1__eq__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,X2: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar,Y: produc2642885279816024434ropVar] :
      ( ( ( append4352292717583037453ropVar @ Xs2 @ ( cons_P1504208554336013608ropVar @ X2 @ nil_Pr6119456312066593144ropVar ) )
        = ( append4352292717583037453ropVar @ Ys @ ( cons_P1504208554336013608ropVar @ Y @ nil_Pr6119456312066593144ropVar ) ) )
      = ( ( Xs2 = Ys )
        & ( X2 = Y ) ) ) ).

% append1_eq_conv
thf(fact_683_append1__eq__conv,axiom,
    ! [Xs2: list_nat,X2: nat,Ys: list_nat,Y: nat] :
      ( ( ( append_nat @ Xs2 @ ( cons_nat @ X2 @ nil_nat ) )
        = ( append_nat @ Ys @ ( cons_nat @ Y @ nil_nat ) ) )
      = ( ( Xs2 = Ys )
        & ( X2 = Y ) ) ) ).

% append1_eq_conv
thf(fact_684_nth__Cons__0,axiom,
    ! [X2: a,Xs2: list_a] :
      ( ( nth_a @ ( cons_a @ X2 @ Xs2 ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_685_nth__Cons__0,axiom,
    ! [X2: f,Xs2: list_f] :
      ( ( nth_f @ ( cons_f @ X2 @ Xs2 ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_686_nth__Cons__0,axiom,
    ! [X2: produc2642885279816024434ropVar,Xs2: list_P8791008543742759928ropVar] :
      ( ( nth_Pr227365692153740281ropVar @ ( cons_P1504208554336013608ropVar @ X2 @ Xs2 ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_687_nth__Cons__0,axiom,
    ! [X2: nat,Xs2: list_nat] :
      ( ( nth_nat @ ( cons_nat @ X2 @ Xs2 ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_688_length__greater__0__conv,axiom,
    ! [Xs2: list_f] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_list_f @ Xs2 ) )
      = ( Xs2 != nil_f ) ) ).

% length_greater_0_conv
thf(fact_689_length__greater__0__conv,axiom,
    ! [Xs2: list_P8791008543742759928ropVar] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_s6752116297430514276ropVar @ Xs2 ) )
      = ( Xs2 != nil_Pr6119456312066593144ropVar ) ) ).

% length_greater_0_conv
thf(fact_690_length__greater__0__conv,axiom,
    ! [Xs2: list_nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_list_nat @ Xs2 ) )
      = ( Xs2 != nil_nat ) ) ).

% length_greater_0_conv
thf(fact_691_length__greater__0__conv,axiom,
    ! [Xs2: list_a] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_list_a @ Xs2 ) )
      = ( Xs2 != nil_a ) ) ).

% length_greater_0_conv
thf(fact_692_nth__map,axiom,
    ! [N: nat,Xs2: list_nat,F: nat > multis3193088007478089820ropVar] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs2 ) )
     => ( ( nth_Mu4537670848183934179ropVar @ ( map_na2466558649495876678ropVar @ F @ Xs2 ) @ N )
        = ( F @ ( nth_nat @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_693_nth__map,axiom,
    ! [N: nat,Xs2: list_nat,F: nat > nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs2 ) )
     => ( ( nth_nat @ ( map_nat_nat @ F @ Xs2 ) @ N )
        = ( F @ ( nth_nat @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_694_nth__map,axiom,
    ! [N: nat,Xs2: list_nat,F: nat > a] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs2 ) )
     => ( ( nth_a @ ( map_nat_a @ F @ Xs2 ) @ N )
        = ( F @ ( nth_nat @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_695_nth__map,axiom,
    ! [N: nat,Xs2: list_a,F: a > nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs2 ) )
     => ( ( nth_nat @ ( map_a_nat @ F @ Xs2 ) @ N )
        = ( F @ ( nth_a @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_696_nth__map,axiom,
    ! [N: nat,Xs2: list_a,F: a > a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs2 ) )
     => ( ( nth_a @ ( map_a_a @ F @ Xs2 ) @ N )
        = ( F @ ( nth_a @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_697_nth__map,axiom,
    ! [N: nat,Xs2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > nat] :
      ( ( ord_less_nat @ N @ ( size_s6752116297430514276ropVar @ Xs2 ) )
     => ( ( nth_nat @ ( map_Pr7810381211709419518ar_nat @ F @ Xs2 ) @ N )
        = ( F @ ( nth_Pr227365692153740281ropVar @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_698_nth__map,axiom,
    ! [N: nat,Xs2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > a] :
      ( ( ord_less_nat @ N @ ( size_s6752116297430514276ropVar @ Xs2 ) )
     => ( ( nth_a @ ( map_Pr1064736048566318672pVar_a @ F @ Xs2 ) @ N )
        = ( F @ ( nth_Pr227365692153740281ropVar @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_699_nth__map,axiom,
    ! [N: nat,Xs2: list_P8791008543742759928ropVar,F: produc2642885279816024434ropVar > multis3193088007478089820ropVar] :
      ( ( ord_less_nat @ N @ ( size_s6752116297430514276ropVar @ Xs2 ) )
     => ( ( nth_Mu4537670848183934179ropVar @ ( map_Pr3335389669906741166ropVar @ F @ Xs2 ) @ N )
        = ( F @ ( nth_Pr227365692153740281ropVar @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_700_nth__map,axiom,
    ! [N: nat,Xs2: list_nat,F: nat > produc2642885279816024434ropVar] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs2 ) )
     => ( ( nth_Pr227365692153740281ropVar @ ( map_na2145702811007361372ropVar @ F @ Xs2 ) @ N )
        = ( F @ ( nth_nat @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_701_nth__map,axiom,
    ! [N: nat,Xs2: list_a,F: a > produc2642885279816024434ropVar] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs2 ) )
     => ( ( nth_Pr227365692153740281ropVar @ ( map_a_1400613014311812664ropVar @ F @ Xs2 ) @ N )
        = ( F @ ( nth_a @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_702_nth__append__length,axiom,
    ! [Xs2: list_f,X2: f,Ys: list_f] :
      ( ( nth_f @ ( append_f @ Xs2 @ ( cons_f @ X2 @ Ys ) ) @ ( size_size_list_f @ Xs2 ) )
      = X2 ) ).

% nth_append_length
thf(fact_703_nth__append__length,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,X2: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( nth_Pr227365692153740281ropVar @ ( append4352292717583037453ropVar @ Xs2 @ ( cons_P1504208554336013608ropVar @ X2 @ Ys ) ) @ ( size_s6752116297430514276ropVar @ Xs2 ) )
      = X2 ) ).

% nth_append_length
thf(fact_704_nth__append__length,axiom,
    ! [Xs2: list_nat,X2: nat,Ys: list_nat] :
      ( ( nth_nat @ ( append_nat @ Xs2 @ ( cons_nat @ X2 @ Ys ) ) @ ( size_size_list_nat @ Xs2 ) )
      = X2 ) ).

% nth_append_length
thf(fact_705_nth__append__length,axiom,
    ! [Xs2: list_a,X2: a,Ys: list_a] :
      ( ( nth_a @ ( append_a @ Xs2 @ ( cons_a @ X2 @ Ys ) ) @ ( size_size_list_a @ Xs2 ) )
      = X2 ) ).

% nth_append_length
thf(fact_706_encode__sum__0__1__main_Osimps_I1_J,axiom,
    ! [X2: multis3193088007478089820ropVar,Zero: multis3193088007478089820ropVar,One3: multis3193088007478089820ropVar] :
      ( ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X2 @ ( produc6936306168532358295ropVar @ Zero @ One3 ) ) @ nil_Pr6119456312066593144ropVar ) )
      = ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_different @ Zero @ X2 ) @ nil_f ) @ ( produc6936306168532358295ropVar @ Zero @ X2 ) ) ) ).

% encode_sum_0_1_main.simps(1)
thf(fact_707_nth__eq__iff__index__eq,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,I3: nat,J2: nat] :
      ( ( distin2675581014522817237ropVar @ Xs2 )
     => ( ( ord_less_nat @ I3 @ ( size_s1943289338788136526ropVar @ Xs2 ) )
       => ( ( ord_less_nat @ J2 @ ( size_s1943289338788136526ropVar @ Xs2 ) )
         => ( ( ( nth_Mu4537670848183934179ropVar @ Xs2 @ I3 )
              = ( nth_Mu4537670848183934179ropVar @ Xs2 @ J2 ) )
            = ( I3 = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_708_nth__eq__iff__index__eq,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,I3: nat,J2: nat] :
      ( ( distin2267423591311547883ropVar @ Xs2 )
     => ( ( ord_less_nat @ I3 @ ( size_s6752116297430514276ropVar @ Xs2 ) )
       => ( ( ord_less_nat @ J2 @ ( size_s6752116297430514276ropVar @ Xs2 ) )
         => ( ( ( nth_Pr227365692153740281ropVar @ Xs2 @ I3 )
              = ( nth_Pr227365692153740281ropVar @ Xs2 @ J2 ) )
            = ( I3 = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_709_nth__eq__iff__index__eq,axiom,
    ! [Xs2: list_nat,I3: nat,J2: nat] :
      ( ( distinct_nat @ Xs2 )
     => ( ( ord_less_nat @ I3 @ ( size_size_list_nat @ Xs2 ) )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs2 ) )
         => ( ( ( nth_nat @ Xs2 @ I3 )
              = ( nth_nat @ Xs2 @ J2 ) )
            = ( I3 = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_710_nth__eq__iff__index__eq,axiom,
    ! [Xs2: list_a,I3: nat,J2: nat] :
      ( ( distinct_a @ Xs2 )
     => ( ( ord_less_nat @ I3 @ ( size_size_list_a @ Xs2 ) )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs2 ) )
         => ( ( ( nth_a @ Xs2 @ I3 )
              = ( nth_a @ Xs2 @ J2 ) )
            = ( I3 = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_711_distinct__conv__nth,axiom,
    ( distin2675581014522817237ropVar
    = ( ^ [Xs: list_M6740372356978808802ropVar] :
        ! [I: nat] :
          ( ( ord_less_nat @ I @ ( size_s1943289338788136526ropVar @ Xs ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_s1943289338788136526ropVar @ Xs ) )
             => ( ( I != J )
               => ( ( nth_Mu4537670848183934179ropVar @ Xs @ I )
                 != ( nth_Mu4537670848183934179ropVar @ Xs @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_712_distinct__conv__nth,axiom,
    ( distin2267423591311547883ropVar
    = ( ^ [Xs: list_P8791008543742759928ropVar] :
        ! [I: nat] :
          ( ( ord_less_nat @ I @ ( size_s6752116297430514276ropVar @ Xs ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_s6752116297430514276ropVar @ Xs ) )
             => ( ( I != J )
               => ( ( nth_Pr227365692153740281ropVar @ Xs @ I )
                 != ( nth_Pr227365692153740281ropVar @ Xs @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_713_distinct__conv__nth,axiom,
    ( distinct_nat
    = ( ^ [Xs: list_nat] :
        ! [I: nat] :
          ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
             => ( ( I != J )
               => ( ( nth_nat @ Xs @ I )
                 != ( nth_nat @ Xs @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_714_distinct__conv__nth,axiom,
    ( distinct_a
    = ( ^ [Xs: list_a] :
        ! [I: nat] :
          ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs ) )
             => ( ( I != J )
               => ( ( nth_a @ Xs @ I )
                 != ( nth_a @ Xs @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_715_nth__via__drop,axiom,
    ! [N: nat,Xs2: list_a,Y: a,Ys: list_a] :
      ( ( ( drop_a @ N @ Xs2 )
        = ( cons_a @ Y @ Ys ) )
     => ( ( nth_a @ Xs2 @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_716_nth__via__drop,axiom,
    ! [N: nat,Xs2: list_M6740372356978808802ropVar,Y: multis3193088007478089820ropVar,Ys: list_M6740372356978808802ropVar] :
      ( ( ( drop_M2293212096379261346ropVar @ N @ Xs2 )
        = ( cons_M4277272395645347858ropVar @ Y @ Ys ) )
     => ( ( nth_Mu4537670848183934179ropVar @ Xs2 @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_717_nth__via__drop,axiom,
    ! [N: nat,Xs2: list_f,Y: f,Ys: list_f] :
      ( ( ( drop_f @ N @ Xs2 )
        = ( cons_f @ Y @ Ys ) )
     => ( ( nth_f @ Xs2 @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_718_nth__via__drop,axiom,
    ! [N: nat,Xs2: list_P8791008543742759928ropVar,Y: produc2642885279816024434ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( drop_P4829783966340880056ropVar @ N @ Xs2 )
        = ( cons_P1504208554336013608ropVar @ Y @ Ys ) )
     => ( ( nth_Pr227365692153740281ropVar @ Xs2 @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_719_nth__via__drop,axiom,
    ! [N: nat,Xs2: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( drop_nat @ N @ Xs2 )
        = ( cons_nat @ Y @ Ys ) )
     => ( ( nth_nat @ Xs2 @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_720_nth__equalityI,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( size_s6752116297430514276ropVar @ Xs2 )
        = ( size_s6752116297430514276ropVar @ Ys ) )
     => ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_s6752116297430514276ropVar @ Xs2 ) )
           => ( ( nth_Pr227365692153740281ropVar @ Xs2 @ I2 )
              = ( nth_Pr227365692153740281ropVar @ Ys @ I2 ) ) )
       => ( Xs2 = Ys ) ) ) ).

% nth_equalityI
thf(fact_721_nth__equalityI,axiom,
    ! [Xs2: list_nat,Ys: list_nat] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs2 ) )
           => ( ( nth_nat @ Xs2 @ I2 )
              = ( nth_nat @ Ys @ I2 ) ) )
       => ( Xs2 = Ys ) ) ) ).

% nth_equalityI
thf(fact_722_nth__equalityI,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( ( size_size_list_a @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs2 ) )
           => ( ( nth_a @ Xs2 @ I2 )
              = ( nth_a @ Ys @ I2 ) ) )
       => ( Xs2 = Ys ) ) ) ).

% nth_equalityI
thf(fact_723_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > produc2642885279816024434ropVar > $o] :
      ( ( ! [I: nat] :
            ( ( ord_less_nat @ I @ K )
           => ? [X5: produc2642885279816024434ropVar] : ( P @ I @ X5 ) ) )
      = ( ? [Xs: list_P8791008543742759928ropVar] :
            ( ( ( size_s6752116297430514276ropVar @ Xs )
              = K )
            & ! [I: nat] :
                ( ( ord_less_nat @ I @ K )
               => ( P @ I @ ( nth_Pr227365692153740281ropVar @ Xs @ I ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_724_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > nat > $o] :
      ( ( ! [I: nat] :
            ( ( ord_less_nat @ I @ K )
           => ? [X5: nat] : ( P @ I @ X5 ) ) )
      = ( ? [Xs: list_nat] :
            ( ( ( size_size_list_nat @ Xs )
              = K )
            & ! [I: nat] :
                ( ( ord_less_nat @ I @ K )
               => ( P @ I @ ( nth_nat @ Xs @ I ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_725_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > a > $o] :
      ( ( ! [I: nat] :
            ( ( ord_less_nat @ I @ K )
           => ? [X5: a] : ( P @ I @ X5 ) ) )
      = ( ? [Xs: list_a] :
            ( ( ( size_size_list_a @ Xs )
              = K )
            & ! [I: nat] :
                ( ( ord_less_nat @ I @ K )
               => ( P @ I @ ( nth_a @ Xs @ I ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_726_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y6: list_P8791008543742759928ropVar,Z5: list_P8791008543742759928ropVar] : ( Y6 = Z5 ) )
    = ( ^ [Xs: list_P8791008543742759928ropVar,Ys4: list_P8791008543742759928ropVar] :
          ( ( ( size_s6752116297430514276ropVar @ Xs )
            = ( size_s6752116297430514276ropVar @ Ys4 ) )
          & ! [I: nat] :
              ( ( ord_less_nat @ I @ ( size_s6752116297430514276ropVar @ Xs ) )
             => ( ( nth_Pr227365692153740281ropVar @ Xs @ I )
                = ( nth_Pr227365692153740281ropVar @ Ys4 @ I ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_727_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y6: list_nat,Z5: list_nat] : ( Y6 = Z5 ) )
    = ( ^ [Xs: list_nat,Ys4: list_nat] :
          ( ( ( size_size_list_nat @ Xs )
            = ( size_size_list_nat @ Ys4 ) )
          & ! [I: nat] :
              ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
             => ( ( nth_nat @ Xs @ I )
                = ( nth_nat @ Ys4 @ I ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_728_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y6: list_a,Z5: list_a] : ( Y6 = Z5 ) )
    = ( ^ [Xs: list_a,Ys4: list_a] :
          ( ( ( size_size_list_a @ Xs )
            = ( size_size_list_a @ Ys4 ) )
          & ! [I: nat] :
              ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
             => ( ( nth_a @ Xs @ I )
                = ( nth_a @ Ys4 @ I ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_729_distinct__singleton,axiom,
    ! [X2: multis3193088007478089820ropVar] : ( distin2675581014522817237ropVar @ ( cons_M4277272395645347858ropVar @ X2 @ nil_Mu4132399263956683874ropVar ) ) ).

% distinct_singleton
thf(fact_730_distinct__singleton,axiom,
    ! [X2: a] : ( distinct_a @ ( cons_a @ X2 @ nil_a ) ) ).

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

% distinct_singleton
thf(fact_732_distinct__singleton,axiom,
    ! [X2: produc2642885279816024434ropVar] : ( distin2267423591311547883ropVar @ ( cons_P1504208554336013608ropVar @ X2 @ nil_Pr6119456312066593144ropVar ) ) ).

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

% distinct_singleton
thf(fact_734_encoder_Oencode__sum__0__1__main_Ocong,axiom,
    multis7428212316306422970pVar_f = multis7428212316306422970pVar_f ).

% encoder.encode_sum_0_1_main.cong
thf(fact_735_list_Osimps_I4_J,axiom,
    ! [F1: produc7257588745650887789list_f,F2: produc2642885279816024434ropVar > list_P8791008543742759928ropVar > produc7257588745650887789list_f] :
      ( ( case_l5231247004599698859ropVar @ F1 @ F2 @ nil_Pr6119456312066593144ropVar )
      = F1 ) ).

% list.simps(4)
thf(fact_736_distinct_Osimps_I1_J,axiom,
    distin2675581014522817237ropVar @ nil_Mu4132399263956683874ropVar ).

% distinct.simps(1)
thf(fact_737_distinct_Osimps_I1_J,axiom,
    distin2267423591311547883ropVar @ nil_Pr6119456312066593144ropVar ).

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

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

% distinct.simps(1)
thf(fact_740_distinct_Osimps_I1_J,axiom,
    distinct_a @ nil_a ).

% distinct.simps(1)
thf(fact_741_drop__Nil,axiom,
    ! [N: nat] :
      ( ( drop_M2293212096379261346ropVar @ N @ nil_Mu4132399263956683874ropVar )
      = nil_Mu4132399263956683874ropVar ) ).

% drop_Nil
thf(fact_742_drop__Nil,axiom,
    ! [N: nat] :
      ( ( drop_P4829783966340880056ropVar @ N @ nil_Pr6119456312066593144ropVar )
      = nil_Pr6119456312066593144ropVar ) ).

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

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

% drop_Nil
thf(fact_745_drop__Nil,axiom,
    ! [N: nat] :
      ( ( drop_a @ N @ nil_a )
      = nil_a ) ).

% drop_Nil
thf(fact_746_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_747_distinct__drop,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,I3: nat] :
      ( ( distin2267423591311547883ropVar @ Xs2 )
     => ( distin2267423591311547883ropVar @ ( drop_P4829783966340880056ropVar @ I3 @ Xs2 ) ) ) ).

% distinct_drop
thf(fact_748_distinct__drop,axiom,
    ! [Xs2: list_M6740372356978808802ropVar,I3: nat] :
      ( ( distin2675581014522817237ropVar @ Xs2 )
     => ( distin2675581014522817237ropVar @ ( drop_M2293212096379261346ropVar @ I3 @ Xs2 ) ) ) ).

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

% distinct_drop
thf(fact_750_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs4: list_P8791008543742759928ropVar] :
      ( ( size_s6752116297430514276ropVar @ Xs4 )
      = N ) ).

% Ex_list_of_length
thf(fact_751_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs4: list_nat] :
      ( ( size_size_list_nat @ Xs4 )
      = N ) ).

% Ex_list_of_length
thf(fact_752_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs4: list_a] :
      ( ( size_size_list_a @ Xs4 )
      = N ) ).

% Ex_list_of_length
thf(fact_753_neq__if__length__neq,axiom,
    ! [Xs2: list_P8791008543742759928ropVar,Ys: list_P8791008543742759928ropVar] :
      ( ( ( size_s6752116297430514276ropVar @ Xs2 )
       != ( size_s6752116297430514276ropVar @ Ys ) )
     => ( Xs2 != Ys ) ) ).

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

% neq_if_length_neq
thf(fact_755_neq__if__length__neq,axiom,
    ! [Xs2: list_a,Ys: list_a] :
      ( ( ( size_size_list_a @ Xs2 )
       != ( size_size_list_a @ Ys ) )
     => ( Xs2 != Ys ) ) ).

% neq_if_length_neq
thf(fact_756_list_Osize_I3_J,axiom,
    ( ( size_size_list_f @ nil_f )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_757_list_Osize_I3_J,axiom,
    ( ( size_s6752116297430514276ropVar @ nil_Pr6119456312066593144ropVar )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_758_list_Osize_I3_J,axiom,
    ( ( size_size_list_nat @ nil_nat )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_759_list_Osize_I3_J,axiom,
    ( ( size_size_list_a @ nil_a )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_760_list__induct2,axiom,
    ! [Xs2: list_f,Ys: list_f,P: list_f > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( P @ nil_f @ nil_f )
       => ( ! [X4: f,Xs4: list_f,Y5: f,Ys2: list_f] :
              ( ( ( size_size_list_f @ Xs4 )
                = ( size_size_list_f @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_761_list__induct2,axiom,
    ! [Xs2: list_f,Ys: list_nat,P: list_f > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_f @ nil_nat )
       => ( ! [X4: f,Xs4: list_f,Y5: nat,Ys2: list_nat] :
              ( ( ( size_size_list_f @ Xs4 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_762_list__induct2,axiom,
    ! [Xs2: list_f,Ys: list_a,P: list_f > list_a > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( P @ nil_f @ nil_a )
       => ( ! [X4: f,Xs4: list_f,Y5: a,Ys2: list_a] :
              ( ( ( size_size_list_f @ Xs4 )
                = ( size_size_list_a @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_763_list__induct2,axiom,
    ! [Xs2: list_nat,Ys: list_f,P: list_nat > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( P @ nil_nat @ nil_f )
       => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f] :
              ( ( ( size_size_list_nat @ Xs4 )
                = ( size_size_list_f @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_764_list__induct2,axiom,
    ! [Xs2: list_nat,Ys: list_nat,P: list_nat > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_nat @ nil_nat )
       => ( ! [X4: nat,Xs4: list_nat,Y5: nat,Ys2: list_nat] :
              ( ( ( size_size_list_nat @ Xs4 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_765_list__induct2,axiom,
    ! [Xs2: list_nat,Ys: list_a,P: list_nat > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( P @ nil_nat @ nil_a )
       => ( ! [X4: nat,Xs4: list_nat,Y5: a,Ys2: list_a] :
              ( ( ( size_size_list_nat @ Xs4 )
                = ( size_size_list_a @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_766_list__induct2,axiom,
    ! [Xs2: list_a,Ys: list_f,P: list_a > list_f > $o] :
      ( ( ( size_size_list_a @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( P @ nil_a @ nil_f )
       => ( ! [X4: a,Xs4: list_a,Y5: f,Ys2: list_f] :
              ( ( ( size_size_list_a @ Xs4 )
                = ( size_size_list_f @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_a @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_767_list__induct2,axiom,
    ! [Xs2: list_a,Ys: list_nat,P: list_a > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_a @ nil_nat )
       => ( ! [X4: a,Xs4: list_a,Y5: nat,Ys2: list_nat] :
              ( ( ( size_size_list_a @ Xs4 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_a @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_768_list__induct2,axiom,
    ! [Xs2: list_a,Ys: list_a,P: list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( P @ nil_a @ nil_a )
       => ( ! [X4: a,Xs4: list_a,Y5: a,Ys2: list_a] :
              ( ( ( size_size_list_a @ Xs4 )
                = ( size_size_list_a @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_a @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_769_list__induct2,axiom,
    ! [Xs2: list_f,Ys: list_P8791008543742759928ropVar,P: list_f > list_P8791008543742759928ropVar > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_s6752116297430514276ropVar @ Ys ) )
     => ( ( P @ nil_f @ nil_Pr6119456312066593144ropVar )
       => ( ! [X4: f,Xs4: list_f,Y5: produc2642885279816024434ropVar,Ys2: list_P8791008543742759928ropVar] :
              ( ( ( size_size_list_f @ Xs4 )
                = ( size_s6752116297430514276ropVar @ Ys2 ) )
             => ( ( P @ Xs4 @ Ys2 )
               => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_P1504208554336013608ropVar @ Y5 @ Ys2 ) ) ) )
         => ( P @ Xs2 @ Ys ) ) ) ) ).

% list_induct2
thf(fact_770_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_f,P: list_f > list_f > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( P @ nil_f @ nil_f @ nil_f )
         => ( ! [X4: f,Xs4: list_f,Y5: f,Ys2: list_f,Z4: f,Zs2: list_f] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_f @ Ys2 ) )
               => ( ( ( size_size_list_f @ Ys2 )
                    = ( size_size_list_f @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_771_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_nat,P: list_f > list_f > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( P @ nil_f @ nil_f @ nil_nat )
         => ( ! [X4: f,Xs4: list_f,Y5: f,Ys2: list_f,Z4: nat,Zs2: list_nat] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_f @ Ys2 ) )
               => ( ( ( size_size_list_f @ Ys2 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_772_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_f,Zs3: list_a,P: list_f > list_f > list_a > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( P @ nil_f @ nil_f @ nil_a )
         => ( ! [X4: f,Xs4: list_f,Y5: f,Ys2: list_f,Z4: a,Zs2: list_a] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_f @ Ys2 ) )
               => ( ( ( size_size_list_f @ Ys2 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_773_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_nat,Zs3: list_f,P: list_f > list_nat > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( P @ nil_f @ nil_nat @ nil_f )
         => ( ! [X4: f,Xs4: list_f,Y5: nat,Ys2: list_nat,Z4: f,Zs2: list_f] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_nat @ Ys2 ) )
               => ( ( ( size_size_list_nat @ Ys2 )
                    = ( size_size_list_f @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_774_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_nat,Zs3: list_nat,P: list_f > list_nat > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( P @ nil_f @ nil_nat @ nil_nat )
         => ( ! [X4: f,Xs4: list_f,Y5: nat,Ys2: list_nat,Z4: nat,Zs2: list_nat] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_nat @ Ys2 ) )
               => ( ( ( size_size_list_nat @ Ys2 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_775_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_nat,Zs3: list_a,P: list_f > list_nat > list_a > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( P @ nil_f @ nil_nat @ nil_a )
         => ( ! [X4: f,Xs4: list_f,Y5: nat,Ys2: list_nat,Z4: a,Zs2: list_a] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_nat @ Ys2 ) )
               => ( ( ( size_size_list_nat @ Ys2 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_776_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_a,Zs3: list_f,P: list_f > list_a > list_f > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( P @ nil_f @ nil_a @ nil_f )
         => ( ! [X4: f,Xs4: list_f,Y5: a,Ys2: list_a,Z4: f,Zs2: list_f] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_a @ Ys2 ) )
               => ( ( ( size_size_list_a @ Ys2 )
                    = ( size_size_list_f @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_777_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_a,Zs3: list_nat,P: list_f > list_a > list_nat > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( P @ nil_f @ nil_a @ nil_nat )
         => ( ! [X4: f,Xs4: list_f,Y5: a,Ys2: list_a,Z4: nat,Zs2: list_nat] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_a @ Ys2 ) )
               => ( ( ( size_size_list_a @ Ys2 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_778_list__induct3,axiom,
    ! [Xs2: list_f,Ys: list_a,Zs3: list_a,P: list_f > list_a > list_a > $o] :
      ( ( ( size_size_list_f @ Xs2 )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( P @ nil_f @ nil_a @ nil_a )
         => ( ! [X4: f,Xs4: list_f,Y5: a,Ys2: list_a,Z4: a,Zs2: list_a] :
                ( ( ( size_size_list_f @ Xs4 )
                  = ( size_size_list_a @ Ys2 ) )
               => ( ( ( size_size_list_a @ Ys2 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_f @ X4 @ Xs4 ) @ ( cons_a @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_779_list__induct3,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_f,P: list_nat > list_f > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( P @ nil_nat @ nil_f @ nil_f )
         => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: f,Zs2: list_f] :
                ( ( ( size_size_list_nat @ Xs4 )
                  = ( size_size_list_f @ Ys2 ) )
               => ( ( ( size_size_list_f @ Ys2 )
                    = ( size_size_list_f @ Zs2 ) )
                 => ( ( P @ Xs4 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) ) ) ) )
           => ( P @ Xs2 @ Ys @ Zs3 ) ) ) ) ) ).

% list_induct3
thf(fact_780_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_nat,Ws: list_f,P: list_nat > list_f > list_nat > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_nat @ nil_f )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: nat,Zs2: list_nat,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_781_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_nat,Ws: list_nat,P: list_nat > list_f > list_nat > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_nat @ nil_nat )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: nat,Zs2: list_nat,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_782_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_nat,Ws: list_a,P: list_nat > list_f > list_nat > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_nat @ nil_a )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: nat,Zs2: list_nat,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_783_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_a,Ws: list_f,P: list_nat > list_f > list_a > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( ( size_size_list_a @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_a @ nil_f )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: a,Zs2: list_a,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_784_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_a,Ws: list_nat,P: list_nat > list_f > list_a > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( ( size_size_list_a @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_a @ nil_nat )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: a,Zs2: list_a,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_785_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_f,Zs3: list_a,Ws: list_a,P: list_nat > list_f > list_a > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_f @ Ys ) )
     => ( ( ( size_size_list_f @ Ys )
          = ( size_size_list_a @ Zs3 ) )
       => ( ( ( size_size_list_a @ Zs3 )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_nat @ nil_f @ nil_a @ nil_a )
           => ( ! [X4: nat,Xs4: list_nat,Y5: f,Ys2: list_f,Z4: a,Zs2: list_a,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_f @ Ys2 ) )
                 => ( ( ( size_size_list_f @ Ys2 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_f @ Y5 @ Ys2 ) @ ( cons_a @ Z4 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_786_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_f,Ws: list_f,P: list_nat > list_nat > list_f > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P @ nil_nat @ nil_nat @ nil_f @ nil_f )
           => ( ! [X4: nat,Xs4: list_nat,Y5: nat,Ys2: list_nat,Z4: f,Zs2: list_f,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_nat @ Ys2 ) )
                 => ( ( ( size_size_list_nat @ Ys2 )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_787_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_f,Ws: list_nat,P: list_nat > list_nat > list_f > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_nat @ nil_nat @ nil_f @ nil_nat )
           => ( ! [X4: nat,Xs4: list_nat,Y5: nat,Ys2: list_nat,Z4: f,Zs2: list_f,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_nat @ Ys2 ) )
                 => ( ( ( size_size_list_nat @ Ys2 )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_788_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_f,Ws: list_a,P: list_nat > list_nat > list_f > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_f @ Zs3 ) )
       => ( ( ( size_size_list_f @ Zs3 )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_nat @ nil_nat @ nil_f @ nil_a )
           => ( ! [X4: nat,Xs4: list_nat,Y5: nat,Ys2: list_nat,Z4: f,Zs2: list_f,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_nat @ Ys2 ) )
                 => ( ( ( size_size_list_nat @ Ys2 )
                      = ( size_size_list_f @ Zs2 ) )
                   => ( ( ( size_size_list_f @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_f @ Z4 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_789_list__induct4,axiom,
    ! [Xs2: list_nat,Ys: list_nat,Zs3: list_nat,Ws: list_f,P: list_nat > list_nat > list_nat > list_f > $o] :
      ( ( ( size_size_list_nat @ Xs2 )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs3 ) )
       => ( ( ( size_size_list_nat @ Zs3 )
            = ( size_size_list_f @ Ws ) )
         => ( ( P @ nil_nat @ nil_nat @ nil_nat @ nil_f )
           => ( ! [X4: nat,Xs4: list_nat,Y5: nat,Ys2: list_nat,Z4: nat,Zs2: list_nat,W: f,Ws2: list_f] :
                  ( ( ( size_size_list_nat @ Xs4 )
                    = ( size_size_list_nat @ Ys2 ) )
                 => ( ( ( size_size_list_nat @ Ys2 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_f @ Ws2 ) )
                     => ( ( P @ Xs4 @ Ys2 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs4 ) @ ( cons_nat @ Y5 @ Ys2 ) @ ( cons_nat @ Z4 @ Zs2 ) @ ( cons_f @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs2 @ Ys @ Zs3 @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_790_encode__sum__0__1__main,axiom,
    ! [Vars: list_P8791008543742759928ropVar,Conds2: list_f,Zero: multis3193088007478089820ropVar,One3: multis3193088007478089820ropVar,Prop: $o,Alpha: multis3193088007478089820ropVar > $o] :
      ( ( ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ Vars )
        = ( produc5732303558254465141ropVar @ Conds2 @ ( produc6936306168532358295ropVar @ Zero @ One3 ) ) )
     => ( ( Prop
         => ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s6752116297430514276ropVar @ Vars ) )
             => ! [X4: multis3193088007478089820ropVar,Ze: multis3193088007478089820ropVar,On: multis3193088007478089820ropVar,Re: list_P8791008543742759928ropVar] :
                  ( ( ( drop_P4829783966340880056ropVar @ I2 @ Vars )
                    = ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Ze @ On ) ) @ Re ) )
                 => ( ( ( Alpha @ Ze )
                      = ( ~ ? [Y3: multis3193088007478089820ropVar] :
                              ( ( member8421201611525043589ropVar @ Y3 @ ( insert1868789817947358764ropVar @ X4 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Re ) ) ) )
                              & ( Alpha @ Y3 ) ) ) )
                    & ( ( Alpha @ On )
                      = ( ? [Y3: multis3193088007478089820ropVar] :
                            ( ( member8421201611525043589ropVar @ Y3 @ ( insert1868789817947358764ropVar @ X4 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Re ) ) ) )
                            & ( Alpha @ Y3 )
                            & ! [Z3: multis3193088007478089820ropVar] :
                                ( ( ( member8421201611525043589ropVar @ Z3 @ ( insert1868789817947358764ropVar @ X4 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Re ) ) ) )
                                  & ( Alpha @ Z3 ) )
                               => ( Z3 = Y3 ) ) ) ) ) ) ) ) )
       => ( ( ~ Prop
           => ! [X4: f] :
                ( ( member_f @ X4 @ ( set_f2 @ Conds2 ) )
               => ( eval @ Alpha @ X4 ) ) )
         => ( ( distin2675581014522817237ropVar @ ( map_Pr3335389669906741166ropVar @ produc6918815732823278798ropVar @ Vars ) )
           => ( ( Vars != nil_Pr6119456312066593144ropVar )
             => ( ! [X: f] :
                    ( ( member_f @ X @ ( set_f2 @ Conds2 ) )
                   => ( eval @ Alpha @ X ) )
                & ( ( Alpha @ Zero )
                  = ( ~ ? [X3: multis3193088007478089820ropVar] :
                          ( ( member8421201611525043589ropVar @ X3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                          & ( Alpha @ X3 ) ) ) )
                & ( ( Alpha @ One3 )
                  = ( ? [X3: multis3193088007478089820ropVar] :
                        ( ( member8421201611525043589ropVar @ X3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                        & ( Alpha @ X3 )
                        & ! [Y3: multis3193088007478089820ropVar] :
                            ( ( ( member8421201611525043589ropVar @ Y3 @ ( image_4513341045867859311ropVar @ produc6918815732823278798ropVar @ ( set_Pr3946994337432900359ropVar @ Vars ) ) )
                              & ( Alpha @ Y3 ) )
                           => ( Y3 = X3 ) ) ) ) ) ) ) ) ) ) ) ).

% encode_sum_0_1_main
thf(fact_791_encode__sum__0__1__main_Oelims,axiom,
    ! [X2: list_P8791008543742759928ropVar,Y: produc7903949528580895877ropVar] :
      ( ( ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ X2 )
        = Y )
     => ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar] :
            ( ? [One2: multis3193088007478089820ropVar] :
                ( X2
                = ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ nil_Pr6119456312066593144ropVar ) )
           => ( Y
             != ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_different @ Zero2 @ X4 ) @ nil_f ) @ ( produc6936306168532358295ropVar @ Zero2 @ X4 ) ) ) )
       => ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar,One2: multis3193088007478089820ropVar,V2: produc2642885279816024434ropVar,Va2: list_P8791008543742759928ropVar] :
              ( ( X2
                = ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) )
             => ( Y
               != ( produc5770109036932753787ropVar
                  @ ^ [Conds: list_f] :
                      ( produc5689224170127644889ropVar
                      @ ^ [Fzero: multis3193088007478089820ropVar,Fone: multis3193088007478089820ropVar] : ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_equiv_and_not @ Zero2 @ Fzero @ X4 ) @ ( cons_f @ ( enc_equiv_ite @ One2 @ X4 @ Fzero @ Fone ) @ Conds ) ) @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) )
                  @ ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) ) ) )
         => ~ ( ( X2 = nil_Pr6119456312066593144ropVar )
             => ( Y != undefi316149074942268141ropVar ) ) ) ) ) ).

% encode_sum_0_1_main.elims
thf(fact_792_encode__sum__0__1__main_Opelims,axiom,
    ! [X2: list_P8791008543742759928ropVar,Y: produc7903949528580895877ropVar] :
      ( ( ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ X2 )
        = Y )
     => ( ( accp_l8790861725341200257ropVar @ multis162751971668797333ropVar @ X2 )
       => ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar,One2: multis3193088007478089820ropVar] :
              ( ( X2
                = ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ nil_Pr6119456312066593144ropVar ) )
             => ( ( Y
                  = ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_different @ Zero2 @ X4 ) @ nil_f ) @ ( produc6936306168532358295ropVar @ Zero2 @ X4 ) ) )
               => ~ ( accp_l8790861725341200257ropVar @ multis162751971668797333ropVar @ ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ nil_Pr6119456312066593144ropVar ) ) ) )
         => ( ! [X4: multis3193088007478089820ropVar,Zero2: multis3193088007478089820ropVar,One2: multis3193088007478089820ropVar,V2: produc2642885279816024434ropVar,Va2: list_P8791008543742759928ropVar] :
                ( ( X2
                  = ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) )
               => ( ( Y
                    = ( produc5770109036932753787ropVar
                      @ ^ [Conds: list_f] :
                          ( produc5689224170127644889ropVar
                          @ ^ [Fzero: multis3193088007478089820ropVar,Fone: multis3193088007478089820ropVar] : ( produc5732303558254465141ropVar @ ( cons_f @ ( enc_equiv_and_not @ Zero2 @ Fzero @ X4 ) @ ( cons_f @ ( enc_equiv_ite @ One2 @ X4 @ Fzero @ Fone ) @ Conds ) ) @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) )
                      @ ( multis7428212316306422970pVar_f @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) ) )
                 => ~ ( accp_l8790861725341200257ropVar @ multis162751971668797333ropVar @ ( cons_P1504208554336013608ropVar @ ( produc6194868611276206818ropVar @ X4 @ ( produc6936306168532358295ropVar @ Zero2 @ One2 ) ) @ ( cons_P1504208554336013608ropVar @ V2 @ Va2 ) ) ) ) )
           => ~ ( ( X2 = nil_Pr6119456312066593144ropVar )
               => ( ( Y = undefi316149074942268141ropVar )
                 => ~ ( accp_l8790861725341200257ropVar @ multis162751971668797333ropVar @ nil_Pr6119456312066593144ropVar ) ) ) ) ) ) ) ).

% encode_sum_0_1_main.pelims
thf(fact_793_pos_I3_J,axiom,
    ! [Xs2: list_nat,X2: nat] :
      ( ( distinct_nat @ Xs2 )
     => ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
       => ? [X4: nat] :
            ( ( ord_less_nat @ X4 @ ( size_size_list_nat @ Xs2 ) )
            & ( ( nth_nat @ Xs2 @ X4 )
              = X2 )
            & ! [Y4: nat] :
                ( ( ( ord_less_nat @ Y4 @ ( size_size_list_nat @ Xs2 ) )
                  & ( ( nth_nat @ Xs2 @ Y4 )
                    = X2 ) )
               => ( Y4 = X4 ) ) ) ) ) ).

% pos(3)
thf(fact_794_distinct__upt,axiom,
    ! [I3: nat,J2: nat] : ( distinct_nat @ ( upt @ I3 @ J2 ) ) ).

% distinct_upt
thf(fact_795_upt__0,axiom,
    ! [I3: nat] :
      ( ( upt @ I3 @ zero_zero_nat )
      = nil_nat ) ).

% upt_0
thf(fact_796_PropVar_Osize_I7_J,axiom,
    ! [X11: nat,X12: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis387687052011358179_Gamma @ X11 @ X12 ) )
      = zero_zero_nat ) ).

% PropVar.size(7)
thf(fact_797_PropVar_Osize_I8_J,axiom,
    ! [X22: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis2544335231667181926psilon @ X22 ) )
      = zero_zero_nat ) ).

% PropVar.size(8)
thf(fact_798_PropVar_Osize_I12_J,axiom,
    ! [X61: nat,X62: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis6646701651571498855xOneIJ @ X61 @ X62 ) )
      = zero_zero_nat ) ).

% PropVar.size(12)
thf(fact_799_PropVar_Osize_I11_J,axiom,
    ! [X51: nat,X52: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis2983220944385456105ZeroIJ @ X51 @ X52 ) )
      = zero_zero_nat ) ).

% PropVar.size(11)
thf(fact_800_PropVar_Osize_I10_J,axiom,
    ! [X41: nat,X42: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis6646701651571564453xOneJI @ X41 @ X42 ) )
      = zero_zero_nat ) ).

% PropVar.size(10)
thf(fact_801_PropVar_Osize_I9_J,axiom,
    ! [X31: nat,X32: nat] :
      ( ( size_s6253272723116879048ropVar @ ( multis2983220944385521703ZeroJI @ X31 @ X32 ) )
      = zero_zero_nat ) ).

% PropVar.size(9)
thf(fact_802_encodeGammaCond_Ocases,axiom,
    ! [X2: produc3507939890032686909od_o_o] :
      ( ! [Gam: multis3193088007478089820ropVar,Eps: multis3193088007478089820ropVar] :
          ( X2
         != ( produc4931073445691921453od_o_o @ Gam @ ( produc9033520932313852770od_o_o @ Eps @ ( product_Pair_o_o @ $true @ $true ) ) ) )
     => ( ! [Gam: multis3193088007478089820ropVar,Eps: multis3193088007478089820ropVar] :
            ( X2
           != ( produc4931073445691921453od_o_o @ Gam @ ( produc9033520932313852770od_o_o @ Eps @ ( product_Pair_o_o @ $false @ $false ) ) ) )
       => ( ! [Gam: multis3193088007478089820ropVar,Eps: multis3193088007478089820ropVar] :
              ( X2
             != ( produc4931073445691921453od_o_o @ Gam @ ( produc9033520932313852770od_o_o @ Eps @ ( product_Pair_o_o @ $false @ $true ) ) ) )
         => ~ ! [Gam: multis3193088007478089820ropVar,Eps: multis3193088007478089820ropVar] :
                ( X2
               != ( produc4931073445691921453od_o_o @ Gam @ ( produc9033520932313852770od_o_o @ Eps @ ( product_Pair_o_o @ $true @ $false ) ) ) ) ) ) ) ).

% encodeGammaCond.cases
thf(fact_803_pos_I1_J,axiom,
    ! [Xs2: list_nat,X2: nat] :
      ( ( distinct_nat @ Xs2 )
     => ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
       => ( ord_less_nat @ ( pos_of @ Xs2 @ X2 ) @ ( size_size_list_nat @ Xs2 ) ) ) ) ).

% pos(1)
thf(fact_804_pos_I2_J,axiom,
    ! [Xs2: list_nat,X2: nat] :
      ( ( distinct_nat @ Xs2 )
     => ( ( member_nat @ X2 @ ( set_nat2 @ Xs2 ) )
       => ( ( nth_nat @ Xs2 @ ( pos_of @ Xs2 @ X2 ) )
          = X2 ) ) ) ).

% pos(2)
thf(fact_805_p__xs_I3_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ xs12 ) )
     => ? [X4: nat] :
          ( ( ord_less_nat @ X4 @ ( size_size_list_nat @ xs12 ) )
          & ( ( nth_nat @ xs12 @ X4 )
            = X2 )
          & ! [Y4: nat] :
              ( ( ( ord_less_nat @ Y4 @ ( size_size_list_nat @ xs12 ) )
                & ( ( nth_nat @ xs12 @ Y4 )
                  = X2 ) )
             => ( Y4 = X4 ) ) ) ) ).

% p_xs(3)
thf(fact_806_p__ys_I3_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ys12 ) )
     => ? [X4: nat] :
          ( ( ord_less_nat @ X4 @ ( size_size_list_nat @ ys12 ) )
          & ( ( nth_nat @ ys12 @ X4 )
            = X2 )
          & ! [Y4: nat] :
              ( ( ( ord_less_nat @ Y4 @ ( size_size_list_nat @ ys12 ) )
                & ( ( nth_nat @ ys12 @ Y4 )
                  = X2 ) )
             => ( Y4 = X4 ) ) ) ) ).

% p_ys(3)
thf(fact_807__092_060open_062distinct_Axs1_092_060close_062,axiom,
    distinct_nat @ xs12 ).

% \<open>distinct xs1\<close>
thf(fact_808__092_060open_062distinct_Ays1_092_060close_062,axiom,
    distinct_nat @ ys12 ).

% \<open>distinct ys1\<close>
thf(fact_809_p__xs_I2_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ xs12 ) )
     => ( ( nth_nat @ xs12 @ ( pos_of @ xs12 @ X2 ) )
        = X2 ) ) ).

% p_xs(2)
thf(fact_810_p__ys_I2_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ys12 ) )
     => ( ( nth_nat @ ys12 @ ( pos_of @ ys12 @ X2 ) )
        = X2 ) ) ).

% p_ys(2)
thf(fact_811_p__ys_I1_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ys12 ) )
     => ( ord_less_nat @ ( pos_of @ ys12 @ X2 ) @ ( size_size_list_nat @ ys12 ) ) ) ).

% p_ys(1)
thf(fact_812_p__xs_I1_J,axiom,
    ! [X2: nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ xs12 ) )
     => ( ord_less_nat @ ( pos_of @ xs12 @ X2 ) @ ( size_size_list_nat @ xs12 ) ) ) ).

% p_xs(1)
thf(fact_813_j__ys1_I1_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys12 ) )
     => ( member_nat @ ( nth_nat @ xs12 @ ( pos_of @ ys12 @ J2 ) ) @ ( set_nat2 @ xs12 ) ) ) ).

% j_ys1(1)
thf(fact_814_j__ys1_I3_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys12 ) )
     => ( v2 @ ( multis387687052011358179_Gamma @ ( nth_nat @ xs12 @ ( pos_of @ ys12 @ J2 ) ) @ J2 ) ) ) ).

% j_ys1(3)
thf(fact_815__092_060open_062pos__of_A_092_060equiv_062_A_092_060lambda_062xs_Ai_O_ATHE_Ap_O_Ap_A_060_Alength_Axs_A_092_060and_062_Axs_A_B_Ap_A_061_Ai_092_060close_062,axiom,
    ( pos_of
    = ( ^ [Xs: list_nat,I: nat] :
          ( the_nat
          @ ^ [P4: nat] :
              ( ( ord_less_nat @ P4 @ ( size_size_list_nat @ Xs ) )
              & ( ( nth_nat @ Xs @ P4 )
                = I ) ) ) ) ) ).

% \<open>pos_of \<equiv> \<lambda>xs i. THE p. p < length xs \<and> xs ! p = i\<close>
thf(fact_816_j__ys1_I2_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys12 ) )
     => ( cns @ ( nth_nat @ xs12 @ ( pos_of @ ys12 @ J2 ) ) @ J2 ) ) ).

% j_ys1(2)
thf(fact_817_pos__of__def,axiom,
    ! [Xs2: list_nat,I3: nat] :
      ( ( pos_of @ Xs2 @ I3 )
      = ( the_nat
        @ ^ [P4: nat] :
            ( ( ord_less_nat @ P4 @ ( size_size_list_nat @ Xs2 ) )
            & ( ( nth_nat @ Xs2 @ P4 )
              = I3 ) ) ) ) ).

% pos_of_def
thf(fact_818_dist__ys,axiom,
    distinct_nat @ ( append_nat @ ys12 @ ys22 ) ).

% dist_ys
thf(fact_819_dist__xs,axiom,
    distinct_nat @ ( append_nat @ xs12 @ xs22 ) ).

% dist_xs
thf(fact_820_j__ys2_I3_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys22 ) )
     => ( v2 @ ( multis387687052011358179_Gamma @ ( i_of_j2 @ J2 ) @ J2 ) ) ) ).

% j_ys2(3)
thf(fact_821_j__ys2_I1_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys22 ) )
     => ( member_nat @ ( i_of_j2 @ J2 ) @ ( set_nat2 @ xs22 ) ) ) ).

% j_ys2(1)
thf(fact_822_j__ys2_I2_J,axiom,
    ! [J2: nat] :
      ( ( member_nat @ J2 @ ( set_nat2 @ ys22 ) )
     => ( cs @ ( i_of_j2 @ J2 ) @ J2 ) ) ).

% j_ys2(2)
thf(fact_823__092_060open_062i__of__j2_A_092_060equiv_062_A_092_060lambda_062j_O_ASOME_Ai_O_Ai_A_092_060in_062_Aset_Axs2_A_092_060and_062_Acs_Ai_Aj_092_060close_062,axiom,
    ( i_of_j2
    = ( ^ [J: nat] :
          ( fChoice_nat
          @ ^ [I: nat] :
              ( ( member_nat @ I @ ( set_nat2 @ xs22 ) )
              & ( cs @ I @ J ) ) ) ) ) ).

% \<open>i_of_j2 \<equiv> \<lambda>j. SOME i. i \<in> set xs2 \<and> cs i j\<close>
thf(fact_824_i__of__j2__def,axiom,
    ! [J2: nat] :
      ( ( i_of_j2 @ J2 )
      = ( fChoice_nat
        @ ^ [I: nat] :
            ( ( member_nat @ I @ ( set_nat2 @ xs22 ) )
            & ( cs @ I @ J2 ) ) ) ) ).

% i_of_j2_def
thf(fact_825__092_060open_062v_H_A_092_060equiv_062_A_092_060lambda_062x_O_Acase_Ax_Aof_AGamma_Ai_Aj_A_092_060Rightarrow_062_Ai_A_092_060in_062_Aset_Axs1_A_092_060and_062_Aj_A_092_060in_062_Aset_Ays1_A_092_060and_062_Ai_A_061_Axs1_A_B_Apos__of_Ays1_Aj_A_092_060or_062_Ai_A_092_060in_062_Aset_Axs2_A_092_060and_062_Aj_A_092_060in_062_Aset_Ays2_A_092_060and_062_Ai_A_061_Ai__of__j2_Aj_A_124_AEpsilon_Ai_A_092_060Rightarrow_062_Ai_A_092_060in_062_Aset_Axs1_092_060close_062,axiom,
    ( v
    = ( multis8641292176345589959pVar_o
      @ ^ [I: nat,J: nat] :
          ( ( ( member_nat @ I @ ( set_nat2 @ xs12 ) )
            & ( member_nat @ J @ ( set_nat2 @ ys12 ) )
            & ( I
              = ( nth_nat @ xs12 @ ( pos_of @ ys12 @ J ) ) ) )
          | ( ( member_nat @ I @ ( set_nat2 @ xs22 ) )
            & ( member_nat @ J @ ( set_nat2 @ ys22 ) )
            & ( I
              = ( i_of_j2 @ J ) ) ) )
      @ ^ [I: nat] : ( member_nat @ I @ ( set_nat2 @ xs12 ) )
      @ ^ [A6: nat,B4: nat] : undefined_o
      @ ^ [A6: nat,B4: nat] : undefined_o
      @ ^ [A6: nat,B4: nat] : undefined_o
      @ ^ [A6: nat,B4: nat] : undefined_o ) ) ).

% \<open>v' \<equiv> \<lambda>x. case x of Gamma i j \<Rightarrow> i \<in> set xs1 \<and> j \<in> set ys1 \<and> i = xs1 ! pos_of ys1 j \<or> i \<in> set xs2 \<and> j \<in> set ys2 \<and> i = i_of_j2 j | Epsilon i \<Rightarrow> i \<in> set xs1\<close>
thf(fact_826_xs,axiom,
    ( ( mset_nat @ ( upt @ zero_zero_nat @ n ) )
    = ( plus_p6334493942879108393et_nat @ ( mset_nat @ xs12 ) @ ( mset_nat @ xs22 ) ) ) ).

% xs
thf(fact_827_ys,axiom,
    ( ( mset_nat @ ( upt @ zero_zero_nat @ m ) )
    = ( plus_p6334493942879108393et_nat @ ( mset_nat @ ys12 ) @ ( mset_nat @ ys22 ) ) ) ).

% ys
thf(fact_828_v_H__def,axiom,
    ! [X2: multis3193088007478089820ropVar] :
      ( ( v @ X2 )
      = ( multis8641292176345589959pVar_o
        @ ^ [I: nat,J: nat] :
            ( ( ( member_nat @ I @ ( set_nat2 @ xs12 ) )
              & ( member_nat @ J @ ( set_nat2 @ ys12 ) )
              & ( I
                = ( nth_nat @ xs12 @ ( pos_of @ ys12 @ J ) ) ) )
            | ( ( member_nat @ I @ ( set_nat2 @ xs22 ) )
              & ( member_nat @ J @ ( set_nat2 @ ys22 ) )
              & ( I
                = ( i_of_j2 @ J ) ) ) )
        @ ^ [I: nat] : ( member_nat @ I @ ( set_nat2 @ xs12 ) )
        @ ^ [A6: nat,B4: nat] : undefined_o
        @ ^ [A6: nat,B4: nat] : undefined_o
        @ ^ [A6: nat,B4: nat] : undefined_o
        @ ^ [A6: nat,B4: nat] : undefined_o
        @ X2 ) ) ).

% v'_def
thf(fact_829__092_060open_062v_A_092_060equiv_062_A_092_060lambda_062x_O_Acase_Ax_Aof_AAuxZeroJI_Ai_Aj_A_092_060Rightarrow_062_A_092_060not_062_ABex_A_Iset_A_Idrop_Ai_A_Imap_A_I_092_060lambda_062i_O_AGamma_Ai_Aj_J_A_0910_O_O_060n_093_J_J_J_Av_H_A_124_AAuxOneJI_Ai_Aj_A_092_060Rightarrow_062_A_092_060exists_062_By_O_Ay_A_092_060in_062_Aset_A_Idrop_Ai_A_Imap_A_I_092_060lambda_062i_O_AGamma_Ai_Aj_J_A_0910_O_O_060n_093_J_J_A_092_060and_062_Av_H_Ay_A_124_AAuxZeroIJ_Ai_Aj_A_092_060Rightarrow_062_A_092_060not_062_ABex_A_Iset_A_Idrop_Aj_A_Imap_A_IGamma_Ai_J_A_0910_O_O_060m_093_J_J_J_Av_H_A_124_AAuxOneIJ_Ai_Aj_A_092_060Rightarrow_062_A_092_060exists_062_By_O_Ay_A_092_060in_062_Aset_A_Idrop_Aj_A_Imap_A_IGamma_Ai_J_A_0910_O_O_060m_093_J_J_A_092_060and_062_Av_H_Ay_A_124_A___A_092_060Rightarrow_062_Av_H_Ax_092_060close_062,axiom,
    ( v2
    = ( ^ [X3: multis3193088007478089820ropVar] :
          ( multis8641292176345589959pVar_o
          @ ^ [Nat1: nat,Nat2: nat] : ( v @ X3 )
          @ ^ [Nat: nat] : ( v @ X3 )
          @ ^ [I: nat,J: nat] :
              ~ ? [Y3: multis3193088007478089820ropVar] :
                  ( ( member8421201611525043589ropVar @ Y3
                    @ ( set_Mu146256361055586289ropVar
                      @ ( drop_M2293212096379261346ropVar @ I
                        @ ( map_na2466558649495876678ropVar
                          @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                          @ ( upt @ zero_zero_nat @ n ) ) ) ) )
                  & ( v @ Y3 ) )
          @ ^ [I: nat,J: nat] :
            ? [Y3: multis3193088007478089820ropVar] :
              ( ( member8421201611525043589ropVar @ Y3
                @ ( set_Mu146256361055586289ropVar
                  @ ( drop_M2293212096379261346ropVar @ I
                    @ ( map_na2466558649495876678ropVar
                      @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                      @ ( upt @ zero_zero_nat @ n ) ) ) ) )
              & ( v @ Y3 )
              & ! [Z3: multis3193088007478089820ropVar] :
                  ( ( ( member8421201611525043589ropVar @ Z3
                      @ ( set_Mu146256361055586289ropVar
                        @ ( drop_M2293212096379261346ropVar @ I
                          @ ( map_na2466558649495876678ropVar
                            @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                            @ ( upt @ zero_zero_nat @ n ) ) ) ) )
                    & ( v @ Z3 ) )
                 => ( Z3 = Y3 ) ) )
          @ ^ [I: nat,J: nat] :
              ~ ? [Y3: multis3193088007478089820ropVar] :
                  ( ( member8421201611525043589ropVar @ Y3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
                  & ( v @ Y3 ) )
          @ ^ [I: nat,J: nat] :
            ? [Y3: multis3193088007478089820ropVar] :
              ( ( member8421201611525043589ropVar @ Y3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
              & ( v @ Y3 )
              & ! [Z3: multis3193088007478089820ropVar] :
                  ( ( ( member8421201611525043589ropVar @ Z3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
                    & ( v @ Z3 ) )
                 => ( Z3 = Y3 ) ) )
          @ X3 ) ) ) ).

% \<open>v \<equiv> \<lambda>x. case x of AuxZeroJI i j \<Rightarrow> \<not> Bex (set (drop i (map (\<lambda>i. Gamma i j) [0..<n]))) v' | AuxOneJI i j \<Rightarrow> \<exists>!y. y \<in> set (drop i (map (\<lambda>i. Gamma i j) [0..<n])) \<and> v' y | AuxZeroIJ i j \<Rightarrow> \<not> Bex (set (drop j (map (Gamma i) [0..<m]))) v' | AuxOneIJ i j \<Rightarrow> \<exists>!y. y \<in> set (drop j (map (Gamma i) [0..<m])) \<and> v' y | _ \<Rightarrow> v' x\<close>
thf(fact_830_Nat_Oadd__0__right,axiom,
    ! [M: nat] :
      ( ( plus_plus_nat @ M @ zero_zero_nat )
      = M ) ).

% Nat.add_0_right
thf(fact_831_add__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus_nat @ M @ N )
        = zero_zero_nat )
      = ( ( M = zero_zero_nat )
        & ( N = zero_zero_nat ) ) ) ).

% add_is_0
thf(fact_832_nat__add__left__cancel__less,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( ord_less_nat @ M @ N ) ) ).

% nat_add_left_cancel_less
thf(fact_833_drop__upt,axiom,
    ! [M: nat,I3: nat,J2: nat] :
      ( ( drop_nat @ M @ ( upt @ I3 @ J2 ) )
      = ( upt @ ( plus_plus_nat @ I3 @ M ) @ J2 ) ) ).

% drop_upt
thf(fact_834_add__gr__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( plus_plus_nat @ M @ N ) )
      = ( ( ord_less_nat @ zero_zero_nat @ M )
        | ( ord_less_nat @ zero_zero_nat @ N ) ) ) ).

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

% nth_upt
thf(fact_836_v__def,axiom,
    ! [X2: multis3193088007478089820ropVar] :
      ( ( v2 @ X2 )
      = ( multis8641292176345589959pVar_o
        @ ^ [Nat1: nat,Nat2: nat] : ( v @ X2 )
        @ ^ [Nat: nat] : ( v @ X2 )
        @ ^ [I: nat,J: nat] :
            ~ ? [X3: multis3193088007478089820ropVar] :
                ( ( member8421201611525043589ropVar @ X3
                  @ ( set_Mu146256361055586289ropVar
                    @ ( drop_M2293212096379261346ropVar @ I
                      @ ( map_na2466558649495876678ropVar
                        @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                        @ ( upt @ zero_zero_nat @ n ) ) ) ) )
                & ( v @ X3 ) )
        @ ^ [I: nat,J: nat] :
          ? [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3
              @ ( set_Mu146256361055586289ropVar
                @ ( drop_M2293212096379261346ropVar @ I
                  @ ( map_na2466558649495876678ropVar
                    @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                    @ ( upt @ zero_zero_nat @ n ) ) ) ) )
            & ( v @ X3 )
            & ! [Y3: multis3193088007478089820ropVar] :
                ( ( ( member8421201611525043589ropVar @ Y3
                    @ ( set_Mu146256361055586289ropVar
                      @ ( drop_M2293212096379261346ropVar @ I
                        @ ( map_na2466558649495876678ropVar
                          @ ^ [K2: nat] : ( multis387687052011358179_Gamma @ K2 @ J )
                          @ ( upt @ zero_zero_nat @ n ) ) ) ) )
                  & ( v @ Y3 ) )
               => ( Y3 = X3 ) ) )
        @ ^ [I: nat,J: nat] :
            ~ ? [X3: multis3193088007478089820ropVar] :
                ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
                & ( v @ X3 ) )
        @ ^ [I: nat,J: nat] :
          ? [X3: multis3193088007478089820ropVar] :
            ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
            & ( v @ X3 )
            & ! [Y3: multis3193088007478089820ropVar] :
                ( ( ( member8421201611525043589ropVar @ Y3 @ ( set_Mu146256361055586289ropVar @ ( drop_M2293212096379261346ropVar @ J @ ( map_na2466558649495876678ropVar @ ( multis387687052011358179_Gamma @ I ) @ ( upt @ zero_zero_nat @ m ) ) ) ) )
                  & ( v @ Y3 ) )
               => ( Y3 = X3 ) ) )
        @ X2 ) ) ).

% v_def
thf(fact_837_add__eq__self__zero,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus_nat @ M @ N )
        = M )
     => ( N = zero_zero_nat ) ) ).

% add_eq_self_zero
thf(fact_838_plus__nat_Oadd__0,axiom,
    ! [N: nat] :
      ( ( plus_plus_nat @ zero_zero_nat @ N )
      = N ) ).

% plus_nat.add_0
thf(fact_839_less__add__eq__less,axiom,
    ! [K: nat,L: nat,M: nat,N: nat] :
      ( ( ord_less_nat @ K @ L )
     => ( ( ( plus_plus_nat @ M @ L )
          = ( plus_plus_nat @ K @ N ) )
       => ( ord_less_nat @ M @ N ) ) ) ).

% less_add_eq_less
thf(fact_840_trans__less__add2,axiom,
    ! [I3: nat,J2: nat,M: nat] :
      ( ( ord_less_nat @ I3 @ J2 )
     => ( ord_less_nat @ I3 @ ( plus_plus_nat @ M @ J2 ) ) ) ).

% trans_less_add2
thf(fact_841_trans__less__add1,axiom,
    ! [I3: nat,J2: nat,M: nat] :
      ( ( ord_less_nat @ I3 @ J2 )
     => ( ord_less_nat @ I3 @ ( plus_plus_nat @ J2 @ M ) ) ) ).

% trans_less_add1
thf(fact_842_add__less__mono1,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ I3 @ J2 )
     => ( ord_less_nat @ ( plus_plus_nat @ I3 @ K ) @ ( plus_plus_nat @ J2 @ K ) ) ) ).

% add_less_mono1
thf(fact_843_not__add__less2,axiom,
    ! [J2: nat,I3: nat] :
      ~ ( ord_less_nat @ ( plus_plus_nat @ J2 @ I3 ) @ I3 ) ).

% not_add_less2
thf(fact_844_not__add__less1,axiom,
    ! [I3: nat,J2: nat] :
      ~ ( ord_less_nat @ ( plus_plus_nat @ I3 @ J2 ) @ I3 ) ).

% not_add_less1
thf(fact_845_add__less__mono,axiom,
    ! [I3: nat,J2: nat,K: nat,L: nat] :
      ( ( ord_less_nat @ I3 @ J2 )
     => ( ( ord_less_nat @ K @ L )
       => ( ord_less_nat @ ( plus_plus_nat @ I3 @ K ) @ ( plus_plus_nat @ J2 @ L ) ) ) ) ).

% add_less_mono
thf(fact_846_add__lessD1,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ I3 @ J2 ) @ K )
     => ( ord_less_nat @ I3 @ K ) ) ).

% add_lessD1
thf(fact_847_less__imp__add__positive,axiom,
    ! [I3: nat,J2: nat] :
      ( ( ord_less_nat @ I3 @ J2 )
     => ? [K3: nat] :
          ( ( ord_less_nat @ zero_zero_nat @ K3 )
          & ( ( plus_plus_nat @ I3 @ K3 )
            = J2 ) ) ) ).

% less_imp_add_positive
thf(fact_848_map__add__upt,axiom,
    ! [N: nat,M: nat] :
      ( ( map_nat_nat
        @ ^ [I: nat] : ( plus_plus_nat @ I @ N )
        @ ( upt @ zero_zero_nat @ M ) )
      = ( upt @ N @ ( plus_plus_nat @ M @ N ) ) ) ).

% map_add_upt
thf(fact_849_size__char__eq__0,axiom,
    ( size_size_char
    = ( ^ [C3: char] : zero_zero_nat ) ) ).

% size_char_eq_0
thf(fact_850_size_H__char__eq__0,axiom,
    ( size_char
    = ( ^ [C3: char] : zero_zero_nat ) ) ).

% size'_char_eq_0
thf(fact_851_Euclid__induct,axiom,
    ! [P: nat > nat > $o,A: nat,B: nat] :
      ( ! [A4: nat,B3: nat] :
          ( ( P @ A4 @ B3 )
          = ( P @ B3 @ A4 ) )
     => ( ! [A4: nat] : ( P @ A4 @ zero_zero_nat )
       => ( ! [A4: nat,B3: nat] :
              ( ( P @ A4 @ B3 )
             => ( P @ A4 @ ( plus_plus_nat @ A4 @ B3 ) ) )
         => ( P @ A @ B ) ) ) ) ).

% Euclid_induct
thf(fact_852_formula15__def,axiom,
    ! [Cs: nat > nat > $o,Cns: nat > nat > $o,N: nat,M: nat] :
      ( ( multis7684816351888833198la15_f @ 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 @ Cs @ Cns @ N @ M )
      = ( append_f
        @ ( maps_nat_f
          @ ^ [I: nat] :
              ( maps_nat_f
              @ ^ [J: nat] :
                  ( if_list_f
                  @ ( ( Cs @ I @ J )
                    & ( Cns @ I @ J ) )
                  @ nil_f
                  @ ( cons_f @ ( multis1454621290665623088ropVar @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ ( multis387687052011358179_Gamma @ I @ J ) @ ( multis2544335231667181926psilon @ I ) @ ( Cs @ I @ J ) @ ( Cns @ I @ J ) ) @ nil_f ) )
              @ ( upt @ zero_zero_nat @ M ) )
          @ ( upt @ zero_zero_nat @ N ) )
        @ ( multis1248899897006733423la14_f @ enc_False @ enc_pos @ enc_different @ enc_equiv_and_not @ enc_equiv_ite @ enc_ite @ enc_impl @ N @ M ) ) ) ).

% formula15_def
thf(fact_853_encodeGammaCond_Oelims,axiom,
    ! [X2: multis3193088007478089820ropVar,Xa: multis3193088007478089820ropVar,Xb2: $o,Xc: $o,Y: f] :
      ( ( ( multis1454621290665623088ropVar @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ X2 @ Xa @ Xb2 @ Xc )
        = Y )
     => ( ( Xb2
         => ( Xc
           => ( Y != enc_True ) ) )
       => ( ( ~ Xb2
           => ( ~ Xc
             => ( Y
               != ( enc_neg @ X2 ) ) ) )
         => ( ( ~ Xb2
             => ( Xc
               => ( Y
                 != ( enc_var_impl @ X2 @ Xa ) ) ) )
           => ~ ( Xb2
               => ( ~ Xc
                 => ( Y
                   != ( enc_not_and @ X2 @ Xa ) ) ) ) ) ) ) ) ).

% encodeGammaCond.elims
thf(fact_854_encodeGammaCond_Osimps_I1_J,axiom,
    ! [Gam2: multis3193088007478089820ropVar,Eps2: multis3193088007478089820ropVar] :
      ( ( multis1454621290665623088ropVar @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ $true @ $true )
      = enc_True ) ).

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

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

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

% encodeGammaCond.simps(4)
thf(fact_858_enc__sound_I11_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_not_and @ X2 @ Y ) )
      = ( ~ ( ( Alpha @ X2 )
            & ( Alpha @ Y ) ) ) ) ).

% enc_sound(11)
thf(fact_859_enc__sound_I10_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar,Y: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_var_impl @ X2 @ Y ) )
      = ( ( Alpha @ X2 )
       => ( Alpha @ Y ) ) ) ).

% enc_sound(10)
thf(fact_860_enc__sound_I4_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,X2: multis3193088007478089820ropVar] :
      ( ( eval @ Alpha @ ( enc_neg @ X2 ) )
      = ( ~ ( Alpha @ X2 ) ) ) ).

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

% enc_sound(2)
thf(fact_862_encodeGammaCond,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,Gam2: multis3193088007478089820ropVar,Eps2: multis3193088007478089820ropVar,S: $o,Ns: $o] :
      ( ( eval @ Alpha @ ( multis1454621290665623088ropVar @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ Gam2 @ Eps2 @ S @ Ns ) )
      = ( ( Alpha @ Gam2 )
       => ( ( ( Alpha @ Eps2 )
           => Ns )
          & ( ~ ( Alpha @ Eps2 )
           => S ) ) ) ) ).

% encodeGammaCond
thf(fact_863_ms__encoder__axioms,axiom,
    multis7215977293502021788oder_f @ 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 @ eval ).

% ms_encoder_axioms
thf(fact_864_formula16__def,axiom,
    ! [Cs: nat > nat > $o,Cns: nat > nat > $o,N: nat,M: nat] :
      ( ( multis4897360769916157165la16_f @ 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 @ Cs @ Cns @ N @ M )
      = ( cons_f @ ( enc_not_all @ ( map_na2466558649495876678ropVar @ multis2544335231667181926psilon @ ( upt @ zero_zero_nat @ N ) ) ) @ ( multis7684816351888833198la15_f @ 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 @ Cs @ Cns @ N @ M ) ) ) ).

% formula16_def
thf(fact_865_encoder__axioms,axiom,
    multis2000375938434000499pVar_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_866_enc__sound_I12_J,axiom,
    ! [Alpha: multis3193088007478089820ropVar > $o,Xs2: list_M6740372356978808802ropVar] :
      ( ( eval @ Alpha @ ( enc_not_all @ Xs2 ) )
      = ( ~ ! [X3: multis3193088007478089820ropVar] :
              ( ( member8421201611525043589ropVar @ X3 @ ( set_Mu146256361055586289ropVar @ Xs2 ) )
             => ( Alpha @ X3 ) ) ) ) ).

% enc_sound(12)
thf(fact_867_encodeGammaCond_Opelims,axiom,
    ! [X2: multis3193088007478089820ropVar,Xa: multis3193088007478089820ropVar,Xb2: $o,Xc: $o,Y: f] :
      ( ( ( multis1454621290665623088ropVar @ enc_True @ enc_neg @ enc_var_impl @ enc_not_and @ X2 @ Xa @ Xb2 @ Xc )
        = Y )
     => ( ( accp_P8208393750683106630od_o_o @ multis3344368520953930393ropVar @ ( produc4931073445691921453od_o_o @ X2 @ ( produc9033520932313852770od_o_o @ Xa @ ( product_Pair_o_o @ Xb2 @ Xc ) ) ) )
       => ( ( Xb2
           => ( Xc
             => ( ( Y = enc_True )
               => ~ ( accp_P8208393750683106630od_o_o @ multis3344368520953930393ropVar @ ( produc4931073445691921453od_o_o @ X2 @ ( produc9033520932313852770od_o_o @ Xa @ ( product_Pair_o_o @ $true @ $true ) ) ) ) ) ) )
         => ( ( ~ Xb2
             => ( ~ Xc
               => ( ( Y
                    = ( enc_neg @ X2 ) )
                 => ~ ( accp_P8208393750683106630od_o_o @ multis3344368520953930393ropVar @ ( produc4931073445691921453od_o_o @ X2 @ ( produc9033520932313852770od_o_o @ Xa @ ( product_Pair_o_o @ $false @ $false ) ) ) ) ) ) )
           => ( ( ~ Xb2
               => ( Xc
                 => ( ( Y
                      = ( enc_var_impl @ X2 @ Xa ) )
                   => ~ ( accp_P8208393750683106630od_o_o @ multis3344368520953930393ropVar @ ( produc4931073445691921453od_o_o @ X2 @ ( produc9033520932313852770od_o_o @ Xa @ ( product_Pair_o_o @ $false @ $true ) ) ) ) ) ) )
             => ~ ( Xb2
                 => ( ~ Xc
                   => ( ( Y
                        = ( enc_not_and @ X2 @ Xa ) )
                     => ~ ( accp_P8208393750683106630od_o_o @ multis3344368520953930393ropVar @ ( produc4931073445691921453od_o_o @ X2 @ ( produc9033520932313852770od_o_o @ Xa @ ( product_Pair_o_o @ $true @ $false ) ) ) ) ) ) ) ) ) ) ) ) ).

% encodeGammaCond.pelims
thf(fact_868_encoding__sound_I2_J,axiom,
    ! [V: multis3193088007478089820ropVar > $o] :
      ( ! [X4: f] :
          ( ( member_f @ X4 @ ( set_f2 @ ( multis7684816351888833198la15_f @ 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 @ cs @ cns @ n @ m ) ) )
         => ( eval @ V @ X4 ) )
     => ( ! [X4: f] :
            ( ( member_f @ X4 @ ( set_f2 @ ( multis4897360769916157165la16_f @ 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 @ cs @ cns @ n @ m ) ) )
           => ( eval @ V @ X4 ) )
       => ( member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multiset_s_mul_ext_a @ ns @ s ) ) ) ) ).

% encoding_sound(2)
thf(fact_869_encoding__sound_I1_J,axiom,
    ! [V: multis3193088007478089820ropVar > $o] :
      ( ! [X4: f] :
          ( ( member_f @ X4 @ ( set_f2 @ ( multis7684816351888833198la15_f @ 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 @ cs @ cns @ n @ m ) ) )
         => ( eval @ V @ X4 ) )
     => ( member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multis4023584895248362547_ext_a @ ns @ s ) ) ) ).

% encoding_sound(1)
thf(fact_870_ys2,axiom,
    ( ys2
    = ( map_nat_a @ t @ ys22 ) ) ).

% ys2
thf(fact_871_xs1,axiom,
    ( xs1
    = ( map_nat_a @ s2 @ xs12 ) ) ).

% xs1
thf(fact_872_xs2,axiom,
    ( xs2
    = ( map_nat_a @ s2 @ xs22 ) ) ).

% xs2
thf(fact_873_ys1,axiom,
    ( ys1
    = ( map_nat_a @ t @ ys12 ) ) ).

% ys1
thf(fact_874_cs,axiom,
    ! [I3: nat,J2: nat] :
      ( ( cs @ I3 @ J2 )
      = ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( s2 @ I3 ) @ ( t @ J2 ) ) @ s ) ) ).

% cs
thf(fact_875_cns,axiom,
    ! [I3: nat,J2: nat] :
      ( ( cns @ I3 @ J2 )
      = ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( s2 @ I3 ) @ ( t @ J2 ) ) @ ns ) ) ).

% cns
thf(fact_876_assms,axiom,
    member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multis4023584895248362547_ext_a @ ns @ s ) ).

% assms
thf(fact_877__092_060open_062_092_060exists_062xs1_Axs2_Ays1_Ays2_O_Amset_A_Imap_As_A_0910_O_O_060n_093_J_A_061_Amset_Axs1_A_L_Amset_Axs2_A_092_060and_062_Amset_A_Imap_At_A_0910_O_O_060m_093_J_A_061_Amset_Ays1_A_L_Amset_Ays2_A_092_060and_062_Alength_Axs1_A_061_Alength_Ays1_A_092_060and_062_A_I_092_060forall_062i_060length_Ays1_O_A_Ixs1_A_B_Ai_M_Ays1_A_B_Ai_J_A_092_060in_062_ANS_J_A_092_060and_062_A_I_092_060forall_062y_092_060in_062set_Ays2_O_A_092_060exists_062x_092_060in_062set_Axs2_O_A_Ix_M_Ay_J_A_092_060in_062_AS_J_092_060close_062,axiom,
    ? [Xs12: list_a,Xs22: list_a] :
      ( ( ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) )
        = ( plus_plus_multiset_a @ ( mset_a @ Xs12 ) @ ( mset_a @ Xs22 ) ) )
      & ? [Ys1: list_a,Ys22: list_a] :
          ( ( ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) )
            = ( plus_plus_multiset_a @ ( mset_a @ Ys1 ) @ ( mset_a @ Ys22 ) ) )
          & ( ( size_size_list_a @ Xs12 )
            = ( size_size_list_a @ Ys1 ) )
          & ! [I4: nat] :
              ( ( ord_less_nat @ I4 @ ( size_size_list_a @ Ys1 ) )
             => ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( nth_a @ Xs12 @ I4 ) @ ( nth_a @ Ys1 @ I4 ) ) @ ns ) )
          & ! [X: a] :
              ( ( member_a @ X @ ( set_a2 @ Ys22 ) )
             => ? [Xa4: a] :
                  ( ( member_a @ Xa4 @ ( set_a2 @ Xs22 ) )
                  & ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ Xa4 @ X ) @ s ) ) ) ) ) ).

% \<open>\<exists>xs1 xs2 ys1 ys2. mset (map s [0..<n]) = mset xs1 + mset xs2 \<and> mset (map t [0..<m]) = mset ys1 + mset ys2 \<and> length xs1 = length ys1 \<and> (\<forall>i<length ys1. (xs1 ! i, ys1 ! i) \<in> NS) \<and> (\<forall>y\<in>set ys2. \<exists>x\<in>set xs2. (x, y) \<in> S)\<close>
thf(fact_878__092_060open_062_Imset_A_Imap_As_A_0910_O_O_060n_093_J_M_Amset_A_Imap_At_A_0910_O_O_060m_093_J_J_A_092_060in_062_As__mul__ext_ANS_AS_A_092_060Longrightarrow_062_A_092_060exists_062xs1_Axs2_Ays1_Ays2_O_Amset_A_Imap_As_A_0910_O_O_060n_093_J_A_061_Amset_Axs1_A_L_Amset_Axs2_A_092_060and_062_Amset_A_Imap_At_A_0910_O_O_060m_093_J_A_061_Amset_Ays1_A_L_Amset_Ays2_A_092_060and_062_Alength_Axs1_A_061_Alength_Ays1_A_092_060and_062_Axs2_A_092_060noteq_062_A_091_093_A_092_060and_062_A_I_092_060forall_062i_060length_Ays1_O_A_Ixs1_A_B_Ai_M_Ays1_A_B_Ai_J_A_092_060in_062_ANS_J_A_092_060and_062_A_I_092_060forall_062y_092_060in_062set_Ays2_O_A_092_060exists_062x_092_060in_062set_Axs2_O_A_Ix_M_Ay_J_A_092_060in_062_AS_J_092_060close_062,axiom,
    ( ( member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multiset_s_mul_ext_a @ ns @ s ) )
   => ? [Xs12: list_a,Xs22: list_a] :
        ( ( ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) )
          = ( plus_plus_multiset_a @ ( mset_a @ Xs12 ) @ ( mset_a @ Xs22 ) ) )
        & ? [Ys1: list_a,Ys22: list_a] :
            ( ( ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) )
              = ( plus_plus_multiset_a @ ( mset_a @ Ys1 ) @ ( mset_a @ Ys22 ) ) )
            & ( ( size_size_list_a @ Xs12 )
              = ( size_size_list_a @ Ys1 ) )
            & ( Xs22 != nil_a )
            & ! [I4: nat] :
                ( ( ord_less_nat @ I4 @ ( size_size_list_a @ Ys1 ) )
               => ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( nth_a @ Xs12 @ I4 ) @ ( nth_a @ Ys1 @ I4 ) ) @ ns ) )
            & ! [X: a] :
                ( ( member_a @ X @ ( set_a2 @ Ys22 ) )
               => ? [Xa4: a] :
                    ( ( member_a @ Xa4 @ ( set_a2 @ Xs22 ) )
                    & ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ Xa4 @ X ) @ s ) ) ) ) ) ) ).

% \<open>(mset (map s [0..<n]), mset (map t [0..<m])) \<in> s_mul_ext NS S \<Longrightarrow> \<exists>xs1 xs2 ys1 ys2. mset (map s [0..<n]) = mset xs1 + mset xs2 \<and> mset (map t [0..<m]) = mset ys1 + mset ys2 \<and> length xs1 = length ys1 \<and> xs2 \<noteq> [] \<and> (\<forall>i<length ys1. (xs1 ! i, ys1 ! i) \<in> NS) \<and> (\<forall>y\<in>set ys2. \<exists>x\<in>set xs2. (x, y) \<in> S)\<close>
thf(fact_879__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062Xs1_AXs2_AYs1_AYs2_O_A_092_060lbrakk_062mset_A_Imap_As_A_0910_O_O_060n_093_J_A_061_Amset_AXs1_A_L_Amset_AXs2_059_Amset_A_Imap_At_A_0910_O_O_060m_093_J_A_061_Amset_AYs1_A_L_Amset_AYs2_059_Alength_AXs1_A_061_Alength_AYs1_059_A_Imset_A_Imap_As_A_0910_O_O_060n_093_J_M_Amset_A_Imap_At_A_0910_O_O_060m_093_J_J_A_092_060in_062_As__mul__ext_ANS_AS_A_092_060Longrightarrow_062_AXs2_A_092_060noteq_062_A_091_093_059_A_092_060And_062i_O_Ai_A_060_Alength_AYs1_A_092_060Longrightarrow_062_A_IXs1_A_B_Ai_M_AYs1_A_B_Ai_J_A_092_060in_062_ANS_059_A_092_060And_062y_O_Ay_A_092_060in_062_Aset_AYs2_A_092_060Longrightarrow_062_A_092_060exists_062x_092_060in_062set_AXs2_O_A_Ix_M_Ay_J_A_092_060in_062_AS_092_060rbrakk_062_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [Xs13: list_a,Xs23: list_a] :
        ( ( ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) )
          = ( plus_plus_multiset_a @ ( mset_a @ Xs13 ) @ ( mset_a @ Xs23 ) ) )
       => ! [Ys12: list_a,Ys23: list_a] :
            ( ( ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) )
              = ( plus_plus_multiset_a @ ( mset_a @ Ys12 ) @ ( mset_a @ Ys23 ) ) )
           => ( ( ( size_size_list_a @ Xs13 )
                = ( size_size_list_a @ Ys12 ) )
             => ( ( ( member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multiset_s_mul_ext_a @ ns @ s ) )
                 => ( Xs23 != nil_a ) )
               => ( ! [I4: nat] :
                      ( ( ord_less_nat @ I4 @ ( size_size_list_a @ Ys12 ) )
                     => ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( nth_a @ Xs13 @ I4 ) @ ( nth_a @ Ys12 @ I4 ) ) @ ns ) )
                 => ~ ! [Y4: a] :
                        ( ( member_a @ Y4 @ ( set_a2 @ Ys23 ) )
                       => ? [X4: a] :
                            ( ( member_a @ X4 @ ( set_a2 @ Xs23 ) )
                            & ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X4 @ Y4 ) @ s ) ) ) ) ) ) ) ) ).

% \<open>\<And>thesis. (\<And>Xs1 Xs2 Ys1 Ys2. \<lbrakk>mset (map s [0..<n]) = mset Xs1 + mset Xs2; mset (map t [0..<m]) = mset Ys1 + mset Ys2; length Xs1 = length Ys1; (mset (map s [0..<n]), mset (map t [0..<m])) \<in> s_mul_ext NS S \<Longrightarrow> Xs2 \<noteq> []; \<And>i. i < length Ys1 \<Longrightarrow> (Xs1 ! i, Ys1 ! i) \<in> NS; \<And>y. y \<in> set Ys2 \<Longrightarrow> \<exists>x\<in>set Xs2. (x, y) \<in> S\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_880_ne,axiom,
    ( ( member5199237121806060112iset_a @ ( produc654756711066625303iset_a @ ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) ) @ ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) ) ) @ ( multiset_s_mul_ext_a @ ns @ s ) )
   => ( xs2 != nil_a ) ) ).

% ne
thf(fact_881_eq2,axiom,
    ( ( mset_a @ ( map_nat_a @ t @ ( upt @ zero_zero_nat @ m ) ) )
    = ( plus_plus_multiset_a @ ( mset_a @ ys1 ) @ ( mset_a @ ys2 ) ) ) ).

% eq2
thf(fact_882_eq1,axiom,
    ( ( mset_a @ ( map_nat_a @ s2 @ ( upt @ zero_zero_nat @ n ) ) )
    = ( plus_plus_multiset_a @ ( mset_a @ xs1 ) @ ( mset_a @ xs2 ) ) ) ).

% eq1
thf(fact_883__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062ys1_Ays2_O_A_092_060lbrakk_062mset_A_0910_O_O_060m_093_A_061_Amset_Ays1_A_L_Amset_Ays2_059_AYs1_A_061_Amap_At_Ays1_059_AYs2_A_061_Amap_At_Ays2_092_060rbrakk_062_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [Ys1: list_nat,Ys22: list_nat] :
        ( ( ( mset_nat @ ( upt @ zero_zero_nat @ m ) )
          = ( plus_p6334493942879108393et_nat @ ( mset_nat @ Ys1 ) @ ( mset_nat @ Ys22 ) ) )
       => ( ( ys1
            = ( map_nat_a @ t @ Ys1 ) )
         => ( ys2
           != ( map_nat_a @ t @ Ys22 ) ) ) ) ).

% \<open>\<And>thesis. (\<And>ys1 ys2. \<lbrakk>mset [0..<m] = mset ys1 + mset ys2; Ys1 = map t ys1; Ys2 = map t ys2\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_884_len,axiom,
    ( ( size_size_list_a @ xs1 )
    = ( size_size_list_a @ ys1 ) ) ).

% len
thf(fact_885_S,axiom,
    ! [Y: a] :
      ( ( member_a @ Y @ ( set_a2 @ ys2 ) )
     => ? [X4: a] :
          ( ( member_a @ X4 @ ( set_a2 @ xs2 ) )
          & ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X4 @ Y ) @ s ) ) ) ).

% S
thf(fact_886_NS,axiom,
    ! [I3: nat] :
      ( ( ord_less_nat @ I3 @ ( size_size_list_a @ ys1 ) )
     => ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ ( nth_a @ xs1 @ I3 ) @ ( nth_a @ ys1 @ I3 ) ) @ ns ) ) ).

% NS
thf(fact_887__092_060open_062_092_060exists_062zs1_Azs2_O_Amset_A_0910_O_O_060m_093_A_061_Amset_Azs1_A_L_Amset_Azs2_A_092_060and_062_AYs1_A_061_Amap_At_Azs1_A_092_060and_062_AYs2_A_061_Amap_At_Azs2_092_060close_062,axiom,
    ? [Zs1: list_nat,Zs22: list_nat] :
      ( ( ( mset_nat @ ( upt @ zero_zero_nat @ m ) )
        = ( plus_p6334493942879108393et_nat @ ( mset_nat @ Zs1 ) @ ( mset_nat @ Zs22 ) ) )
      & ( ys1
        = ( map_nat_a @ t @ Zs1 ) )
      & ( ys2
        = ( map_nat_a @ t @ Zs22 ) ) ) ).

% \<open>\<exists>zs1 zs2. mset [0..<m] = mset zs1 + mset zs2 \<and> Ys1 = map t zs1 \<and> Ys2 = map t zs2\<close>
thf(fact_888__092_060open_062_092_060And_062thesis_O_A_I_092_060And_062xs1_Axs2_O_A_092_060lbrakk_062mset_A_0910_O_O_060n_093_A_061_Amset_Axs1_A_L_Amset_Axs2_059_AXs1_A_061_Amap_As_Axs1_059_AXs2_A_061_Amap_As_Axs2_092_060rbrakk_062_A_092_060Longrightarrow_062_Athesis_J_A_092_060Longrightarrow_062_Athesis_092_060close_062,axiom,
    ~ ! [Xs12: list_nat,Xs22: list_nat] :
        ( ( ( mset_nat @ ( upt @ zero_zero_nat @ n ) )
          = ( plus_p6334493942879108393et_nat @ ( mset_nat @ Xs12 ) @ ( mset_nat @ Xs22 ) ) )
       => ( ( xs1
            = ( map_nat_a @ s2 @ Xs12 ) )
         => ( xs2
           != ( map_nat_a @ s2 @ Xs22 ) ) ) ) ).

% \<open>\<And>thesis. (\<And>xs1 xs2. \<lbrakk>mset [0..<n] = mset xs1 + mset xs2; Xs1 = map s xs1; Xs2 = map s xs2\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis\<close>
thf(fact_889__092_060open_062_092_060exists_062zs1_Azs2_O_Amset_A_0910_O_O_060n_093_A_061_Amset_Azs1_A_L_Amset_Azs2_A_092_060and_062_AXs1_A_061_Amap_As_Azs1_A_092_060and_062_AXs2_A_061_Amap_As_Azs2_092_060close_062,axiom,
    ? [Zs1: list_nat,Zs22: list_nat] :
      ( ( ( mset_nat @ ( upt @ zero_zero_nat @ n ) )
        = ( plus_p6334493942879108393et_nat @ ( mset_nat @ Zs1 ) @ ( mset_nat @ Zs22 ) ) )
      & ( xs1
        = ( map_nat_a @ s2 @ Zs1 ) )
      & ( xs2
        = ( map_nat_a @ s2 @ Zs22 ) ) ) ).

% \<open>\<exists>zs1 zs2. mset [0..<n] = mset zs1 + mset zs2 \<and> Xs1 = map s zs1 \<and> Xs2 = map s zs2\<close>
thf(fact_890_diff__self__eq__0,axiom,
    ! [M: nat] :
      ( ( minus_minus_nat @ M @ M )
      = zero_zero_nat ) ).

% diff_self_eq_0
thf(fact_891_diff__0__eq__0,axiom,
    ! [N: nat] :
      ( ( minus_minus_nat @ zero_zero_nat @ N )
      = zero_zero_nat ) ).

% diff_0_eq_0
thf(fact_892_diff__diff__left,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ I3 @ J2 ) @ K )
      = ( minus_minus_nat @ I3 @ ( plus_plus_nat @ J2 @ K ) ) ) ).

% diff_diff_left
thf(fact_893_zero__less__diff,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( minus_minus_nat @ N @ M ) )
      = ( ord_less_nat @ M @ N ) ) ).

% zero_less_diff
thf(fact_894_length__upt,axiom,
    ! [I3: nat,J2: nat] :
      ( ( size_size_list_nat @ ( upt @ I3 @ J2 ) )
      = ( minus_minus_nat @ J2 @ I3 ) ) ).

% length_upt
thf(fact_895_diff__less,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_nat @ zero_zero_nat @ M )
       => ( ord_less_nat @ ( minus_minus_nat @ M @ N ) @ M ) ) ) ).

% diff_less
thf(fact_896_diffs0__imp__equal,axiom,
    ! [M: nat,N: nat] :
      ( ( ( minus_minus_nat @ M @ N )
        = zero_zero_nat )
     => ( ( ( minus_minus_nat @ N @ M )
          = zero_zero_nat )
       => ( M = N ) ) ) ).

% diffs0_imp_equal
thf(fact_897_minus__nat_Odiff__0,axiom,
    ! [M: nat] :
      ( ( minus_minus_nat @ M @ zero_zero_nat )
      = M ) ).

% minus_nat.diff_0
thf(fact_898_less__imp__diff__less,axiom,
    ! [J2: nat,K: nat,N: nat] :
      ( ( ord_less_nat @ J2 @ K )
     => ( ord_less_nat @ ( minus_minus_nat @ J2 @ N ) @ K ) ) ).

% less_imp_diff_less
thf(fact_899_diff__less__mono2,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ( ord_less_nat @ M @ L )
       => ( ord_less_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M ) ) ) ) ).

% diff_less_mono2
thf(fact_900_diff__commute,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ I3 @ J2 ) @ K )
      = ( minus_minus_nat @ ( minus_minus_nat @ I3 @ K ) @ J2 ) ) ).

% diff_commute
thf(fact_901_diff__add__inverse2,axiom,
    ! [M: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ M @ N ) @ N )
      = M ) ).

% diff_add_inverse2
thf(fact_902_diff__add__inverse,axiom,
    ! [N: nat,M: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ N @ M ) @ N )
      = M ) ).

% diff_add_inverse
thf(fact_903_diff__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ M @ K ) @ ( plus_plus_nat @ N @ K ) )
      = ( minus_minus_nat @ M @ N ) ) ).

% diff_cancel2
thf(fact_904_Nat_Odiff__cancel,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( minus_minus_nat @ M @ N ) ) ).

% Nat.diff_cancel
thf(fact_905_diff__add__0,axiom,
    ! [N: nat,M: nat] :
      ( ( minus_minus_nat @ N @ ( plus_plus_nat @ N @ M ) )
      = zero_zero_nat ) ).

% diff_add_0
thf(fact_906_less__diff__conv,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_nat @ I3 @ ( minus_minus_nat @ J2 @ K ) )
      = ( ord_less_nat @ ( plus_plus_nat @ I3 @ K ) @ J2 ) ) ).

% less_diff_conv
thf(fact_907_add__diff__inverse__nat,axiom,
    ! [M: nat,N: nat] :
      ( ~ ( ord_less_nat @ M @ N )
     => ( ( plus_plus_nat @ N @ ( minus_minus_nat @ M @ N ) )
        = M ) ) ).

% add_diff_inverse_nat
thf(fact_908_nat__diff__split,axiom,
    ! [P: nat > $o,A: nat,B: nat] :
      ( ( P @ ( minus_minus_nat @ A @ B ) )
      = ( ( ( ord_less_nat @ A @ B )
         => ( P @ zero_zero_nat ) )
        & ! [D: nat] :
            ( ( A
              = ( plus_plus_nat @ B @ D ) )
           => ( P @ D ) ) ) ) ).

% nat_diff_split
thf(fact_909_nat__diff__split__asm,axiom,
    ! [P: nat > $o,A: nat,B: nat] :
      ( ( P @ ( minus_minus_nat @ A @ B ) )
      = ( ~ ( ( ( ord_less_nat @ A @ B )
              & ~ ( P @ zero_zero_nat ) )
            | ? [D: nat] :
                ( ( A
                  = ( plus_plus_nat @ B @ D ) )
                & ~ ( P @ D ) ) ) ) ) ).

% nat_diff_split_asm
thf(fact_910_less__one,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ N @ one_one_nat )
      = ( N = zero_zero_nat ) ) ).

% less_one
thf(fact_911_upt__eq__Cons__conv,axiom,
    ! [I3: nat,J2: nat,X2: nat,Xs2: list_nat] :
      ( ( ( upt @ I3 @ J2 )
        = ( cons_nat @ X2 @ Xs2 ) )
      = ( ( ord_less_nat @ I3 @ J2 )
        & ( I3 = X2 )
        & ( ( upt @ ( plus_plus_nat @ I3 @ one_one_nat ) @ J2 )
          = Xs2 ) ) ) ).

% upt_eq_Cons_conv
thf(fact_912_le0,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ zero_zero_nat @ N ) ).

% le0
thf(fact_913_bot__nat__0_Oextremum,axiom,
    ! [A: nat] : ( ord_less_eq_nat @ zero_zero_nat @ A ) ).

% bot_nat_0.extremum
thf(fact_914_nat__add__left__cancel__le,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( ord_less_eq_nat @ M @ N ) ) ).

% nat_add_left_cancel_le
thf(fact_915_diff__diff__cancel,axiom,
    ! [I3: nat,N: nat] :
      ( ( ord_less_eq_nat @ I3 @ N )
     => ( ( minus_minus_nat @ N @ ( minus_minus_nat @ N @ I3 ) )
        = I3 ) ) ).

% diff_diff_cancel
thf(fact_916_diff__is__0__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ( minus_minus_nat @ M @ N )
        = zero_zero_nat )
      = ( ord_less_eq_nat @ M @ N ) ) ).

% diff_is_0_eq
thf(fact_917_diff__is__0__eq_H,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( minus_minus_nat @ M @ N )
        = zero_zero_nat ) ) ).

% diff_is_0_eq'
thf(fact_918_Nat_Odiff__diff__right,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( minus_minus_nat @ I3 @ ( minus_minus_nat @ J2 @ K ) )
        = ( minus_minus_nat @ ( plus_plus_nat @ I3 @ K ) @ J2 ) ) ) ).

% Nat.diff_diff_right
thf(fact_919_Nat_Oadd__diff__assoc2,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( plus_plus_nat @ ( minus_minus_nat @ J2 @ K ) @ I3 )
        = ( minus_minus_nat @ ( plus_plus_nat @ J2 @ I3 ) @ K ) ) ) ).

% Nat.add_diff_assoc2
thf(fact_920_Nat_Oadd__diff__assoc,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( plus_plus_nat @ I3 @ ( minus_minus_nat @ J2 @ K ) )
        = ( minus_minus_nat @ ( plus_plus_nat @ I3 @ J2 ) @ K ) ) ) ).

% Nat.add_diff_assoc
thf(fact_921_upt__conv__Nil,axiom,
    ! [J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ J2 @ I3 )
     => ( ( upt @ I3 @ J2 )
        = nil_nat ) ) ).

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

% upt_eq_Nil_conv
thf(fact_923_Nat_Oex__has__greatest__nat,axiom,
    ! [P: nat > $o,K: nat,B: nat] :
      ( ( P @ K )
     => ( ! [Y5: nat] :
            ( ( P @ Y5 )
           => ( ord_less_eq_nat @ Y5 @ B ) )
       => ? [X4: nat] :
            ( ( P @ X4 )
            & ! [Y4: nat] :
                ( ( P @ Y4 )
               => ( ord_less_eq_nat @ Y4 @ X4 ) ) ) ) ) ).

% Nat.ex_has_greatest_nat
thf(fact_924_nat__le__linear,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
      | ( ord_less_eq_nat @ N @ M ) ) ).

% nat_le_linear
thf(fact_925_le__antisym,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( ord_less_eq_nat @ N @ M )
       => ( M = N ) ) ) ).

% le_antisym
thf(fact_926_eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( M = N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

% eq_imp_le
thf(fact_927_le__trans,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ( ord_less_eq_nat @ J2 @ K )
       => ( ord_less_eq_nat @ I3 @ K ) ) ) ).

% le_trans
thf(fact_928_le__refl,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ N @ N ) ).

% le_refl
thf(fact_929_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq_nat @ N @ zero_zero_nat )
      = ( N = zero_zero_nat ) ) ).

% le_0_eq
thf(fact_930_bot__nat__0_Oextremum__uniqueI,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ zero_zero_nat )
     => ( A = zero_zero_nat ) ) ).

% bot_nat_0.extremum_uniqueI
thf(fact_931_bot__nat__0_Oextremum__unique,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ zero_zero_nat )
      = ( A = zero_zero_nat ) ) ).

% bot_nat_0.extremum_unique
thf(fact_932_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ zero_zero_nat @ N ) ).

% less_eq_nat.simps(1)
thf(fact_933_nat__le__iff__add,axiom,
    ( ord_less_eq_nat
    = ( ^ [M4: nat,N4: nat] :
        ? [K2: nat] :
          ( N4
          = ( plus_plus_nat @ M4 @ K2 ) ) ) ) ).

% nat_le_iff_add
thf(fact_934_trans__le__add2,axiom,
    ! [I3: nat,J2: nat,M: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ord_less_eq_nat @ I3 @ ( plus_plus_nat @ M @ J2 ) ) ) ).

% trans_le_add2
thf(fact_935_trans__le__add1,axiom,
    ! [I3: nat,J2: nat,M: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ord_less_eq_nat @ I3 @ ( plus_plus_nat @ J2 @ M ) ) ) ).

% trans_le_add1
thf(fact_936_add__le__mono1,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ord_less_eq_nat @ ( plus_plus_nat @ I3 @ K ) @ ( plus_plus_nat @ J2 @ K ) ) ) ).

% add_le_mono1
thf(fact_937_add__le__mono,axiom,
    ! [I3: nat,J2: nat,K: nat,L: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ( ord_less_eq_nat @ K @ L )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ I3 @ K ) @ ( plus_plus_nat @ J2 @ L ) ) ) ) ).

% add_le_mono
thf(fact_938_le__Suc__ex,axiom,
    ! [K: nat,L: nat] :
      ( ( ord_less_eq_nat @ K @ L )
     => ? [N3: nat] :
          ( L
          = ( plus_plus_nat @ K @ N3 ) ) ) ).

% le_Suc_ex
thf(fact_939_add__leD2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ( ord_less_eq_nat @ K @ N ) ) ).

% add_leD2
thf(fact_940_add__leD1,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

% add_leD1
thf(fact_941_le__add2,axiom,
    ! [N: nat,M: nat] : ( ord_less_eq_nat @ N @ ( plus_plus_nat @ M @ N ) ) ).

% le_add2
thf(fact_942_le__add1,axiom,
    ! [N: nat,M: nat] : ( ord_less_eq_nat @ N @ ( plus_plus_nat @ N @ M ) ) ).

% le_add1
thf(fact_943_add__leE,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ~ ( ( ord_less_eq_nat @ M @ N )
         => ~ ( ord_less_eq_nat @ K @ N ) ) ) ).

% add_leE
thf(fact_944_nat__descend__induct,axiom,
    ! [N: nat,P: nat > $o,M: nat] :
      ( ! [K3: nat] :
          ( ( ord_less_nat @ N @ K3 )
         => ( P @ K3 ) )
     => ( ! [K3: nat] :
            ( ( ord_less_eq_nat @ K3 @ N )
           => ( ! [I4: nat] :
                  ( ( ord_less_nat @ K3 @ I4 )
                 => ( P @ I4 ) )
             => ( P @ K3 ) ) )
       => ( P @ M ) ) ) ).

% nat_descend_induct
thf(fact_945_nat__less__le,axiom,
    ( ord_less_nat
    = ( ^ [M4: nat,N4: nat] :
          ( ( ord_less_eq_nat @ M4 @ N4 )
          & ( M4 != N4 ) ) ) ) ).

% nat_less_le
thf(fact_946_less__imp__le__nat,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

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

% le_eq_less_or_eq
thf(fact_948_less__or__eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( ( ord_less_nat @ M @ N )
        | ( M = N ) )
     => ( ord_less_eq_nat @ M @ N ) ) ).

% less_or_eq_imp_le
thf(fact_949_le__neq__implies__less,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( M != N )
       => ( ord_less_nat @ M @ N ) ) ) ).

% le_neq_implies_less
thf(fact_950_less__mono__imp__le__mono,axiom,
    ! [F: nat > nat,I3: nat,J2: nat] :
      ( ! [I2: nat,J3: nat] :
          ( ( ord_less_nat @ I2 @ J3 )
         => ( ord_less_nat @ ( F @ I2 ) @ ( F @ J3 ) ) )
     => ( ( ord_less_eq_nat @ I3 @ J2 )
       => ( ord_less_eq_nat @ ( F @ I3 ) @ ( F @ J2 ) ) ) ) ).

% less_mono_imp_le_mono
thf(fact_951_Nat_Ole__imp__diff__is__add,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ( ( minus_minus_nat @ J2 @ I3 )
          = K )
        = ( J2
          = ( plus_plus_nat @ K @ I3 ) ) ) ) ).

% Nat.le_imp_diff_is_add
thf(fact_952_Nat_Odiff__add__assoc2,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( minus_minus_nat @ ( plus_plus_nat @ J2 @ I3 ) @ K )
        = ( plus_plus_nat @ ( minus_minus_nat @ J2 @ K ) @ I3 ) ) ) ).

% Nat.diff_add_assoc2
thf(fact_953_Nat_Odiff__add__assoc,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( minus_minus_nat @ ( plus_plus_nat @ I3 @ J2 ) @ K )
        = ( plus_plus_nat @ I3 @ ( minus_minus_nat @ J2 @ K ) ) ) ) ).

% Nat.diff_add_assoc
thf(fact_954_Nat_Ole__diff__conv2,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( ord_less_eq_nat @ I3 @ ( minus_minus_nat @ J2 @ K ) )
        = ( ord_less_eq_nat @ ( plus_plus_nat @ I3 @ K ) @ J2 ) ) ) ).

% Nat.le_diff_conv2
thf(fact_955_le__diff__conv,axiom,
    ! [J2: nat,K: nat,I3: nat] :
      ( ( ord_less_eq_nat @ ( minus_minus_nat @ J2 @ K ) @ I3 )
      = ( ord_less_eq_nat @ J2 @ ( plus_plus_nat @ I3 @ K ) ) ) ).

% le_diff_conv
thf(fact_956_less__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ord_less_nat @ ( minus_minus_nat @ M @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( ord_less_nat @ M @ N ) ) ) ) ).

% less_diff_iff
thf(fact_957_diff__less__mono,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_eq_nat @ C @ A )
       => ( ord_less_nat @ ( minus_minus_nat @ A @ C ) @ ( minus_minus_nat @ B @ C ) ) ) ) ).

% diff_less_mono
thf(fact_958_mono__nat__linear__lb,axiom,
    ! [F: nat > nat,M: 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 @ M ) @ K ) @ ( F @ ( plus_plus_nat @ M @ K ) ) ) ) ).

% mono_nat_linear_lb
thf(fact_959_ex__least__nat__le,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ N )
     => ( ~ ( P @ zero_zero_nat )
       => ? [K3: nat] :
            ( ( ord_less_eq_nat @ K3 @ N )
            & ! [I4: nat] :
                ( ( ord_less_nat @ I4 @ K3 )
               => ~ ( P @ I4 ) )
            & ( P @ K3 ) ) ) ) ).

% ex_least_nat_le
thf(fact_960_eq__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ( minus_minus_nat @ M @ K )
            = ( minus_minus_nat @ N @ K ) )
          = ( M = N ) ) ) ) ).

% eq_diff_iff
thf(fact_961_le__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ord_less_eq_nat @ ( minus_minus_nat @ M @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( ord_less_eq_nat @ M @ N ) ) ) ) ).

% le_diff_iff
thf(fact_962_Nat_Odiff__diff__eq,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( minus_minus_nat @ ( minus_minus_nat @ M @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( minus_minus_nat @ M @ N ) ) ) ) ).

% Nat.diff_diff_eq
thf(fact_963_diff__le__mono,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ M @ L ) @ ( minus_minus_nat @ N @ L ) ) ) ).

% diff_le_mono
thf(fact_964_diff__le__self,axiom,
    ! [M: nat,N: nat] : ( ord_less_eq_nat @ ( minus_minus_nat @ M @ N ) @ M ) ).

% diff_le_self
thf(fact_965_le__diff__iff_H,axiom,
    ! [A: nat,C: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ C )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ( ord_less_eq_nat @ ( minus_minus_nat @ C @ A ) @ ( minus_minus_nat @ C @ B ) )
          = ( ord_less_eq_nat @ B @ A ) ) ) ) ).

% le_diff_iff'
thf(fact_966_diff__le__mono2,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M ) ) ) ).

% diff_le_mono2
thf(fact_967_less__diff__conv2,axiom,
    ! [K: nat,J2: nat,I3: nat] :
      ( ( ord_less_eq_nat @ K @ J2 )
     => ( ( ord_less_nat @ ( minus_minus_nat @ J2 @ K ) @ I3 )
        = ( ord_less_nat @ J2 @ ( plus_plus_nat @ I3 @ K ) ) ) ) ).

% less_diff_conv2
thf(fact_968_upt__add__eq__append,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less_eq_nat @ I3 @ J2 )
     => ( ( upt @ I3 @ ( plus_plus_nat @ J2 @ K ) )
        = ( append_nat @ ( upt @ I3 @ J2 ) @ ( upt @ J2 @ ( plus_plus_nat @ J2 @ K ) ) ) ) ) ).

% upt_add_eq_append

% Helper facts (4)
thf(help_fChoice_1_1_fChoice_001t__Nat__Onat_T,axiom,
    ! [P: nat > $o] :
      ( ( P @ ( fChoice_nat @ P ) )
      = ( ? [X5: nat] : ( P @ X5 ) ) ) ).

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

thf(help_If_2_1_If_001t__List__Olist_Itf__f_J_T,axiom,
    ! [X2: list_f,Y: list_f] :
      ( ( if_list_f @ $false @ X2 @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_Itf__f_J_T,axiom,
    ! [X2: list_f,Y: list_f] :
      ( ( if_list_f @ $true @ X2 @ Y )
      = X2 ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    eval @ v2 @ f2 ).

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