TPTP Problem File: SLH0411^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    : FOL_Seq_Calc2/0004_Usemantics/prob_00055_002877__12693938_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1712 ( 782 unt; 416 typ;   0 def)
%            Number of atoms       : 3636 (2407 equ;   0 cnn)
%            Maximal formula atoms :   18 (   2 avg)
%            Number of connectives : 12620 ( 637   ~;  85   |; 450   &;10040   @)
%                                         (   0 <=>;1408  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   23 (   6 avg)
%            Number of types       :   28 (  27 usr)
%            Number of type conns  : 1927 (1927   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  392 ( 389 usr;  18 con; 0-5 aty)
%            Number of variables   : 4141 ( 392   ^;3434   !; 315   ?;4141   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-19 08:44:18.132
%------------------------------------------------------------------------------
% Could-be-implicit typings (27)
thf(ty_n_t__List__Olist_It__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J_J,type,
    list_list_list_tm: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J_J,type,
    list_list_list_fm: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__List__Olist_It__Nat__Onat_J_J_J,type,
    list_list_list_nat: $tType ).

thf(ty_n_t__List__Olist_I_062_It__List__Olist_Itf__a_J_Mtf__a_J_J,type,
    list_list_a_a: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J,type,
    list_list_tm: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J,type,
    list_list_fm: $tType ).

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

thf(ty_n_t__Set__Oset_It__List__Olist_It__SeCaV__Otm_J_J,type,
    set_list_tm: $tType ).

thf(ty_n_t__Set__Oset_It__List__Olist_It__SeCaV__Ofm_J_J,type,
    set_list_fm: $tType ).

thf(ty_n_t__Set__Oset_It__List__Olist_It__Nat__Onat_J_J,type,
    set_list_nat: $tType ).

thf(ty_n_t__List__Olist_It__Set__Oset_It__Nat__Onat_J_J,type,
    list_set_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Set__Oset_It__Nat__Onat_J_J,type,
    set_set_nat: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    list_list_a: $tType ).

thf(ty_n_t__Set__Oset_It__List__Olist_Itf__a_J_J,type,
    set_list_a: $tType ).

thf(ty_n_t__List__Olist_It__SeCaV__Otm_J,type,
    list_tm: $tType ).

thf(ty_n_t__List__Olist_It__SeCaV__Ofm_J,type,
    list_fm: $tType ).

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

thf(ty_n_t__Set__Oset_It__SeCaV__Otm_J,type,
    set_tm: $tType ).

thf(ty_n_t__Set__Oset_It__SeCaV__Ofm_J,type,
    set_fm: $tType ).

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

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

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

thf(ty_n_t__SeCaV__Otm,type,
    tm: $tType ).

thf(ty_n_t__SeCaV__Ofm,type,
    fm: $tType ).

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

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

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

% Explicit typings (389)
thf(sy_c_BNF__Greatest__Fixpoint_OShift_001t__Nat__Onat,type,
    bNF_Gr1872714664788909425ft_nat: set_list_nat > nat > set_list_nat ).

thf(sy_c_BNF__Greatest__Fixpoint_OShift_001t__SeCaV__Ofm,type,
    bNF_Gr6607445516916672786ift_fm: set_list_fm > fm > set_list_fm ).

thf(sy_c_BNF__Greatest__Fixpoint_OShift_001t__SeCaV__Otm,type,
    bNF_Gr6607445516917591172ift_tm: set_list_tm > tm > set_list_tm ).

thf(sy_c_BNF__Greatest__Fixpoint_OShift_001tf__a,type,
    bNF_Greatest_Shift_a: set_list_a > a > set_list_a ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__Nat__Onat,type,
    bNF_Gr6352880689984616693cc_nat: set_list_nat > list_nat > set_nat ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__SeCaV__Ofm,type,
    bNF_Greatest_Succ_fm: set_list_fm > list_fm > set_fm ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__SeCaV__Otm,type,
    bNF_Greatest_Succ_tm: set_list_tm > list_tm > set_tm ).

thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001tf__a,type,
    bNF_Greatest_Succ_a: set_list_a > list_a > set_a ).

thf(sy_c_Finite__Set_Ocard_001t__Nat__Onat,type,
    finite_card_nat: set_nat > nat ).

thf(sy_c_Finite__Set_Ocard_001t__SeCaV__Ofm,type,
    finite_card_fm: set_fm > nat ).

thf(sy_c_Finite__Set_Ocard_001t__SeCaV__Otm,type,
    finite_card_tm: set_tm > nat ).

thf(sy_c_Fun_Ofun__upd_001t__Nat__Onat_001_062_It__List__Olist_Itf__a_J_Mtf__a_J,type,
    fun_upd_nat_list_a_a: ( nat > list_a > a ) > nat > ( list_a > a ) > nat > list_a > a ).

thf(sy_c_Fun_Ofun__upd_001t__Nat__Onat_001t__Nat__Onat,type,
    fun_upd_nat_nat: ( nat > nat ) > nat > nat > nat > nat ).

thf(sy_c_Fun_Oinj__on_001t__Nat__Onat_001t__Nat__Onat,type,
    inj_on_nat_nat: ( nat > nat ) > set_nat > $o ).

thf(sy_c_Groups_Ominus__class_Ominus_001_062_It__Nat__Onat_M_Eo_J,type,
    minus_minus_nat_o: ( nat > $o ) > ( nat > $o ) > nat > $o ).

thf(sy_c_Groups_Ominus__class_Ominus_001_062_It__SeCaV__Ofm_M_Eo_J,type,
    minus_minus_fm_o: ( fm > $o ) > ( fm > $o ) > fm > $o ).

thf(sy_c_Groups_Ominus__class_Ominus_001_062_Itf__a_M_Eo_J,type,
    minus_minus_a_o: ( a > $o ) > ( a > $o ) > a > $o ).

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

thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_It__Nat__Onat_J,type,
    minus_minus_set_nat: set_nat > set_nat > set_nat ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_It__SeCaV__Ofm_J,type,
    minus_minus_set_fm: set_fm > set_fm > set_fm ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_Itf__a_J,type,
    minus_minus_set_a: set_a > set_a > set_a ).

thf(sy_c_Groups_Oone__class_Oone_001t__Nat__Onat,type,
    one_one_nat: nat ).

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

thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat,type,
    zero_zero_nat: nat ).

thf(sy_c_HOL_Oundefined_001t__Nat__Onat,type,
    undefined_nat: nat ).

thf(sy_c_HOL_Oundefined_001t__SeCaV__Ofm,type,
    undefined_fm: fm ).

thf(sy_c_HOL_Oundefined_001t__SeCaV__Otm,type,
    undefined_tm: tm ).

thf(sy_c_If_001_062_It__List__Olist_Itf__a_J_Mtf__a_J,type,
    if_list_a_a: $o > ( list_a > a ) > ( list_a > a ) > list_a > a ).

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

thf(sy_c_If_001t__List__Olist_It__SeCaV__Ofm_J,type,
    if_list_fm: $o > list_fm > list_fm > list_fm ).

thf(sy_c_If_001t__List__Olist_It__SeCaV__Otm_J,type,
    if_list_tm: $o > list_tm > list_tm > list_tm ).

thf(sy_c_If_001t__List__Olist_Itf__a_J,type,
    if_list_a: $o > list_a > list_a > list_a ).

thf(sy_c_If_001t__Nat__Onat,type,
    if_nat: $o > nat > nat > nat ).

thf(sy_c_If_001t__SeCaV__Ofm,type,
    if_fm: $o > fm > fm > fm ).

thf(sy_c_If_001t__SeCaV__Otm,type,
    if_tm: $o > tm > tm > tm ).

thf(sy_c_Lattices_Osup__class_Osup_001_062_It__Nat__Onat_M_Eo_J,type,
    sup_sup_nat_o: ( nat > $o ) > ( nat > $o ) > nat > $o ).

thf(sy_c_Lattices_Osup__class_Osup_001_062_It__SeCaV__Ofm_M_Eo_J,type,
    sup_sup_fm_o: ( fm > $o ) > ( fm > $o ) > fm > $o ).

thf(sy_c_Lattices_Osup__class_Osup_001_062_Itf__a_M_Eo_J,type,
    sup_sup_a_o: ( a > $o ) > ( a > $o ) > a > $o ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Nat__Onat,type,
    sup_sup_nat: nat > nat > nat ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__Nat__Onat_J,type,
    sup_sup_set_nat: set_nat > set_nat > set_nat ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_It__SeCaV__Ofm_J,type,
    sup_sup_set_fm: set_fm > set_fm > set_fm ).

thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_Itf__a_J,type,
    sup_sup_set_a: set_a > set_a > set_a ).

thf(sy_c_Lattices__Big_Osemilattice__sup__class_OSup__fin_001t__Nat__Onat,type,
    lattic1093996805478795353in_nat: set_nat > nat ).

thf(sy_c_Lattices__Big_Osemilattice__sup__class_OSup__fin_001t__Set__Oset_It__Nat__Onat_J,type,
    lattic3835124923745554447et_nat: set_set_nat > set_nat ).

thf(sy_c_List_Oappend_001t__List__Olist_It__Nat__Onat_J,type,
    append_list_nat: list_list_nat > list_list_nat > list_list_nat ).

thf(sy_c_List_Oappend_001t__List__Olist_It__SeCaV__Ofm_J,type,
    append_list_fm: list_list_fm > list_list_fm > list_list_fm ).

thf(sy_c_List_Oappend_001t__List__Olist_It__SeCaV__Otm_J,type,
    append_list_tm: list_list_tm > list_list_tm > list_list_tm ).

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

thf(sy_c_List_Oappend_001t__SeCaV__Ofm,type,
    append_fm: list_fm > list_fm > list_fm ).

thf(sy_c_List_Oappend_001t__SeCaV__Otm,type,
    append_tm: list_tm > list_tm > list_tm ).

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

thf(sy_c_List_Oarg__min__list_001t__Nat__Onat_001t__Nat__Onat,type,
    arg_min_list_nat_nat: ( nat > nat ) > list_nat > nat ).

thf(sy_c_List_Oarg__min__list_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    arg_min_list_fm_nat: ( fm > nat ) > list_fm > fm ).

thf(sy_c_List_Oarg__min__list_001t__SeCaV__Otm_001t__Nat__Onat,type,
    arg_min_list_tm_nat: ( tm > nat ) > list_tm > tm ).

thf(sy_c_List_Obind_001t__Nat__Onat_001t__Nat__Onat,type,
    bind_nat_nat: list_nat > ( nat > list_nat ) > list_nat ).

thf(sy_c_List_Obind_001t__Nat__Onat_001t__SeCaV__Ofm,type,
    bind_nat_fm: list_nat > ( nat > list_fm ) > list_fm ).

thf(sy_c_List_Obind_001t__Nat__Onat_001t__SeCaV__Otm,type,
    bind_nat_tm: list_nat > ( nat > list_tm ) > list_tm ).

thf(sy_c_List_Obind_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    bind_fm_nat: list_fm > ( fm > list_nat ) > list_nat ).

thf(sy_c_List_Obind_001t__SeCaV__Ofm_001t__SeCaV__Ofm,type,
    bind_fm_fm: list_fm > ( fm > list_fm ) > list_fm ).

thf(sy_c_List_Obind_001t__SeCaV__Ofm_001t__SeCaV__Otm,type,
    bind_fm_tm: list_fm > ( fm > list_tm ) > list_tm ).

thf(sy_c_List_Obind_001t__SeCaV__Otm_001t__Nat__Onat,type,
    bind_tm_nat: list_tm > ( tm > list_nat ) > list_nat ).

thf(sy_c_List_Obind_001t__SeCaV__Otm_001t__SeCaV__Ofm,type,
    bind_tm_fm: list_tm > ( tm > list_fm ) > list_fm ).

thf(sy_c_List_Obind_001t__SeCaV__Otm_001t__SeCaV__Otm,type,
    bind_tm_tm: list_tm > ( tm > list_tm ) > list_tm ).

thf(sy_c_List_Obutlast_001t__Nat__Onat,type,
    butlast_nat: list_nat > list_nat ).

thf(sy_c_List_Obutlast_001t__SeCaV__Ofm,type,
    butlast_fm: list_fm > list_fm ).

thf(sy_c_List_Obutlast_001t__SeCaV__Otm,type,
    butlast_tm: list_tm > list_tm ).

thf(sy_c_List_Obutlast_001tf__a,type,
    butlast_a: list_a > list_a ).

thf(sy_c_List_Ocan__select_001t__Nat__Onat,type,
    can_select_nat: ( nat > $o ) > set_nat > $o ).

thf(sy_c_List_Ocan__select_001t__SeCaV__Ofm,type,
    can_select_fm: ( fm > $o ) > set_fm > $o ).

thf(sy_c_List_Ocan__select_001tf__a,type,
    can_select_a: ( a > $o ) > set_a > $o ).

thf(sy_c_List_Oconcat_001t__List__Olist_It__Nat__Onat_J,type,
    concat_list_nat: list_list_list_nat > list_list_nat ).

thf(sy_c_List_Oconcat_001t__List__Olist_It__SeCaV__Ofm_J,type,
    concat_list_fm: list_list_list_fm > list_list_fm ).

thf(sy_c_List_Oconcat_001t__List__Olist_It__SeCaV__Otm_J,type,
    concat_list_tm: list_list_list_tm > list_list_tm ).

thf(sy_c_List_Oconcat_001t__Nat__Onat,type,
    concat_nat: list_list_nat > list_nat ).

thf(sy_c_List_Oconcat_001t__SeCaV__Ofm,type,
    concat_fm: list_list_fm > list_fm ).

thf(sy_c_List_Oconcat_001t__SeCaV__Otm,type,
    concat_tm: list_list_tm > list_tm ).

thf(sy_c_List_Ocoset_001t__Nat__Onat,type,
    coset_nat: list_nat > set_nat ).

thf(sy_c_List_Ocoset_001t__SeCaV__Ofm,type,
    coset_fm: list_fm > set_fm ).

thf(sy_c_List_Ocoset_001t__SeCaV__Otm,type,
    coset_tm: list_tm > set_tm ).

thf(sy_c_List_Ocoset_001tf__a,type,
    coset_a: list_a > set_a ).

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

thf(sy_c_List_Odistinct__adj_001t__Nat__Onat,type,
    distinct_adj_nat: list_nat > $o ).

thf(sy_c_List_Odistinct__adj_001t__SeCaV__Ofm,type,
    distinct_adj_fm: list_fm > $o ).

thf(sy_c_List_Odistinct__adj_001t__SeCaV__Otm,type,
    distinct_adj_tm: list_tm > $o ).

thf(sy_c_List_OdropWhile_001t__Nat__Onat,type,
    dropWhile_nat: ( nat > $o ) > list_nat > list_nat ).

thf(sy_c_List_OdropWhile_001t__SeCaV__Ofm,type,
    dropWhile_fm: ( fm > $o ) > list_fm > list_fm ).

thf(sy_c_List_OdropWhile_001t__SeCaV__Otm,type,
    dropWhile_tm: ( tm > $o ) > list_tm > list_tm ).

thf(sy_c_List_OdropWhile_001tf__a,type,
    dropWhile_a: ( a > $o ) > list_a > list_a ).

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

thf(sy_c_List_Ofilter_001t__List__Olist_It__Nat__Onat_J,type,
    filter_list_nat: ( list_nat > $o ) > list_list_nat > list_list_nat ).

thf(sy_c_List_Ofilter_001t__List__Olist_It__SeCaV__Ofm_J,type,
    filter_list_fm: ( list_fm > $o ) > list_list_fm > list_list_fm ).

thf(sy_c_List_Ofilter_001t__List__Olist_It__SeCaV__Otm_J,type,
    filter_list_tm: ( list_tm > $o ) > list_list_tm > list_list_tm ).

thf(sy_c_List_Ofilter_001t__Nat__Onat,type,
    filter_nat: ( nat > $o ) > list_nat > list_nat ).

thf(sy_c_List_Ofilter_001t__SeCaV__Ofm,type,
    filter_fm: ( fm > $o ) > list_fm > list_fm ).

thf(sy_c_List_Ofilter_001t__SeCaV__Otm,type,
    filter_tm: ( tm > $o ) > list_tm > list_tm ).

thf(sy_c_List_Ofilter_001tf__a,type,
    filter_a: ( a > $o ) > list_a > list_a ).

thf(sy_c_List_Ofold_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__Nat__Onat_J,type,
    fold_l5850465621530151245st_nat: ( list_nat > list_nat > list_nat ) > list_list_nat > list_nat > list_nat ).

thf(sy_c_List_Ofold_001t__Nat__Onat_001t__List__Olist_It__Nat__Onat_J,type,
    fold_nat_list_nat: ( nat > list_nat > list_nat ) > list_nat > list_nat > list_nat ).

thf(sy_c_List_Ofold_001t__Nat__Onat_001t__Nat__Onat,type,
    fold_nat_nat: ( nat > nat > nat ) > list_nat > nat > nat ).

thf(sy_c_List_Ofold_001t__SeCaV__Ofm_001t__List__Olist_It__SeCaV__Ofm_J,type,
    fold_fm_list_fm: ( fm > list_fm > list_fm ) > list_fm > list_fm > list_fm ).

thf(sy_c_List_Ofold_001t__SeCaV__Otm_001t__List__Olist_It__SeCaV__Otm_J,type,
    fold_tm_list_tm: ( tm > list_tm > list_tm ) > list_tm > list_tm > list_tm ).

thf(sy_c_List_Ofold_001t__Set__Oset_It__Nat__Onat_J_001t__Set__Oset_It__Nat__Onat_J,type,
    fold_set_nat_set_nat: ( set_nat > set_nat > set_nat ) > list_set_nat > set_nat > set_nat ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__Nat__Onat_J,type,
    foldr_6871341030409798377st_nat: ( list_nat > list_nat > list_nat ) > list_list_nat > list_nat > list_nat ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__Nat__Onat_J_001t__Nat__Onat,type,
    foldr_list_nat_nat: ( list_nat > nat > nat ) > list_list_nat > nat > nat ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__SeCaV__Ofm_J_001t__List__Olist_It__SeCaV__Ofm_J,type,
    foldr_8313202652749265895ist_fm: ( list_fm > list_fm > list_fm ) > list_list_fm > list_fm > list_fm ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__SeCaV__Ofm_J_001t__Nat__Onat,type,
    foldr_list_fm_nat: ( list_fm > nat > nat ) > list_list_fm > nat > nat ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__SeCaV__Otm_J_001t__List__Olist_It__SeCaV__Otm_J,type,
    foldr_1867511026292261223ist_tm: ( list_tm > list_tm > list_tm ) > list_list_tm > list_tm > list_tm ).

thf(sy_c_List_Ofoldr_001t__List__Olist_It__SeCaV__Otm_J_001t__Nat__Onat,type,
    foldr_list_tm_nat: ( list_tm > nat > nat ) > list_list_tm > nat > nat ).

thf(sy_c_List_Ogen__length_001t__Nat__Onat,type,
    gen_length_nat: nat > list_nat > nat ).

thf(sy_c_List_Ogen__length_001t__SeCaV__Ofm,type,
    gen_length_fm: nat > list_fm > nat ).

thf(sy_c_List_Ogen__length_001t__SeCaV__Otm,type,
    gen_length_tm: nat > list_tm > nat ).

thf(sy_c_List_Oinsert_001t__Nat__Onat,type,
    insert_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Oinsert_001t__SeCaV__Ofm,type,
    insert_fm: fm > list_fm > list_fm ).

thf(sy_c_List_Oinsert_001t__SeCaV__Otm,type,
    insert_tm: tm > list_tm > list_tm ).

thf(sy_c_List_Oinsert_001tf__a,type,
    insert_a: a > list_a > list_a ).

thf(sy_c_List_Olast_001t__Nat__Onat,type,
    last_nat: list_nat > nat ).

thf(sy_c_List_Olast_001t__SeCaV__Ofm,type,
    last_fm: list_fm > fm ).

thf(sy_c_List_Olast_001t__SeCaV__Otm,type,
    last_tm: list_tm > tm ).

thf(sy_c_List_Olast_001tf__a,type,
    last_a: list_a > a ).

thf(sy_c_List_Olinorder__class_Osort__key_001t__Nat__Onat_001t__Nat__Onat,type,
    linord738340561235409698at_nat: ( nat > nat ) > list_nat > list_nat ).

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

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__SeCaV__Ofm_J,type,
    cons_list_fm: list_fm > list_list_fm > list_list_fm ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__SeCaV__Otm_J,type,
    cons_list_tm: list_tm > list_list_tm > list_list_tm ).

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

thf(sy_c_List_Olist_OCons_001t__SeCaV__Ofm,type,
    cons_fm: fm > list_fm > list_fm ).

thf(sy_c_List_Olist_OCons_001t__SeCaV__Otm,type,
    cons_tm: tm > list_tm > list_tm ).

thf(sy_c_List_Olist_OCons_001t__Set__Oset_It__Nat__Onat_J,type,
    cons_set_nat: set_nat > list_set_nat > list_set_nat ).

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

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__Nat__Onat_J,type,
    nil_list_nat: list_list_nat ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__SeCaV__Ofm_J,type,
    nil_list_fm: list_list_fm ).

thf(sy_c_List_Olist_ONil_001t__List__Olist_It__SeCaV__Otm_J,type,
    nil_list_tm: list_list_tm ).

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001t__SeCaV__Ofm,type,
    nil_fm: list_fm ).

thf(sy_c_List_Olist_ONil_001t__SeCaV__Otm,type,
    nil_tm: list_tm ).

thf(sy_c_List_Olist_ONil_001tf__a,type,
    nil_a: list_a ).

thf(sy_c_List_Olist_Ocase__list_001_Eo_001t__Nat__Onat,type,
    case_list_o_nat: $o > ( nat > list_nat > $o ) > list_nat > $o ).

thf(sy_c_List_Olist_Ocase__list_001_Eo_001t__SeCaV__Ofm,type,
    case_list_o_fm: $o > ( fm > list_fm > $o ) > list_fm > $o ).

thf(sy_c_List_Olist_Ocase__list_001_Eo_001t__SeCaV__Otm,type,
    case_list_o_tm: $o > ( tm > list_tm > $o ) > list_tm > $o ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__List__Olist_It__Nat__Onat_J_J_001t__Nat__Onat,type,
    case_l3331202209248957608at_nat: list_list_nat > ( nat > list_nat > list_list_nat ) > list_nat > list_list_nat ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J_001t__SeCaV__Ofm,type,
    case_l1147175924207067418_fm_fm: list_list_fm > ( fm > list_fm > list_list_fm ) > list_fm > list_list_fm ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J_001t__SeCaV__Otm,type,
    case_l799553655970854810_tm_tm: list_list_tm > ( tm > list_tm > list_list_tm ) > list_tm > list_list_tm ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__Nat__Onat_J_001t__Nat__Onat,type,
    case_l2340614614379431832at_nat: list_nat > ( nat > list_nat > list_nat ) > list_nat > list_nat ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__SeCaV__Ofm_J_001t__SeCaV__Ofm,type,
    case_list_list_fm_fm: list_fm > ( fm > list_fm > list_fm ) > list_fm > list_fm ).

thf(sy_c_List_Olist_Ocase__list_001t__List__Olist_It__SeCaV__Otm_J_001t__SeCaV__Otm,type,
    case_list_list_tm_tm: list_tm > ( tm > list_tm > list_tm ) > list_tm > list_tm ).

thf(sy_c_List_Olist_Ohd_001t__List__Olist_It__Nat__Onat_J,type,
    hd_list_nat: list_list_nat > list_nat ).

thf(sy_c_List_Olist_Ohd_001t__List__Olist_It__SeCaV__Ofm_J,type,
    hd_list_fm: list_list_fm > list_fm ).

thf(sy_c_List_Olist_Ohd_001t__List__Olist_It__SeCaV__Otm_J,type,
    hd_list_tm: list_list_tm > list_tm ).

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

thf(sy_c_List_Olist_Ohd_001t__SeCaV__Ofm,type,
    hd_fm: list_fm > fm ).

thf(sy_c_List_Olist_Ohd_001t__SeCaV__Otm,type,
    hd_tm: list_tm > tm ).

thf(sy_c_List_Olist_Ohd_001tf__a,type,
    hd_a: list_a > a ).

thf(sy_c_List_Olist_Olist__all2_001t__Nat__Onat_001t__List__Olist_It__Nat__Onat_J,type,
    list_a5155878676884504761st_nat: ( nat > list_nat > $o ) > list_nat > list_list_nat > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__Nat__Onat_001t__Nat__Onat,type,
    list_all2_nat_nat: ( nat > nat > $o ) > list_nat > list_nat > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__Nat__Onat_001t__SeCaV__Ofm,type,
    list_all2_nat_fm: ( nat > fm > $o ) > list_nat > list_fm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__Nat__Onat_001t__SeCaV__Otm,type,
    list_all2_nat_tm: ( nat > tm > $o ) > list_nat > list_tm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__Nat__Onat_001tf__a,type,
    list_all2_nat_a: ( nat > a > $o ) > list_nat > list_a > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Ofm_001t__List__Olist_It__SeCaV__Ofm_J,type,
    list_all2_fm_list_fm: ( fm > list_fm > $o ) > list_fm > list_list_fm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    list_all2_fm_nat: ( fm > nat > $o ) > list_fm > list_nat > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Ofm_001t__SeCaV__Ofm,type,
    list_all2_fm_fm: ( fm > fm > $o ) > list_fm > list_fm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Ofm_001t__SeCaV__Otm,type,
    list_all2_fm_tm: ( fm > tm > $o ) > list_fm > list_tm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Ofm_001tf__a,type,
    list_all2_fm_a: ( fm > a > $o ) > list_fm > list_a > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Otm_001t__Nat__Onat,type,
    list_all2_tm_nat: ( tm > nat > $o ) > list_tm > list_nat > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Otm_001t__SeCaV__Ofm,type,
    list_all2_tm_fm: ( tm > fm > $o ) > list_tm > list_fm > $o ).

thf(sy_c_List_Olist_Olist__all2_001t__SeCaV__Otm_001t__SeCaV__Otm,type,
    list_all2_tm_tm: ( tm > tm > $o ) > list_tm > list_tm > $o ).

thf(sy_c_List_Olist_Olist__all2_001tf__a_001t__List__Olist_Itf__a_J,type,
    list_all2_a_list_a: ( a > list_a > $o ) > list_a > list_list_a > $o ).

thf(sy_c_List_Olist_Olist__all2_001tf__a_001t__Nat__Onat,type,
    list_all2_a_nat: ( a > nat > $o ) > list_a > list_nat > $o ).

thf(sy_c_List_Olist_Olist__all2_001tf__a_001t__SeCaV__Ofm,type,
    list_all2_a_fm: ( a > fm > $o ) > list_a > list_fm > $o ).

thf(sy_c_List_Olist_Olist__all2_001tf__a_001tf__a,type,
    list_all2_a_a: ( a > a > $o ) > list_a > list_a > $o ).

thf(sy_c_List_Olist_Olist__all_001t__Nat__Onat,type,
    list_all_nat: ( nat > $o ) > list_nat > $o ).

thf(sy_c_List_Olist_Olist__all_001t__SeCaV__Ofm,type,
    list_all_fm: ( fm > $o ) > list_fm > $o ).

thf(sy_c_List_Olist_Olist__all_001t__SeCaV__Otm,type,
    list_all_tm: ( tm > $o ) > list_tm > $o ).

thf(sy_c_List_Olist_Olist__all_001tf__a,type,
    list_all_a: ( a > $o ) > list_a > $o ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__List__Olist_It__Nat__Onat_J_J,type,
    map_li960784813134754710st_nat: ( list_nat > list_list_nat ) > list_list_nat > list_list_list_nat ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__Nat__Onat_J_001t__List__Olist_It__Nat__Onat_J,type,
    map_li7225945977422193158st_nat: ( list_nat > list_nat ) > list_list_nat > list_list_nat ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__Nat__Onat_J_001t__Nat__Onat,type,
    map_list_nat_nat: ( list_nat > nat ) > list_list_nat > list_nat ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Ofm_J_001t__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J,type,
    map_li1351512418201717386ist_fm: ( list_fm > list_list_fm ) > list_list_fm > list_list_list_fm ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Ofm_J_001t__List__Olist_It__SeCaV__Ofm_J,type,
    map_list_fm_list_fm: ( list_fm > list_fm ) > list_list_fm > list_list_fm ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Ofm_J_001t__SeCaV__Ofm,type,
    map_list_fm_fm: ( list_fm > fm ) > list_list_fm > list_fm ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Otm_J_001t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J,type,
    map_li6264597563971819530ist_tm: ( list_tm > list_list_tm ) > list_list_tm > list_list_list_tm ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Otm_J_001t__List__Olist_It__SeCaV__Otm_J,type,
    map_list_tm_list_tm: ( list_tm > list_tm ) > list_list_tm > list_list_tm ).

thf(sy_c_List_Olist_Omap_001t__List__Olist_It__SeCaV__Otm_J_001t__SeCaV__Otm,type,
    map_list_tm_tm: ( list_tm > tm ) > list_list_tm > list_tm ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001_062_It__List__Olist_Itf__a_J_Mtf__a_J,type,
    map_nat_list_a_a: ( nat > list_a > a ) > list_nat > list_list_a_a ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__List__Olist_It__List__Olist_It__Nat__Onat_J_J,type,
    map_na6205611841492582150st_nat: ( nat > list_list_nat ) > list_nat > list_list_list_nat ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__List__Olist_It__Nat__Onat_J,type,
    map_nat_list_nat: ( nat > list_nat ) > list_nat > list_list_nat ).

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

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__SeCaV__Ofm,type,
    map_nat_fm: ( nat > fm ) > list_nat > list_fm ).

thf(sy_c_List_Olist_Omap_001t__Nat__Onat_001t__SeCaV__Otm,type,
    map_nat_tm: ( nat > tm ) > list_nat > list_tm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    map_fm_nat: ( fm > nat ) > list_fm > list_nat ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Ofm_001t__SeCaV__Ofm,type,
    map_fm_fm: ( fm > fm ) > list_fm > list_fm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Ofm_001t__SeCaV__Otm,type,
    map_fm_tm: ( fm > tm ) > list_fm > list_tm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Otm_001t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J,type,
    map_tm_list_list_tm: ( tm > list_list_tm ) > list_tm > list_list_list_tm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Otm_001t__List__Olist_It__SeCaV__Otm_J,type,
    map_tm_list_tm: ( tm > list_tm ) > list_tm > list_list_tm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Otm_001t__Nat__Onat,type,
    map_tm_nat: ( tm > nat ) > list_tm > list_nat ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Otm_001t__SeCaV__Ofm,type,
    map_tm_fm: ( tm > fm ) > list_tm > list_fm ).

thf(sy_c_List_Olist_Omap_001t__SeCaV__Otm_001t__SeCaV__Otm,type,
    map_tm_tm: ( tm > tm ) > list_tm > list_tm ).

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_Orec__list_001t__List__Olist_It__Nat__Onat_J_001t__Nat__Onat,type,
    rec_li7516600145284979816at_nat: list_nat > ( nat > list_nat > list_nat > list_nat ) > list_nat > list_nat ).

thf(sy_c_List_Olist_Oset_001t__List__Olist_It__Nat__Onat_J,type,
    set_list_nat2: list_list_nat > set_list_nat ).

thf(sy_c_List_Olist_Oset_001t__List__Olist_It__SeCaV__Ofm_J,type,
    set_list_fm2: list_list_fm > set_list_fm ).

thf(sy_c_List_Olist_Oset_001t__List__Olist_It__SeCaV__Otm_J,type,
    set_list_tm2: list_list_tm > set_list_tm ).

thf(sy_c_List_Olist_Oset_001t__List__Olist_Itf__a_J,type,
    set_list_a2: list_list_a > set_list_a ).

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

thf(sy_c_List_Olist_Oset_001t__SeCaV__Ofm,type,
    set_fm2: list_fm > set_fm ).

thf(sy_c_List_Olist_Oset_001t__SeCaV__Otm,type,
    set_tm2: list_tm > set_tm ).

thf(sy_c_List_Olist_Oset_001t__Set__Oset_It__Nat__Onat_J,type,
    set_set_nat2: list_set_nat > set_set_nat ).

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

thf(sy_c_List_Olist_Osize__list_001t__SeCaV__Otm,type,
    size_list_tm: ( tm > nat ) > list_tm > nat ).

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

thf(sy_c_List_Olist_Otl_001t__SeCaV__Ofm,type,
    tl_fm: list_fm > list_fm ).

thf(sy_c_List_Olist_Otl_001t__SeCaV__Otm,type,
    tl_tm: list_tm > list_tm ).

thf(sy_c_List_Olist_Otl_001tf__a,type,
    tl_a: list_a > list_a ).

thf(sy_c_List_Olist__ex1_001t__Nat__Onat,type,
    list_ex1_nat: ( nat > $o ) > list_nat > $o ).

thf(sy_c_List_Olist__ex1_001t__SeCaV__Ofm,type,
    list_ex1_fm: ( fm > $o ) > list_fm > $o ).

thf(sy_c_List_Olist__ex1_001t__SeCaV__Otm,type,
    list_ex1_tm: ( tm > $o ) > list_tm > $o ).

thf(sy_c_List_Olist__ex1_001tf__a,type,
    list_ex1_a: ( a > $o ) > list_a > $o ).

thf(sy_c_List_Omap__tailrec_001t__Nat__Onat_001t__Nat__Onat,type,
    map_tailrec_nat_nat: ( nat > nat ) > list_nat > list_nat ).

thf(sy_c_List_Omap__tailrec__rev_001t__Nat__Onat_001t__Nat__Onat,type,
    map_ta7164188454487880599at_nat: ( nat > nat ) > list_nat > list_nat > list_nat ).

thf(sy_c_List_Omap__tailrec__rev_001t__Nat__Onat_001t__SeCaV__Otm,type,
    map_ta389968950240100318nat_tm: ( nat > tm ) > list_nat > list_tm > list_tm ).

thf(sy_c_List_Omap__tailrec__rev_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    map_ta6142991304421856526fm_nat: ( fm > nat ) > list_fm > list_nat > list_nat ).

thf(sy_c_List_Omap__tailrec__rev_001t__SeCaV__Ofm_001t__SeCaV__Otm,type,
    map_ta229225445363629095_fm_tm: ( fm > tm ) > list_fm > list_tm > list_tm ).

thf(sy_c_List_Omap__tailrec__rev_001t__SeCaV__Otm_001t__Nat__Onat,type,
    map_ta7807370561492357248tm_nat: ( tm > nat ) > list_tm > list_nat > list_nat ).

thf(sy_c_List_Omap__tailrec__rev_001t__SeCaV__Otm_001t__SeCaV__Otm,type,
    map_ta4789309763159252277_tm_tm: ( tm > tm ) > list_tm > list_tm > list_tm ).

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__SeCaV__Ofm,type,
    maps_nat_fm: ( nat > list_fm ) > list_nat > list_fm ).

thf(sy_c_List_Omaps_001t__Nat__Onat_001t__SeCaV__Otm,type,
    maps_nat_tm: ( nat > list_tm ) > list_nat > list_tm ).

thf(sy_c_List_Omaps_001t__SeCaV__Ofm_001t__Nat__Onat,type,
    maps_fm_nat: ( fm > list_nat ) > list_fm > list_nat ).

thf(sy_c_List_Omaps_001t__SeCaV__Ofm_001t__SeCaV__Ofm,type,
    maps_fm_fm: ( fm > list_fm ) > list_fm > list_fm ).

thf(sy_c_List_Omaps_001t__SeCaV__Ofm_001t__SeCaV__Otm,type,
    maps_fm_tm: ( fm > list_tm ) > list_fm > list_tm ).

thf(sy_c_List_Omaps_001t__SeCaV__Otm_001t__Nat__Onat,type,
    maps_tm_nat: ( tm > list_nat ) > list_tm > list_nat ).

thf(sy_c_List_Omaps_001t__SeCaV__Otm_001t__SeCaV__Ofm,type,
    maps_tm_fm: ( tm > list_fm ) > list_tm > list_fm ).

thf(sy_c_List_Omaps_001t__SeCaV__Otm_001t__SeCaV__Otm,type,
    maps_tm_tm: ( tm > list_tm ) > list_tm > list_tm ).

thf(sy_c_List_On__lists_001t__Nat__Onat,type,
    n_lists_nat: nat > list_nat > list_list_nat ).

thf(sy_c_List_On__lists_001t__SeCaV__Ofm,type,
    n_lists_fm: nat > list_fm > list_list_fm ).

thf(sy_c_List_On__lists_001t__SeCaV__Otm,type,
    n_lists_tm: nat > list_tm > list_list_tm ).

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

thf(sy_c_List_Onths_001t__Nat__Onat,type,
    nths_nat: list_nat > set_nat > list_nat ).

thf(sy_c_List_Onths_001t__SeCaV__Ofm,type,
    nths_fm: list_fm > set_nat > list_fm ).

thf(sy_c_List_Onths_001t__SeCaV__Otm,type,
    nths_tm: list_tm > set_nat > list_tm ).

thf(sy_c_List_Onths_001tf__a,type,
    nths_a: list_a > set_nat > list_a ).

thf(sy_c_List_Oord_Olexordp__eq_001t__Nat__Onat,type,
    lexordp_eq_nat: ( nat > nat > $o ) > list_nat > list_nat > $o ).

thf(sy_c_List_Oord_Olexordp__eq_001t__SeCaV__Ofm,type,
    lexordp_eq_fm: ( fm > fm > $o ) > list_fm > list_fm > $o ).

thf(sy_c_List_Oord_Olexordp__eq_001t__SeCaV__Otm,type,
    lexordp_eq_tm: ( tm > tm > $o ) > list_tm > list_tm > $o ).

thf(sy_c_List_Oproduct__lists_001t__Nat__Onat,type,
    product_lists_nat: list_list_nat > list_list_nat ).

thf(sy_c_List_Oproduct__lists_001t__SeCaV__Ofm,type,
    product_lists_fm: list_list_fm > list_list_fm ).

thf(sy_c_List_Oproduct__lists_001t__SeCaV__Otm,type,
    product_lists_tm: list_list_tm > list_list_tm ).

thf(sy_c_List_Oproduct__lists_001tf__a,type,
    product_lists_a: list_list_a > list_list_a ).

thf(sy_c_List_Oremdups__adj_001t__Nat__Onat,type,
    remdups_adj_nat: list_nat > list_nat ).

thf(sy_c_List_Oremdups__adj_001t__SeCaV__Ofm,type,
    remdups_adj_fm: list_fm > list_fm ).

thf(sy_c_List_Oremdups__adj_001t__SeCaV__Otm,type,
    remdups_adj_tm: list_tm > list_tm ).

thf(sy_c_List_Oremdups__adj_001tf__a,type,
    remdups_adj_a: list_a > list_a ).

thf(sy_c_List_Oremdups__adj__rel_001t__Nat__Onat,type,
    remdups_adj_rel_nat: list_nat > list_nat > $o ).

thf(sy_c_List_Oremdups__adj__rel_001t__SeCaV__Ofm,type,
    remdups_adj_rel_fm: list_fm > list_fm > $o ).

thf(sy_c_List_Oremdups__adj__rel_001t__SeCaV__Otm,type,
    remdups_adj_rel_tm: list_tm > list_tm > $o ).

thf(sy_c_List_Oremove1_001t__Nat__Onat,type,
    remove1_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Oremove1_001t__SeCaV__Ofm,type,
    remove1_fm: fm > list_fm > list_fm ).

thf(sy_c_List_Oremove1_001t__SeCaV__Otm,type,
    remove1_tm: tm > list_tm > list_tm ).

thf(sy_c_List_Oremove1_001tf__a,type,
    remove1_a: a > list_a > list_a ).

thf(sy_c_List_Oreplicate_001t__List__Olist_It__Nat__Onat_J,type,
    replicate_list_nat: nat > list_nat > list_list_nat ).

thf(sy_c_List_Oreplicate_001t__List__Olist_It__SeCaV__Ofm_J,type,
    replicate_list_fm: nat > list_fm > list_list_fm ).

thf(sy_c_List_Oreplicate_001t__List__Olist_It__SeCaV__Otm_J,type,
    replicate_list_tm: nat > list_tm > list_list_tm ).

thf(sy_c_List_Oreplicate_001t__Nat__Onat,type,
    replicate_nat: nat > nat > list_nat ).

thf(sy_c_List_Oreplicate_001t__SeCaV__Ofm,type,
    replicate_fm: nat > fm > list_fm ).

thf(sy_c_List_Oreplicate_001t__SeCaV__Otm,type,
    replicate_tm: nat > tm > list_tm ).

thf(sy_c_List_Oreplicate_001tf__a,type,
    replicate_a: nat > a > list_a ).

thf(sy_c_List_Orev_001t__List__Olist_It__Nat__Onat_J,type,
    rev_list_nat: list_list_nat > list_list_nat ).

thf(sy_c_List_Orev_001t__Nat__Onat,type,
    rev_nat: list_nat > list_nat ).

thf(sy_c_List_Orev_001t__SeCaV__Ofm,type,
    rev_fm: list_fm > list_fm ).

thf(sy_c_List_Orev_001t__SeCaV__Otm,type,
    rev_tm: list_tm > list_tm ).

thf(sy_c_List_Orev_001tf__a,type,
    rev_a: list_a > list_a ).

thf(sy_c_List_Orotate1_001t__Nat__Onat,type,
    rotate1_nat: list_nat > list_nat ).

thf(sy_c_List_Orotate1_001t__SeCaV__Ofm,type,
    rotate1_fm: list_fm > list_fm ).

thf(sy_c_List_Orotate1_001t__SeCaV__Otm,type,
    rotate1_tm: list_tm > list_tm ).

thf(sy_c_List_Oshuffles_001t__Nat__Onat,type,
    shuffles_nat: list_nat > list_nat > set_list_nat ).

thf(sy_c_List_Oshuffles_001t__SeCaV__Ofm,type,
    shuffles_fm: list_fm > list_fm > set_list_fm ).

thf(sy_c_List_Oshuffles_001t__SeCaV__Otm,type,
    shuffles_tm: list_tm > list_tm > set_list_tm ).

thf(sy_c_List_Osorted__wrt_001t__Nat__Onat,type,
    sorted_wrt_nat: ( nat > nat > $o ) > list_nat > $o ).

thf(sy_c_List_Osubseqs_001t__Nat__Onat,type,
    subseqs_nat: list_nat > list_list_nat ).

thf(sy_c_List_Osubseqs_001t__SeCaV__Ofm,type,
    subseqs_fm: list_fm > list_list_fm ).

thf(sy_c_List_Osubseqs_001t__SeCaV__Otm,type,
    subseqs_tm: list_tm > list_list_tm ).

thf(sy_c_List_Osuccessively_001t__Nat__Onat,type,
    successively_nat: ( nat > nat > $o ) > list_nat > $o ).

thf(sy_c_List_Osuccessively_001t__SeCaV__Ofm,type,
    successively_fm: ( fm > fm > $o ) > list_fm > $o ).

thf(sy_c_List_Osuccessively_001t__SeCaV__Otm,type,
    successively_tm: ( tm > tm > $o ) > list_tm > $o ).

thf(sy_c_List_Osuccessively_001tf__a,type,
    successively_a: ( a > a > $o ) > list_a > $o ).

thf(sy_c_List_Otake_001t__Nat__Onat,type,
    take_nat: nat > list_nat > list_nat ).

thf(sy_c_List_Otranspose_001t__Nat__Onat,type,
    transpose_nat: list_list_nat > list_list_nat ).

thf(sy_c_List_Otranspose_001t__SeCaV__Ofm,type,
    transpose_fm: list_list_fm > list_list_fm ).

thf(sy_c_List_Otranspose_001t__SeCaV__Otm,type,
    transpose_tm: list_list_tm > list_list_tm ).

thf(sy_c_List_Otranspose__rel_001t__Nat__Onat,type,
    transpose_rel_nat: list_list_nat > list_list_nat > $o ).

thf(sy_c_List_Otranspose__rel_001t__SeCaV__Ofm,type,
    transpose_rel_fm: list_list_fm > list_list_fm > $o ).

thf(sy_c_List_Otranspose__rel_001t__SeCaV__Otm,type,
    transpose_rel_tm: list_list_tm > list_list_tm > $o ).

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

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

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

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__List__Olist_It__Nat__Onat_J_J,type,
    size_s3023201423986296836st_nat: list_list_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J,type,
    size_s115229985653309035ist_fm: list_list_fm > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J,type,
    size_s9096087352182575069ist_tm: list_list_tm > 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__SeCaV__Ofm_J,type,
    size_size_list_fm: list_fm > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__SeCaV__Otm_J,type,
    size_size_list_tm: list_tm > 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__SeCaV__Otm,type,
    size_size_tm: tm > nat ).

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

thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Nat__Onat_J,type,
    bot_bot_set_nat: set_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_001_062_It__List__Olist_It__Nat__Onat_J_M_Eo_J,type,
    ord_le1520216061033275535_nat_o: ( list_nat > $o ) > ( list_nat > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__List__Olist_It__SeCaV__Ofm_J_M_Eo_J,type,
    ord_le6518561683347902116t_fm_o: ( list_fm > $o ) > ( list_fm > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__Nat__Onat_M_Eo_J,type,
    ord_less_eq_nat_o: ( nat > $o ) > ( nat > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__SeCaV__Ofm_M_Eo_J,type,
    ord_less_eq_fm_o: ( fm > $o ) > ( fm > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_Itf__a_M_Eo_J,type,
    ord_less_eq_a_o: ( a > $o ) > ( a > $o ) > $o ).

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

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Nat__Onat_J,type,
    ord_less_eq_set_nat: set_nat > set_nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__SeCaV__Ofm_J,type,
    ord_less_eq_set_fm: set_fm > set_fm > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__SeCaV__Otm_J,type,
    ord_less_eq_set_tm: set_tm > set_tm > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_Itf__a_J,type,
    ord_less_eq_set_a: set_a > set_a > $o ).

thf(sy_c_Orderings_Oord__class_Omax_001t__Nat__Onat,type,
    ord_max_nat: nat > nat > nat ).

thf(sy_c_SeCaV_Oext_001t__Nat__Onat,type,
    ext_nat: list_nat > list_nat > $o ).

thf(sy_c_SeCaV_Oext_001t__SeCaV__Ofm,type,
    ext_fm: list_fm > list_fm > $o ).

thf(sy_c_SeCaV_Oext_001t__SeCaV__Otm,type,
    ext_tm: list_tm > list_tm > $o ).

thf(sy_c_SeCaV_Oinc__list,type,
    inc_list: list_tm > list_tm ).

thf(sy_c_SeCaV_Oinc__term,type,
    inc_term: tm > tm ).

thf(sy_c_SeCaV_Oliftt,type,
    liftt: tm > tm ).

thf(sy_c_SeCaV_Oliftts,type,
    liftts: list_tm > list_tm ).

thf(sy_c_SeCaV_Omember_001t__Nat__Onat,type,
    member_nat: nat > list_nat > $o ).

thf(sy_c_SeCaV_Omember_001t__SeCaV__Ofm,type,
    member_fm: fm > list_fm > $o ).

thf(sy_c_SeCaV_Omember_001t__SeCaV__Otm,type,
    member_tm: tm > list_tm > $o ).

thf(sy_c_SeCaV_Omember_001tf__a,type,
    member_a: a > list_a > $o ).

thf(sy_c_SeCaV_Onew__list,type,
    new_list: nat > list_tm > $o ).

thf(sy_c_SeCaV_Onew__term,type,
    new_term: nat > tm > $o ).

thf(sy_c_SeCaV_Onews,type,
    news: nat > list_fm > $o ).

thf(sy_c_SeCaV_Oparams,type,
    params: fm > set_nat ).

thf(sy_c_SeCaV_Oparamst,type,
    paramst: tm > set_nat ).

thf(sy_c_SeCaV_Oparamst_H,type,
    paramst2: tm > set_nat ).

thf(sy_c_SeCaV_Oparamst_H_H,type,
    paramst3: tm > set_nat ).

thf(sy_c_SeCaV_Oparamsts,type,
    paramsts: list_tm > set_nat ).

thf(sy_c_SeCaV_Osemantics_001tf__a,type,
    semantics_a: ( nat > a ) > ( nat > list_a > a ) > ( nat > list_a > $o ) > fm > $o ).

thf(sy_c_SeCaV_Osemantics__list_001t__Nat__Onat,type,
    semantics_list_nat: ( nat > nat ) > ( nat > list_nat > nat ) > list_tm > list_nat ).

thf(sy_c_SeCaV_Osemantics__list_001t__SeCaV__Ofm,type,
    semantics_list_fm: ( nat > fm ) > ( nat > list_fm > fm ) > list_tm > list_fm ).

thf(sy_c_SeCaV_Osemantics__list_001t__SeCaV__Otm,type,
    semantics_list_tm: ( nat > tm ) > ( nat > list_tm > tm ) > list_tm > list_tm ).

thf(sy_c_SeCaV_Osemantics__list_001tf__a,type,
    semantics_list_a: ( nat > a ) > ( nat > list_a > a ) > list_tm > list_a ).

thf(sy_c_SeCaV_Osemantics__term_001t__Nat__Onat,type,
    semantics_term_nat: ( nat > nat ) > ( nat > list_nat > nat ) > tm > nat ).

thf(sy_c_SeCaV_Osemantics__term_001t__SeCaV__Ofm,type,
    semantics_term_fm: ( nat > fm ) > ( nat > list_fm > fm ) > tm > fm ).

thf(sy_c_SeCaV_Osemantics__term_001t__SeCaV__Otm,type,
    semantics_term_tm: ( nat > tm ) > ( nat > list_tm > tm ) > tm > tm ).

thf(sy_c_SeCaV_Osemantics__term_001tf__a,type,
    semantics_term_a: ( nat > a ) > ( nat > list_a > a ) > tm > a ).

thf(sy_c_SeCaV_Osub__list,type,
    sub_list: nat > tm > list_tm > list_tm ).

thf(sy_c_SeCaV_Osub__term,type,
    sub_term: nat > tm > tm > tm ).

thf(sy_c_SeCaV_Osubstt,type,
    substt: tm > tm > nat > tm ).

thf(sy_c_SeCaV_Osubstts,type,
    substts: list_tm > tm > nat > list_tm ).

thf(sy_c_SeCaV_Otm_OFun,type,
    fun: nat > list_tm > tm ).

thf(sy_c_SeCaV_Otm_OVar,type,
    var: nat > tm ).

thf(sy_c_SeCaV_Otm_Osize__tm,type,
    size_tm: tm > nat ).

thf(sy_c_Set_OCollect_001t__List__Olist_It__Nat__Onat_J,type,
    collect_list_nat: ( list_nat > $o ) > set_list_nat ).

thf(sy_c_Set_OCollect_001t__List__Olist_It__SeCaV__Ofm_J,type,
    collect_list_fm: ( list_fm > $o ) > set_list_fm ).

thf(sy_c_Set_OCollect_001t__List__Olist_It__SeCaV__Otm_J,type,
    collect_list_tm: ( list_tm > $o ) > set_list_tm ).

thf(sy_c_Set_OCollect_001t__List__Olist_Itf__a_J,type,
    collect_list_a: ( list_a > $o ) > set_list_a ).

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

thf(sy_c_Set_OCollect_001t__SeCaV__Ofm,type,
    collect_fm: ( fm > $o ) > set_fm ).

thf(sy_c_Set_OCollect_001t__SeCaV__Otm,type,
    collect_tm: ( tm > $o ) > set_tm ).

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

thf(sy_c_Set_Ofilter_001t__Nat__Onat,type,
    filter_nat2: ( nat > $o ) > set_nat > set_nat ).

thf(sy_c_Set_Ofilter_001t__SeCaV__Ofm,type,
    filter_fm2: ( fm > $o ) > set_fm > set_fm ).

thf(sy_c_Set_Ofilter_001tf__a,type,
    filter_a2: ( a > $o ) > set_a > set_a ).

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

thf(sy_c_Set_Othe__elem_001t__SeCaV__Ofm,type,
    the_elem_fm: set_fm > fm ).

thf(sy_c_Set_Othe__elem_001t__SeCaV__Otm,type,
    the_elem_tm: set_tm > tm ).

thf(sy_c_Usemantics_Ois__env_001t__Nat__Onat,type,
    is_env_nat: set_nat > ( nat > nat ) > $o ).

thf(sy_c_Usemantics_Ois__env_001t__SeCaV__Ofm,type,
    is_env_fm: set_fm > ( nat > fm ) > $o ).

thf(sy_c_Usemantics_Ois__env_001tf__a,type,
    is_env_a: set_a > ( nat > a ) > $o ).

thf(sy_c_Usemantics_Ois__fdenot_001t__Nat__Onat,type,
    is_fdenot_nat: set_nat > ( nat > list_nat > nat ) > $o ).

thf(sy_c_Usemantics_Ois__fdenot_001t__SeCaV__Ofm,type,
    is_fdenot_fm: set_fm > ( nat > list_fm > fm ) > $o ).

thf(sy_c_Usemantics_Ois__fdenot_001tf__a,type,
    is_fdenot_a: set_a > ( nat > list_a > a ) > $o ).

thf(sy_c_Usemantics_Ousemantics_001tf__a,type,
    usemantics_a: set_a > ( nat > a ) > ( nat > list_a > a ) > ( nat > list_a > $o ) > fm > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__List__Olist_It__Nat__Onat_J_J,type,
    accp_list_list_nat: ( list_list_nat > list_list_nat > $o ) > list_list_nat > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__List__Olist_It__SeCaV__Ofm_J_J,type,
    accp_list_list_fm: ( list_list_fm > list_list_fm > $o ) > list_list_fm > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__List__Olist_It__SeCaV__Otm_J_J,type,
    accp_list_list_tm: ( list_list_tm > list_list_tm > $o ) > list_list_tm > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__Nat__Onat_J,type,
    accp_list_nat: ( list_nat > list_nat > $o ) > list_nat > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__SeCaV__Ofm_J,type,
    accp_list_fm: ( list_fm > list_fm > $o ) > list_fm > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__List__Olist_It__SeCaV__Otm_J,type,
    accp_list_tm: ( list_tm > list_tm > $o ) > list_tm > $o ).

thf(sy_c_member_001t__List__Olist_It__Nat__Onat_J,type,
    member_list_nat: list_nat > set_list_nat > $o ).

thf(sy_c_member_001t__List__Olist_It__SeCaV__Ofm_J,type,
    member_list_fm: list_fm > set_list_fm > $o ).

thf(sy_c_member_001t__List__Olist_It__SeCaV__Otm_J,type,
    member_list_tm: list_tm > set_list_tm > $o ).

thf(sy_c_member_001t__List__Olist_Itf__a_J,type,
    member_list_a: list_a > set_list_a > $o ).

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

thf(sy_c_member_001t__SeCaV__Ofm,type,
    member_fm2: fm > set_fm > $o ).

thf(sy_c_member_001t__SeCaV__Otm,type,
    member_tm2: tm > set_tm > $o ).

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

thf(sy_v_f,type,
    f: nat > list_a > a ).

thf(sy_v_i,type,
    i: nat ).

thf(sy_v_u,type,
    u: set_a ).

thf(sy_v_x,type,
    x: a ).

% Relevant facts (1276)
thf(fact_0_fun__upd__upd,axiom,
    ! [F: nat > list_a > a,X: nat,Y: list_a > a,Z: list_a > a] :
      ( ( fun_upd_nat_list_a_a @ ( fun_upd_nat_list_a_a @ F @ X @ Y ) @ X @ Z )
      = ( fun_upd_nat_list_a_a @ F @ X @ Z ) ) ).

% fun_upd_upd
thf(fact_1_fun__upd__triv,axiom,
    ! [F: nat > list_a > a,X: nat] :
      ( ( fun_upd_nat_list_a_a @ F @ X @ ( F @ X ) )
      = F ) ).

% fun_upd_triv
thf(fact_2_fun__upd__apply,axiom,
    ( fun_upd_nat_list_a_a
    = ( ^ [F2: nat > list_a > a,X2: nat,Y2: list_a > a,Z2: nat] : ( if_list_a_a @ ( Z2 = X2 ) @ Y2 @ ( F2 @ Z2 ) ) ) ) ).

% fun_upd_apply
thf(fact_3_list_Opred__True,axiom,
    ( ( list_all_nat
      @ ^ [Uu: nat] : $true )
    = ( ^ [Uu: list_nat] : $true ) ) ).

% list.pred_True
thf(fact_4_list_Opred__True,axiom,
    ( ( list_all_a
      @ ^ [Uu: a] : $true )
    = ( ^ [Uu: list_a] : $true ) ) ).

% list.pred_True
thf(fact_5_list_Opred__True,axiom,
    ( ( list_all_fm
      @ ^ [Uu: fm] : $true )
    = ( ^ [Uu: list_fm] : $true ) ) ).

% list.pred_True
thf(fact_6_is__fdenot__def,axiom,
    ( is_fdenot_nat
    = ( ^ [U: set_nat,F2: nat > list_nat > nat] :
        ! [I: nat,L: list_nat] :
          ( ( list_all_nat
            @ ^ [X2: nat] : ( member_nat2 @ X2 @ U )
            @ L )
         => ( member_nat2 @ ( F2 @ I @ L ) @ U ) ) ) ) ).

% is_fdenot_def
thf(fact_7_is__fdenot__def,axiom,
    ( is_fdenot_a
    = ( ^ [U: set_a,F2: nat > list_a > a] :
        ! [I: nat,L: list_a] :
          ( ( list_all_a
            @ ^ [X2: a] : ( member_a2 @ X2 @ U )
            @ L )
         => ( member_a2 @ ( F2 @ I @ L ) @ U ) ) ) ) ).

% is_fdenot_def
thf(fact_8_is__fdenot__def,axiom,
    ( is_fdenot_fm
    = ( ^ [U: set_fm,F2: nat > list_fm > fm] :
        ! [I: nat,L: list_fm] :
          ( ( list_all_fm
            @ ^ [X2: fm] : ( member_fm2 @ X2 @ U )
            @ L )
         => ( member_fm2 @ ( F2 @ I @ L ) @ U ) ) ) ) ).

% is_fdenot_def
thf(fact_9_fun__upd__def,axiom,
    ( fun_upd_nat_list_a_a
    = ( ^ [F2: nat > list_a > a,A: nat,B: list_a > a,X2: nat] : ( if_list_a_a @ ( X2 = A ) @ B @ ( F2 @ X2 ) ) ) ) ).

% fun_upd_def
thf(fact_10_fun__upd__eqD,axiom,
    ! [F: nat > list_a > a,X: nat,Y: list_a > a,G: nat > list_a > a,Z: list_a > a] :
      ( ( ( fun_upd_nat_list_a_a @ F @ X @ Y )
        = ( fun_upd_nat_list_a_a @ G @ X @ Z ) )
     => ( Y = Z ) ) ).

% fun_upd_eqD
thf(fact_11_fun__upd__idem,axiom,
    ! [F: nat > list_a > a,X: nat,Y: list_a > a] :
      ( ( ( F @ X )
        = Y )
     => ( ( fun_upd_nat_list_a_a @ F @ X @ Y )
        = F ) ) ).

% fun_upd_idem
thf(fact_12_fun__upd__same,axiom,
    ! [F: nat > list_a > a,X: nat,Y: list_a > a] :
      ( ( fun_upd_nat_list_a_a @ F @ X @ Y @ X )
      = Y ) ).

% fun_upd_same
thf(fact_13_fun__upd__other,axiom,
    ! [Z: nat,X: nat,F: nat > list_a > a,Y: list_a > a] :
      ( ( Z != X )
     => ( ( fun_upd_nat_list_a_a @ F @ X @ Y @ Z )
        = ( F @ Z ) ) ) ).

% fun_upd_other
thf(fact_14_fun__upd__twist,axiom,
    ! [A2: nat,C: nat,M: nat > list_a > a,B2: list_a > a,D: list_a > a] :
      ( ( A2 != C )
     => ( ( fun_upd_nat_list_a_a @ ( fun_upd_nat_list_a_a @ M @ A2 @ B2 ) @ C @ D )
        = ( fun_upd_nat_list_a_a @ ( fun_upd_nat_list_a_a @ M @ C @ D ) @ A2 @ B2 ) ) ) ).

% fun_upd_twist
thf(fact_15_fun__upd__idem__iff,axiom,
    ! [F: nat > list_a > a,X: nat,Y: list_a > a] :
      ( ( ( fun_upd_nat_list_a_a @ F @ X @ Y )
        = F )
      = ( ( F @ X )
        = Y ) ) ).

% fun_upd_idem_iff
thf(fact_16_usemantics__term_I2_J,axiom,
    ! [U2: set_fm,E: nat > fm,F: nat > list_fm > fm,Ts: list_tm] :
      ( ( is_env_fm @ U2 @ E )
     => ( ( is_fdenot_fm @ U2 @ F )
       => ( list_all_fm
          @ ^ [X2: fm] : ( member_fm2 @ X2 @ U2 )
          @ ( semantics_list_fm @ E @ F @ Ts ) ) ) ) ).

% usemantics_term(2)
thf(fact_17_usemantics__term_I2_J,axiom,
    ! [U2: set_a,E: nat > a,F: nat > list_a > a,Ts: list_tm] :
      ( ( is_env_a @ U2 @ E )
     => ( ( is_fdenot_a @ U2 @ F )
       => ( list_all_a
          @ ^ [X2: a] : ( member_a2 @ X2 @ U2 )
          @ ( semantics_list_a @ E @ F @ Ts ) ) ) ) ).

% usemantics_term(2)
thf(fact_18_usemantics__term_I2_J,axiom,
    ! [U2: set_nat,E: nat > nat,F: nat > list_nat > nat,Ts: list_tm] :
      ( ( is_env_nat @ U2 @ E )
     => ( ( is_fdenot_nat @ U2 @ F )
       => ( list_all_nat
          @ ^ [X2: nat] : ( member_nat2 @ X2 @ U2 )
          @ ( semantics_list_nat @ E @ F @ Ts ) ) ) ) ).

% usemantics_term(2)
thf(fact_19_usemantics__term_I1_J,axiom,
    ! [U2: set_fm,E: nat > fm,F: nat > list_fm > fm,T: tm] :
      ( ( is_env_fm @ U2 @ E )
     => ( ( is_fdenot_fm @ U2 @ F )
       => ( member_fm2 @ ( semantics_term_fm @ E @ F @ T ) @ U2 ) ) ) ).

% usemantics_term(1)
thf(fact_20_usemantics__term_I1_J,axiom,
    ! [U2: set_a,E: nat > a,F: nat > list_a > a,T: tm] :
      ( ( is_env_a @ U2 @ E )
     => ( ( is_fdenot_a @ U2 @ F )
       => ( member_a2 @ ( semantics_term_a @ E @ F @ T ) @ U2 ) ) ) ).

% usemantics_term(1)
thf(fact_21_usemantics__term_I1_J,axiom,
    ! [U2: set_nat,E: nat > nat,F: nat > list_nat > nat,T: tm] :
      ( ( is_env_nat @ U2 @ E )
     => ( ( is_fdenot_nat @ U2 @ F )
       => ( member_nat2 @ ( semantics_term_nat @ E @ F @ T ) @ U2 ) ) ) ).

% usemantics_term(1)
thf(fact_22_list__all__simps_I2_J,axiom,
    ! [P: tm > $o] : ( list_all_tm @ P @ nil_tm ) ).

% list_all_simps(2)
thf(fact_23_list__all__simps_I2_J,axiom,
    ! [P: a > $o] : ( list_all_a @ P @ nil_a ) ).

% list_all_simps(2)
thf(fact_24_list__all__simps_I2_J,axiom,
    ! [P: fm > $o] : ( list_all_fm @ P @ nil_fm ) ).

% list_all_simps(2)
thf(fact_25_list__all__simps_I2_J,axiom,
    ! [P: nat > $o] : ( list_all_nat @ P @ nil_nat ) ).

% list_all_simps(2)
thf(fact_26_list_Opred__inject_I2_J,axiom,
    ! [P: tm > $o,A2: tm,Aa: list_tm] :
      ( ( list_all_tm @ P @ ( cons_tm @ A2 @ Aa ) )
      = ( ( P @ A2 )
        & ( list_all_tm @ P @ Aa ) ) ) ).

% list.pred_inject(2)
thf(fact_27_list_Opred__inject_I2_J,axiom,
    ! [P: a > $o,A2: a,Aa: list_a] :
      ( ( list_all_a @ P @ ( cons_a @ A2 @ Aa ) )
      = ( ( P @ A2 )
        & ( list_all_a @ P @ Aa ) ) ) ).

% list.pred_inject(2)
thf(fact_28_list_Opred__inject_I2_J,axiom,
    ! [P: fm > $o,A2: fm,Aa: list_fm] :
      ( ( list_all_fm @ P @ ( cons_fm @ A2 @ Aa ) )
      = ( ( P @ A2 )
        & ( list_all_fm @ P @ Aa ) ) ) ).

% list.pred_inject(2)
thf(fact_29_list_Opred__inject_I2_J,axiom,
    ! [P: nat > $o,A2: nat,Aa: list_nat] :
      ( ( list_all_nat @ P @ ( cons_nat @ A2 @ Aa ) )
      = ( ( P @ A2 )
        & ( list_all_nat @ P @ Aa ) ) ) ).

% list.pred_inject(2)
thf(fact_30_list__all__simps_I1_J,axiom,
    ! [P: tm > $o,X: tm,Xs: list_tm] :
      ( ( list_all_tm @ P @ ( cons_tm @ X @ Xs ) )
      = ( ( P @ X )
        & ( list_all_tm @ P @ Xs ) ) ) ).

% list_all_simps(1)
thf(fact_31_list__all__simps_I1_J,axiom,
    ! [P: a > $o,X: a,Xs: list_a] :
      ( ( list_all_a @ P @ ( cons_a @ X @ Xs ) )
      = ( ( P @ X )
        & ( list_all_a @ P @ Xs ) ) ) ).

% list_all_simps(1)
thf(fact_32_list__all__simps_I1_J,axiom,
    ! [P: fm > $o,X: fm,Xs: list_fm] :
      ( ( list_all_fm @ P @ ( cons_fm @ X @ Xs ) )
      = ( ( P @ X )
        & ( list_all_fm @ P @ Xs ) ) ) ).

% list_all_simps(1)
thf(fact_33_list__all__simps_I1_J,axiom,
    ! [P: nat > $o,X: nat,Xs: list_nat] :
      ( ( list_all_nat @ P @ ( cons_nat @ X @ Xs ) )
      = ( ( P @ X )
        & ( list_all_nat @ P @ Xs ) ) ) ).

% list_all_simps(1)
thf(fact_34_list__all__append,axiom,
    ! [P: a > $o,Xs: list_a,Ys: list_a] :
      ( ( list_all_a @ P @ ( append_a @ Xs @ Ys ) )
      = ( ( list_all_a @ P @ Xs )
        & ( list_all_a @ P @ Ys ) ) ) ).

% list_all_append
thf(fact_35_list__all__append,axiom,
    ! [P: fm > $o,Xs: list_fm,Ys: list_fm] :
      ( ( list_all_fm @ P @ ( append_fm @ Xs @ Ys ) )
      = ( ( list_all_fm @ P @ Xs )
        & ( list_all_fm @ P @ Ys ) ) ) ).

% list_all_append
thf(fact_36_list__all__append,axiom,
    ! [P: nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( list_all_nat @ P @ ( append_nat @ Xs @ Ys ) )
      = ( ( list_all_nat @ P @ Xs )
        & ( list_all_nat @ P @ Ys ) ) ) ).

% list_all_append
thf(fact_37_list_Omap__cong__pred,axiom,
    ! [X: list_nat,Ya: list_nat,F: nat > nat,G: nat > nat] :
      ( ( X = Ya )
     => ( ( list_all_nat
          @ ^ [Z2: nat] :
              ( ( F @ Z2 )
              = ( G @ Z2 ) )
          @ Ya )
       => ( ( map_nat_nat @ F @ X )
          = ( map_nat_nat @ G @ Ya ) ) ) ) ).

% list.map_cong_pred
thf(fact_38_list__all__rev,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( list_all_a @ P @ ( rev_a @ Xs ) )
      = ( list_all_a @ P @ Xs ) ) ).

% list_all_rev
thf(fact_39_list__all__rev,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( list_all_fm @ P @ ( rev_fm @ Xs ) )
      = ( list_all_fm @ P @ Xs ) ) ).

% list_all_rev
thf(fact_40_list__all__rev,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( list_all_nat @ P @ ( rev_nat @ Xs ) )
      = ( list_all_nat @ P @ Xs ) ) ).

% list_all_rev
thf(fact_41_list_Opred__inject_I1_J,axiom,
    ! [P: tm > $o] : ( list_all_tm @ P @ nil_tm ) ).

% list.pred_inject(1)
thf(fact_42_list_Opred__inject_I1_J,axiom,
    ! [P: a > $o] : ( list_all_a @ P @ nil_a ) ).

% list.pred_inject(1)
thf(fact_43_list_Opred__inject_I1_J,axiom,
    ! [P: fm > $o] : ( list_all_fm @ P @ nil_fm ) ).

% list.pred_inject(1)
thf(fact_44_list_Opred__inject_I1_J,axiom,
    ! [P: nat > $o] : ( list_all_nat @ P @ nil_nat ) ).

% list.pred_inject(1)
thf(fact_45_uupd__lemma,axiom,
    ! [N: nat,P2: fm,U2: set_a,E: nat > a,F: nat > list_a > a,X: list_a > a,G: nat > list_a > $o] :
      ( ~ ( member_nat2 @ N @ ( params @ P2 ) )
     => ( ( usemantics_a @ U2 @ E @ ( fun_upd_nat_list_a_a @ F @ N @ X ) @ G @ P2 )
        = ( usemantics_a @ U2 @ E @ F @ G @ P2 ) ) ) ).

% uupd_lemma
thf(fact_46_list__all__cong,axiom,
    ! [X: list_a,Ya: list_a,P: a > $o,Pa: a > $o] :
      ( ( X = Ya )
     => ( ! [Z3: a] :
            ( ( member_a2 @ Z3 @ ( set_a2 @ Ya ) )
           => ( ( P @ Z3 )
              = ( Pa @ Z3 ) ) )
       => ( ( list_all_a @ P @ X )
          = ( list_all_a @ Pa @ Ya ) ) ) ) ).

% list_all_cong
thf(fact_47_list__all__cong,axiom,
    ! [X: list_fm,Ya: list_fm,P: fm > $o,Pa: fm > $o] :
      ( ( X = Ya )
     => ( ! [Z3: fm] :
            ( ( member_fm2 @ Z3 @ ( set_fm2 @ Ya ) )
           => ( ( P @ Z3 )
              = ( Pa @ Z3 ) ) )
       => ( ( list_all_fm @ P @ X )
          = ( list_all_fm @ Pa @ Ya ) ) ) ) ).

% list_all_cong
thf(fact_48_list__all__cong,axiom,
    ! [X: list_nat,Ya: list_nat,P: nat > $o,Pa: nat > $o] :
      ( ( X = Ya )
     => ( ! [Z3: nat] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ Ya ) )
           => ( ( P @ Z3 )
              = ( Pa @ Z3 ) ) )
       => ( ( list_all_nat @ P @ X )
          = ( list_all_nat @ Pa @ Ya ) ) ) ) ).

% list_all_cong
thf(fact_49_list_Opred__mono__strong,axiom,
    ! [P: a > $o,X: list_a,Pa: a > $o] :
      ( ( list_all_a @ P @ X )
     => ( ! [Z3: a] :
            ( ( member_a2 @ Z3 @ ( set_a2 @ X ) )
           => ( ( P @ Z3 )
             => ( Pa @ Z3 ) ) )
       => ( list_all_a @ Pa @ X ) ) ) ).

% list.pred_mono_strong
thf(fact_50_list_Opred__mono__strong,axiom,
    ! [P: fm > $o,X: list_fm,Pa: fm > $o] :
      ( ( list_all_fm @ P @ X )
     => ( ! [Z3: fm] :
            ( ( member_fm2 @ Z3 @ ( set_fm2 @ X ) )
           => ( ( P @ Z3 )
             => ( Pa @ Z3 ) ) )
       => ( list_all_fm @ Pa @ X ) ) ) ).

% list.pred_mono_strong
thf(fact_51_list_Opred__mono__strong,axiom,
    ! [P: nat > $o,X: list_nat,Pa: nat > $o] :
      ( ( list_all_nat @ P @ X )
     => ( ! [Z3: nat] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
           => ( ( P @ Z3 )
             => ( Pa @ Z3 ) ) )
       => ( list_all_nat @ Pa @ X ) ) ) ).

% list.pred_mono_strong
thf(fact_52_list_Oinject,axiom,
    ! [X21: tm,X22: list_tm,Y21: tm,Y22: list_tm] :
      ( ( ( cons_tm @ X21 @ X22 )
        = ( cons_tm @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

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

% list.inject
thf(fact_54_append_Oassoc,axiom,
    ! [A2: list_nat,B2: list_nat,C: list_nat] :
      ( ( append_nat @ ( append_nat @ A2 @ B2 ) @ C )
      = ( append_nat @ A2 @ ( append_nat @ B2 @ C ) ) ) ).

% append.assoc
thf(fact_55_append__assoc,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( append_nat @ ( append_nat @ Xs @ Ys ) @ Zs )
      = ( append_nat @ Xs @ ( append_nat @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_56_append__same__eq,axiom,
    ! [Ys: list_nat,Xs: list_nat,Zs: list_nat] :
      ( ( ( append_nat @ Ys @ Xs )
        = ( append_nat @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_57_same__append__eq,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = ( append_nat @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_58_map__ident,axiom,
    ( ( map_nat_nat
      @ ^ [X2: nat] : X2 )
    = ( ^ [Xs2: list_nat] : Xs2 ) ) ).

% map_ident
thf(fact_59_list_Omap__disc__iff,axiom,
    ! [F: fm > fm,A2: list_fm] :
      ( ( ( map_fm_fm @ F @ A2 )
        = nil_fm )
      = ( A2 = nil_fm ) ) ).

% list.map_disc_iff
thf(fact_60_list_Omap__disc__iff,axiom,
    ! [F: tm > fm,A2: list_tm] :
      ( ( ( map_tm_fm @ F @ A2 )
        = nil_fm )
      = ( A2 = nil_tm ) ) ).

% list.map_disc_iff
thf(fact_61_list_Omap__disc__iff,axiom,
    ! [F: nat > fm,A2: list_nat] :
      ( ( ( map_nat_fm @ F @ A2 )
        = nil_fm )
      = ( A2 = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_62_list_Omap__disc__iff,axiom,
    ! [F: fm > tm,A2: list_fm] :
      ( ( ( map_fm_tm @ F @ A2 )
        = nil_tm )
      = ( A2 = nil_fm ) ) ).

% list.map_disc_iff
thf(fact_63_list_Omap__disc__iff,axiom,
    ! [F: tm > tm,A2: list_tm] :
      ( ( ( map_tm_tm @ F @ A2 )
        = nil_tm )
      = ( A2 = nil_tm ) ) ).

% list.map_disc_iff
thf(fact_64_list_Omap__disc__iff,axiom,
    ! [F: nat > tm,A2: list_nat] :
      ( ( ( map_nat_tm @ F @ A2 )
        = nil_tm )
      = ( A2 = nil_nat ) ) ).

% list.map_disc_iff
thf(fact_65_list_Omap__disc__iff,axiom,
    ! [F: fm > nat,A2: list_fm] :
      ( ( ( map_fm_nat @ F @ A2 )
        = nil_nat )
      = ( A2 = nil_fm ) ) ).

% list.map_disc_iff
thf(fact_66_list_Omap__disc__iff,axiom,
    ! [F: tm > nat,A2: list_tm] :
      ( ( ( map_tm_nat @ F @ A2 )
        = nil_nat )
      = ( A2 = nil_tm ) ) ).

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

% list.map_disc_iff
thf(fact_68_Nil__is__map__conv,axiom,
    ! [F: fm > fm,Xs: list_fm] :
      ( ( nil_fm
        = ( map_fm_fm @ F @ Xs ) )
      = ( Xs = nil_fm ) ) ).

% Nil_is_map_conv
thf(fact_69_Nil__is__map__conv,axiom,
    ! [F: tm > fm,Xs: list_tm] :
      ( ( nil_fm
        = ( map_tm_fm @ F @ Xs ) )
      = ( Xs = nil_tm ) ) ).

% Nil_is_map_conv
thf(fact_70_Nil__is__map__conv,axiom,
    ! [F: nat > fm,Xs: list_nat] :
      ( ( nil_fm
        = ( map_nat_fm @ F @ Xs ) )
      = ( Xs = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_71_Nil__is__map__conv,axiom,
    ! [F: fm > tm,Xs: list_fm] :
      ( ( nil_tm
        = ( map_fm_tm @ F @ Xs ) )
      = ( Xs = nil_fm ) ) ).

% Nil_is_map_conv
thf(fact_72_Nil__is__map__conv,axiom,
    ! [F: tm > tm,Xs: list_tm] :
      ( ( nil_tm
        = ( map_tm_tm @ F @ Xs ) )
      = ( Xs = nil_tm ) ) ).

% Nil_is_map_conv
thf(fact_73_Nil__is__map__conv,axiom,
    ! [F: nat > tm,Xs: list_nat] :
      ( ( nil_tm
        = ( map_nat_tm @ F @ Xs ) )
      = ( Xs = nil_nat ) ) ).

% Nil_is_map_conv
thf(fact_74_Nil__is__map__conv,axiom,
    ! [F: fm > nat,Xs: list_fm] :
      ( ( nil_nat
        = ( map_fm_nat @ F @ Xs ) )
      = ( Xs = nil_fm ) ) ).

% Nil_is_map_conv
thf(fact_75_Nil__is__map__conv,axiom,
    ! [F: tm > nat,Xs: list_tm] :
      ( ( nil_nat
        = ( map_tm_nat @ F @ Xs ) )
      = ( Xs = nil_tm ) ) ).

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

% Nil_is_map_conv
thf(fact_77_map__is__Nil__conv,axiom,
    ! [F: fm > fm,Xs: list_fm] :
      ( ( ( map_fm_fm @ F @ Xs )
        = nil_fm )
      = ( Xs = nil_fm ) ) ).

% map_is_Nil_conv
thf(fact_78_map__is__Nil__conv,axiom,
    ! [F: tm > fm,Xs: list_tm] :
      ( ( ( map_tm_fm @ F @ Xs )
        = nil_fm )
      = ( Xs = nil_tm ) ) ).

% map_is_Nil_conv
thf(fact_79_map__is__Nil__conv,axiom,
    ! [F: nat > fm,Xs: list_nat] :
      ( ( ( map_nat_fm @ F @ Xs )
        = nil_fm )
      = ( Xs = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_80_map__is__Nil__conv,axiom,
    ! [F: fm > tm,Xs: list_fm] :
      ( ( ( map_fm_tm @ F @ Xs )
        = nil_tm )
      = ( Xs = nil_fm ) ) ).

% map_is_Nil_conv
thf(fact_81_map__is__Nil__conv,axiom,
    ! [F: tm > tm,Xs: list_tm] :
      ( ( ( map_tm_tm @ F @ Xs )
        = nil_tm )
      = ( Xs = nil_tm ) ) ).

% map_is_Nil_conv
thf(fact_82_map__is__Nil__conv,axiom,
    ! [F: nat > tm,Xs: list_nat] :
      ( ( ( map_nat_tm @ F @ Xs )
        = nil_tm )
      = ( Xs = nil_nat ) ) ).

% map_is_Nil_conv
thf(fact_83_map__is__Nil__conv,axiom,
    ! [F: fm > nat,Xs: list_fm] :
      ( ( ( map_fm_nat @ F @ Xs )
        = nil_nat )
      = ( Xs = nil_fm ) ) ).

% map_is_Nil_conv
thf(fact_84_map__is__Nil__conv,axiom,
    ! [F: tm > nat,Xs: list_tm] :
      ( ( ( map_tm_nat @ F @ Xs )
        = nil_nat )
      = ( Xs = nil_tm ) ) ).

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

% map_is_Nil_conv
thf(fact_86_map__eq__conv,axiom,
    ! [F: nat > nat,Xs: list_nat,G: nat > nat] :
      ( ( ( map_nat_nat @ F @ Xs )
        = ( map_nat_nat @ G @ Xs ) )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
           => ( ( F @ X2 )
              = ( G @ X2 ) ) ) ) ) ).

% map_eq_conv
thf(fact_87_append_Oright__neutral,axiom,
    ! [A2: list_fm] :
      ( ( append_fm @ A2 @ nil_fm )
      = A2 ) ).

% append.right_neutral
thf(fact_88_append_Oright__neutral,axiom,
    ! [A2: list_tm] :
      ( ( append_tm @ A2 @ nil_tm )
      = A2 ) ).

% append.right_neutral
thf(fact_89_append_Oright__neutral,axiom,
    ! [A2: list_nat] :
      ( ( append_nat @ A2 @ nil_nat )
      = A2 ) ).

% append.right_neutral
thf(fact_90_append__Nil2,axiom,
    ! [Xs: list_fm] :
      ( ( append_fm @ Xs @ nil_fm )
      = Xs ) ).

% append_Nil2
thf(fact_91_append__Nil2,axiom,
    ! [Xs: list_tm] :
      ( ( append_tm @ Xs @ nil_tm )
      = Xs ) ).

% append_Nil2
thf(fact_92_append__Nil2,axiom,
    ! [Xs: list_nat] :
      ( ( append_nat @ Xs @ nil_nat )
      = Xs ) ).

% append_Nil2
thf(fact_93_append__self__conv,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( append_fm @ Xs @ Ys )
        = Xs )
      = ( Ys = nil_fm ) ) ).

% append_self_conv
thf(fact_94_append__self__conv,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( append_tm @ Xs @ Ys )
        = Xs )
      = ( Ys = nil_tm ) ) ).

% append_self_conv
thf(fact_95_append__self__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = Xs )
      = ( Ys = nil_nat ) ) ).

% append_self_conv
thf(fact_96_self__append__conv,axiom,
    ! [Y: list_fm,Ys: list_fm] :
      ( ( Y
        = ( append_fm @ Y @ Ys ) )
      = ( Ys = nil_fm ) ) ).

% self_append_conv
thf(fact_97_self__append__conv,axiom,
    ! [Y: list_tm,Ys: list_tm] :
      ( ( Y
        = ( append_tm @ Y @ Ys ) )
      = ( Ys = nil_tm ) ) ).

% self_append_conv
thf(fact_98_self__append__conv,axiom,
    ! [Y: list_nat,Ys: list_nat] :
      ( ( Y
        = ( append_nat @ Y @ Ys ) )
      = ( Ys = nil_nat ) ) ).

% self_append_conv
thf(fact_99_append__self__conv2,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( append_fm @ Xs @ Ys )
        = Ys )
      = ( Xs = nil_fm ) ) ).

% append_self_conv2
thf(fact_100_append__self__conv2,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( append_tm @ Xs @ Ys )
        = Ys )
      = ( Xs = nil_tm ) ) ).

% append_self_conv2
thf(fact_101_append__self__conv2,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = Ys )
      = ( Xs = nil_nat ) ) ).

% append_self_conv2
thf(fact_102_self__append__conv2,axiom,
    ! [Y: list_fm,Xs: list_fm] :
      ( ( Y
        = ( append_fm @ Xs @ Y ) )
      = ( Xs = nil_fm ) ) ).

% self_append_conv2
thf(fact_103_self__append__conv2,axiom,
    ! [Y: list_tm,Xs: list_tm] :
      ( ( Y
        = ( append_tm @ Xs @ Y ) )
      = ( Xs = nil_tm ) ) ).

% self_append_conv2
thf(fact_104_self__append__conv2,axiom,
    ! [Y: list_nat,Xs: list_nat] :
      ( ( Y
        = ( append_nat @ Xs @ Y ) )
      = ( Xs = nil_nat ) ) ).

% self_append_conv2
thf(fact_105_Nil__is__append__conv,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( nil_fm
        = ( append_fm @ Xs @ Ys ) )
      = ( ( Xs = nil_fm )
        & ( Ys = nil_fm ) ) ) ).

% Nil_is_append_conv
thf(fact_106_Nil__is__append__conv,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( nil_tm
        = ( append_tm @ Xs @ Ys ) )
      = ( ( Xs = nil_tm )
        & ( Ys = nil_tm ) ) ) ).

% Nil_is_append_conv
thf(fact_107_Nil__is__append__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( nil_nat
        = ( append_nat @ Xs @ Ys ) )
      = ( ( Xs = nil_nat )
        & ( Ys = nil_nat ) ) ) ).

% Nil_is_append_conv
thf(fact_108_append__is__Nil__conv,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( append_fm @ Xs @ Ys )
        = nil_fm )
      = ( ( Xs = nil_fm )
        & ( Ys = nil_fm ) ) ) ).

% append_is_Nil_conv
thf(fact_109_append__is__Nil__conv,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( append_tm @ Xs @ Ys )
        = nil_tm )
      = ( ( Xs = nil_tm )
        & ( Ys = nil_tm ) ) ) ).

% append_is_Nil_conv
thf(fact_110_append__is__Nil__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = nil_nat )
      = ( ( Xs = nil_nat )
        & ( Ys = nil_nat ) ) ) ).

% append_is_Nil_conv
thf(fact_111_map__append,axiom,
    ! [F: nat > nat,Xs: list_nat,Ys: list_nat] :
      ( ( map_nat_nat @ F @ ( append_nat @ Xs @ Ys ) )
      = ( append_nat @ ( map_nat_nat @ F @ Xs ) @ ( map_nat_nat @ F @ Ys ) ) ) ).

% map_append
thf(fact_112_mem__Collect__eq,axiom,
    ! [A2: a,P: a > $o] :
      ( ( member_a2 @ A2 @ ( collect_a @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_113_mem__Collect__eq,axiom,
    ! [A2: fm,P: fm > $o] :
      ( ( member_fm2 @ A2 @ ( collect_fm @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_114_mem__Collect__eq,axiom,
    ! [A2: nat,P: nat > $o] :
      ( ( member_nat2 @ A2 @ ( collect_nat @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_115_Collect__mem__eq,axiom,
    ! [A3: set_a] :
      ( ( collect_a
        @ ^ [X2: a] : ( member_a2 @ X2 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_116_Collect__mem__eq,axiom,
    ! [A3: set_fm] :
      ( ( collect_fm
        @ ^ [X2: fm] : ( member_fm2 @ X2 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_117_Collect__mem__eq,axiom,
    ! [A3: set_nat] :
      ( ( collect_nat
        @ ^ [X2: nat] : ( member_nat2 @ X2 @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_118_Collect__cong,axiom,
    ! [P: nat > $o,Q: nat > $o] :
      ( ! [X3: nat] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect_nat @ P )
        = ( collect_nat @ Q ) ) ) ).

% Collect_cong
thf(fact_119_Nil__is__rev__conv,axiom,
    ! [Xs: list_fm] :
      ( ( nil_fm
        = ( rev_fm @ Xs ) )
      = ( Xs = nil_fm ) ) ).

% Nil_is_rev_conv
thf(fact_120_Nil__is__rev__conv,axiom,
    ! [Xs: list_tm] :
      ( ( nil_tm
        = ( rev_tm @ Xs ) )
      = ( Xs = nil_tm ) ) ).

% Nil_is_rev_conv
thf(fact_121_Nil__is__rev__conv,axiom,
    ! [Xs: list_nat] :
      ( ( nil_nat
        = ( rev_nat @ Xs ) )
      = ( Xs = nil_nat ) ) ).

% Nil_is_rev_conv
thf(fact_122_rev__is__Nil__conv,axiom,
    ! [Xs: list_fm] :
      ( ( ( rev_fm @ Xs )
        = nil_fm )
      = ( Xs = nil_fm ) ) ).

% rev_is_Nil_conv
thf(fact_123_rev__is__Nil__conv,axiom,
    ! [Xs: list_tm] :
      ( ( ( rev_tm @ Xs )
        = nil_tm )
      = ( Xs = nil_tm ) ) ).

% rev_is_Nil_conv
thf(fact_124_rev__is__Nil__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ( rev_nat @ Xs )
        = nil_nat )
      = ( Xs = nil_nat ) ) ).

% rev_is_Nil_conv
thf(fact_125_rev__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( rev_nat @ ( append_nat @ Xs @ Ys ) )
      = ( append_nat @ ( rev_nat @ Ys ) @ ( rev_nat @ Xs ) ) ) ).

% rev_append
thf(fact_126_append1__eq__conv,axiom,
    ! [Xs: list_fm,X: fm,Ys: list_fm,Y: fm] :
      ( ( ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) )
        = ( append_fm @ Ys @ ( cons_fm @ Y @ nil_fm ) ) )
      = ( ( Xs = Ys )
        & ( X = Y ) ) ) ).

% append1_eq_conv
thf(fact_127_append1__eq__conv,axiom,
    ! [Xs: list_tm,X: tm,Ys: list_tm,Y: tm] :
      ( ( ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) )
        = ( append_tm @ Ys @ ( cons_tm @ Y @ nil_tm ) ) )
      = ( ( Xs = Ys )
        & ( X = Y ) ) ) ).

% append1_eq_conv
thf(fact_128_append1__eq__conv,axiom,
    ! [Xs: list_nat,X: nat,Ys: list_nat,Y: nat] :
      ( ( ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) )
        = ( append_nat @ Ys @ ( cons_nat @ Y @ nil_nat ) ) )
      = ( ( Xs = Ys )
        & ( X = Y ) ) ) ).

% append1_eq_conv
thf(fact_129_rev__singleton__conv,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( ( rev_fm @ Xs )
        = ( cons_fm @ X @ nil_fm ) )
      = ( Xs
        = ( cons_fm @ X @ nil_fm ) ) ) ).

% rev_singleton_conv
thf(fact_130_rev__singleton__conv,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( ( rev_tm @ Xs )
        = ( cons_tm @ X @ nil_tm ) )
      = ( Xs
        = ( cons_tm @ X @ nil_tm ) ) ) ).

% rev_singleton_conv
thf(fact_131_rev__singleton__conv,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( ( rev_nat @ Xs )
        = ( cons_nat @ X @ nil_nat ) )
      = ( Xs
        = ( cons_nat @ X @ nil_nat ) ) ) ).

% rev_singleton_conv
thf(fact_132_singleton__rev__conv,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( ( cons_fm @ X @ nil_fm )
        = ( rev_fm @ Xs ) )
      = ( ( cons_fm @ X @ nil_fm )
        = Xs ) ) ).

% singleton_rev_conv
thf(fact_133_singleton__rev__conv,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( ( cons_tm @ X @ nil_tm )
        = ( rev_tm @ Xs ) )
      = ( ( cons_tm @ X @ nil_tm )
        = Xs ) ) ).

% singleton_rev_conv
thf(fact_134_singleton__rev__conv,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( ( cons_nat @ X @ nil_nat )
        = ( rev_nat @ Xs ) )
      = ( ( cons_nat @ X @ nil_nat )
        = Xs ) ) ).

% singleton_rev_conv
thf(fact_135_map__fun__upd,axiom,
    ! [Y: nat,Xs: list_nat,F: nat > list_a > a,V: list_a > a] :
      ( ~ ( member_nat2 @ Y @ ( set_nat2 @ Xs ) )
     => ( ( map_nat_list_a_a @ ( fun_upd_nat_list_a_a @ F @ Y @ V ) @ Xs )
        = ( map_nat_list_a_a @ F @ Xs ) ) ) ).

% map_fun_upd
thf(fact_136_map__fun__upd,axiom,
    ! [Y: nat,Xs: list_nat,F: nat > nat,V: nat] :
      ( ~ ( member_nat2 @ Y @ ( set_nat2 @ Xs ) )
     => ( ( map_nat_nat @ ( fun_upd_nat_nat @ F @ Y @ V ) @ Xs )
        = ( map_nat_nat @ F @ Xs ) ) ) ).

% map_fun_upd
thf(fact_137_rev__eq__Cons__iff,axiom,
    ! [Xs: list_fm,Y: fm,Ys: list_fm] :
      ( ( ( rev_fm @ Xs )
        = ( cons_fm @ Y @ Ys ) )
      = ( Xs
        = ( append_fm @ ( rev_fm @ Ys ) @ ( cons_fm @ Y @ nil_fm ) ) ) ) ).

% rev_eq_Cons_iff
thf(fact_138_rev__eq__Cons__iff,axiom,
    ! [Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( ( rev_tm @ Xs )
        = ( cons_tm @ Y @ Ys ) )
      = ( Xs
        = ( append_tm @ ( rev_tm @ Ys ) @ ( cons_tm @ Y @ nil_tm ) ) ) ) ).

% rev_eq_Cons_iff
thf(fact_139_rev__eq__Cons__iff,axiom,
    ! [Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( rev_nat @ Xs )
        = ( cons_nat @ Y @ Ys ) )
      = ( Xs
        = ( append_nat @ ( rev_nat @ Ys ) @ ( cons_nat @ Y @ nil_nat ) ) ) ) ).

% rev_eq_Cons_iff
thf(fact_140_rev_Osimps_I2_J,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( rev_fm @ ( cons_fm @ X @ Xs ) )
      = ( append_fm @ ( rev_fm @ Xs ) @ ( cons_fm @ X @ nil_fm ) ) ) ).

% rev.simps(2)
thf(fact_141_rev_Osimps_I2_J,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( rev_tm @ ( cons_tm @ X @ Xs ) )
      = ( append_tm @ ( rev_tm @ Xs ) @ ( cons_tm @ X @ nil_tm ) ) ) ).

% rev.simps(2)
thf(fact_142_rev_Osimps_I2_J,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( rev_nat @ ( cons_nat @ X @ Xs ) )
      = ( append_nat @ ( rev_nat @ Xs ) @ ( cons_nat @ X @ nil_nat ) ) ) ).

% rev.simps(2)
thf(fact_143_rev_Osimps_I1_J,axiom,
    ( ( rev_fm @ nil_fm )
    = nil_fm ) ).

% rev.simps(1)
thf(fact_144_rev_Osimps_I1_J,axiom,
    ( ( rev_tm @ nil_tm )
    = nil_tm ) ).

% rev.simps(1)
thf(fact_145_rev_Osimps_I1_J,axiom,
    ( ( rev_nat @ nil_nat )
    = nil_nat ) ).

% rev.simps(1)
thf(fact_146_list_Osimps_I9_J,axiom,
    ! [F: tm > tm,X21: tm,X22: list_tm] :
      ( ( map_tm_tm @ F @ ( cons_tm @ X21 @ X22 ) )
      = ( cons_tm @ ( F @ X21 ) @ ( map_tm_tm @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_147_list_Osimps_I9_J,axiom,
    ! [F: tm > nat,X21: tm,X22: list_tm] :
      ( ( map_tm_nat @ F @ ( cons_tm @ X21 @ X22 ) )
      = ( cons_nat @ ( F @ X21 ) @ ( map_tm_nat @ F @ X22 ) ) ) ).

% list.simps(9)
thf(fact_148_list_Osimps_I9_J,axiom,
    ! [F: nat > tm,X21: nat,X22: list_nat] :
      ( ( map_nat_tm @ F @ ( cons_nat @ X21 @ X22 ) )
      = ( cons_tm @ ( F @ X21 ) @ ( map_nat_tm @ F @ X22 ) ) ) ).

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

% list.simps(9)
thf(fact_150_list_Osimps_I8_J,axiom,
    ! [F: fm > fm] :
      ( ( map_fm_fm @ F @ nil_fm )
      = nil_fm ) ).

% list.simps(8)
thf(fact_151_list_Osimps_I8_J,axiom,
    ! [F: fm > tm] :
      ( ( map_fm_tm @ F @ nil_fm )
      = nil_tm ) ).

% list.simps(8)
thf(fact_152_list_Osimps_I8_J,axiom,
    ! [F: fm > nat] :
      ( ( map_fm_nat @ F @ nil_fm )
      = nil_nat ) ).

% list.simps(8)
thf(fact_153_list_Osimps_I8_J,axiom,
    ! [F: tm > fm] :
      ( ( map_tm_fm @ F @ nil_tm )
      = nil_fm ) ).

% list.simps(8)
thf(fact_154_list_Osimps_I8_J,axiom,
    ! [F: tm > tm] :
      ( ( map_tm_tm @ F @ nil_tm )
      = nil_tm ) ).

% list.simps(8)
thf(fact_155_list_Osimps_I8_J,axiom,
    ! [F: tm > nat] :
      ( ( map_tm_nat @ F @ nil_tm )
      = nil_nat ) ).

% list.simps(8)
thf(fact_156_list_Osimps_I8_J,axiom,
    ! [F: nat > fm] :
      ( ( map_nat_fm @ F @ nil_nat )
      = nil_fm ) ).

% list.simps(8)
thf(fact_157_list_Osimps_I8_J,axiom,
    ! [F: nat > tm] :
      ( ( map_nat_tm @ F @ nil_nat )
      = nil_tm ) ).

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

% list.simps(8)
thf(fact_159_list_Odistinct_I1_J,axiom,
    ! [X21: fm,X22: list_fm] :
      ( nil_fm
     != ( cons_fm @ X21 @ X22 ) ) ).

% list.distinct(1)
thf(fact_160_list_Odistinct_I1_J,axiom,
    ! [X21: tm,X22: list_tm] :
      ( nil_tm
     != ( cons_tm @ X21 @ X22 ) ) ).

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

% list.distinct(1)
thf(fact_162_list_Oset__intros_I2_J,axiom,
    ! [Y: a,X22: list_a,X21: a] :
      ( ( member_a2 @ Y @ ( set_a2 @ X22 ) )
     => ( member_a2 @ Y @ ( set_a2 @ ( cons_a @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_163_list_Oset__intros_I2_J,axiom,
    ! [Y: fm,X22: list_fm,X21: fm] :
      ( ( member_fm2 @ Y @ ( set_fm2 @ X22 ) )
     => ( member_fm2 @ Y @ ( set_fm2 @ ( cons_fm @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_164_list_Oset__intros_I2_J,axiom,
    ! [Y: tm,X22: list_tm,X21: tm] :
      ( ( member_tm2 @ Y @ ( set_tm2 @ X22 ) )
     => ( member_tm2 @ Y @ ( set_tm2 @ ( cons_tm @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_165_list_Oset__intros_I2_J,axiom,
    ! [Y: nat,X22: list_nat,X21: nat] :
      ( ( member_nat2 @ Y @ ( set_nat2 @ X22 ) )
     => ( member_nat2 @ Y @ ( set_nat2 @ ( cons_nat @ X21 @ X22 ) ) ) ) ).

% list.set_intros(2)
thf(fact_166_list_Oset__intros_I1_J,axiom,
    ! [X21: a,X22: list_a] : ( member_a2 @ X21 @ ( set_a2 @ ( cons_a @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_167_list_Oset__intros_I1_J,axiom,
    ! [X21: fm,X22: list_fm] : ( member_fm2 @ X21 @ ( set_fm2 @ ( cons_fm @ X21 @ X22 ) ) ) ).

% list.set_intros(1)
thf(fact_168_list_Oset__intros_I1_J,axiom,
    ! [X21: tm,X22: list_tm] : ( member_tm2 @ X21 @ ( set_tm2 @ ( cons_tm @ X21 @ X22 ) ) ) ).

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

% list.set_intros(1)
thf(fact_170_list_OdiscI,axiom,
    ! [List: list_fm,X21: fm,X22: list_fm] :
      ( ( List
        = ( cons_fm @ X21 @ X22 ) )
     => ( List != nil_fm ) ) ).

% list.discI
thf(fact_171_list_OdiscI,axiom,
    ! [List: list_tm,X21: tm,X22: list_tm] :
      ( ( List
        = ( cons_tm @ X21 @ X22 ) )
     => ( List != nil_tm ) ) ).

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

% list.discI
thf(fact_173_list_Oexhaust,axiom,
    ! [Y: list_fm] :
      ( ( Y != nil_fm )
     => ~ ! [X212: fm,X222: list_fm] :
            ( Y
           != ( cons_fm @ X212 @ X222 ) ) ) ).

% list.exhaust
thf(fact_174_list_Oexhaust,axiom,
    ! [Y: list_tm] :
      ( ( Y != nil_tm )
     => ~ ! [X212: tm,X222: list_tm] :
            ( Y
           != ( cons_tm @ X212 @ X222 ) ) ) ).

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

% list.exhaust
thf(fact_176_list_Oset__cases,axiom,
    ! [E: a,A2: list_a] :
      ( ( member_a2 @ E @ ( set_a2 @ A2 ) )
     => ( ! [Z22: list_a] :
            ( A2
           != ( cons_a @ E @ Z22 ) )
       => ~ ! [Z1: a,Z22: list_a] :
              ( ( A2
                = ( cons_a @ Z1 @ Z22 ) )
             => ~ ( member_a2 @ E @ ( set_a2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_177_list_Oset__cases,axiom,
    ! [E: fm,A2: list_fm] :
      ( ( member_fm2 @ E @ ( set_fm2 @ A2 ) )
     => ( ! [Z22: list_fm] :
            ( A2
           != ( cons_fm @ E @ Z22 ) )
       => ~ ! [Z1: fm,Z22: list_fm] :
              ( ( A2
                = ( cons_fm @ Z1 @ Z22 ) )
             => ~ ( member_fm2 @ E @ ( set_fm2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_178_list_Oset__cases,axiom,
    ! [E: tm,A2: list_tm] :
      ( ( member_tm2 @ E @ ( set_tm2 @ A2 ) )
     => ( ! [Z22: list_tm] :
            ( A2
           != ( cons_tm @ E @ Z22 ) )
       => ~ ! [Z1: tm,Z22: list_tm] :
              ( ( A2
                = ( cons_tm @ Z1 @ Z22 ) )
             => ~ ( member_tm2 @ E @ ( set_tm2 @ Z22 ) ) ) ) ) ).

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

% list.set_cases
thf(fact_180_min__list_Ocases,axiom,
    ! [X: list_nat] :
      ( ! [X3: nat,Xs3: list_nat] :
          ( X
         != ( cons_nat @ X3 @ Xs3 ) )
     => ( X = nil_nat ) ) ).

% min_list.cases
thf(fact_181_transpose_Ocases,axiom,
    ! [X: list_list_fm] :
      ( ( X != nil_list_fm )
     => ( ! [Xss: list_list_fm] :
            ( X
           != ( cons_list_fm @ nil_fm @ Xss ) )
       => ~ ! [X3: fm,Xs3: list_fm,Xss: list_list_fm] :
              ( X
             != ( cons_list_fm @ ( cons_fm @ X3 @ Xs3 ) @ Xss ) ) ) ) ).

% transpose.cases
thf(fact_182_transpose_Ocases,axiom,
    ! [X: list_list_tm] :
      ( ( X != nil_list_tm )
     => ( ! [Xss: list_list_tm] :
            ( X
           != ( cons_list_tm @ nil_tm @ Xss ) )
       => ~ ! [X3: tm,Xs3: list_tm,Xss: list_list_tm] :
              ( X
             != ( cons_list_tm @ ( cons_tm @ X3 @ Xs3 ) @ Xss ) ) ) ) ).

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

% transpose.cases
thf(fact_184_append__Nil,axiom,
    ! [Ys: list_fm] :
      ( ( append_fm @ nil_fm @ Ys )
      = Ys ) ).

% append_Nil
thf(fact_185_append__Nil,axiom,
    ! [Ys: list_tm] :
      ( ( append_tm @ nil_tm @ Ys )
      = Ys ) ).

% append_Nil
thf(fact_186_append__Nil,axiom,
    ! [Ys: list_nat] :
      ( ( append_nat @ nil_nat @ Ys )
      = Ys ) ).

% append_Nil
thf(fact_187_remdups__adj_Ocases,axiom,
    ! [X: list_fm] :
      ( ( X != nil_fm )
     => ( ! [X3: fm] :
            ( X
           != ( cons_fm @ X3 @ nil_fm ) )
       => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
              ( X
             != ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_188_remdups__adj_Ocases,axiom,
    ! [X: list_tm] :
      ( ( X != nil_tm )
     => ( ! [X3: tm] :
            ( X
           != ( cons_tm @ X3 @ nil_tm ) )
       => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
              ( X
             != ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_189_remdups__adj_Ocases,axiom,
    ! [X: list_nat] :
      ( ( X != nil_nat )
     => ( ! [X3: nat] :
            ( X
           != ( cons_nat @ X3 @ nil_nat ) )
       => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
              ( X
             != ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ).

% remdups_adj.cases
thf(fact_190_list_Omap__cong,axiom,
    ! [X: list_nat,Ya: list_nat,F: nat > nat,G: nat > nat] :
      ( ( X = Ya )
     => ( ! [Z3: nat] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ Ya ) )
           => ( ( F @ Z3 )
              = ( G @ Z3 ) ) )
       => ( ( map_nat_nat @ F @ X )
          = ( map_nat_nat @ G @ Ya ) ) ) ) ).

% list.map_cong
thf(fact_191_append__Cons,axiom,
    ! [X: tm,Xs: list_tm,Ys: list_tm] :
      ( ( append_tm @ ( cons_tm @ X @ Xs ) @ Ys )
      = ( cons_tm @ X @ ( append_tm @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_192_append__Cons,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat] :
      ( ( append_nat @ ( cons_nat @ X @ Xs ) @ Ys )
      = ( cons_nat @ X @ ( append_nat @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_193_list_Omap__cong0,axiom,
    ! [X: list_nat,F: nat > nat,G: nat > nat] :
      ( ! [Z3: nat] :
          ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
         => ( ( F @ Z3 )
            = ( G @ Z3 ) ) )
     => ( ( map_nat_nat @ F @ X )
        = ( map_nat_nat @ G @ X ) ) ) ).

% list.map_cong0
thf(fact_194_append_Oleft__neutral,axiom,
    ! [A2: list_fm] :
      ( ( append_fm @ nil_fm @ A2 )
      = A2 ) ).

% append.left_neutral
thf(fact_195_append_Oleft__neutral,axiom,
    ! [A2: list_tm] :
      ( ( append_tm @ nil_tm @ A2 )
      = A2 ) ).

% append.left_neutral
thf(fact_196_append_Oleft__neutral,axiom,
    ! [A2: list_nat] :
      ( ( append_nat @ nil_nat @ A2 )
      = A2 ) ).

% append.left_neutral
thf(fact_197_list_Oinj__map__strong,axiom,
    ! [X: list_nat,Xa: list_nat,F: nat > nat,Fa: nat > nat] :
      ( ! [Z3: nat,Za: nat] :
          ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
         => ( ( member_nat2 @ Za @ ( set_nat2 @ Xa ) )
           => ( ( ( F @ Z3 )
                = ( Fa @ Za ) )
             => ( Z3 = Za ) ) ) )
     => ( ( ( map_nat_nat @ F @ X )
          = ( map_nat_nat @ Fa @ Xa ) )
       => ( X = Xa ) ) ) ).

% list.inj_map_strong
thf(fact_198_list_Omap__ident__strong,axiom,
    ! [T: list_a,F: a > a] :
      ( ! [Z3: a] :
          ( ( member_a2 @ Z3 @ ( set_a2 @ T ) )
         => ( ( F @ Z3 )
            = Z3 ) )
     => ( ( map_a_a @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_199_list_Omap__ident__strong,axiom,
    ! [T: list_fm,F: fm > fm] :
      ( ! [Z3: fm] :
          ( ( member_fm2 @ Z3 @ ( set_fm2 @ T ) )
         => ( ( F @ Z3 )
            = Z3 ) )
     => ( ( map_fm_fm @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_200_list_Omap__ident__strong,axiom,
    ! [T: list_nat,F: nat > nat] :
      ( ! [Z3: nat] :
          ( ( member_nat2 @ Z3 @ ( set_nat2 @ T ) )
         => ( ( F @ Z3 )
            = Z3 ) )
     => ( ( map_nat_nat @ F @ T )
        = T ) ) ).

% list.map_ident_strong
thf(fact_201_map__ext,axiom,
    ! [Xs: list_nat,F: nat > nat,G: nat > nat] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( ( F @ X3 )
            = ( G @ X3 ) ) )
     => ( ( map_nat_nat @ F @ Xs )
        = ( map_nat_nat @ G @ Xs ) ) ) ).

% map_ext
thf(fact_202_map__idI,axiom,
    ! [Xs: list_a,F: a > a] :
      ( ! [X3: a] :
          ( ( member_a2 @ X3 @ ( set_a2 @ Xs ) )
         => ( ( F @ X3 )
            = X3 ) )
     => ( ( map_a_a @ F @ Xs )
        = Xs ) ) ).

% map_idI
thf(fact_203_map__idI,axiom,
    ! [Xs: list_fm,F: fm > fm] :
      ( ! [X3: fm] :
          ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
         => ( ( F @ X3 )
            = X3 ) )
     => ( ( map_fm_fm @ F @ Xs )
        = Xs ) ) ).

% map_idI
thf(fact_204_map__idI,axiom,
    ! [Xs: list_nat,F: nat > nat] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( ( F @ X3 )
            = X3 ) )
     => ( ( map_nat_nat @ F @ Xs )
        = Xs ) ) ).

% map_idI
thf(fact_205_rev__map,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( rev_nat @ ( map_nat_nat @ F @ Xs ) )
      = ( map_nat_nat @ F @ ( rev_nat @ Xs ) ) ) ).

% rev_map
thf(fact_206_map__cong,axiom,
    ! [Xs: list_nat,Ys: list_nat,F: nat > nat,G: nat > nat] :
      ( ( Xs = Ys )
     => ( ! [X3: nat] :
            ( ( member_nat2 @ X3 @ ( set_nat2 @ Ys ) )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) )
       => ( ( map_nat_nat @ F @ Xs )
          = ( map_nat_nat @ G @ Ys ) ) ) ) ).

% map_cong
thf(fact_207_set__ConsD,axiom,
    ! [Y: a,X: a,Xs: list_a] :
      ( ( member_a2 @ Y @ ( set_a2 @ ( cons_a @ X @ Xs ) ) )
     => ( ( Y = X )
        | ( member_a2 @ Y @ ( set_a2 @ Xs ) ) ) ) ).

% set_ConsD
thf(fact_208_set__ConsD,axiom,
    ! [Y: fm,X: fm,Xs: list_fm] :
      ( ( member_fm2 @ Y @ ( set_fm2 @ ( cons_fm @ X @ Xs ) ) )
     => ( ( Y = X )
        | ( member_fm2 @ Y @ ( set_fm2 @ Xs ) ) ) ) ).

% set_ConsD
thf(fact_209_set__ConsD,axiom,
    ! [Y: tm,X: tm,Xs: list_tm] :
      ( ( member_tm2 @ Y @ ( set_tm2 @ ( cons_tm @ X @ Xs ) ) )
     => ( ( Y = X )
        | ( member_tm2 @ Y @ ( set_tm2 @ Xs ) ) ) ) ).

% set_ConsD
thf(fact_210_set__ConsD,axiom,
    ! [Y: nat,X: nat,Xs: list_nat] :
      ( ( member_nat2 @ Y @ ( set_nat2 @ ( cons_nat @ X @ Xs ) ) )
     => ( ( Y = X )
        | ( member_nat2 @ Y @ ( set_nat2 @ Xs ) ) ) ) ).

% set_ConsD
thf(fact_211_rev__induct,axiom,
    ! [P: list_fm > $o,Xs: list_fm] :
      ( ( P @ nil_fm )
     => ( ! [X3: fm,Xs3: list_fm] :
            ( ( P @ Xs3 )
           => ( P @ ( append_fm @ Xs3 @ ( cons_fm @ X3 @ nil_fm ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_212_rev__induct,axiom,
    ! [P: list_tm > $o,Xs: list_tm] :
      ( ( P @ nil_tm )
     => ( ! [X3: tm,Xs3: list_tm] :
            ( ( P @ Xs3 )
           => ( P @ ( append_tm @ Xs3 @ ( cons_tm @ X3 @ nil_tm ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_213_rev__induct,axiom,
    ! [P: list_nat > $o,Xs: list_nat] :
      ( ( P @ nil_nat )
     => ( ! [X3: nat,Xs3: list_nat] :
            ( ( P @ Xs3 )
           => ( P @ ( append_nat @ Xs3 @ ( cons_nat @ X3 @ nil_nat ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_214_split__list,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( Xs
          = ( append_a @ Ys2 @ ( cons_a @ X @ Zs2 ) ) ) ) ).

% split_list
thf(fact_215_split__list,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ? [Ys2: list_fm,Zs2: list_fm] :
          ( Xs
          = ( append_fm @ Ys2 @ ( cons_fm @ X @ Zs2 ) ) ) ) ).

% split_list
thf(fact_216_split__list,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
     => ? [Ys2: list_tm,Zs2: list_tm] :
          ( Xs
          = ( append_tm @ Ys2 @ ( cons_tm @ X @ Zs2 ) ) ) ) ).

% split_list
thf(fact_217_split__list,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( Xs
          = ( append_nat @ Ys2 @ ( cons_nat @ X @ Zs2 ) ) ) ) ).

% split_list
thf(fact_218_ex__map__conv,axiom,
    ! [Ys: list_nat,F: nat > nat] :
      ( ( ? [Xs2: list_nat] :
            ( Ys
            = ( map_nat_nat @ F @ Xs2 ) ) )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Ys ) )
           => ? [Y2: nat] :
                ( X2
                = ( F @ Y2 ) ) ) ) ) ).

% ex_map_conv
thf(fact_219_rev__exhaust,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ~ ! [Ys2: list_fm,Y3: fm] :
            ( Xs
           != ( append_fm @ Ys2 @ ( cons_fm @ Y3 @ nil_fm ) ) ) ) ).

% rev_exhaust
thf(fact_220_rev__exhaust,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ~ ! [Ys2: list_tm,Y3: tm] :
            ( Xs
           != ( append_tm @ Ys2 @ ( cons_tm @ Y3 @ nil_tm ) ) ) ) ).

% rev_exhaust
thf(fact_221_rev__exhaust,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ~ ! [Ys2: list_nat,Y3: nat] :
            ( Xs
           != ( append_nat @ Ys2 @ ( cons_nat @ Y3 @ nil_nat ) ) ) ) ).

% rev_exhaust
thf(fact_222_neq__Nil__conv,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
      = ( ? [Y2: fm,Ys3: list_fm] :
            ( Xs
            = ( cons_fm @ Y2 @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_223_neq__Nil__conv,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
      = ( ? [Y2: tm,Ys3: list_tm] :
            ( Xs
            = ( cons_tm @ Y2 @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_224_neq__Nil__conv,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
      = ( ? [Y2: nat,Ys3: list_nat] :
            ( Xs
            = ( cons_nat @ Y2 @ Ys3 ) ) ) ) ).

% neq_Nil_conv
thf(fact_225_Cons__eq__map__D,axiom,
    ! [X: tm,Xs: list_tm,F: tm > tm,Ys: list_tm] :
      ( ( ( cons_tm @ X @ Xs )
        = ( map_tm_tm @ F @ Ys ) )
     => ? [Z3: tm,Zs2: list_tm] :
          ( ( Ys
            = ( cons_tm @ Z3 @ Zs2 ) )
          & ( X
            = ( F @ Z3 ) )
          & ( Xs
            = ( map_tm_tm @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_226_Cons__eq__map__D,axiom,
    ! [X: tm,Xs: list_tm,F: nat > tm,Ys: list_nat] :
      ( ( ( cons_tm @ X @ Xs )
        = ( map_nat_tm @ F @ Ys ) )
     => ? [Z3: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z3 @ Zs2 ) )
          & ( X
            = ( F @ Z3 ) )
          & ( Xs
            = ( map_nat_tm @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_227_Cons__eq__map__D,axiom,
    ! [X: nat,Xs: list_nat,F: tm > nat,Ys: list_tm] :
      ( ( ( cons_nat @ X @ Xs )
        = ( map_tm_nat @ F @ Ys ) )
     => ? [Z3: tm,Zs2: list_tm] :
          ( ( Ys
            = ( cons_tm @ Z3 @ Zs2 ) )
          & ( X
            = ( F @ Z3 ) )
          & ( Xs
            = ( map_tm_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_228_Cons__eq__map__D,axiom,
    ! [X: nat,Xs: list_nat,F: nat > nat,Ys: list_nat] :
      ( ( ( cons_nat @ X @ Xs )
        = ( map_nat_nat @ F @ Ys ) )
     => ? [Z3: nat,Zs2: list_nat] :
          ( ( Ys
            = ( cons_nat @ Z3 @ Zs2 ) )
          & ( X
            = ( F @ Z3 ) )
          & ( Xs
            = ( map_nat_nat @ F @ Zs2 ) ) ) ) ).

% Cons_eq_map_D
thf(fact_229_list__induct2_H,axiom,
    ! [P: list_fm > list_fm > $o,Xs: list_fm,Ys: list_fm] :
      ( ( P @ nil_fm @ nil_fm )
     => ( ! [X3: fm,Xs3: list_fm] : ( P @ ( cons_fm @ X3 @ Xs3 ) @ nil_fm )
       => ( ! [Y3: fm,Ys2: list_fm] : ( P @ nil_fm @ ( cons_fm @ Y3 @ Ys2 ) )
         => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_230_list__induct2_H,axiom,
    ! [P: list_fm > list_tm > $o,Xs: list_fm,Ys: list_tm] :
      ( ( P @ nil_fm @ nil_tm )
     => ( ! [X3: fm,Xs3: list_fm] : ( P @ ( cons_fm @ X3 @ Xs3 ) @ nil_tm )
       => ( ! [Y3: tm,Ys2: list_tm] : ( P @ nil_fm @ ( cons_tm @ Y3 @ Ys2 ) )
         => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_231_list__induct2_H,axiom,
    ! [P: list_fm > list_nat > $o,Xs: list_fm,Ys: list_nat] :
      ( ( P @ nil_fm @ nil_nat )
     => ( ! [X3: fm,Xs3: list_fm] : ( P @ ( cons_fm @ X3 @ Xs3 ) @ nil_nat )
       => ( ! [Y3: nat,Ys2: list_nat] : ( P @ nil_fm @ ( cons_nat @ Y3 @ Ys2 ) )
         => ( ! [X3: fm,Xs3: list_fm,Y3: nat,Ys2: list_nat] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_232_list__induct2_H,axiom,
    ! [P: list_tm > list_fm > $o,Xs: list_tm,Ys: list_fm] :
      ( ( P @ nil_tm @ nil_fm )
     => ( ! [X3: tm,Xs3: list_tm] : ( P @ ( cons_tm @ X3 @ Xs3 ) @ nil_fm )
       => ( ! [Y3: fm,Ys2: list_fm] : ( P @ nil_tm @ ( cons_fm @ Y3 @ Ys2 ) )
         => ( ! [X3: tm,Xs3: list_tm,Y3: fm,Ys2: list_fm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_233_list__induct2_H,axiom,
    ! [P: list_tm > list_tm > $o,Xs: list_tm,Ys: list_tm] :
      ( ( P @ nil_tm @ nil_tm )
     => ( ! [X3: tm,Xs3: list_tm] : ( P @ ( cons_tm @ X3 @ Xs3 ) @ nil_tm )
       => ( ! [Y3: tm,Ys2: list_tm] : ( P @ nil_tm @ ( cons_tm @ Y3 @ Ys2 ) )
         => ( ! [X3: tm,Xs3: list_tm,Y3: tm,Ys2: list_tm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_234_list__induct2_H,axiom,
    ! [P: list_tm > list_nat > $o,Xs: list_tm,Ys: list_nat] :
      ( ( P @ nil_tm @ nil_nat )
     => ( ! [X3: tm,Xs3: list_tm] : ( P @ ( cons_tm @ X3 @ Xs3 ) @ nil_nat )
       => ( ! [Y3: nat,Ys2: list_nat] : ( P @ nil_tm @ ( cons_nat @ Y3 @ Ys2 ) )
         => ( ! [X3: tm,Xs3: list_tm,Y3: nat,Ys2: list_nat] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_235_list__induct2_H,axiom,
    ! [P: list_nat > list_fm > $o,Xs: list_nat,Ys: list_fm] :
      ( ( P @ nil_nat @ nil_fm )
     => ( ! [X3: nat,Xs3: list_nat] : ( P @ ( cons_nat @ X3 @ Xs3 ) @ nil_fm )
       => ( ! [Y3: fm,Ys2: list_fm] : ( P @ nil_nat @ ( cons_fm @ Y3 @ Ys2 ) )
         => ( ! [X3: nat,Xs3: list_nat,Y3: fm,Ys2: list_fm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_236_list__induct2_H,axiom,
    ! [P: list_nat > list_tm > $o,Xs: list_nat,Ys: list_tm] :
      ( ( P @ nil_nat @ nil_tm )
     => ( ! [X3: nat,Xs3: list_nat] : ( P @ ( cons_nat @ X3 @ Xs3 ) @ nil_tm )
       => ( ! [Y3: tm,Ys2: list_tm] : ( P @ nil_nat @ ( cons_tm @ Y3 @ Ys2 ) )
         => ( ! [X3: nat,Xs3: list_nat,Y3: tm,Ys2: list_tm] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_237_list__induct2_H,axiom,
    ! [P: list_nat > list_nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( P @ nil_nat @ nil_nat )
     => ( ! [X3: nat,Xs3: list_nat] : ( P @ ( cons_nat @ X3 @ Xs3 ) @ nil_nat )
       => ( ! [Y3: nat,Ys2: list_nat] : ( P @ nil_nat @ ( cons_nat @ Y3 @ Ys2 ) )
         => ( ! [X3: nat,Xs3: list_nat,Y3: nat,Ys2: list_nat] :
                ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) )
           => ( P @ Xs @ Ys ) ) ) ) ) ).

% list_induct2'
thf(fact_238_map__eq__Cons__D,axiom,
    ! [F: tm > tm,Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( ( map_tm_tm @ F @ Xs )
        = ( cons_tm @ Y @ Ys ) )
     => ? [Z3: tm,Zs2: list_tm] :
          ( ( Xs
            = ( cons_tm @ Z3 @ Zs2 ) )
          & ( ( F @ Z3 )
            = Y )
          & ( ( map_tm_tm @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_239_map__eq__Cons__D,axiom,
    ! [F: nat > tm,Xs: list_nat,Y: tm,Ys: list_tm] :
      ( ( ( map_nat_tm @ F @ Xs )
        = ( cons_tm @ Y @ Ys ) )
     => ? [Z3: nat,Zs2: list_nat] :
          ( ( Xs
            = ( cons_nat @ Z3 @ Zs2 ) )
          & ( ( F @ Z3 )
            = Y )
          & ( ( map_nat_tm @ F @ Zs2 )
            = Ys ) ) ) ).

% map_eq_Cons_D
thf(fact_240_map__eq__Cons__D,axiom,
    ! [F: tm > nat,Xs: list_tm,Y: nat,Ys: list_nat] :
      ( ( ( map_tm_nat @ F @ Xs )
        = ( cons_nat @ Y @ Ys ) )
     => ? [Z3: tm,Zs2: list_tm] :
          ( ( Xs
            = ( cons_tm @ Z3 @ Zs2 ) )
          & ( ( F @ Z3 )
            = Y )
          & ( ( map_tm_nat @ F @ Zs2 )
            = Ys ) ) ) ).

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

% map_eq_Cons_D
thf(fact_242_eq__Nil__appendI,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs = Ys )
     => ( Xs
        = ( append_fm @ nil_fm @ Ys ) ) ) ).

% eq_Nil_appendI
thf(fact_243_eq__Nil__appendI,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs = Ys )
     => ( Xs
        = ( append_tm @ nil_tm @ Ys ) ) ) ).

% eq_Nil_appendI
thf(fact_244_eq__Nil__appendI,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs = Ys )
     => ( Xs
        = ( append_nat @ nil_nat @ Ys ) ) ) ).

% eq_Nil_appendI
thf(fact_245_not__Cons__self2,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( cons_tm @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_246_not__Cons__self2,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( cons_nat @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_247_Cons__eq__appendI,axiom,
    ! [X: tm,Xs1: list_tm,Ys: list_tm,Xs: list_tm,Zs: list_tm] :
      ( ( ( cons_tm @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_tm @ Xs1 @ Zs ) )
       => ( ( cons_tm @ X @ Xs )
          = ( append_tm @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_248_Cons__eq__appendI,axiom,
    ! [X: nat,Xs1: list_nat,Ys: list_nat,Xs: list_nat,Zs: list_nat] :
      ( ( ( cons_nat @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_nat @ Xs1 @ Zs ) )
       => ( ( cons_nat @ X @ Xs )
          = ( append_nat @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_249_split__list__last,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( ( Xs
            = ( append_a @ Ys2 @ ( cons_a @ X @ Zs2 ) ) )
          & ~ ( member_a2 @ X @ ( set_a2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_250_split__list__last,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ? [Ys2: list_fm,Zs2: list_fm] :
          ( ( Xs
            = ( append_fm @ Ys2 @ ( cons_fm @ X @ Zs2 ) ) )
          & ~ ( member_fm2 @ X @ ( set_fm2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_251_split__list__last,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
     => ? [Ys2: list_tm,Zs2: list_tm] :
          ( ( Xs
            = ( append_tm @ Ys2 @ ( cons_tm @ X @ Zs2 ) ) )
          & ~ ( member_tm2 @ X @ ( set_tm2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_252_split__list__last,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( ( Xs
            = ( append_nat @ Ys2 @ ( cons_nat @ X @ Zs2 ) ) )
          & ~ ( member_nat2 @ X @ ( set_nat2 @ Zs2 ) ) ) ) ).

% split_list_last
thf(fact_253_split__list__prop,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_tm,X3: tm] :
          ( ? [Zs2: list_tm] :
              ( Xs
              = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
          & ( P @ X3 ) ) ) ).

% split_list_prop
thf(fact_254_split__list__prop,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_nat,X3: nat] :
          ( ? [Zs2: list_nat] :
              ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
          & ( P @ X3 ) ) ) ).

% split_list_prop
thf(fact_255_Cons__eq__map__conv,axiom,
    ! [X: tm,Xs: list_tm,F: tm > tm,Ys: list_tm] :
      ( ( ( cons_tm @ X @ Xs )
        = ( map_tm_tm @ F @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Ys
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( X
              = ( F @ Z2 ) )
            & ( Xs
              = ( map_tm_tm @ F @ Zs3 ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_256_Cons__eq__map__conv,axiom,
    ! [X: tm,Xs: list_tm,F: nat > tm,Ys: list_nat] :
      ( ( ( cons_tm @ X @ Xs )
        = ( map_nat_tm @ F @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( X
              = ( F @ Z2 ) )
            & ( Xs
              = ( map_nat_tm @ F @ Zs3 ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_257_Cons__eq__map__conv,axiom,
    ! [X: nat,Xs: list_nat,F: tm > nat,Ys: list_tm] :
      ( ( ( cons_nat @ X @ Xs )
        = ( map_tm_nat @ F @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Ys
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( X
              = ( F @ Z2 ) )
            & ( Xs
              = ( map_tm_nat @ F @ Zs3 ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_258_Cons__eq__map__conv,axiom,
    ! [X: nat,Xs: list_nat,F: nat > nat,Ys: list_nat] :
      ( ( ( cons_nat @ X @ Xs )
        = ( map_nat_nat @ F @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( X
              = ( F @ Z2 ) )
            & ( Xs
              = ( map_nat_nat @ F @ Zs3 ) ) ) ) ) ).

% Cons_eq_map_conv
thf(fact_259_map__eq__Cons__conv,axiom,
    ! [F: tm > tm,Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( ( map_tm_tm @ F @ Xs )
        = ( cons_tm @ Y @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( ( F @ Z2 )
              = Y )
            & ( ( map_tm_tm @ F @ Zs3 )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_260_map__eq__Cons__conv,axiom,
    ! [F: nat > tm,Xs: list_nat,Y: tm,Ys: list_tm] :
      ( ( ( map_nat_tm @ F @ Xs )
        = ( cons_tm @ Y @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( ( F @ Z2 )
              = Y )
            & ( ( map_nat_tm @ F @ Zs3 )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_261_map__eq__Cons__conv,axiom,
    ! [F: tm > nat,Xs: list_tm,Y: nat,Ys: list_nat] :
      ( ( ( map_tm_nat @ F @ Xs )
        = ( cons_nat @ Y @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( ( F @ Z2 )
              = Y )
            & ( ( map_tm_nat @ F @ Zs3 )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_262_map__eq__Cons__conv,axiom,
    ! [F: nat > nat,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs )
        = ( cons_nat @ Y @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( ( F @ Z2 )
              = Y )
            & ( ( map_nat_nat @ F @ Zs3 )
              = Ys ) ) ) ) ).

% map_eq_Cons_conv
thf(fact_263_split__list__first,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ? [Ys2: list_a,Zs2: list_a] :
          ( ( Xs
            = ( append_a @ Ys2 @ ( cons_a @ X @ Zs2 ) ) )
          & ~ ( member_a2 @ X @ ( set_a2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_264_split__list__first,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ? [Ys2: list_fm,Zs2: list_fm] :
          ( ( Xs
            = ( append_fm @ Ys2 @ ( cons_fm @ X @ Zs2 ) ) )
          & ~ ( member_fm2 @ X @ ( set_fm2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_265_split__list__first,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
     => ? [Ys2: list_tm,Zs2: list_tm] :
          ( ( Xs
            = ( append_tm @ Ys2 @ ( cons_tm @ X @ Zs2 ) ) )
          & ~ ( member_tm2 @ X @ ( set_tm2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_266_split__list__first,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ? [Ys2: list_nat,Zs2: list_nat] :
          ( ( Xs
            = ( append_nat @ Ys2 @ ( cons_nat @ X @ Zs2 ) ) )
          & ~ ( member_nat2 @ X @ ( set_nat2 @ Ys2 ) ) ) ) ).

% split_list_first
thf(fact_267_split__list__propE,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_tm,X3: tm] :
            ( ? [Zs2: list_tm] :
                ( Xs
                = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
           => ~ ( P @ X3 ) ) ) ).

% split_list_propE
thf(fact_268_split__list__propE,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_nat,X3: nat] :
            ( ? [Zs2: list_nat] :
                ( Xs
                = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
           => ~ ( P @ X3 ) ) ) ).

% split_list_propE
thf(fact_269_append__eq__appendI,axiom,
    ! [Xs: list_nat,Xs1: list_nat,Zs: list_nat,Ys: list_nat,Us: list_nat] :
      ( ( ( append_nat @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append_nat @ Xs1 @ Us ) )
       => ( ( append_nat @ Xs @ Ys )
          = ( append_nat @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_270_append__Cons__eq__iff,axiom,
    ! [X: a,Xs: list_a,Ys: list_a,Xs4: list_a,Ys4: list_a] :
      ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ~ ( member_a2 @ X @ ( set_a2 @ Ys ) )
       => ( ( ( append_a @ Xs @ ( cons_a @ X @ Ys ) )
            = ( append_a @ Xs4 @ ( cons_a @ X @ Ys4 ) ) )
          = ( ( Xs = Xs4 )
            & ( Ys = Ys4 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_271_append__Cons__eq__iff,axiom,
    ! [X: fm,Xs: list_fm,Ys: list_fm,Xs4: list_fm,Ys4: list_fm] :
      ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ~ ( member_fm2 @ X @ ( set_fm2 @ Ys ) )
       => ( ( ( append_fm @ Xs @ ( cons_fm @ X @ Ys ) )
            = ( append_fm @ Xs4 @ ( cons_fm @ X @ Ys4 ) ) )
          = ( ( Xs = Xs4 )
            & ( Ys = Ys4 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_272_append__Cons__eq__iff,axiom,
    ! [X: tm,Xs: list_tm,Ys: list_tm,Xs4: list_tm,Ys4: list_tm] :
      ( ~ ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
     => ( ~ ( member_tm2 @ X @ ( set_tm2 @ Ys ) )
       => ( ( ( append_tm @ Xs @ ( cons_tm @ X @ Ys ) )
            = ( append_tm @ Xs4 @ ( cons_tm @ X @ Ys4 ) ) )
          = ( ( Xs = Xs4 )
            & ( Ys = Ys4 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_273_append__Cons__eq__iff,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat,Xs4: list_nat,Ys4: list_nat] :
      ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ~ ( member_nat2 @ X @ ( set_nat2 @ Ys ) )
       => ( ( ( append_nat @ Xs @ ( cons_nat @ X @ Ys ) )
            = ( append_nat @ Xs4 @ ( cons_nat @ X @ Ys4 ) ) )
          = ( ( Xs = Xs4 )
            & ( Ys = Ys4 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_274_append__eq__map__conv,axiom,
    ! [Ys: list_nat,Zs: list_nat,F: nat > nat,Xs: list_nat] :
      ( ( ( append_nat @ Ys @ Zs )
        = ( map_nat_nat @ F @ Xs ) )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Xs
              = ( append_nat @ Us2 @ Vs ) )
            & ( Ys
              = ( map_nat_nat @ F @ Us2 ) )
            & ( Zs
              = ( map_nat_nat @ F @ Vs ) ) ) ) ) ).

% append_eq_map_conv
thf(fact_275_in__set__conv__decomp,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
      = ( ? [Ys3: list_a,Zs3: list_a] :
            ( Xs
            = ( append_a @ Ys3 @ ( cons_a @ X @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_276_in__set__conv__decomp,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
      = ( ? [Ys3: list_fm,Zs3: list_fm] :
            ( Xs
            = ( append_fm @ Ys3 @ ( cons_fm @ X @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_277_in__set__conv__decomp,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
      = ( ? [Ys3: list_tm,Zs3: list_tm] :
            ( Xs
            = ( append_tm @ Ys3 @ ( cons_tm @ X @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_278_in__set__conv__decomp,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
      = ( ? [Ys3: list_nat,Zs3: list_nat] :
            ( Xs
            = ( append_nat @ Ys3 @ ( cons_nat @ X @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_279_map__eq__append__conv,axiom,
    ! [F: nat > nat,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs )
        = ( append_nat @ Ys @ Zs ) )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Xs
              = ( append_nat @ Us2 @ Vs ) )
            & ( Ys
              = ( map_nat_nat @ F @ Us2 ) )
            & ( Zs
              = ( map_nat_nat @ F @ Vs ) ) ) ) ) ).

% map_eq_append_conv
thf(fact_280_Cons__eq__append__conv,axiom,
    ! [X: fm,Xs: list_fm,Ys: list_fm,Zs: list_fm] :
      ( ( ( cons_fm @ X @ Xs )
        = ( append_fm @ Ys @ Zs ) )
      = ( ( ( Ys = nil_fm )
          & ( ( cons_fm @ X @ Xs )
            = Zs ) )
        | ? [Ys5: list_fm] :
            ( ( ( cons_fm @ X @ Ys5 )
              = Ys )
            & ( Xs
              = ( append_fm @ Ys5 @ Zs ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_281_Cons__eq__append__conv,axiom,
    ! [X: tm,Xs: list_tm,Ys: list_tm,Zs: list_tm] :
      ( ( ( cons_tm @ X @ Xs )
        = ( append_tm @ Ys @ Zs ) )
      = ( ( ( Ys = nil_tm )
          & ( ( cons_tm @ X @ Xs )
            = Zs ) )
        | ? [Ys5: list_tm] :
            ( ( ( cons_tm @ X @ Ys5 )
              = Ys )
            & ( Xs
              = ( append_tm @ Ys5 @ Zs ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_282_Cons__eq__append__conv,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( cons_nat @ X @ Xs )
        = ( append_nat @ Ys @ Zs ) )
      = ( ( ( Ys = nil_nat )
          & ( ( cons_nat @ X @ Xs )
            = Zs ) )
        | ? [Ys5: list_nat] :
            ( ( ( cons_nat @ X @ Ys5 )
              = Ys )
            & ( Xs
              = ( append_nat @ Ys5 @ Zs ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_283_append__eq__Cons__conv,axiom,
    ! [Ys: list_fm,Zs: list_fm,X: fm,Xs: list_fm] :
      ( ( ( append_fm @ Ys @ Zs )
        = ( cons_fm @ X @ Xs ) )
      = ( ( ( Ys = nil_fm )
          & ( Zs
            = ( cons_fm @ X @ Xs ) ) )
        | ? [Ys5: list_fm] :
            ( ( Ys
              = ( cons_fm @ X @ Ys5 ) )
            & ( ( append_fm @ Ys5 @ Zs )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_284_append__eq__Cons__conv,axiom,
    ! [Ys: list_tm,Zs: list_tm,X: tm,Xs: list_tm] :
      ( ( ( append_tm @ Ys @ Zs )
        = ( cons_tm @ X @ Xs ) )
      = ( ( ( Ys = nil_tm )
          & ( Zs
            = ( cons_tm @ X @ Xs ) ) )
        | ? [Ys5: list_tm] :
            ( ( Ys
              = ( cons_tm @ X @ Ys5 ) )
            & ( ( append_tm @ Ys5 @ Zs )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_285_append__eq__Cons__conv,axiom,
    ! [Ys: list_nat,Zs: list_nat,X: nat,Xs: list_nat] :
      ( ( ( append_nat @ Ys @ Zs )
        = ( cons_nat @ X @ Xs ) )
      = ( ( ( Ys = nil_nat )
          & ( Zs
            = ( cons_nat @ X @ Xs ) ) )
        | ? [Ys5: list_nat] :
            ( ( Ys
              = ( cons_nat @ X @ Ys5 ) )
            & ( ( append_nat @ Ys5 @ Zs )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_286_rev__nonempty__induct,axiom,
    ! [Xs: list_fm,P: list_fm > $o] :
      ( ( Xs != nil_fm )
     => ( ! [X3: fm] : ( P @ ( cons_fm @ X3 @ nil_fm ) )
       => ( ! [X3: fm,Xs3: list_fm] :
              ( ( Xs3 != nil_fm )
             => ( ( P @ Xs3 )
               => ( P @ ( append_fm @ Xs3 @ ( cons_fm @ X3 @ nil_fm ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_287_rev__nonempty__induct,axiom,
    ! [Xs: list_tm,P: list_tm > $o] :
      ( ( Xs != nil_tm )
     => ( ! [X3: tm] : ( P @ ( cons_tm @ X3 @ nil_tm ) )
       => ( ! [X3: tm,Xs3: list_tm] :
              ( ( Xs3 != nil_tm )
             => ( ( P @ Xs3 )
               => ( P @ ( append_tm @ Xs3 @ ( cons_tm @ X3 @ nil_tm ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_288_rev__nonempty__induct,axiom,
    ! [Xs: list_nat,P: list_nat > $o] :
      ( ( Xs != nil_nat )
     => ( ! [X3: nat] : ( P @ ( cons_nat @ X3 @ nil_nat ) )
       => ( ! [X3: nat,Xs3: list_nat] :
              ( ( Xs3 != nil_nat )
             => ( ( P @ Xs3 )
               => ( P @ ( append_nat @ Xs3 @ ( cons_nat @ X3 @ nil_nat ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_289_list__nonempty__induct,axiom,
    ! [Xs: list_fm,P: list_fm > $o] :
      ( ( Xs != nil_fm )
     => ( ! [X3: fm] : ( P @ ( cons_fm @ X3 @ nil_fm ) )
       => ( ! [X3: fm,Xs3: list_fm] :
              ( ( Xs3 != nil_fm )
             => ( ( P @ Xs3 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_290_list__nonempty__induct,axiom,
    ! [Xs: list_tm,P: list_tm > $o] :
      ( ( Xs != nil_tm )
     => ( ! [X3: tm] : ( P @ ( cons_tm @ X3 @ nil_tm ) )
       => ( ! [X3: tm,Xs3: list_tm] :
              ( ( Xs3 != nil_tm )
             => ( ( P @ Xs3 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_291_list__nonempty__induct,axiom,
    ! [Xs: list_nat,P: list_nat > $o] :
      ( ( Xs != nil_nat )
     => ( ! [X3: nat] : ( P @ ( cons_nat @ X3 @ nil_nat ) )
       => ( ! [X3: nat,Xs3: list_nat] :
              ( ( Xs3 != nil_nat )
             => ( ( P @ Xs3 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% list_nonempty_induct
thf(fact_292_split__list__last__prop,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_tm,X3: tm,Zs2: list_tm] :
          ( ( Xs
            = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
          & ( P @ X3 )
          & ! [Xa2: tm] :
              ( ( member_tm2 @ Xa2 @ ( set_tm2 @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_293_split__list__last__prop,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_nat,X3: nat,Zs2: list_nat] :
          ( ( Xs
            = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
          & ( P @ X3 )
          & ! [Xa2: nat] :
              ( ( member_nat2 @ Xa2 @ ( set_nat2 @ Zs2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_last_prop
thf(fact_294_split__list__first__prop,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_tm,X3: tm] :
          ( ? [Zs2: list_tm] :
              ( Xs
              = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
          & ( P @ X3 )
          & ! [Xa2: tm] :
              ( ( member_tm2 @ Xa2 @ ( set_tm2 @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_295_split__list__first__prop,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ? [Ys2: list_nat,X3: nat] :
          ( ? [Zs2: list_nat] :
              ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
          & ( P @ X3 )
          & ! [Xa2: nat] :
              ( ( member_nat2 @ Xa2 @ ( set_nat2 @ Ys2 ) )
             => ~ ( P @ Xa2 ) ) ) ) ).

% split_list_first_prop
thf(fact_296_split__list__last__propE,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_tm,X3: tm,Zs2: list_tm] :
            ( ( Xs
              = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
           => ( ( P @ X3 )
             => ~ ! [Xa2: tm] :
                    ( ( member_tm2 @ Xa2 @ ( set_tm2 @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_297_split__list__last__propE,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_nat,X3: nat,Zs2: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
           => ( ( P @ X3 )
             => ~ ! [Xa2: nat] :
                    ( ( member_nat2 @ Xa2 @ ( set_nat2 @ Zs2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_last_propE
thf(fact_298_append__eq__append__conv2,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat,Ts: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = ( append_nat @ Zs @ Ts ) )
      = ( ? [Us2: list_nat] :
            ( ( ( Xs
                = ( append_nat @ Zs @ Us2 ) )
              & ( ( append_nat @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append_nat @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append_nat @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_299_split__list__first__propE,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ? [X4: tm] :
          ( ( member_tm2 @ X4 @ ( set_tm2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_tm,X3: tm] :
            ( ? [Zs2: list_tm] :
                ( Xs
                = ( append_tm @ Ys2 @ ( cons_tm @ X3 @ Zs2 ) ) )
           => ( ( P @ X3 )
             => ~ ! [Xa2: tm] :
                    ( ( member_tm2 @ Xa2 @ ( set_tm2 @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_300_split__list__first__propE,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ? [X4: nat] :
          ( ( member_nat2 @ X4 @ ( set_nat2 @ Xs ) )
          & ( P @ X4 ) )
     => ~ ! [Ys2: list_nat,X3: nat] :
            ( ? [Zs2: list_nat] :
                ( Xs
                = ( append_nat @ Ys2 @ ( cons_nat @ X3 @ Zs2 ) ) )
           => ( ( P @ X3 )
             => ~ ! [Xa2: nat] :
                    ( ( member_nat2 @ Xa2 @ ( set_nat2 @ Ys2 ) )
                   => ~ ( P @ Xa2 ) ) ) ) ) ).

% split_list_first_propE
thf(fact_301_in__set__conv__decomp__last,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
      = ( ? [Ys3: list_a,Zs3: list_a] :
            ( ( Xs
              = ( append_a @ Ys3 @ ( cons_a @ X @ Zs3 ) ) )
            & ~ ( member_a2 @ X @ ( set_a2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_302_in__set__conv__decomp__last,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
      = ( ? [Ys3: list_fm,Zs3: list_fm] :
            ( ( Xs
              = ( append_fm @ Ys3 @ ( cons_fm @ X @ Zs3 ) ) )
            & ~ ( member_fm2 @ X @ ( set_fm2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_303_in__set__conv__decomp__last,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
      = ( ? [Ys3: list_tm,Zs3: list_tm] :
            ( ( Xs
              = ( append_tm @ Ys3 @ ( cons_tm @ X @ Zs3 ) ) )
            & ~ ( member_tm2 @ X @ ( set_tm2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_304_in__set__conv__decomp__last,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
      = ( ? [Ys3: list_nat,Zs3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys3 @ ( cons_nat @ X @ Zs3 ) ) )
            & ~ ( member_nat2 @ X @ ( set_nat2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_305_in__set__conv__decomp__first,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
      = ( ? [Ys3: list_a,Zs3: list_a] :
            ( ( Xs
              = ( append_a @ Ys3 @ ( cons_a @ X @ Zs3 ) ) )
            & ~ ( member_a2 @ X @ ( set_a2 @ Ys3 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_306_in__set__conv__decomp__first,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
      = ( ? [Ys3: list_fm,Zs3: list_fm] :
            ( ( Xs
              = ( append_fm @ Ys3 @ ( cons_fm @ X @ Zs3 ) ) )
            & ~ ( member_fm2 @ X @ ( set_fm2 @ Ys3 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_307_in__set__conv__decomp__first,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
      = ( ? [Ys3: list_tm,Zs3: list_tm] :
            ( ( Xs
              = ( append_tm @ Ys3 @ ( cons_tm @ X @ Zs3 ) ) )
            & ~ ( member_tm2 @ X @ ( set_tm2 @ Ys3 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_308_in__set__conv__decomp__first,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
      = ( ? [Ys3: list_nat,Zs3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys3 @ ( cons_nat @ X @ Zs3 ) ) )
            & ~ ( member_nat2 @ X @ ( set_nat2 @ Ys3 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_309_split__list__last__prop__iff,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ( ? [X2: tm] :
            ( ( member_tm2 @ X2 @ ( set_tm2 @ Xs ) )
            & ( P @ X2 ) ) )
      = ( ? [Ys3: list_tm,X2: tm,Zs3: list_tm] :
            ( ( Xs
              = ( append_tm @ Ys3 @ ( cons_tm @ X2 @ Zs3 ) ) )
            & ( P @ X2 )
            & ! [Y2: tm] :
                ( ( member_tm2 @ Y2 @ ( set_tm2 @ Zs3 ) )
               => ~ ( P @ Y2 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_310_split__list__last__prop__iff,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ( ? [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
            & ( P @ X2 ) ) )
      = ( ? [Ys3: list_nat,X2: nat,Zs3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys3 @ ( cons_nat @ X2 @ Zs3 ) ) )
            & ( P @ X2 )
            & ! [Y2: nat] :
                ( ( member_nat2 @ Y2 @ ( set_nat2 @ Zs3 ) )
               => ~ ( P @ Y2 ) ) ) ) ) ).

% split_list_last_prop_iff
thf(fact_311_split__list__first__prop__iff,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ( ? [X2: tm] :
            ( ( member_tm2 @ X2 @ ( set_tm2 @ Xs ) )
            & ( P @ X2 ) ) )
      = ( ? [Ys3: list_tm,X2: tm] :
            ( ? [Zs3: list_tm] :
                ( Xs
                = ( append_tm @ Ys3 @ ( cons_tm @ X2 @ Zs3 ) ) )
            & ( P @ X2 )
            & ! [Y2: tm] :
                ( ( member_tm2 @ Y2 @ ( set_tm2 @ Ys3 ) )
               => ~ ( P @ Y2 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_312_split__list__first__prop__iff,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ( ? [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
            & ( P @ X2 ) ) )
      = ( ? [Ys3: list_nat,X2: nat] :
            ( ? [Zs3: list_nat] :
                ( Xs
                = ( append_nat @ Ys3 @ ( cons_nat @ X2 @ Zs3 ) ) )
            & ( P @ X2 )
            & ! [Y2: nat] :
                ( ( member_nat2 @ Y2 @ ( set_nat2 @ Ys3 ) )
               => ~ ( P @ Y2 ) ) ) ) ) ).

% split_list_first_prop_iff
thf(fact_313_list_Omap__ident,axiom,
    ! [T: list_nat] :
      ( ( map_nat_nat
        @ ^ [X2: nat] : X2
        @ T )
      = T ) ).

% list.map_ident
thf(fact_314_is__env__def,axiom,
    ( is_env_a
    = ( ^ [U: set_a,E2: nat > a] :
        ! [N2: nat] : ( member_a2 @ ( E2 @ N2 ) @ U ) ) ) ).

% is_env_def
thf(fact_315_is__env__def,axiom,
    ( is_env_nat
    = ( ^ [U: set_nat,E2: nat > nat] :
        ! [N2: nat] : ( member_nat2 @ ( E2 @ N2 ) @ U ) ) ) ).

% is_env_def
thf(fact_316_is__env__def,axiom,
    ( is_env_fm
    = ( ^ [U: set_fm,E2: nat > fm] :
        ! [N2: nat] : ( member_fm2 @ ( E2 @ N2 ) @ U ) ) ) ).

% is_env_def
thf(fact_317_semantics__list_Osimps_I2_J,axiom,
    ! [E: nat > tm,F: nat > list_tm > tm,T: tm,L2: list_tm] :
      ( ( semantics_list_tm @ E @ F @ ( cons_tm @ T @ L2 ) )
      = ( cons_tm @ ( semantics_term_tm @ E @ F @ T ) @ ( semantics_list_tm @ E @ F @ L2 ) ) ) ).

% semantics_list.simps(2)
thf(fact_318_semantics__list_Osimps_I2_J,axiom,
    ! [E: nat > nat,F: nat > list_nat > nat,T: tm,L2: list_tm] :
      ( ( semantics_list_nat @ E @ F @ ( cons_tm @ T @ L2 ) )
      = ( cons_nat @ ( semantics_term_nat @ E @ F @ T ) @ ( semantics_list_nat @ E @ F @ L2 ) ) ) ).

% semantics_list.simps(2)
thf(fact_319_list__ex1__simps_I2_J,axiom,
    ! [P: tm > $o,X: tm,Xs: list_tm] :
      ( ( list_ex1_tm @ P @ ( cons_tm @ X @ Xs ) )
      = ( ( ( P @ X )
         => ( list_all_tm
            @ ^ [Y2: tm] :
                ( ~ ( P @ Y2 )
                | ( X = Y2 ) )
            @ Xs ) )
        & ( ~ ( P @ X )
         => ( list_ex1_tm @ P @ Xs ) ) ) ) ).

% list_ex1_simps(2)
thf(fact_320_list__ex1__simps_I2_J,axiom,
    ! [P: a > $o,X: a,Xs: list_a] :
      ( ( list_ex1_a @ P @ ( cons_a @ X @ Xs ) )
      = ( ( ( P @ X )
         => ( list_all_a
            @ ^ [Y2: a] :
                ( ~ ( P @ Y2 )
                | ( X = Y2 ) )
            @ Xs ) )
        & ( ~ ( P @ X )
         => ( list_ex1_a @ P @ Xs ) ) ) ) ).

% list_ex1_simps(2)
thf(fact_321_list__ex1__simps_I2_J,axiom,
    ! [P: fm > $o,X: fm,Xs: list_fm] :
      ( ( list_ex1_fm @ P @ ( cons_fm @ X @ Xs ) )
      = ( ( ( P @ X )
         => ( list_all_fm
            @ ^ [Y2: fm] :
                ( ~ ( P @ Y2 )
                | ( X = Y2 ) )
            @ Xs ) )
        & ( ~ ( P @ X )
         => ( list_ex1_fm @ P @ Xs ) ) ) ) ).

% list_ex1_simps(2)
thf(fact_322_list__ex1__simps_I2_J,axiom,
    ! [P: nat > $o,X: nat,Xs: list_nat] :
      ( ( list_ex1_nat @ P @ ( cons_nat @ X @ Xs ) )
      = ( ( ( P @ X )
         => ( list_all_nat
            @ ^ [Y2: nat] :
                ( ~ ( P @ Y2 )
                | ( X = Y2 ) )
            @ Xs ) )
        & ( ~ ( P @ X )
         => ( list_ex1_nat @ P @ Xs ) ) ) ) ).

% list_ex1_simps(2)
thf(fact_323_semantics__list_Osimps_I1_J,axiom,
    ! [E: nat > fm,F: nat > list_fm > fm] :
      ( ( semantics_list_fm @ E @ F @ nil_tm )
      = nil_fm ) ).

% semantics_list.simps(1)
thf(fact_324_semantics__list_Osimps_I1_J,axiom,
    ! [E: nat > tm,F: nat > list_tm > tm] :
      ( ( semantics_list_tm @ E @ F @ nil_tm )
      = nil_tm ) ).

% semantics_list.simps(1)
thf(fact_325_semantics__list_Osimps_I1_J,axiom,
    ! [E: nat > nat,F: nat > list_nat > nat] :
      ( ( semantics_list_nat @ E @ F @ nil_tm )
      = nil_nat ) ).

% semantics_list.simps(1)
thf(fact_326_the__elem__set,axiom,
    ! [X: fm] :
      ( ( the_elem_fm @ ( set_fm2 @ ( cons_fm @ X @ nil_fm ) ) )
      = X ) ).

% the_elem_set
thf(fact_327_the__elem__set,axiom,
    ! [X: tm] :
      ( ( the_elem_tm @ ( set_tm2 @ ( cons_tm @ X @ nil_tm ) ) )
      = X ) ).

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

% the_elem_set
thf(fact_329_bind__simps_I2_J,axiom,
    ! [X: tm,Xs: list_tm,F: tm > list_nat] :
      ( ( bind_tm_nat @ ( cons_tm @ X @ Xs ) @ F )
      = ( append_nat @ ( F @ X ) @ ( bind_tm_nat @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_330_bind__simps_I2_J,axiom,
    ! [X: nat,Xs: list_nat,F: nat > list_nat] :
      ( ( bind_nat_nat @ ( cons_nat @ X @ Xs ) @ F )
      = ( append_nat @ ( F @ X ) @ ( bind_nat_nat @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_331_map__rec,axiom,
    ( map_nat_nat
    = ( ^ [F2: nat > nat] :
          ( rec_li7516600145284979816at_nat @ nil_nat
          @ ^ [X2: nat,Uu: list_nat] : ( cons_nat @ ( F2 @ X2 ) ) ) ) ) ).

% map_rec
thf(fact_332_map__tailrec__rev,axiom,
    ( map_ta7164188454487880599at_nat
    = ( ^ [F2: nat > nat,As: list_nat] : ( append_nat @ ( rev_nat @ ( map_nat_nat @ F2 @ As ) ) ) ) ) ).

% map_tailrec_rev
thf(fact_333_maps__simps_I1_J,axiom,
    ! [F: tm > list_nat,X: tm,Xs: list_tm] :
      ( ( maps_tm_nat @ F @ ( cons_tm @ X @ Xs ) )
      = ( append_nat @ ( F @ X ) @ ( maps_tm_nat @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_334_maps__simps_I1_J,axiom,
    ! [F: nat > list_nat,X: nat,Xs: list_nat] :
      ( ( maps_nat_nat @ F @ ( cons_nat @ X @ Xs ) )
      = ( append_nat @ ( F @ X ) @ ( maps_nat_nat @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_335_not__in__set__insert,axiom,
    ! [X: a,Xs: list_a] :
      ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ( insert_a @ X @ Xs )
        = ( cons_a @ X @ Xs ) ) ) ).

% not_in_set_insert
thf(fact_336_not__in__set__insert,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ( insert_fm @ X @ Xs )
        = ( cons_fm @ X @ Xs ) ) ) ).

% not_in_set_insert
thf(fact_337_not__in__set__insert,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ~ ( member_tm2 @ X @ ( set_tm2 @ Xs ) )
     => ( ( insert_tm @ X @ Xs )
        = ( cons_tm @ X @ Xs ) ) ) ).

% not_in_set_insert
thf(fact_338_not__in__set__insert,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ( insert_nat @ X @ Xs )
        = ( cons_nat @ X @ Xs ) ) ) ).

% not_in_set_insert
thf(fact_339_insert__Nil,axiom,
    ! [X: fm] :
      ( ( insert_fm @ X @ nil_fm )
      = ( cons_fm @ X @ nil_fm ) ) ).

% insert_Nil
thf(fact_340_insert__Nil,axiom,
    ! [X: tm] :
      ( ( insert_tm @ X @ nil_tm )
      = ( cons_tm @ X @ nil_tm ) ) ).

% insert_Nil
thf(fact_341_insert__Nil,axiom,
    ! [X: nat] :
      ( ( insert_nat @ X @ nil_nat )
      = ( cons_nat @ X @ nil_nat ) ) ).

% insert_Nil
thf(fact_342_map__eq__map__tailrec,axiom,
    map_nat_nat = map_tailrec_nat_nat ).

% map_eq_map_tailrec
thf(fact_343_in__set__insert,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ( insert_a @ X @ Xs )
        = Xs ) ) ).

% in_set_insert
thf(fact_344_in__set__insert,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ( insert_nat @ X @ Xs )
        = Xs ) ) ).

% in_set_insert
thf(fact_345_in__set__insert,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ( insert_fm @ X @ Xs )
        = Xs ) ) ).

% in_set_insert
thf(fact_346_bind__simps_I1_J,axiom,
    ! [F: fm > list_fm] :
      ( ( bind_fm_fm @ nil_fm @ F )
      = nil_fm ) ).

% bind_simps(1)
thf(fact_347_bind__simps_I1_J,axiom,
    ! [F: fm > list_tm] :
      ( ( bind_fm_tm @ nil_fm @ F )
      = nil_tm ) ).

% bind_simps(1)
thf(fact_348_bind__simps_I1_J,axiom,
    ! [F: fm > list_nat] :
      ( ( bind_fm_nat @ nil_fm @ F )
      = nil_nat ) ).

% bind_simps(1)
thf(fact_349_bind__simps_I1_J,axiom,
    ! [F: tm > list_fm] :
      ( ( bind_tm_fm @ nil_tm @ F )
      = nil_fm ) ).

% bind_simps(1)
thf(fact_350_bind__simps_I1_J,axiom,
    ! [F: tm > list_tm] :
      ( ( bind_tm_tm @ nil_tm @ F )
      = nil_tm ) ).

% bind_simps(1)
thf(fact_351_bind__simps_I1_J,axiom,
    ! [F: tm > list_nat] :
      ( ( bind_tm_nat @ nil_tm @ F )
      = nil_nat ) ).

% bind_simps(1)
thf(fact_352_bind__simps_I1_J,axiom,
    ! [F: nat > list_fm] :
      ( ( bind_nat_fm @ nil_nat @ F )
      = nil_fm ) ).

% bind_simps(1)
thf(fact_353_bind__simps_I1_J,axiom,
    ! [F: nat > list_tm] :
      ( ( bind_nat_tm @ nil_nat @ F )
      = nil_tm ) ).

% bind_simps(1)
thf(fact_354_bind__simps_I1_J,axiom,
    ! [F: nat > list_nat] :
      ( ( bind_nat_nat @ nil_nat @ F )
      = nil_nat ) ).

% bind_simps(1)
thf(fact_355_list__ex1__simps_I1_J,axiom,
    ! [P: fm > $o] :
      ~ ( list_ex1_fm @ P @ nil_fm ) ).

% list_ex1_simps(1)
thf(fact_356_list__ex1__simps_I1_J,axiom,
    ! [P: tm > $o] :
      ~ ( list_ex1_tm @ P @ nil_tm ) ).

% list_ex1_simps(1)
thf(fact_357_list__ex1__simps_I1_J,axiom,
    ! [P: nat > $o] :
      ~ ( list_ex1_nat @ P @ nil_nat ) ).

% list_ex1_simps(1)
thf(fact_358_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: tm > tm,A2: tm,As2: list_tm,Bs: list_tm] :
      ( ( map_ta4789309763159252277_tm_tm @ F @ ( cons_tm @ A2 @ As2 ) @ Bs )
      = ( map_ta4789309763159252277_tm_tm @ F @ As2 @ ( cons_tm @ ( F @ A2 ) @ Bs ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_359_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: tm > nat,A2: tm,As2: list_tm,Bs: list_nat] :
      ( ( map_ta7807370561492357248tm_nat @ F @ ( cons_tm @ A2 @ As2 ) @ Bs )
      = ( map_ta7807370561492357248tm_nat @ F @ As2 @ ( cons_nat @ ( F @ A2 ) @ Bs ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_360_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: nat > tm,A2: nat,As2: list_nat,Bs: list_tm] :
      ( ( map_ta389968950240100318nat_tm @ F @ ( cons_nat @ A2 @ As2 ) @ Bs )
      = ( map_ta389968950240100318nat_tm @ F @ As2 @ ( cons_tm @ ( F @ A2 ) @ Bs ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_361_map__tailrec__rev_Osimps_I2_J,axiom,
    ! [F: nat > nat,A2: nat,As2: list_nat,Bs: list_nat] :
      ( ( map_ta7164188454487880599at_nat @ F @ ( cons_nat @ A2 @ As2 ) @ Bs )
      = ( map_ta7164188454487880599at_nat @ F @ As2 @ ( cons_nat @ ( F @ A2 ) @ Bs ) ) ) ).

% map_tailrec_rev.simps(2)
thf(fact_362_maps__simps_I2_J,axiom,
    ! [F: fm > list_fm] :
      ( ( maps_fm_fm @ F @ nil_fm )
      = nil_fm ) ).

% maps_simps(2)
thf(fact_363_maps__simps_I2_J,axiom,
    ! [F: fm > list_tm] :
      ( ( maps_fm_tm @ F @ nil_fm )
      = nil_tm ) ).

% maps_simps(2)
thf(fact_364_maps__simps_I2_J,axiom,
    ! [F: fm > list_nat] :
      ( ( maps_fm_nat @ F @ nil_fm )
      = nil_nat ) ).

% maps_simps(2)
thf(fact_365_maps__simps_I2_J,axiom,
    ! [F: tm > list_fm] :
      ( ( maps_tm_fm @ F @ nil_tm )
      = nil_fm ) ).

% maps_simps(2)
thf(fact_366_maps__simps_I2_J,axiom,
    ! [F: tm > list_tm] :
      ( ( maps_tm_tm @ F @ nil_tm )
      = nil_tm ) ).

% maps_simps(2)
thf(fact_367_maps__simps_I2_J,axiom,
    ! [F: tm > list_nat] :
      ( ( maps_tm_nat @ F @ nil_tm )
      = nil_nat ) ).

% maps_simps(2)
thf(fact_368_maps__simps_I2_J,axiom,
    ! [F: nat > list_fm] :
      ( ( maps_nat_fm @ F @ nil_nat )
      = nil_fm ) ).

% maps_simps(2)
thf(fact_369_maps__simps_I2_J,axiom,
    ! [F: nat > list_tm] :
      ( ( maps_nat_tm @ F @ nil_nat )
      = nil_tm ) ).

% maps_simps(2)
thf(fact_370_maps__simps_I2_J,axiom,
    ! [F: nat > list_nat] :
      ( ( maps_nat_nat @ F @ nil_nat )
      = nil_nat ) ).

% maps_simps(2)
thf(fact_371_list__ex1__iff,axiom,
    ( list_ex1_a
    = ( ^ [P3: a > $o,Xs2: list_a] :
        ? [X2: a] :
          ( ( member_a2 @ X2 @ ( set_a2 @ Xs2 ) )
          & ( P3 @ X2 )
          & ! [Y2: a] :
              ( ( ( member_a2 @ Y2 @ ( set_a2 @ Xs2 ) )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% list_ex1_iff
thf(fact_372_list__ex1__iff,axiom,
    ( list_ex1_nat
    = ( ^ [P3: nat > $o,Xs2: list_nat] :
        ? [X2: nat] :
          ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs2 ) )
          & ( P3 @ X2 )
          & ! [Y2: nat] :
              ( ( ( member_nat2 @ Y2 @ ( set_nat2 @ Xs2 ) )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% list_ex1_iff
thf(fact_373_list__ex1__iff,axiom,
    ( list_ex1_fm
    = ( ^ [P3: fm > $o,Xs2: list_fm] :
        ? [X2: fm] :
          ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs2 ) )
          & ( P3 @ X2 )
          & ! [Y2: fm] :
              ( ( ( member_fm2 @ Y2 @ ( set_fm2 @ Xs2 ) )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% list_ex1_iff
thf(fact_374_List_Oinsert__def,axiom,
    ( insert_a
    = ( ^ [X2: a,Xs2: list_a] : ( if_list_a @ ( member_a2 @ X2 @ ( set_a2 @ Xs2 ) ) @ Xs2 @ ( cons_a @ X2 @ Xs2 ) ) ) ) ).

% List.insert_def
thf(fact_375_List_Oinsert__def,axiom,
    ( insert_fm
    = ( ^ [X2: fm,Xs2: list_fm] : ( if_list_fm @ ( member_fm2 @ X2 @ ( set_fm2 @ Xs2 ) ) @ Xs2 @ ( cons_fm @ X2 @ Xs2 ) ) ) ) ).

% List.insert_def
thf(fact_376_List_Oinsert__def,axiom,
    ( insert_tm
    = ( ^ [X2: tm,Xs2: list_tm] : ( if_list_tm @ ( member_tm2 @ X2 @ ( set_tm2 @ Xs2 ) ) @ Xs2 @ ( cons_tm @ X2 @ Xs2 ) ) ) ) ).

% List.insert_def
thf(fact_377_List_Oinsert__def,axiom,
    ( insert_nat
    = ( ^ [X2: nat,Xs2: list_nat] : ( if_list_nat @ ( member_nat2 @ X2 @ ( set_nat2 @ Xs2 ) ) @ Xs2 @ ( cons_nat @ X2 @ Xs2 ) ) ) ) ).

% List.insert_def
thf(fact_378_map__tailrec__rev_Oelims,axiom,
    ! [X: fm > tm,Xa: list_fm,Xb: list_tm,Y: list_tm] :
      ( ( ( map_ta229225445363629095_fm_tm @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_fm )
         => ( Y != Xb ) )
       => ~ ! [A4: fm,As3: list_fm] :
              ( ( Xa
                = ( cons_fm @ A4 @ As3 ) )
             => ( Y
               != ( map_ta229225445363629095_fm_tm @ X @ As3 @ ( cons_tm @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_379_map__tailrec__rev_Oelims,axiom,
    ! [X: fm > nat,Xa: list_fm,Xb: list_nat,Y: list_nat] :
      ( ( ( map_ta6142991304421856526fm_nat @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_fm )
         => ( Y != Xb ) )
       => ~ ! [A4: fm,As3: list_fm] :
              ( ( Xa
                = ( cons_fm @ A4 @ As3 ) )
             => ( Y
               != ( map_ta6142991304421856526fm_nat @ X @ As3 @ ( cons_nat @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_380_map__tailrec__rev_Oelims,axiom,
    ! [X: tm > tm,Xa: list_tm,Xb: list_tm,Y: list_tm] :
      ( ( ( map_ta4789309763159252277_tm_tm @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_tm )
         => ( Y != Xb ) )
       => ~ ! [A4: tm,As3: list_tm] :
              ( ( Xa
                = ( cons_tm @ A4 @ As3 ) )
             => ( Y
               != ( map_ta4789309763159252277_tm_tm @ X @ As3 @ ( cons_tm @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_381_map__tailrec__rev_Oelims,axiom,
    ! [X: tm > nat,Xa: list_tm,Xb: list_nat,Y: list_nat] :
      ( ( ( map_ta7807370561492357248tm_nat @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_tm )
         => ( Y != Xb ) )
       => ~ ! [A4: tm,As3: list_tm] :
              ( ( Xa
                = ( cons_tm @ A4 @ As3 ) )
             => ( Y
               != ( map_ta7807370561492357248tm_nat @ X @ As3 @ ( cons_nat @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_382_map__tailrec__rev_Oelims,axiom,
    ! [X: nat > tm,Xa: list_nat,Xb: list_tm,Y: list_tm] :
      ( ( ( map_ta389968950240100318nat_tm @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_nat )
         => ( Y != Xb ) )
       => ~ ! [A4: nat,As3: list_nat] :
              ( ( Xa
                = ( cons_nat @ A4 @ As3 ) )
             => ( Y
               != ( map_ta389968950240100318nat_tm @ X @ As3 @ ( cons_tm @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_383_map__tailrec__rev_Oelims,axiom,
    ! [X: nat > nat,Xa: list_nat,Xb: list_nat,Y: list_nat] :
      ( ( ( map_ta7164188454487880599at_nat @ X @ Xa @ Xb )
        = Y )
     => ( ( ( Xa = nil_nat )
         => ( Y != Xb ) )
       => ~ ! [A4: nat,As3: list_nat] :
              ( ( Xa
                = ( cons_nat @ A4 @ As3 ) )
             => ( Y
               != ( map_ta7164188454487880599at_nat @ X @ As3 @ ( cons_nat @ ( X @ A4 ) @ Xb ) ) ) ) ) ) ).

% map_tailrec_rev.elims
thf(fact_384_upd__lemma_H_I2_J,axiom,
    ! [N: nat,Ts: list_tm,E: nat > a,F: nat > list_a > a,Z: list_a > a] :
      ( ~ ( member_nat2 @ N @ ( paramsts @ Ts ) )
     => ( ( semantics_list_a @ E @ ( fun_upd_nat_list_a_a @ F @ N @ Z ) @ Ts )
        = ( semantics_list_a @ E @ F @ Ts ) ) ) ).

% upd_lemma'(2)
thf(fact_385_upd__lemma_H_I1_J,axiom,
    ! [N: nat,T: tm,E: nat > a,F: nat > list_a > a,Z: list_a > a] :
      ( ~ ( member_nat2 @ N @ ( paramst @ T ) )
     => ( ( semantics_term_a @ E @ ( fun_upd_nat_list_a_a @ F @ N @ Z ) @ T )
        = ( semantics_term_a @ E @ F @ T ) ) ) ).

% upd_lemma'(1)
thf(fact_386_product__lists_Osimps_I1_J,axiom,
    ( ( product_lists_fm @ nil_list_fm )
    = ( cons_list_fm @ nil_fm @ nil_list_fm ) ) ).

% product_lists.simps(1)
thf(fact_387_product__lists_Osimps_I1_J,axiom,
    ( ( product_lists_tm @ nil_list_tm )
    = ( cons_list_tm @ nil_tm @ nil_list_tm ) ) ).

% product_lists.simps(1)
thf(fact_388_product__lists_Osimps_I1_J,axiom,
    ( ( product_lists_nat @ nil_list_nat )
    = ( cons_list_nat @ nil_nat @ nil_list_nat ) ) ).

% product_lists.simps(1)
thf(fact_389_s3,axiom,
    ( news
    = ( ^ [C2: nat] :
          ( list_all_fm
          @ ^ [P4: fm] :
              ~ ( member_nat2 @ C2 @ ( params @ P4 ) ) ) ) ) ).

% s3
thf(fact_390_subseqs_Osimps_I1_J,axiom,
    ( ( subseqs_fm @ nil_fm )
    = ( cons_list_fm @ nil_fm @ nil_list_fm ) ) ).

% subseqs.simps(1)
thf(fact_391_subseqs_Osimps_I1_J,axiom,
    ( ( subseqs_tm @ nil_tm )
    = ( cons_list_tm @ nil_tm @ nil_list_tm ) ) ).

% subseqs.simps(1)
thf(fact_392_subseqs_Osimps_I1_J,axiom,
    ( ( subseqs_nat @ nil_nat )
    = ( cons_list_nat @ nil_nat @ nil_list_nat ) ) ).

% subseqs.simps(1)
thf(fact_393_upd__lemma,axiom,
    ! [N: nat,P2: fm,E: nat > a,F: nat > list_a > a,Z: list_a > a,G: nat > list_a > $o] :
      ( ~ ( member_nat2 @ N @ ( params @ P2 ) )
     => ( ( semantics_a @ E @ ( fun_upd_nat_list_a_a @ F @ N @ Z ) @ G @ P2 )
        = ( semantics_a @ E @ F @ G @ P2 ) ) ) ).

% upd_lemma
thf(fact_394_news_Osimps_I1_J,axiom,
    ! [C: nat] : ( news @ C @ nil_fm ) ).

% news.simps(1)
thf(fact_395_can__select__def,axiom,
    ( can_select_a
    = ( ^ [P3: a > $o,A5: set_a] :
        ? [X2: a] :
          ( ( member_a2 @ X2 @ A5 )
          & ( P3 @ X2 )
          & ! [Y2: a] :
              ( ( ( member_a2 @ Y2 @ A5 )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% can_select_def
thf(fact_396_can__select__def,axiom,
    ( can_select_nat
    = ( ^ [P3: nat > $o,A5: set_nat] :
        ? [X2: nat] :
          ( ( member_nat2 @ X2 @ A5 )
          & ( P3 @ X2 )
          & ! [Y2: nat] :
              ( ( ( member_nat2 @ Y2 @ A5 )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% can_select_def
thf(fact_397_can__select__def,axiom,
    ( can_select_fm
    = ( ^ [P3: fm > $o,A5: set_fm] :
        ? [X2: fm] :
          ( ( member_fm2 @ X2 @ A5 )
          & ( P3 @ X2 )
          & ! [Y2: fm] :
              ( ( ( member_fm2 @ Y2 @ A5 )
                & ( P3 @ Y2 ) )
             => ( Y2 = X2 ) ) ) ) ) ).

% can_select_def
thf(fact_398_Cons__in__subseqsD,axiom,
    ! [Y: tm,Ys: list_tm,Xs: list_tm] :
      ( ( member_list_tm @ ( cons_tm @ Y @ Ys ) @ ( set_list_tm2 @ ( subseqs_tm @ Xs ) ) )
     => ( member_list_tm @ Ys @ ( set_list_tm2 @ ( subseqs_tm @ Xs ) ) ) ) ).

% Cons_in_subseqsD
thf(fact_399_Cons__in__subseqsD,axiom,
    ! [Y: nat,Ys: list_nat,Xs: list_nat] :
      ( ( member_list_nat @ ( cons_nat @ Y @ Ys ) @ ( set_list_nat2 @ ( subseqs_nat @ Xs ) ) )
     => ( member_list_nat @ Ys @ ( set_list_nat2 @ ( subseqs_nat @ Xs ) ) ) ) ).

% Cons_in_subseqsD
thf(fact_400_subseqs_Osimps_I2_J,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( subseqs_tm @ ( cons_tm @ X @ Xs ) )
      = ( append_list_tm @ ( map_list_tm_list_tm @ ( cons_tm @ X ) @ ( subseqs_tm @ Xs ) ) @ ( subseqs_tm @ Xs ) ) ) ).

% subseqs.simps(2)
thf(fact_401_subseqs_Osimps_I2_J,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( subseqs_nat @ ( cons_nat @ X @ Xs ) )
      = ( append_list_nat @ ( map_li7225945977422193158st_nat @ ( cons_nat @ X ) @ ( subseqs_nat @ Xs ) ) @ ( subseqs_nat @ Xs ) ) ) ).

% subseqs.simps(2)
thf(fact_402_s1_I1_J,axiom,
    ( new_term
    = ( ^ [C2: nat,T2: tm] :
          ~ ( member_nat2 @ C2 @ ( paramst @ T2 ) ) ) ) ).

% s1(1)
thf(fact_403_Succ__def,axiom,
    ( bNF_Greatest_Succ_fm
    = ( ^ [Kl: set_list_fm,Kl2: list_fm] :
          ( collect_fm
          @ ^ [K: fm] : ( member_list_fm @ ( append_fm @ Kl2 @ ( cons_fm @ K @ nil_fm ) ) @ Kl ) ) ) ) ).

% Succ_def
thf(fact_404_Succ__def,axiom,
    ( bNF_Greatest_Succ_tm
    = ( ^ [Kl: set_list_tm,Kl2: list_tm] :
          ( collect_tm
          @ ^ [K: tm] : ( member_list_tm @ ( append_tm @ Kl2 @ ( cons_tm @ K @ nil_tm ) ) @ Kl ) ) ) ) ).

% Succ_def
thf(fact_405_Succ__def,axiom,
    ( bNF_Gr6352880689984616693cc_nat
    = ( ^ [Kl: set_list_nat,Kl2: list_nat] :
          ( collect_nat
          @ ^ [K: nat] : ( member_list_nat @ ( append_nat @ Kl2 @ ( cons_nat @ K @ nil_nat ) ) @ Kl ) ) ) ) ).

% Succ_def
thf(fact_406_SuccI,axiom,
    ! [Kl3: list_a,K2: a,Kl4: set_list_a] :
      ( ( member_list_a @ ( append_a @ Kl3 @ ( cons_a @ K2 @ nil_a ) ) @ Kl4 )
     => ( member_a2 @ K2 @ ( bNF_Greatest_Succ_a @ Kl4 @ Kl3 ) ) ) ).

% SuccI
thf(fact_407_SuccI,axiom,
    ! [Kl3: list_fm,K2: fm,Kl4: set_list_fm] :
      ( ( member_list_fm @ ( append_fm @ Kl3 @ ( cons_fm @ K2 @ nil_fm ) ) @ Kl4 )
     => ( member_fm2 @ K2 @ ( bNF_Greatest_Succ_fm @ Kl4 @ Kl3 ) ) ) ).

% SuccI
thf(fact_408_SuccI,axiom,
    ! [Kl3: list_tm,K2: tm,Kl4: set_list_tm] :
      ( ( member_list_tm @ ( append_tm @ Kl3 @ ( cons_tm @ K2 @ nil_tm ) ) @ Kl4 )
     => ( member_tm2 @ K2 @ ( bNF_Greatest_Succ_tm @ Kl4 @ Kl3 ) ) ) ).

% SuccI
thf(fact_409_SuccI,axiom,
    ! [Kl3: list_nat,K2: nat,Kl4: set_list_nat] :
      ( ( member_list_nat @ ( append_nat @ Kl3 @ ( cons_nat @ K2 @ nil_nat ) ) @ Kl4 )
     => ( member_nat2 @ K2 @ ( bNF_Gr6352880689984616693cc_nat @ Kl4 @ Kl3 ) ) ) ).

% SuccI
thf(fact_410_SuccD,axiom,
    ! [K2: a,Kl4: set_list_a,Kl3: list_a] :
      ( ( member_a2 @ K2 @ ( bNF_Greatest_Succ_a @ Kl4 @ Kl3 ) )
     => ( member_list_a @ ( append_a @ Kl3 @ ( cons_a @ K2 @ nil_a ) ) @ Kl4 ) ) ).

% SuccD
thf(fact_411_SuccD,axiom,
    ! [K2: fm,Kl4: set_list_fm,Kl3: list_fm] :
      ( ( member_fm2 @ K2 @ ( bNF_Greatest_Succ_fm @ Kl4 @ Kl3 ) )
     => ( member_list_fm @ ( append_fm @ Kl3 @ ( cons_fm @ K2 @ nil_fm ) ) @ Kl4 ) ) ).

% SuccD
thf(fact_412_SuccD,axiom,
    ! [K2: tm,Kl4: set_list_tm,Kl3: list_tm] :
      ( ( member_tm2 @ K2 @ ( bNF_Greatest_Succ_tm @ Kl4 @ Kl3 ) )
     => ( member_list_tm @ ( append_tm @ Kl3 @ ( cons_tm @ K2 @ nil_tm ) ) @ Kl4 ) ) ).

% SuccD
thf(fact_413_SuccD,axiom,
    ! [K2: nat,Kl4: set_list_nat,Kl3: list_nat] :
      ( ( member_nat2 @ K2 @ ( bNF_Gr6352880689984616693cc_nat @ Kl4 @ Kl3 ) )
     => ( member_list_nat @ ( append_nat @ Kl3 @ ( cons_nat @ K2 @ nil_nat ) ) @ Kl4 ) ) ).

% SuccD
thf(fact_414_p1,axiom,
    paramst2 = paramst ).

% p1
thf(fact_415_s1_I2_J,axiom,
    ( new_list
    = ( ^ [C2: nat,L: list_tm] :
          ~ ( member_nat2 @ C2 @ ( paramsts @ L ) ) ) ) ).

% s1(2)
thf(fact_416_member,axiom,
    ( member_a
    = ( ^ [P4: a,Z2: list_a] : ( member_a2 @ P4 @ ( set_a2 @ Z2 ) ) ) ) ).

% member
thf(fact_417_member,axiom,
    ( member_nat
    = ( ^ [P4: nat,Z2: list_nat] : ( member_nat2 @ P4 @ ( set_nat2 @ Z2 ) ) ) ) ).

% member
thf(fact_418_member,axiom,
    ( member_fm
    = ( ^ [P4: fm,Z2: list_fm] : ( member_fm2 @ P4 @ ( set_fm2 @ Z2 ) ) ) ) ).

% member
thf(fact_419_new__list_Osimps_I2_J,axiom,
    ! [C: nat,T: tm,L2: list_tm] :
      ( ( new_list @ C @ ( cons_tm @ T @ L2 ) )
      = ( ( ( new_term @ C @ T )
         => ( new_list @ C @ L2 ) )
        & ( new_term @ C @ T ) ) ) ).

% new_list.simps(2)
thf(fact_420_SeCaV_Omember_Osimps_I2_J,axiom,
    ! [P2: tm,Q2: tm,Z: list_tm] :
      ( ( member_tm @ P2 @ ( cons_tm @ Q2 @ Z ) )
      = ( ( P2 != Q2 )
       => ( member_tm @ P2 @ Z ) ) ) ).

% SeCaV.member.simps(2)
thf(fact_421_SeCaV_Omember_Osimps_I2_J,axiom,
    ! [P2: nat,Q2: nat,Z: list_nat] :
      ( ( member_nat @ P2 @ ( cons_nat @ Q2 @ Z ) )
      = ( ( P2 != Q2 )
       => ( member_nat @ P2 @ Z ) ) ) ).

% SeCaV.member.simps(2)
thf(fact_422_SeCaV_Omember_Osimps_I1_J,axiom,
    ! [P2: fm] :
      ~ ( member_fm @ P2 @ nil_fm ) ).

% SeCaV.member.simps(1)
thf(fact_423_SeCaV_Omember_Osimps_I1_J,axiom,
    ! [P2: tm] :
      ~ ( member_tm @ P2 @ nil_tm ) ).

% SeCaV.member.simps(1)
thf(fact_424_SeCaV_Omember_Osimps_I1_J,axiom,
    ! [P2: nat] :
      ~ ( member_nat @ P2 @ nil_nat ) ).

% SeCaV.member.simps(1)
thf(fact_425_new__list_Osimps_I1_J,axiom,
    ! [C: nat] : ( new_list @ C @ nil_tm ) ).

% new_list.simps(1)
thf(fact_426_empty__Shift,axiom,
    ! [Kl4: set_list_a,K2: a] :
      ( ( member_list_a @ nil_a @ Kl4 )
     => ( ( member_a2 @ K2 @ ( bNF_Greatest_Succ_a @ Kl4 @ nil_a ) )
       => ( member_list_a @ nil_a @ ( bNF_Greatest_Shift_a @ Kl4 @ K2 ) ) ) ) ).

% empty_Shift
thf(fact_427_empty__Shift,axiom,
    ! [Kl4: set_list_fm,K2: fm] :
      ( ( member_list_fm @ nil_fm @ Kl4 )
     => ( ( member_fm2 @ K2 @ ( bNF_Greatest_Succ_fm @ Kl4 @ nil_fm ) )
       => ( member_list_fm @ nil_fm @ ( bNF_Gr6607445516916672786ift_fm @ Kl4 @ K2 ) ) ) ) ).

% empty_Shift
thf(fact_428_empty__Shift,axiom,
    ! [Kl4: set_list_tm,K2: tm] :
      ( ( member_list_tm @ nil_tm @ Kl4 )
     => ( ( member_tm2 @ K2 @ ( bNF_Greatest_Succ_tm @ Kl4 @ nil_tm ) )
       => ( member_list_tm @ nil_tm @ ( bNF_Gr6607445516917591172ift_tm @ Kl4 @ K2 ) ) ) ) ).

% empty_Shift
thf(fact_429_empty__Shift,axiom,
    ! [Kl4: set_list_nat,K2: nat] :
      ( ( member_list_nat @ nil_nat @ Kl4 )
     => ( ( member_nat2 @ K2 @ ( bNF_Gr6352880689984616693cc_nat @ Kl4 @ nil_nat ) )
       => ( member_list_nat @ nil_nat @ ( bNF_Gr1872714664788909425ft_nat @ Kl4 @ K2 ) ) ) ) ).

% empty_Shift
thf(fact_430_Succ__Shift,axiom,
    ! [Kl4: set_list_tm,K2: tm,Kl3: list_tm] :
      ( ( bNF_Greatest_Succ_tm @ ( bNF_Gr6607445516917591172ift_tm @ Kl4 @ K2 ) @ Kl3 )
      = ( bNF_Greatest_Succ_tm @ Kl4 @ ( cons_tm @ K2 @ Kl3 ) ) ) ).

% Succ_Shift
thf(fact_431_Succ__Shift,axiom,
    ! [Kl4: set_list_nat,K2: nat,Kl3: list_nat] :
      ( ( bNF_Gr6352880689984616693cc_nat @ ( bNF_Gr1872714664788909425ft_nat @ Kl4 @ K2 ) @ Kl3 )
      = ( bNF_Gr6352880689984616693cc_nat @ Kl4 @ ( cons_nat @ K2 @ Kl3 ) ) ) ).

% Succ_Shift
thf(fact_432_ext_Osimps_I2_J,axiom,
    ! [Y: list_tm,P2: tm,Z: list_tm] :
      ( ( ext_tm @ Y @ ( cons_tm @ P2 @ Z ) )
      = ( ( ( member_tm @ P2 @ Y )
         => ( ext_tm @ Y @ Z ) )
        & ( member_tm @ P2 @ Y ) ) ) ).

% ext.simps(2)
thf(fact_433_ext_Osimps_I2_J,axiom,
    ! [Y: list_nat,P2: nat,Z: list_nat] :
      ( ( ext_nat @ Y @ ( cons_nat @ P2 @ Z ) )
      = ( ( ( member_nat @ P2 @ Y )
         => ( ext_nat @ Y @ Z ) )
        & ( member_nat @ P2 @ Y ) ) ) ).

% ext.simps(2)
thf(fact_434_concat__eq__append__conv,axiom,
    ! [Xss2: list_list_fm,Ys: list_fm,Zs: list_fm] :
      ( ( ( concat_fm @ Xss2 )
        = ( append_fm @ Ys @ Zs ) )
      = ( ( ( Xss2 = nil_list_fm )
         => ( ( Ys = nil_fm )
            & ( Zs = nil_fm ) ) )
        & ( ( Xss2 != nil_list_fm )
         => ? [Xss1: list_list_fm,Xs2: list_fm,Xs5: list_fm,Xss22: list_list_fm] :
              ( ( Xss2
                = ( append_list_fm @ Xss1 @ ( cons_list_fm @ ( append_fm @ Xs2 @ Xs5 ) @ Xss22 ) ) )
              & ( Ys
                = ( append_fm @ ( concat_fm @ Xss1 ) @ Xs2 ) )
              & ( Zs
                = ( append_fm @ Xs5 @ ( concat_fm @ Xss22 ) ) ) ) ) ) ) ).

% concat_eq_append_conv
thf(fact_435_concat__eq__append__conv,axiom,
    ! [Xss2: list_list_tm,Ys: list_tm,Zs: list_tm] :
      ( ( ( concat_tm @ Xss2 )
        = ( append_tm @ Ys @ Zs ) )
      = ( ( ( Xss2 = nil_list_tm )
         => ( ( Ys = nil_tm )
            & ( Zs = nil_tm ) ) )
        & ( ( Xss2 != nil_list_tm )
         => ? [Xss1: list_list_tm,Xs2: list_tm,Xs5: list_tm,Xss22: list_list_tm] :
              ( ( Xss2
                = ( append_list_tm @ Xss1 @ ( cons_list_tm @ ( append_tm @ Xs2 @ Xs5 ) @ Xss22 ) ) )
              & ( Ys
                = ( append_tm @ ( concat_tm @ Xss1 ) @ Xs2 ) )
              & ( Zs
                = ( append_tm @ Xs5 @ ( concat_tm @ Xss22 ) ) ) ) ) ) ) ).

% concat_eq_append_conv
thf(fact_436_concat__eq__append__conv,axiom,
    ! [Xss2: list_list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( concat_nat @ Xss2 )
        = ( append_nat @ Ys @ Zs ) )
      = ( ( ( Xss2 = nil_list_nat )
         => ( ( Ys = nil_nat )
            & ( Zs = nil_nat ) ) )
        & ( ( Xss2 != nil_list_nat )
         => ? [Xss1: list_list_nat,Xs2: list_nat,Xs5: list_nat,Xss22: list_list_nat] :
              ( ( Xss2
                = ( append_list_nat @ Xss1 @ ( cons_list_nat @ ( append_nat @ Xs2 @ Xs5 ) @ Xss22 ) ) )
              & ( Ys
                = ( append_nat @ ( concat_nat @ Xss1 ) @ Xs2 ) )
              & ( Zs
                = ( append_nat @ Xs5 @ ( concat_nat @ Xss22 ) ) ) ) ) ) ) ).

% concat_eq_append_conv
thf(fact_437_concat__map__singleton,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( concat_nat
        @ ( map_nat_list_nat
          @ ^ [X2: nat] : ( cons_nat @ ( F @ X2 ) @ nil_nat )
          @ Xs ) )
      = ( map_nat_nat @ F @ Xs ) ) ).

% concat_map_singleton
thf(fact_438_concat__eq__appendD,axiom,
    ! [Xss2: list_list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( concat_nat @ Xss2 )
        = ( append_nat @ Ys @ Zs ) )
     => ( ( Xss2 != nil_list_nat )
       => ? [Xss12: list_list_nat,Xs3: list_nat,Xs6: list_nat,Xss23: list_list_nat] :
            ( ( Xss2
              = ( append_list_nat @ Xss12 @ ( cons_list_nat @ ( append_nat @ Xs3 @ Xs6 ) @ Xss23 ) ) )
            & ( Ys
              = ( append_nat @ ( concat_nat @ Xss12 ) @ Xs3 ) )
            & ( Zs
              = ( append_nat @ Xs6 @ ( concat_nat @ Xss23 ) ) ) ) ) ) ).

% concat_eq_appendD
thf(fact_439_product__lists_Osimps_I2_J,axiom,
    ! [Xs: list_tm,Xss2: list_list_tm] :
      ( ( product_lists_tm @ ( cons_list_tm @ Xs @ Xss2 ) )
      = ( concat_list_tm
        @ ( map_tm_list_list_tm
          @ ^ [X2: tm] : ( map_list_tm_list_tm @ ( cons_tm @ X2 ) @ ( product_lists_tm @ Xss2 ) )
          @ Xs ) ) ) ).

% product_lists.simps(2)
thf(fact_440_product__lists_Osimps_I2_J,axiom,
    ! [Xs: list_nat,Xss2: list_list_nat] :
      ( ( product_lists_nat @ ( cons_list_nat @ Xs @ Xss2 ) )
      = ( concat_list_nat
        @ ( map_na6205611841492582150st_nat
          @ ^ [X2: nat] : ( map_li7225945977422193158st_nat @ ( cons_nat @ X2 ) @ ( product_lists_nat @ Xss2 ) )
          @ Xs ) ) ) ).

% product_lists.simps(2)
thf(fact_441_butlast__snoc,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( butlast_fm @ ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_442_butlast__snoc,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( butlast_tm @ ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_443_butlast__snoc,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( butlast_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_444_Nil__eq__concat__conv,axiom,
    ! [Xss2: list_list_fm] :
      ( ( nil_fm
        = ( concat_fm @ Xss2 ) )
      = ( ! [X2: list_fm] :
            ( ( member_list_fm @ X2 @ ( set_list_fm2 @ Xss2 ) )
           => ( X2 = nil_fm ) ) ) ) ).

% Nil_eq_concat_conv
thf(fact_445_Nil__eq__concat__conv,axiom,
    ! [Xss2: list_list_tm] :
      ( ( nil_tm
        = ( concat_tm @ Xss2 ) )
      = ( ! [X2: list_tm] :
            ( ( member_list_tm @ X2 @ ( set_list_tm2 @ Xss2 ) )
           => ( X2 = nil_tm ) ) ) ) ).

% Nil_eq_concat_conv
thf(fact_446_Nil__eq__concat__conv,axiom,
    ! [Xss2: list_list_nat] :
      ( ( nil_nat
        = ( concat_nat @ Xss2 ) )
      = ( ! [X2: list_nat] :
            ( ( member_list_nat @ X2 @ ( set_list_nat2 @ Xss2 ) )
           => ( X2 = nil_nat ) ) ) ) ).

% Nil_eq_concat_conv
thf(fact_447_concat__eq__Nil__conv,axiom,
    ! [Xss2: list_list_fm] :
      ( ( ( concat_fm @ Xss2 )
        = nil_fm )
      = ( ! [X2: list_fm] :
            ( ( member_list_fm @ X2 @ ( set_list_fm2 @ Xss2 ) )
           => ( X2 = nil_fm ) ) ) ) ).

% concat_eq_Nil_conv
thf(fact_448_concat__eq__Nil__conv,axiom,
    ! [Xss2: list_list_tm] :
      ( ( ( concat_tm @ Xss2 )
        = nil_tm )
      = ( ! [X2: list_tm] :
            ( ( member_list_tm @ X2 @ ( set_list_tm2 @ Xss2 ) )
           => ( X2 = nil_tm ) ) ) ) ).

% concat_eq_Nil_conv
thf(fact_449_concat__eq__Nil__conv,axiom,
    ! [Xss2: list_list_nat] :
      ( ( ( concat_nat @ Xss2 )
        = nil_nat )
      = ( ! [X2: list_nat] :
            ( ( member_list_nat @ X2 @ ( set_list_nat2 @ Xss2 ) )
           => ( X2 = nil_nat ) ) ) ) ).

% concat_eq_Nil_conv
thf(fact_450_concat__append,axiom,
    ! [Xs: list_list_nat,Ys: list_list_nat] :
      ( ( concat_nat @ ( append_list_nat @ Xs @ Ys ) )
      = ( append_nat @ ( concat_nat @ Xs ) @ ( concat_nat @ Ys ) ) ) ).

% concat_append
thf(fact_451_butlast_Osimps_I1_J,axiom,
    ( ( butlast_fm @ nil_fm )
    = nil_fm ) ).

% butlast.simps(1)
thf(fact_452_butlast_Osimps_I1_J,axiom,
    ( ( butlast_tm @ nil_tm )
    = nil_tm ) ).

% butlast.simps(1)
thf(fact_453_butlast_Osimps_I1_J,axiom,
    ( ( butlast_nat @ nil_nat )
    = nil_nat ) ).

% butlast.simps(1)
thf(fact_454_in__set__butlastD,axiom,
    ! [X: a,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ ( butlast_a @ Xs ) ) )
     => ( member_a2 @ X @ ( set_a2 @ Xs ) ) ) ).

% in_set_butlastD
thf(fact_455_in__set__butlastD,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ ( butlast_nat @ Xs ) ) )
     => ( member_nat2 @ X @ ( set_nat2 @ Xs ) ) ) ).

% in_set_butlastD
thf(fact_456_in__set__butlastD,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ ( butlast_fm @ Xs ) ) )
     => ( member_fm2 @ X @ ( set_fm2 @ Xs ) ) ) ).

% in_set_butlastD
thf(fact_457_map__butlast,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( map_nat_nat @ F @ ( butlast_nat @ Xs ) )
      = ( butlast_nat @ ( map_nat_nat @ F @ Xs ) ) ) ).

% map_butlast
thf(fact_458_concat_Osimps_I1_J,axiom,
    ( ( concat_fm @ nil_list_fm )
    = nil_fm ) ).

% concat.simps(1)
thf(fact_459_concat_Osimps_I1_J,axiom,
    ( ( concat_tm @ nil_list_tm )
    = nil_tm ) ).

% concat.simps(1)
thf(fact_460_concat_Osimps_I1_J,axiom,
    ( ( concat_nat @ nil_list_nat )
    = nil_nat ) ).

% concat.simps(1)
thf(fact_461_butlast_Osimps_I2_J,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( ( Xs = nil_fm )
       => ( ( butlast_fm @ ( cons_fm @ X @ Xs ) )
          = nil_fm ) )
      & ( ( Xs != nil_fm )
       => ( ( butlast_fm @ ( cons_fm @ X @ Xs ) )
          = ( cons_fm @ X @ ( butlast_fm @ Xs ) ) ) ) ) ).

% butlast.simps(2)
thf(fact_462_butlast_Osimps_I2_J,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( ( Xs = nil_tm )
       => ( ( butlast_tm @ ( cons_tm @ X @ Xs ) )
          = nil_tm ) )
      & ( ( Xs != nil_tm )
       => ( ( butlast_tm @ ( cons_tm @ X @ Xs ) )
          = ( cons_tm @ X @ ( butlast_tm @ Xs ) ) ) ) ) ).

% butlast.simps(2)
thf(fact_463_butlast_Osimps_I2_J,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( ( Xs = nil_nat )
       => ( ( butlast_nat @ ( cons_nat @ X @ Xs ) )
          = nil_nat ) )
      & ( ( Xs != nil_nat )
       => ( ( butlast_nat @ ( cons_nat @ X @ Xs ) )
          = ( cons_nat @ X @ ( butlast_nat @ Xs ) ) ) ) ) ).

% butlast.simps(2)
thf(fact_464_concat_Osimps_I2_J,axiom,
    ! [X: list_nat,Xs: list_list_nat] :
      ( ( concat_nat @ ( cons_list_nat @ X @ Xs ) )
      = ( append_nat @ X @ ( concat_nat @ Xs ) ) ) ).

% concat.simps(2)
thf(fact_465_butlast__append,axiom,
    ! [Ys: list_fm,Xs: list_fm] :
      ( ( ( Ys = nil_fm )
       => ( ( butlast_fm @ ( append_fm @ Xs @ Ys ) )
          = ( butlast_fm @ Xs ) ) )
      & ( ( Ys != nil_fm )
       => ( ( butlast_fm @ ( append_fm @ Xs @ Ys ) )
          = ( append_fm @ Xs @ ( butlast_fm @ Ys ) ) ) ) ) ).

% butlast_append
thf(fact_466_butlast__append,axiom,
    ! [Ys: list_tm,Xs: list_tm] :
      ( ( ( Ys = nil_tm )
       => ( ( butlast_tm @ ( append_tm @ Xs @ Ys ) )
          = ( butlast_tm @ Xs ) ) )
      & ( ( Ys != nil_tm )
       => ( ( butlast_tm @ ( append_tm @ Xs @ Ys ) )
          = ( append_tm @ Xs @ ( butlast_tm @ Ys ) ) ) ) ) ).

% butlast_append
thf(fact_467_butlast__append,axiom,
    ! [Ys: list_nat,Xs: list_nat] :
      ( ( ( Ys = nil_nat )
       => ( ( butlast_nat @ ( append_nat @ Xs @ Ys ) )
          = ( butlast_nat @ Xs ) ) )
      & ( ( Ys != nil_nat )
       => ( ( butlast_nat @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ Xs @ ( butlast_nat @ Ys ) ) ) ) ) ).

% butlast_append
thf(fact_468_in__set__butlast__appendI,axiom,
    ! [X: a,Xs: list_a,Ys: list_a] :
      ( ( ( member_a2 @ X @ ( set_a2 @ ( butlast_a @ Xs ) ) )
        | ( member_a2 @ X @ ( set_a2 @ ( butlast_a @ Ys ) ) ) )
     => ( member_a2 @ X @ ( set_a2 @ ( butlast_a @ ( append_a @ Xs @ Ys ) ) ) ) ) ).

% in_set_butlast_appendI
thf(fact_469_in__set__butlast__appendI,axiom,
    ! [X: fm,Xs: list_fm,Ys: list_fm] :
      ( ( ( member_fm2 @ X @ ( set_fm2 @ ( butlast_fm @ Xs ) ) )
        | ( member_fm2 @ X @ ( set_fm2 @ ( butlast_fm @ Ys ) ) ) )
     => ( member_fm2 @ X @ ( set_fm2 @ ( butlast_fm @ ( append_fm @ Xs @ Ys ) ) ) ) ) ).

% in_set_butlast_appendI
thf(fact_470_in__set__butlast__appendI,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ( member_nat2 @ X @ ( set_nat2 @ ( butlast_nat @ Xs ) ) )
        | ( member_nat2 @ X @ ( set_nat2 @ ( butlast_nat @ Ys ) ) ) )
     => ( member_nat2 @ X @ ( set_nat2 @ ( butlast_nat @ ( append_nat @ Xs @ Ys ) ) ) ) ) ).

% in_set_butlast_appendI
thf(fact_471_map__concat,axiom,
    ! [F: nat > nat,Xs: list_list_nat] :
      ( ( map_nat_nat @ F @ ( concat_nat @ Xs ) )
      = ( concat_nat @ ( map_li7225945977422193158st_nat @ ( map_nat_nat @ F ) @ Xs ) ) ) ).

% map_concat
thf(fact_472_ShiftD,axiom,
    ! [Kl3: list_tm,Kl4: set_list_tm,K2: tm] :
      ( ( member_list_tm @ Kl3 @ ( bNF_Gr6607445516917591172ift_tm @ Kl4 @ K2 ) )
     => ( member_list_tm @ ( cons_tm @ K2 @ Kl3 ) @ Kl4 ) ) ).

% ShiftD
thf(fact_473_ShiftD,axiom,
    ! [Kl3: list_nat,Kl4: set_list_nat,K2: nat] :
      ( ( member_list_nat @ Kl3 @ ( bNF_Gr1872714664788909425ft_nat @ Kl4 @ K2 ) )
     => ( member_list_nat @ ( cons_nat @ K2 @ Kl3 ) @ Kl4 ) ) ).

% ShiftD
thf(fact_474_ext_Osimps_I1_J,axiom,
    ! [Y: list_fm] : ( ext_fm @ Y @ nil_fm ) ).

% ext.simps(1)
thf(fact_475_ext_Osimps_I1_J,axiom,
    ! [Y: list_tm] : ( ext_tm @ Y @ nil_tm ) ).

% ext.simps(1)
thf(fact_476_ext_Osimps_I1_J,axiom,
    ! [Y: list_nat] : ( ext_nat @ Y @ nil_nat ) ).

% ext.simps(1)
thf(fact_477_Shift__def,axiom,
    ( bNF_Gr6607445516917591172ift_tm
    = ( ^ [Kl: set_list_tm,K: tm] :
          ( collect_list_tm
          @ ^ [Kl2: list_tm] : ( member_list_tm @ ( cons_tm @ K @ Kl2 ) @ Kl ) ) ) ) ).

% Shift_def
thf(fact_478_Shift__def,axiom,
    ( bNF_Gr1872714664788909425ft_nat
    = ( ^ [Kl: set_list_nat,K: nat] :
          ( collect_list_nat
          @ ^ [Kl2: list_nat] : ( member_list_nat @ ( cons_nat @ K @ Kl2 ) @ Kl ) ) ) ) ).

% Shift_def
thf(fact_479_append__butlast__last__id,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( append_fm @ ( butlast_fm @ Xs ) @ ( cons_fm @ ( last_fm @ Xs ) @ nil_fm ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_480_append__butlast__last__id,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( append_tm @ ( butlast_tm @ Xs ) @ ( cons_tm @ ( last_tm @ Xs ) @ nil_tm ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_481_append__butlast__last__id,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( append_nat @ ( butlast_nat @ Xs ) @ ( cons_nat @ ( last_nat @ Xs ) @ nil_nat ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_482_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_fm,X: fm,Ys: list_fm] :
      ( ( ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) )
        = Ys )
      = ( ( Ys != nil_fm )
        & ( ( butlast_fm @ Ys )
          = Xs )
        & ( ( last_fm @ Ys )
          = X ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_483_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_tm,X: tm,Ys: list_tm] :
      ( ( ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) )
        = Ys )
      = ( ( Ys != nil_tm )
        & ( ( butlast_tm @ Ys )
          = Xs )
        & ( ( last_tm @ Ys )
          = X ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_484_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_nat,X: nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) )
        = Ys )
      = ( ( Ys != nil_nat )
        & ( ( butlast_nat @ Ys )
          = Xs )
        & ( ( last_nat @ Ys )
          = X ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_485_transpose__empty,axiom,
    ! [Xs: list_list_fm] :
      ( ( ( transpose_fm @ Xs )
        = nil_list_fm )
      = ( ! [X2: list_fm] :
            ( ( member_list_fm @ X2 @ ( set_list_fm2 @ Xs ) )
           => ( X2 = nil_fm ) ) ) ) ).

% transpose_empty
thf(fact_486_transpose__empty,axiom,
    ! [Xs: list_list_tm] :
      ( ( ( transpose_tm @ Xs )
        = nil_list_tm )
      = ( ! [X2: list_tm] :
            ( ( member_list_tm @ X2 @ ( set_list_tm2 @ Xs ) )
           => ( X2 = nil_tm ) ) ) ) ).

% transpose_empty
thf(fact_487_transpose__empty,axiom,
    ! [Xs: list_list_nat] :
      ( ( ( transpose_nat @ Xs )
        = nil_list_nat )
      = ( ! [X2: list_nat] :
            ( ( member_list_nat @ X2 @ ( set_list_nat2 @ Xs ) )
           => ( X2 = nil_nat ) ) ) ) ).

% transpose_empty
thf(fact_488_last__snoc,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( last_fm @ ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) ) )
      = X ) ).

% last_snoc
thf(fact_489_last__snoc,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( last_tm @ ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) ) )
      = X ) ).

% last_snoc
thf(fact_490_last__snoc,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( last_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) )
      = X ) ).

% last_snoc
thf(fact_491_paramsts_Osimps_I2_J,axiom,
    ! [T: tm,Ts: list_tm] :
      ( ( paramsts @ ( cons_tm @ T @ Ts ) )
      = ( sup_sup_set_nat @ ( paramst @ T ) @ ( paramsts @ Ts ) ) ) ).

% paramsts.simps(2)
thf(fact_492_rotate1_Osimps_I2_J,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( rotate1_fm @ ( cons_fm @ X @ Xs ) )
      = ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) ) ) ).

% rotate1.simps(2)
thf(fact_493_rotate1_Osimps_I2_J,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( rotate1_tm @ ( cons_tm @ X @ Xs ) )
      = ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) ) ) ).

% rotate1.simps(2)
thf(fact_494_rotate1_Osimps_I2_J,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( rotate1_nat @ ( cons_nat @ X @ Xs ) )
      = ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) ) ).

% rotate1.simps(2)
thf(fact_495_new__term_Osimps_I2_J,axiom,
    ! [C: nat,I2: nat,L2: list_tm] :
      ( ( new_term @ C @ ( fun @ I2 @ L2 ) )
      = ( ( I2 != C )
        & ( ( I2 != C )
         => ( new_list @ C @ L2 ) ) ) ) ).

% new_term.simps(2)
thf(fact_496_tm_Oinject_I1_J,axiom,
    ! [X11: nat,X12: list_tm,Y11: nat,Y12: list_tm] :
      ( ( ( fun @ X11 @ X12 )
        = ( fun @ Y11 @ Y12 ) )
      = ( ( X11 = Y11 )
        & ( X12 = Y12 ) ) ) ).

% tm.inject(1)
thf(fact_497_rotate1__is__Nil__conv,axiom,
    ! [Xs: list_fm] :
      ( ( ( rotate1_fm @ Xs )
        = nil_fm )
      = ( Xs = nil_fm ) ) ).

% rotate1_is_Nil_conv
thf(fact_498_rotate1__is__Nil__conv,axiom,
    ! [Xs: list_tm] :
      ( ( ( rotate1_tm @ Xs )
        = nil_tm )
      = ( Xs = nil_tm ) ) ).

% rotate1_is_Nil_conv
thf(fact_499_rotate1__is__Nil__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ( rotate1_nat @ Xs )
        = nil_nat )
      = ( Xs = nil_nat ) ) ).

% rotate1_is_Nil_conv
thf(fact_500_set__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( set_nat2 @ ( append_nat @ Xs @ Ys ) )
      = ( sup_sup_set_nat @ ( set_nat2 @ Xs ) @ ( set_nat2 @ Ys ) ) ) ).

% set_append
thf(fact_501_last__appendR,axiom,
    ! [Ys: list_fm,Xs: list_fm] :
      ( ( Ys != nil_fm )
     => ( ( last_fm @ ( append_fm @ Xs @ Ys ) )
        = ( last_fm @ Ys ) ) ) ).

% last_appendR
thf(fact_502_last__appendR,axiom,
    ! [Ys: list_tm,Xs: list_tm] :
      ( ( Ys != nil_tm )
     => ( ( last_tm @ ( append_tm @ Xs @ Ys ) )
        = ( last_tm @ Ys ) ) ) ).

% last_appendR
thf(fact_503_last__appendR,axiom,
    ! [Ys: list_nat,Xs: list_nat] :
      ( ( Ys != nil_nat )
     => ( ( last_nat @ ( append_nat @ Xs @ Ys ) )
        = ( last_nat @ Ys ) ) ) ).

% last_appendR
thf(fact_504_last__appendL,axiom,
    ! [Ys: list_fm,Xs: list_fm] :
      ( ( Ys = nil_fm )
     => ( ( last_fm @ ( append_fm @ Xs @ Ys ) )
        = ( last_fm @ Xs ) ) ) ).

% last_appendL
thf(fact_505_last__appendL,axiom,
    ! [Ys: list_tm,Xs: list_tm] :
      ( ( Ys = nil_tm )
     => ( ( last_tm @ ( append_tm @ Xs @ Ys ) )
        = ( last_tm @ Xs ) ) ) ).

% last_appendL
thf(fact_506_last__appendL,axiom,
    ! [Ys: list_nat,Xs: list_nat] :
      ( ( Ys = nil_nat )
     => ( ( last_nat @ ( append_nat @ Xs @ Ys ) )
        = ( last_nat @ Xs ) ) ) ).

% last_appendL
thf(fact_507_rotate1_Osimps_I1_J,axiom,
    ( ( rotate1_fm @ nil_fm )
    = nil_fm ) ).

% rotate1.simps(1)
thf(fact_508_rotate1_Osimps_I1_J,axiom,
    ( ( rotate1_tm @ nil_tm )
    = nil_tm ) ).

% rotate1.simps(1)
thf(fact_509_rotate1_Osimps_I1_J,axiom,
    ( ( rotate1_nat @ nil_nat )
    = nil_nat ) ).

% rotate1.simps(1)
thf(fact_510_rotate1__map,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( rotate1_nat @ ( map_nat_nat @ F @ Xs ) )
      = ( map_nat_nat @ F @ ( rotate1_nat @ Xs ) ) ) ).

% rotate1_map
thf(fact_511_last__ConsR,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( Xs != nil_fm )
     => ( ( last_fm @ ( cons_fm @ X @ Xs ) )
        = ( last_fm @ Xs ) ) ) ).

% last_ConsR
thf(fact_512_last__ConsR,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( Xs != nil_tm )
     => ( ( last_tm @ ( cons_tm @ X @ Xs ) )
        = ( last_tm @ Xs ) ) ) ).

% last_ConsR
thf(fact_513_last__ConsR,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( Xs != nil_nat )
     => ( ( last_nat @ ( cons_nat @ X @ Xs ) )
        = ( last_nat @ Xs ) ) ) ).

% last_ConsR
thf(fact_514_last__ConsL,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( Xs = nil_fm )
     => ( ( last_fm @ ( cons_fm @ X @ Xs ) )
        = X ) ) ).

% last_ConsL
thf(fact_515_last__ConsL,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( Xs = nil_tm )
     => ( ( last_tm @ ( cons_tm @ X @ Xs ) )
        = X ) ) ).

% last_ConsL
thf(fact_516_last__ConsL,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( Xs = nil_nat )
     => ( ( last_nat @ ( cons_nat @ X @ Xs ) )
        = X ) ) ).

% last_ConsL
thf(fact_517_last_Osimps,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( ( Xs = nil_fm )
       => ( ( last_fm @ ( cons_fm @ X @ Xs ) )
          = X ) )
      & ( ( Xs != nil_fm )
       => ( ( last_fm @ ( cons_fm @ X @ Xs ) )
          = ( last_fm @ Xs ) ) ) ) ).

% last.simps
thf(fact_518_last_Osimps,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( ( Xs = nil_tm )
       => ( ( last_tm @ ( cons_tm @ X @ Xs ) )
          = X ) )
      & ( ( Xs != nil_tm )
       => ( ( last_tm @ ( cons_tm @ X @ Xs ) )
          = ( last_tm @ Xs ) ) ) ) ).

% last.simps
thf(fact_519_last_Osimps,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( ( Xs = nil_nat )
       => ( ( last_nat @ ( cons_nat @ X @ Xs ) )
          = X ) )
      & ( ( Xs != nil_nat )
       => ( ( last_nat @ ( cons_nat @ X @ Xs ) )
          = ( last_nat @ Xs ) ) ) ) ).

% last.simps
thf(fact_520_last__in__set,axiom,
    ! [As2: list_a] :
      ( ( As2 != nil_a )
     => ( member_a2 @ ( last_a @ As2 ) @ ( set_a2 @ As2 ) ) ) ).

% last_in_set
thf(fact_521_last__in__set,axiom,
    ! [As2: list_fm] :
      ( ( As2 != nil_fm )
     => ( member_fm2 @ ( last_fm @ As2 ) @ ( set_fm2 @ As2 ) ) ) ).

% last_in_set
thf(fact_522_last__in__set,axiom,
    ! [As2: list_tm] :
      ( ( As2 != nil_tm )
     => ( member_tm2 @ ( last_tm @ As2 ) @ ( set_tm2 @ As2 ) ) ) ).

% last_in_set
thf(fact_523_last__in__set,axiom,
    ! [As2: list_nat] :
      ( ( As2 != nil_nat )
     => ( member_nat2 @ ( last_nat @ As2 ) @ ( set_nat2 @ As2 ) ) ) ).

% last_in_set
thf(fact_524_last__map,axiom,
    ! [Xs: list_fm,F: fm > nat] :
      ( ( Xs != nil_fm )
     => ( ( last_nat @ ( map_fm_nat @ F @ Xs ) )
        = ( F @ ( last_fm @ Xs ) ) ) ) ).

% last_map
thf(fact_525_last__map,axiom,
    ! [Xs: list_tm,F: tm > nat] :
      ( ( Xs != nil_tm )
     => ( ( last_nat @ ( map_tm_nat @ F @ Xs ) )
        = ( F @ ( last_tm @ Xs ) ) ) ) ).

% last_map
thf(fact_526_last__map,axiom,
    ! [Xs: list_nat,F: nat > nat] :
      ( ( Xs != nil_nat )
     => ( ( last_nat @ ( map_nat_nat @ F @ Xs ) )
        = ( F @ ( last_nat @ Xs ) ) ) ) ).

% last_map
thf(fact_527_longest__common__suffix,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
    ? [Ss: list_fm,Xs6: list_fm,Ys6: list_fm] :
      ( ( Xs
        = ( append_fm @ Xs6 @ Ss ) )
      & ( Ys
        = ( append_fm @ Ys6 @ Ss ) )
      & ( ( Xs6 = nil_fm )
        | ( Ys6 = nil_fm )
        | ( ( last_fm @ Xs6 )
         != ( last_fm @ Ys6 ) ) ) ) ).

% longest_common_suffix
thf(fact_528_longest__common__suffix,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
    ? [Ss: list_tm,Xs6: list_tm,Ys6: list_tm] :
      ( ( Xs
        = ( append_tm @ Xs6 @ Ss ) )
      & ( Ys
        = ( append_tm @ Ys6 @ Ss ) )
      & ( ( Xs6 = nil_tm )
        | ( Ys6 = nil_tm )
        | ( ( last_tm @ Xs6 )
         != ( last_tm @ Ys6 ) ) ) ) ).

% longest_common_suffix
thf(fact_529_longest__common__suffix,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
    ? [Ss: list_nat,Xs6: list_nat,Ys6: list_nat] :
      ( ( Xs
        = ( append_nat @ Xs6 @ Ss ) )
      & ( Ys
        = ( append_nat @ Ys6 @ Ss ) )
      & ( ( Xs6 = nil_nat )
        | ( Ys6 = nil_nat )
        | ( ( last_nat @ Xs6 )
         != ( last_nat @ Ys6 ) ) ) ) ).

% longest_common_suffix
thf(fact_530_last__append,axiom,
    ! [Ys: list_fm,Xs: list_fm] :
      ( ( ( Ys = nil_fm )
       => ( ( last_fm @ ( append_fm @ Xs @ Ys ) )
          = ( last_fm @ Xs ) ) )
      & ( ( Ys != nil_fm )
       => ( ( last_fm @ ( append_fm @ Xs @ Ys ) )
          = ( last_fm @ Ys ) ) ) ) ).

% last_append
thf(fact_531_last__append,axiom,
    ! [Ys: list_tm,Xs: list_tm] :
      ( ( ( Ys = nil_tm )
       => ( ( last_tm @ ( append_tm @ Xs @ Ys ) )
          = ( last_tm @ Xs ) ) )
      & ( ( Ys != nil_tm )
       => ( ( last_tm @ ( append_tm @ Xs @ Ys ) )
          = ( last_tm @ Ys ) ) ) ) ).

% last_append
thf(fact_532_last__append,axiom,
    ! [Ys: list_nat,Xs: list_nat] :
      ( ( ( Ys = nil_nat )
       => ( ( last_nat @ ( append_nat @ Xs @ Ys ) )
          = ( last_nat @ Xs ) ) )
      & ( ( Ys != nil_nat )
       => ( ( last_nat @ ( append_nat @ Xs @ Ys ) )
          = ( last_nat @ Ys ) ) ) ) ).

% last_append
thf(fact_533_transpose_Osimps_I2_J,axiom,
    ! [Xss2: list_list_fm] :
      ( ( transpose_fm @ ( cons_list_fm @ nil_fm @ Xss2 ) )
      = ( transpose_fm @ Xss2 ) ) ).

% transpose.simps(2)
thf(fact_534_transpose_Osimps_I2_J,axiom,
    ! [Xss2: list_list_tm] :
      ( ( transpose_tm @ ( cons_list_tm @ nil_tm @ Xss2 ) )
      = ( transpose_tm @ Xss2 ) ) ).

% transpose.simps(2)
thf(fact_535_transpose_Osimps_I2_J,axiom,
    ! [Xss2: list_list_nat] :
      ( ( transpose_nat @ ( cons_list_nat @ nil_nat @ Xss2 ) )
      = ( transpose_nat @ Xss2 ) ) ).

% transpose.simps(2)
thf(fact_536_transpose__map__map,axiom,
    ! [F: nat > nat,Xs: list_list_nat] :
      ( ( transpose_nat @ ( map_li7225945977422193158st_nat @ ( map_nat_nat @ F ) @ Xs ) )
      = ( map_li7225945977422193158st_nat @ ( map_nat_nat @ F ) @ ( transpose_nat @ Xs ) ) ) ).

% transpose_map_map
thf(fact_537_transpose_Oelims,axiom,
    ! [X: list_list_fm,Y: list_list_fm] :
      ( ( ( transpose_fm @ X )
        = Y )
     => ( ( ( X = nil_list_fm )
         => ( Y != nil_list_fm ) )
       => ( ! [Xss: list_list_fm] :
              ( ( X
                = ( cons_list_fm @ nil_fm @ Xss ) )
             => ( Y
               != ( transpose_fm @ Xss ) ) )
         => ~ ! [X3: fm,Xs3: list_fm,Xss: list_list_fm] :
                ( ( X
                  = ( cons_list_fm @ ( cons_fm @ X3 @ Xs3 ) @ Xss ) )
               => ( Y
                 != ( cons_list_fm
                    @ ( cons_fm @ X3
                      @ ( concat_fm
                        @ ( map_list_fm_list_fm
                          @ ( case_list_list_fm_fm @ nil_fm
                            @ ^ [H: fm,T2: list_fm] : ( cons_fm @ H @ nil_fm ) )
                          @ Xss ) ) )
                    @ ( transpose_fm
                      @ ( cons_list_fm @ Xs3
                        @ ( concat_list_fm
                          @ ( map_li1351512418201717386ist_fm
                            @ ( case_l1147175924207067418_fm_fm @ nil_list_fm
                              @ ^ [H: fm,T2: list_fm] : ( cons_list_fm @ T2 @ nil_list_fm ) )
                            @ Xss ) ) ) ) ) ) ) ) ) ) ).

% transpose.elims
thf(fact_538_transpose_Oelims,axiom,
    ! [X: list_list_tm,Y: list_list_tm] :
      ( ( ( transpose_tm @ X )
        = Y )
     => ( ( ( X = nil_list_tm )
         => ( Y != nil_list_tm ) )
       => ( ! [Xss: list_list_tm] :
              ( ( X
                = ( cons_list_tm @ nil_tm @ Xss ) )
             => ( Y
               != ( transpose_tm @ Xss ) ) )
         => ~ ! [X3: tm,Xs3: list_tm,Xss: list_list_tm] :
                ( ( X
                  = ( cons_list_tm @ ( cons_tm @ X3 @ Xs3 ) @ Xss ) )
               => ( Y
                 != ( cons_list_tm
                    @ ( cons_tm @ X3
                      @ ( concat_tm
                        @ ( map_list_tm_list_tm
                          @ ( case_list_list_tm_tm @ nil_tm
                            @ ^ [H: tm,T2: list_tm] : ( cons_tm @ H @ nil_tm ) )
                          @ Xss ) ) )
                    @ ( transpose_tm
                      @ ( cons_list_tm @ Xs3
                        @ ( concat_list_tm
                          @ ( map_li6264597563971819530ist_tm
                            @ ( case_l799553655970854810_tm_tm @ nil_list_tm
                              @ ^ [H: tm,T2: list_tm] : ( cons_list_tm @ T2 @ nil_list_tm ) )
                            @ Xss ) ) ) ) ) ) ) ) ) ) ).

% transpose.elims
thf(fact_539_transpose_Oelims,axiom,
    ! [X: list_list_nat,Y: list_list_nat] :
      ( ( ( transpose_nat @ X )
        = Y )
     => ( ( ( X = nil_list_nat )
         => ( Y != nil_list_nat ) )
       => ( ! [Xss: list_list_nat] :
              ( ( X
                = ( cons_list_nat @ nil_nat @ Xss ) )
             => ( Y
               != ( transpose_nat @ Xss ) ) )
         => ~ ! [X3: nat,Xs3: list_nat,Xss: list_list_nat] :
                ( ( X
                  = ( cons_list_nat @ ( cons_nat @ X3 @ Xs3 ) @ Xss ) )
               => ( Y
                 != ( cons_list_nat
                    @ ( cons_nat @ X3
                      @ ( concat_nat
                        @ ( map_li7225945977422193158st_nat
                          @ ( case_l2340614614379431832at_nat @ nil_nat
                            @ ^ [H: nat,T2: list_nat] : ( cons_nat @ H @ nil_nat ) )
                          @ Xss ) ) )
                    @ ( transpose_nat
                      @ ( cons_list_nat @ Xs3
                        @ ( concat_list_nat
                          @ ( map_li960784813134754710st_nat
                            @ ( case_l3331202209248957608at_nat @ nil_list_nat
                              @ ^ [H: nat,T2: list_nat] : ( cons_list_nat @ T2 @ nil_list_nat ) )
                            @ Xss ) ) ) ) ) ) ) ) ) ) ).

% transpose.elims
thf(fact_540_transpose_Osimps_I3_J,axiom,
    ! [X: fm,Xs: list_fm,Xss2: list_list_fm] :
      ( ( transpose_fm @ ( cons_list_fm @ ( cons_fm @ X @ Xs ) @ Xss2 ) )
      = ( cons_list_fm
        @ ( cons_fm @ X
          @ ( concat_fm
            @ ( map_list_fm_list_fm
              @ ( case_list_list_fm_fm @ nil_fm
                @ ^ [H: fm,T2: list_fm] : ( cons_fm @ H @ nil_fm ) )
              @ Xss2 ) ) )
        @ ( transpose_fm
          @ ( cons_list_fm @ Xs
            @ ( concat_list_fm
              @ ( map_li1351512418201717386ist_fm
                @ ( case_l1147175924207067418_fm_fm @ nil_list_fm
                  @ ^ [H: fm,T2: list_fm] : ( cons_list_fm @ T2 @ nil_list_fm ) )
                @ Xss2 ) ) ) ) ) ) ).

% transpose.simps(3)
thf(fact_541_transpose_Osimps_I3_J,axiom,
    ! [X: tm,Xs: list_tm,Xss2: list_list_tm] :
      ( ( transpose_tm @ ( cons_list_tm @ ( cons_tm @ X @ Xs ) @ Xss2 ) )
      = ( cons_list_tm
        @ ( cons_tm @ X
          @ ( concat_tm
            @ ( map_list_tm_list_tm
              @ ( case_list_list_tm_tm @ nil_tm
                @ ^ [H: tm,T2: list_tm] : ( cons_tm @ H @ nil_tm ) )
              @ Xss2 ) ) )
        @ ( transpose_tm
          @ ( cons_list_tm @ Xs
            @ ( concat_list_tm
              @ ( map_li6264597563971819530ist_tm
                @ ( case_l799553655970854810_tm_tm @ nil_list_tm
                  @ ^ [H: tm,T2: list_tm] : ( cons_list_tm @ T2 @ nil_list_tm ) )
                @ Xss2 ) ) ) ) ) ) ).

% transpose.simps(3)
thf(fact_542_transpose_Osimps_I3_J,axiom,
    ! [X: nat,Xs: list_nat,Xss2: list_list_nat] :
      ( ( transpose_nat @ ( cons_list_nat @ ( cons_nat @ X @ Xs ) @ Xss2 ) )
      = ( cons_list_nat
        @ ( cons_nat @ X
          @ ( concat_nat
            @ ( map_li7225945977422193158st_nat
              @ ( case_l2340614614379431832at_nat @ nil_nat
                @ ^ [H: nat,T2: list_nat] : ( cons_nat @ H @ nil_nat ) )
              @ Xss2 ) ) )
        @ ( transpose_nat
          @ ( cons_list_nat @ Xs
            @ ( concat_list_nat
              @ ( map_li960784813134754710st_nat
                @ ( case_l3331202209248957608at_nat @ nil_list_nat
                  @ ^ [H: nat,T2: list_nat] : ( cons_list_nat @ T2 @ nil_list_nat ) )
                @ Xss2 ) ) ) ) ) ) ).

% transpose.simps(3)
thf(fact_543_set__union,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( set_nat2 @ ( union_nat @ Xs @ Ys ) )
      = ( sup_sup_set_nat @ ( set_nat2 @ Xs ) @ ( set_nat2 @ Ys ) ) ) ).

% set_union
thf(fact_544_transpose_Opsimps_I3_J,axiom,
    ! [X: fm,Xs: list_fm,Xss2: list_list_fm] :
      ( ( accp_list_list_fm @ transpose_rel_fm @ ( cons_list_fm @ ( cons_fm @ X @ Xs ) @ Xss2 ) )
     => ( ( transpose_fm @ ( cons_list_fm @ ( cons_fm @ X @ Xs ) @ Xss2 ) )
        = ( cons_list_fm
          @ ( cons_fm @ X
            @ ( concat_fm
              @ ( map_list_fm_list_fm
                @ ( case_list_list_fm_fm @ nil_fm
                  @ ^ [H: fm,T2: list_fm] : ( cons_fm @ H @ nil_fm ) )
                @ Xss2 ) ) )
          @ ( transpose_fm
            @ ( cons_list_fm @ Xs
              @ ( concat_list_fm
                @ ( map_li1351512418201717386ist_fm
                  @ ( case_l1147175924207067418_fm_fm @ nil_list_fm
                    @ ^ [H: fm,T2: list_fm] : ( cons_list_fm @ T2 @ nil_list_fm ) )
                  @ Xss2 ) ) ) ) ) ) ) ).

% transpose.psimps(3)
thf(fact_545_transpose_Opsimps_I3_J,axiom,
    ! [X: tm,Xs: list_tm,Xss2: list_list_tm] :
      ( ( accp_list_list_tm @ transpose_rel_tm @ ( cons_list_tm @ ( cons_tm @ X @ Xs ) @ Xss2 ) )
     => ( ( transpose_tm @ ( cons_list_tm @ ( cons_tm @ X @ Xs ) @ Xss2 ) )
        = ( cons_list_tm
          @ ( cons_tm @ X
            @ ( concat_tm
              @ ( map_list_tm_list_tm
                @ ( case_list_list_tm_tm @ nil_tm
                  @ ^ [H: tm,T2: list_tm] : ( cons_tm @ H @ nil_tm ) )
                @ Xss2 ) ) )
          @ ( transpose_tm
            @ ( cons_list_tm @ Xs
              @ ( concat_list_tm
                @ ( map_li6264597563971819530ist_tm
                  @ ( case_l799553655970854810_tm_tm @ nil_list_tm
                    @ ^ [H: tm,T2: list_tm] : ( cons_list_tm @ T2 @ nil_list_tm ) )
                  @ Xss2 ) ) ) ) ) ) ) ).

% transpose.psimps(3)
thf(fact_546_transpose_Opsimps_I3_J,axiom,
    ! [X: nat,Xs: list_nat,Xss2: list_list_nat] :
      ( ( accp_list_list_nat @ transpose_rel_nat @ ( cons_list_nat @ ( cons_nat @ X @ Xs ) @ Xss2 ) )
     => ( ( transpose_nat @ ( cons_list_nat @ ( cons_nat @ X @ Xs ) @ Xss2 ) )
        = ( cons_list_nat
          @ ( cons_nat @ X
            @ ( concat_nat
              @ ( map_li7225945977422193158st_nat
                @ ( case_l2340614614379431832at_nat @ nil_nat
                  @ ^ [H: nat,T2: list_nat] : ( cons_nat @ H @ nil_nat ) )
                @ Xss2 ) ) )
          @ ( transpose_nat
            @ ( cons_list_nat @ Xs
              @ ( concat_list_nat
                @ ( map_li960784813134754710st_nat
                  @ ( case_l3331202209248957608at_nat @ nil_list_nat
                    @ ^ [H: nat,T2: list_nat] : ( cons_list_nat @ T2 @ nil_list_nat ) )
                  @ Xss2 ) ) ) ) ) ) ) ).

% transpose.psimps(3)
thf(fact_547_transpose_Opinduct,axiom,
    ! [A0: list_list_fm,P: list_list_fm > $o] :
      ( ( accp_list_list_fm @ transpose_rel_fm @ A0 )
     => ( ( ( accp_list_list_fm @ transpose_rel_fm @ nil_list_fm )
         => ( P @ nil_list_fm ) )
       => ( ! [Xss: list_list_fm] :
              ( ( accp_list_list_fm @ transpose_rel_fm @ ( cons_list_fm @ nil_fm @ Xss ) )
             => ( ( P @ Xss )
               => ( P @ ( cons_list_fm @ nil_fm @ Xss ) ) ) )
         => ( ! [X3: fm,Xs3: list_fm,Xss: list_list_fm] :
                ( ( accp_list_list_fm @ transpose_rel_fm @ ( cons_list_fm @ ( cons_fm @ X3 @ Xs3 ) @ Xss ) )
               => ( ( P
                    @ ( cons_list_fm @ Xs3
                      @ ( concat_list_fm
                        @ ( map_li1351512418201717386ist_fm
                          @ ( case_l1147175924207067418_fm_fm @ nil_list_fm
                            @ ^ [H: fm,T2: list_fm] : ( cons_list_fm @ T2 @ nil_list_fm ) )
                          @ Xss ) ) ) )
                 => ( P @ ( cons_list_fm @ ( cons_fm @ X3 @ Xs3 ) @ Xss ) ) ) )
           => ( P @ A0 ) ) ) ) ) ).

% transpose.pinduct
thf(fact_548_transpose_Opinduct,axiom,
    ! [A0: list_list_tm,P: list_list_tm > $o] :
      ( ( accp_list_list_tm @ transpose_rel_tm @ A0 )
     => ( ( ( accp_list_list_tm @ transpose_rel_tm @ nil_list_tm )
         => ( P @ nil_list_tm ) )
       => ( ! [Xss: list_list_tm] :
              ( ( accp_list_list_tm @ transpose_rel_tm @ ( cons_list_tm @ nil_tm @ Xss ) )
             => ( ( P @ Xss )
               => ( P @ ( cons_list_tm @ nil_tm @ Xss ) ) ) )
         => ( ! [X3: tm,Xs3: list_tm,Xss: list_list_tm] :
                ( ( accp_list_list_tm @ transpose_rel_tm @ ( cons_list_tm @ ( cons_tm @ X3 @ Xs3 ) @ Xss ) )
               => ( ( P
                    @ ( cons_list_tm @ Xs3
                      @ ( concat_list_tm
                        @ ( map_li6264597563971819530ist_tm
                          @ ( case_l799553655970854810_tm_tm @ nil_list_tm
                            @ ^ [H: tm,T2: list_tm] : ( cons_list_tm @ T2 @ nil_list_tm ) )
                          @ Xss ) ) ) )
                 => ( P @ ( cons_list_tm @ ( cons_tm @ X3 @ Xs3 ) @ Xss ) ) ) )
           => ( P @ A0 ) ) ) ) ) ).

% transpose.pinduct
thf(fact_549_transpose_Opinduct,axiom,
    ! [A0: list_list_nat,P: list_list_nat > $o] :
      ( ( accp_list_list_nat @ transpose_rel_nat @ A0 )
     => ( ( ( accp_list_list_nat @ transpose_rel_nat @ nil_list_nat )
         => ( P @ nil_list_nat ) )
       => ( ! [Xss: list_list_nat] :
              ( ( accp_list_list_nat @ transpose_rel_nat @ ( cons_list_nat @ nil_nat @ Xss ) )
             => ( ( P @ Xss )
               => ( P @ ( cons_list_nat @ nil_nat @ Xss ) ) ) )
         => ( ! [X3: nat,Xs3: list_nat,Xss: list_list_nat] :
                ( ( accp_list_list_nat @ transpose_rel_nat @ ( cons_list_nat @ ( cons_nat @ X3 @ Xs3 ) @ Xss ) )
               => ( ( P
                    @ ( cons_list_nat @ Xs3
                      @ ( concat_list_nat
                        @ ( map_li960784813134754710st_nat
                          @ ( case_l3331202209248957608at_nat @ nil_list_nat
                            @ ^ [H: nat,T2: list_nat] : ( cons_list_nat @ T2 @ nil_list_nat ) )
                          @ Xss ) ) ) )
                 => ( P @ ( cons_list_nat @ ( cons_nat @ X3 @ Xs3 ) @ Xss ) ) ) )
           => ( P @ A0 ) ) ) ) ) ).

% transpose.pinduct
thf(fact_550_Un__def,axiom,
    ( sup_sup_set_a
    = ( ^ [A5: set_a,B3: set_a] :
          ( collect_a
          @ ^ [X2: a] :
              ( ( member_a2 @ X2 @ A5 )
              | ( member_a2 @ X2 @ B3 ) ) ) ) ) ).

% Un_def
thf(fact_551_Un__def,axiom,
    ( sup_sup_set_fm
    = ( ^ [A5: set_fm,B3: set_fm] :
          ( collect_fm
          @ ^ [X2: fm] :
              ( ( member_fm2 @ X2 @ A5 )
              | ( member_fm2 @ X2 @ B3 ) ) ) ) ) ).

% Un_def
thf(fact_552_Un__def,axiom,
    ( sup_sup_set_nat
    = ( ^ [A5: set_nat,B3: set_nat] :
          ( collect_nat
          @ ^ [X2: nat] :
              ( ( member_nat2 @ X2 @ A5 )
              | ( member_nat2 @ X2 @ B3 ) ) ) ) ) ).

% Un_def
thf(fact_553_Collect__disj__eq,axiom,
    ! [P: nat > $o,Q: nat > $o] :
      ( ( collect_nat
        @ ^ [X2: nat] :
            ( ( P @ X2 )
            | ( Q @ X2 ) ) )
      = ( sup_sup_set_nat @ ( collect_nat @ P ) @ ( collect_nat @ Q ) ) ) ).

% Collect_disj_eq
thf(fact_554_tm_Oinject_I2_J,axiom,
    ! [X23: nat,Y23: nat] :
      ( ( ( var @ X23 )
        = ( var @ Y23 ) )
      = ( X23 = Y23 ) ) ).

% tm.inject(2)
thf(fact_555_tm_Odistinct_I1_J,axiom,
    ! [X11: nat,X12: list_tm,X23: nat] :
      ( ( fun @ X11 @ X12 )
     != ( var @ X23 ) ) ).

% tm.distinct(1)
thf(fact_556_tm_Oexhaust,axiom,
    ! [Y: tm] :
      ( ! [X112: nat,X122: list_tm] :
          ( Y
         != ( fun @ X112 @ X122 ) )
     => ~ ! [X24: nat] :
            ( Y
           != ( var @ X24 ) ) ) ).

% tm.exhaust
thf(fact_557_paramst_H_H_Ocases,axiom,
    ! [X: tm] :
      ( ! [N3: nat] :
          ( X
         != ( var @ N3 ) )
     => ~ ! [A4: nat,Ts2: list_tm] :
            ( X
           != ( fun @ A4 @ Ts2 ) ) ) ).

% paramst''.cases
thf(fact_558_list_Odisc__eq__case_I2_J,axiom,
    ! [List: list_fm] :
      ( ( List != nil_fm )
      = ( case_list_o_fm @ $false
        @ ^ [Uu: fm,Uv: list_fm] : $true
        @ List ) ) ).

% list.disc_eq_case(2)
thf(fact_559_list_Odisc__eq__case_I2_J,axiom,
    ! [List: list_tm] :
      ( ( List != nil_tm )
      = ( case_list_o_tm @ $false
        @ ^ [Uu: tm,Uv: list_tm] : $true
        @ List ) ) ).

% list.disc_eq_case(2)
thf(fact_560_list_Odisc__eq__case_I2_J,axiom,
    ! [List: list_nat] :
      ( ( List != nil_nat )
      = ( case_list_o_nat @ $false
        @ ^ [Uu: nat,Uv: list_nat] : $true
        @ List ) ) ).

% list.disc_eq_case(2)
thf(fact_561_list_Odisc__eq__case_I1_J,axiom,
    ! [List: list_fm] :
      ( ( List = nil_fm )
      = ( case_list_o_fm @ $true
        @ ^ [Uu: fm,Uv: list_fm] : $false
        @ List ) ) ).

% list.disc_eq_case(1)
thf(fact_562_list_Odisc__eq__case_I1_J,axiom,
    ! [List: list_tm] :
      ( ( List = nil_tm )
      = ( case_list_o_tm @ $true
        @ ^ [Uu: tm,Uv: list_tm] : $false
        @ List ) ) ).

% list.disc_eq_case(1)
thf(fact_563_list_Odisc__eq__case_I1_J,axiom,
    ! [List: list_nat] :
      ( ( List = nil_nat )
      = ( case_list_o_nat @ $true
        @ ^ [Uu: nat,Uv: list_nat] : $false
        @ List ) ) ).

% list.disc_eq_case(1)
thf(fact_564_new__term_Osimps_I1_J,axiom,
    ! [C: nat,N: nat] : ( new_term @ C @ ( var @ N ) ) ).

% new_term.simps(1)
thf(fact_565_transpose_Opsimps_I2_J,axiom,
    ! [Xss2: list_list_fm] :
      ( ( accp_list_list_fm @ transpose_rel_fm @ ( cons_list_fm @ nil_fm @ Xss2 ) )
     => ( ( transpose_fm @ ( cons_list_fm @ nil_fm @ Xss2 ) )
        = ( transpose_fm @ Xss2 ) ) ) ).

% transpose.psimps(2)
thf(fact_566_transpose_Opsimps_I2_J,axiom,
    ! [Xss2: list_list_tm] :
      ( ( accp_list_list_tm @ transpose_rel_tm @ ( cons_list_tm @ nil_tm @ Xss2 ) )
     => ( ( transpose_tm @ ( cons_list_tm @ nil_tm @ Xss2 ) )
        = ( transpose_tm @ Xss2 ) ) ) ).

% transpose.psimps(2)
thf(fact_567_transpose_Opsimps_I2_J,axiom,
    ! [Xss2: list_list_nat] :
      ( ( accp_list_list_nat @ transpose_rel_nat @ ( cons_list_nat @ nil_nat @ Xss2 ) )
     => ( ( transpose_nat @ ( cons_list_nat @ nil_nat @ Xss2 ) )
        = ( transpose_nat @ Xss2 ) ) ) ).

% transpose.psimps(2)
thf(fact_568_transpose__aux__filter__tail,axiom,
    ! [Xss2: list_list_fm] :
      ( ( concat_list_fm
        @ ( map_li1351512418201717386ist_fm
          @ ( case_l1147175924207067418_fm_fm @ nil_list_fm
            @ ^ [H: fm,T2: list_fm] : ( cons_list_fm @ T2 @ nil_list_fm ) )
          @ Xss2 ) )
      = ( map_list_fm_list_fm @ tl_fm
        @ ( filter_list_fm
          @ ^ [Ys3: list_fm] : ( Ys3 != nil_fm )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_tail
thf(fact_569_transpose__aux__filter__tail,axiom,
    ! [Xss2: list_list_tm] :
      ( ( concat_list_tm
        @ ( map_li6264597563971819530ist_tm
          @ ( case_l799553655970854810_tm_tm @ nil_list_tm
            @ ^ [H: tm,T2: list_tm] : ( cons_list_tm @ T2 @ nil_list_tm ) )
          @ Xss2 ) )
      = ( map_list_tm_list_tm @ tl_tm
        @ ( filter_list_tm
          @ ^ [Ys3: list_tm] : ( Ys3 != nil_tm )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_tail
thf(fact_570_transpose__aux__filter__tail,axiom,
    ! [Xss2: list_list_nat] :
      ( ( concat_list_nat
        @ ( map_li960784813134754710st_nat
          @ ( case_l3331202209248957608at_nat @ nil_list_nat
            @ ^ [H: nat,T2: list_nat] : ( cons_list_nat @ T2 @ nil_list_nat ) )
          @ Xss2 ) )
      = ( map_li7225945977422193158st_nat @ tl_nat
        @ ( filter_list_nat
          @ ^ [Ys3: list_nat] : ( Ys3 != nil_nat )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_tail
thf(fact_571_fold__append__concat__rev,axiom,
    ! [Xss2: list_list_nat] :
      ( ( fold_l5850465621530151245st_nat @ append_nat @ Xss2 )
      = ( append_nat @ ( concat_nat @ ( rev_list_nat @ Xss2 ) ) ) ) ).

% fold_append_concat_rev
thf(fact_572_p1_H,axiom,
    paramst3 = paramst ).

% p1'
thf(fact_573_concat__conv__foldr,axiom,
    ( concat_fm
    = ( ^ [Xss3: list_list_fm] : ( foldr_8313202652749265895ist_fm @ append_fm @ Xss3 @ nil_fm ) ) ) ).

% concat_conv_foldr
thf(fact_574_concat__conv__foldr,axiom,
    ( concat_tm
    = ( ^ [Xss3: list_list_tm] : ( foldr_1867511026292261223ist_tm @ append_tm @ Xss3 @ nil_tm ) ) ) ).

% concat_conv_foldr
thf(fact_575_concat__conv__foldr,axiom,
    ( concat_nat
    = ( ^ [Xss3: list_list_nat] : ( foldr_6871341030409798377st_nat @ append_nat @ Xss3 @ nil_nat ) ) ) ).

% concat_conv_foldr
thf(fact_576_remdups__adj__Cons,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( remdups_adj_fm @ ( cons_fm @ X @ Xs ) )
      = ( case_list_list_fm_fm @ ( cons_fm @ X @ nil_fm )
        @ ^ [Y2: fm,Xs2: list_fm] : ( if_list_fm @ ( X = Y2 ) @ ( cons_fm @ Y2 @ Xs2 ) @ ( cons_fm @ X @ ( cons_fm @ Y2 @ Xs2 ) ) )
        @ ( remdups_adj_fm @ Xs ) ) ) ).

% remdups_adj_Cons
thf(fact_577_remdups__adj__Cons,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( remdups_adj_tm @ ( cons_tm @ X @ Xs ) )
      = ( case_list_list_tm_tm @ ( cons_tm @ X @ nil_tm )
        @ ^ [Y2: tm,Xs2: list_tm] : ( if_list_tm @ ( X = Y2 ) @ ( cons_tm @ Y2 @ Xs2 ) @ ( cons_tm @ X @ ( cons_tm @ Y2 @ Xs2 ) ) )
        @ ( remdups_adj_tm @ Xs ) ) ) ).

% remdups_adj_Cons
thf(fact_578_remdups__adj__Cons,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( remdups_adj_nat @ ( cons_nat @ X @ Xs ) )
      = ( case_l2340614614379431832at_nat @ ( cons_nat @ X @ nil_nat )
        @ ^ [Y2: nat,Xs2: list_nat] : ( if_list_nat @ ( X = Y2 ) @ ( cons_nat @ Y2 @ Xs2 ) @ ( cons_nat @ X @ ( cons_nat @ Y2 @ Xs2 ) ) )
        @ ( remdups_adj_nat @ Xs ) ) ) ).

% remdups_adj_Cons
thf(fact_579_filter__append,axiom,
    ! [P: nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( filter_nat @ P @ ( append_nat @ Xs @ Ys ) )
      = ( append_nat @ ( filter_nat @ P @ Xs ) @ ( filter_nat @ P @ Ys ) ) ) ).

% filter_append
thf(fact_580_remdups__adj__Nil__iff,axiom,
    ! [Xs: list_fm] :
      ( ( ( remdups_adj_fm @ Xs )
        = nil_fm )
      = ( Xs = nil_fm ) ) ).

% remdups_adj_Nil_iff
thf(fact_581_remdups__adj__Nil__iff,axiom,
    ! [Xs: list_tm] :
      ( ( ( remdups_adj_tm @ Xs )
        = nil_tm )
      = ( Xs = nil_tm ) ) ).

% remdups_adj_Nil_iff
thf(fact_582_remdups__adj__Nil__iff,axiom,
    ! [Xs: list_nat] :
      ( ( ( remdups_adj_nat @ Xs )
        = nil_nat )
      = ( Xs = nil_nat ) ) ).

% remdups_adj_Nil_iff
thf(fact_583_last__remdups__adj,axiom,
    ! [Xs: list_nat] :
      ( ( last_nat @ ( remdups_adj_nat @ Xs ) )
      = ( last_nat @ Xs ) ) ).

% last_remdups_adj
thf(fact_584_set__filter,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( set_a2 @ ( filter_a @ P @ Xs ) )
      = ( collect_a
        @ ^ [X2: a] :
            ( ( member_a2 @ X2 @ ( set_a2 @ Xs ) )
            & ( P @ X2 ) ) ) ) ).

% set_filter
thf(fact_585_set__filter,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( set_fm2 @ ( filter_fm @ P @ Xs ) )
      = ( collect_fm
        @ ^ [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs ) )
            & ( P @ X2 ) ) ) ) ).

% set_filter
thf(fact_586_set__filter,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( set_nat2 @ ( filter_nat @ P @ Xs ) )
      = ( collect_nat
        @ ^ [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
            & ( P @ X2 ) ) ) ) ).

% set_filter
thf(fact_587_filter__False,axiom,
    ! [Xs: list_fm,P: fm > $o] :
      ( ! [X3: fm] :
          ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
         => ~ ( P @ X3 ) )
     => ( ( filter_fm @ P @ Xs )
        = nil_fm ) ) ).

% filter_False
thf(fact_588_filter__False,axiom,
    ! [Xs: list_tm,P: tm > $o] :
      ( ! [X3: tm] :
          ( ( member_tm2 @ X3 @ ( set_tm2 @ Xs ) )
         => ~ ( P @ X3 ) )
     => ( ( filter_tm @ P @ Xs )
        = nil_tm ) ) ).

% filter_False
thf(fact_589_filter__False,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ~ ( P @ X3 ) )
     => ( ( filter_nat @ P @ Xs )
        = nil_nat ) ) ).

% filter_False
thf(fact_590_tl__append2,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( tl_fm @ ( append_fm @ Xs @ Ys ) )
        = ( append_fm @ ( tl_fm @ Xs ) @ Ys ) ) ) ).

% tl_append2
thf(fact_591_tl__append2,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( tl_tm @ ( append_tm @ Xs @ Ys ) )
        = ( append_tm @ ( tl_tm @ Xs ) @ Ys ) ) ) ).

% tl_append2
thf(fact_592_tl__append2,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( tl_nat @ ( append_nat @ Xs @ Ys ) )
        = ( append_nat @ ( tl_nat @ Xs ) @ Ys ) ) ) ).

% tl_append2
thf(fact_593_remdups__adj__Cons__alt,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( cons_tm @ X @ ( tl_tm @ ( remdups_adj_tm @ ( cons_tm @ X @ Xs ) ) ) )
      = ( remdups_adj_tm @ ( cons_tm @ X @ Xs ) ) ) ).

% remdups_adj_Cons_alt
thf(fact_594_remdups__adj__Cons__alt,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( cons_nat @ X @ ( tl_nat @ ( remdups_adj_nat @ ( cons_nat @ X @ Xs ) ) ) )
      = ( remdups_adj_nat @ ( cons_nat @ X @ Xs ) ) ) ).

% remdups_adj_Cons_alt
thf(fact_595_butlast__rev,axiom,
    ! [Xs: list_nat] :
      ( ( butlast_nat @ ( rev_nat @ Xs ) )
      = ( rev_nat @ ( tl_nat @ Xs ) ) ) ).

% butlast_rev
thf(fact_596_filter_Osimps_I2_J,axiom,
    ! [P: tm > $o,X: tm,Xs: list_tm] :
      ( ( ( P @ X )
       => ( ( filter_tm @ P @ ( cons_tm @ X @ Xs ) )
          = ( cons_tm @ X @ ( filter_tm @ P @ Xs ) ) ) )
      & ( ~ ( P @ X )
       => ( ( filter_tm @ P @ ( cons_tm @ X @ Xs ) )
          = ( filter_tm @ P @ Xs ) ) ) ) ).

% filter.simps(2)
thf(fact_597_filter_Osimps_I2_J,axiom,
    ! [P: nat > $o,X: nat,Xs: list_nat] :
      ( ( ( P @ X )
       => ( ( filter_nat @ P @ ( cons_nat @ X @ Xs ) )
          = ( cons_nat @ X @ ( filter_nat @ P @ Xs ) ) ) )
      & ( ~ ( P @ X )
       => ( ( filter_nat @ P @ ( cons_nat @ X @ Xs ) )
          = ( filter_nat @ P @ Xs ) ) ) ) ).

% filter.simps(2)
thf(fact_598_filter_Osimps_I1_J,axiom,
    ! [P: fm > $o] :
      ( ( filter_fm @ P @ nil_fm )
      = nil_fm ) ).

% filter.simps(1)
thf(fact_599_filter_Osimps_I1_J,axiom,
    ! [P: tm > $o] :
      ( ( filter_tm @ P @ nil_tm )
      = nil_tm ) ).

% filter.simps(1)
thf(fact_600_filter_Osimps_I1_J,axiom,
    ! [P: nat > $o] :
      ( ( filter_nat @ P @ nil_nat )
      = nil_nat ) ).

% filter.simps(1)
thf(fact_601_filter__cong,axiom,
    ! [Xs: list_a,Ys: list_a,P: a > $o,Q: a > $o] :
      ( ( Xs = Ys )
     => ( ! [X3: a] :
            ( ( member_a2 @ X3 @ ( set_a2 @ Ys ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( filter_a @ P @ Xs )
          = ( filter_a @ Q @ Ys ) ) ) ) ).

% filter_cong
thf(fact_602_filter__cong,axiom,
    ! [Xs: list_nat,Ys: list_nat,P: nat > $o,Q: nat > $o] :
      ( ( Xs = Ys )
     => ( ! [X3: nat] :
            ( ( member_nat2 @ X3 @ ( set_nat2 @ Ys ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( filter_nat @ P @ Xs )
          = ( filter_nat @ Q @ Ys ) ) ) ) ).

% filter_cong
thf(fact_603_filter__cong,axiom,
    ! [Xs: list_fm,Ys: list_fm,P: fm > $o,Q: fm > $o] :
      ( ( Xs = Ys )
     => ( ! [X3: fm] :
            ( ( member_fm2 @ X3 @ ( set_fm2 @ Ys ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( filter_fm @ P @ Xs )
          = ( filter_fm @ Q @ Ys ) ) ) ) ).

% filter_cong
thf(fact_604_list_Osel_I3_J,axiom,
    ! [X21: tm,X22: list_tm] :
      ( ( tl_tm @ ( cons_tm @ X21 @ X22 ) )
      = X22 ) ).

% list.sel(3)
thf(fact_605_list_Osel_I3_J,axiom,
    ! [X21: nat,X22: list_nat] :
      ( ( tl_nat @ ( cons_nat @ X21 @ X22 ) )
      = X22 ) ).

% list.sel(3)
thf(fact_606_list_Osel_I2_J,axiom,
    ( ( tl_fm @ nil_fm )
    = nil_fm ) ).

% list.sel(2)
thf(fact_607_list_Osel_I2_J,axiom,
    ( ( tl_tm @ nil_tm )
    = nil_tm ) ).

% list.sel(2)
thf(fact_608_list_Osel_I2_J,axiom,
    ( ( tl_nat @ nil_nat )
    = nil_nat ) ).

% list.sel(2)
thf(fact_609_remdups__adj_Osimps_I3_J,axiom,
    ! [X: tm,Y: tm,Xs: list_tm] :
      ( ( ( X = Y )
       => ( ( remdups_adj_tm @ ( cons_tm @ X @ ( cons_tm @ Y @ Xs ) ) )
          = ( remdups_adj_tm @ ( cons_tm @ X @ Xs ) ) ) )
      & ( ( X != Y )
       => ( ( remdups_adj_tm @ ( cons_tm @ X @ ( cons_tm @ Y @ Xs ) ) )
          = ( cons_tm @ X @ ( remdups_adj_tm @ ( cons_tm @ Y @ Xs ) ) ) ) ) ) ).

% remdups_adj.simps(3)
thf(fact_610_remdups__adj_Osimps_I3_J,axiom,
    ! [X: nat,Y: nat,Xs: list_nat] :
      ( ( ( X = Y )
       => ( ( remdups_adj_nat @ ( cons_nat @ X @ ( cons_nat @ Y @ Xs ) ) )
          = ( remdups_adj_nat @ ( cons_nat @ X @ Xs ) ) ) )
      & ( ( X != Y )
       => ( ( remdups_adj_nat @ ( cons_nat @ X @ ( cons_nat @ Y @ Xs ) ) )
          = ( cons_nat @ X @ ( remdups_adj_nat @ ( cons_nat @ Y @ Xs ) ) ) ) ) ) ).

% remdups_adj.simps(3)
thf(fact_611_remdups__adj_Osimps_I1_J,axiom,
    ( ( remdups_adj_fm @ nil_fm )
    = nil_fm ) ).

% remdups_adj.simps(1)
thf(fact_612_remdups__adj_Osimps_I1_J,axiom,
    ( ( remdups_adj_tm @ nil_tm )
    = nil_tm ) ).

% remdups_adj.simps(1)
thf(fact_613_remdups__adj_Osimps_I1_J,axiom,
    ( ( remdups_adj_nat @ nil_nat )
    = nil_nat ) ).

% remdups_adj.simps(1)
thf(fact_614_map__tl,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( map_nat_nat @ F @ ( tl_nat @ Xs ) )
      = ( tl_nat @ ( map_nat_nat @ F @ Xs ) ) ) ).

% map_tl
thf(fact_615_butlast__tl,axiom,
    ! [Xs: list_nat] :
      ( ( butlast_nat @ ( tl_nat @ Xs ) )
      = ( tl_nat @ ( butlast_nat @ Xs ) ) ) ).

% butlast_tl
thf(fact_616_remdups__adj__append,axiom,
    ! [Xs_1: list_fm,X: fm,Xs_2: list_fm] :
      ( ( remdups_adj_fm @ ( append_fm @ Xs_1 @ ( cons_fm @ X @ Xs_2 ) ) )
      = ( append_fm @ ( remdups_adj_fm @ ( append_fm @ Xs_1 @ ( cons_fm @ X @ nil_fm ) ) ) @ ( tl_fm @ ( remdups_adj_fm @ ( cons_fm @ X @ Xs_2 ) ) ) ) ) ).

% remdups_adj_append
thf(fact_617_remdups__adj__append,axiom,
    ! [Xs_1: list_tm,X: tm,Xs_2: list_tm] :
      ( ( remdups_adj_tm @ ( append_tm @ Xs_1 @ ( cons_tm @ X @ Xs_2 ) ) )
      = ( append_tm @ ( remdups_adj_tm @ ( append_tm @ Xs_1 @ ( cons_tm @ X @ nil_tm ) ) ) @ ( tl_tm @ ( remdups_adj_tm @ ( cons_tm @ X @ Xs_2 ) ) ) ) ) ).

% remdups_adj_append
thf(fact_618_remdups__adj__append,axiom,
    ! [Xs_1: list_nat,X: nat,Xs_2: list_nat] :
      ( ( remdups_adj_nat @ ( append_nat @ Xs_1 @ ( cons_nat @ X @ Xs_2 ) ) )
      = ( append_nat @ ( remdups_adj_nat @ ( append_nat @ Xs_1 @ ( cons_nat @ X @ nil_nat ) ) ) @ ( tl_nat @ ( remdups_adj_nat @ ( cons_nat @ X @ Xs_2 ) ) ) ) ) ).

% remdups_adj_append
thf(fact_619_filter__empty__conv,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( ( filter_fm @ P @ Xs )
        = nil_fm )
      = ( ! [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% filter_empty_conv
thf(fact_620_filter__empty__conv,axiom,
    ! [P: tm > $o,Xs: list_tm] :
      ( ( ( filter_tm @ P @ Xs )
        = nil_tm )
      = ( ! [X2: tm] :
            ( ( member_tm2 @ X2 @ ( set_tm2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% filter_empty_conv
thf(fact_621_filter__empty__conv,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( ( filter_nat @ P @ Xs )
        = nil_nat )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% filter_empty_conv
thf(fact_622_empty__filter__conv,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( nil_fm
        = ( filter_fm @ P @ Xs ) )
      = ( ! [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% empty_filter_conv
thf(fact_623_empty__filter__conv,axiom,
    ! [P: tm > $o,Xs: list_tm] :
      ( ( nil_tm
        = ( filter_tm @ P @ Xs ) )
      = ( ! [X2: tm] :
            ( ( member_tm2 @ X2 @ ( set_tm2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% empty_filter_conv
thf(fact_624_empty__filter__conv,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( nil_nat
        = ( filter_nat @ P @ Xs ) )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
           => ~ ( P @ X2 ) ) ) ) ).

% empty_filter_conv
thf(fact_625_tl__Nil,axiom,
    ! [Xs: list_fm] :
      ( ( ( tl_fm @ Xs )
        = nil_fm )
      = ( ( Xs = nil_fm )
        | ? [X2: fm] :
            ( Xs
            = ( cons_fm @ X2 @ nil_fm ) ) ) ) ).

% tl_Nil
thf(fact_626_tl__Nil,axiom,
    ! [Xs: list_tm] :
      ( ( ( tl_tm @ Xs )
        = nil_tm )
      = ( ( Xs = nil_tm )
        | ? [X2: tm] :
            ( Xs
            = ( cons_tm @ X2 @ nil_tm ) ) ) ) ).

% tl_Nil
thf(fact_627_tl__Nil,axiom,
    ! [Xs: list_nat] :
      ( ( ( tl_nat @ Xs )
        = nil_nat )
      = ( ( Xs = nil_nat )
        | ? [X2: nat] :
            ( Xs
            = ( cons_nat @ X2 @ nil_nat ) ) ) ) ).

% tl_Nil
thf(fact_628_Nil__tl,axiom,
    ! [Xs: list_fm] :
      ( ( nil_fm
        = ( tl_fm @ Xs ) )
      = ( ( Xs = nil_fm )
        | ? [X2: fm] :
            ( Xs
            = ( cons_fm @ X2 @ nil_fm ) ) ) ) ).

% Nil_tl
thf(fact_629_Nil__tl,axiom,
    ! [Xs: list_tm] :
      ( ( nil_tm
        = ( tl_tm @ Xs ) )
      = ( ( Xs = nil_tm )
        | ? [X2: tm] :
            ( Xs
            = ( cons_tm @ X2 @ nil_tm ) ) ) ) ).

% Nil_tl
thf(fact_630_Nil__tl,axiom,
    ! [Xs: list_nat] :
      ( ( nil_nat
        = ( tl_nat @ Xs ) )
      = ( ( Xs = nil_nat )
        | ? [X2: nat] :
            ( Xs
            = ( cons_nat @ X2 @ nil_nat ) ) ) ) ).

% Nil_tl
thf(fact_631_list_Oset__sel_I2_J,axiom,
    ! [A2: list_a,X: a] :
      ( ( A2 != nil_a )
     => ( ( member_a2 @ X @ ( set_a2 @ ( tl_a @ A2 ) ) )
       => ( member_a2 @ X @ ( set_a2 @ A2 ) ) ) ) ).

% list.set_sel(2)
thf(fact_632_list_Oset__sel_I2_J,axiom,
    ! [A2: list_fm,X: fm] :
      ( ( A2 != nil_fm )
     => ( ( member_fm2 @ X @ ( set_fm2 @ ( tl_fm @ A2 ) ) )
       => ( member_fm2 @ X @ ( set_fm2 @ A2 ) ) ) ) ).

% list.set_sel(2)
thf(fact_633_list_Oset__sel_I2_J,axiom,
    ! [A2: list_tm,X: tm] :
      ( ( A2 != nil_tm )
     => ( ( member_tm2 @ X @ ( set_tm2 @ ( tl_tm @ A2 ) ) )
       => ( member_tm2 @ X @ ( set_tm2 @ A2 ) ) ) ) ).

% list.set_sel(2)
thf(fact_634_list_Oset__sel_I2_J,axiom,
    ! [A2: list_nat,X: nat] :
      ( ( A2 != nil_nat )
     => ( ( member_nat2 @ X @ ( set_nat2 @ ( tl_nat @ A2 ) ) )
       => ( member_nat2 @ X @ ( set_nat2 @ A2 ) ) ) ) ).

% list.set_sel(2)
thf(fact_635_remdups__adj_Oelims,axiom,
    ! [X: list_fm,Y: list_fm] :
      ( ( ( remdups_adj_fm @ X )
        = Y )
     => ( ( ( X = nil_fm )
         => ( Y != nil_fm ) )
       => ( ! [X3: fm] :
              ( ( X
                = ( cons_fm @ X3 @ nil_fm ) )
             => ( Y
               != ( cons_fm @ X3 @ nil_fm ) ) )
         => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
                ( ( X
                  = ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) )
               => ~ ( ( ( X3 = Y3 )
                     => ( Y
                        = ( remdups_adj_fm @ ( cons_fm @ X3 @ Xs3 ) ) ) )
                    & ( ( X3 != Y3 )
                     => ( Y
                        = ( cons_fm @ X3 @ ( remdups_adj_fm @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ) ).

% remdups_adj.elims
thf(fact_636_remdups__adj_Oelims,axiom,
    ! [X: list_tm,Y: list_tm] :
      ( ( ( remdups_adj_tm @ X )
        = Y )
     => ( ( ( X = nil_tm )
         => ( Y != nil_tm ) )
       => ( ! [X3: tm] :
              ( ( X
                = ( cons_tm @ X3 @ nil_tm ) )
             => ( Y
               != ( cons_tm @ X3 @ nil_tm ) ) )
         => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
                ( ( X
                  = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) )
               => ~ ( ( ( X3 = Y3 )
                     => ( Y
                        = ( remdups_adj_tm @ ( cons_tm @ X3 @ Xs3 ) ) ) )
                    & ( ( X3 != Y3 )
                     => ( Y
                        = ( cons_tm @ X3 @ ( remdups_adj_tm @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ) ).

% remdups_adj.elims
thf(fact_637_remdups__adj_Oelims,axiom,
    ! [X: list_nat,Y: list_nat] :
      ( ( ( remdups_adj_nat @ X )
        = Y )
     => ( ( ( X = nil_nat )
         => ( Y != nil_nat ) )
       => ( ! [X3: nat] :
              ( ( X
                = ( cons_nat @ X3 @ nil_nat ) )
             => ( Y
               != ( cons_nat @ X3 @ nil_nat ) ) )
         => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
                ( ( X
                  = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) )
               => ~ ( ( ( X3 = Y3 )
                     => ( Y
                        = ( remdups_adj_nat @ ( cons_nat @ X3 @ Xs3 ) ) ) )
                    & ( ( X3 != Y3 )
                     => ( Y
                        = ( cons_nat @ X3 @ ( remdups_adj_nat @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ) ).

% remdups_adj.elims
thf(fact_638_remdups__adj_Osimps_I2_J,axiom,
    ! [X: fm] :
      ( ( remdups_adj_fm @ ( cons_fm @ X @ nil_fm ) )
      = ( cons_fm @ X @ nil_fm ) ) ).

% remdups_adj.simps(2)
thf(fact_639_remdups__adj_Osimps_I2_J,axiom,
    ! [X: tm] :
      ( ( remdups_adj_tm @ ( cons_tm @ X @ nil_tm ) )
      = ( cons_tm @ X @ nil_tm ) ) ).

% remdups_adj.simps(2)
thf(fact_640_remdups__adj_Osimps_I2_J,axiom,
    ! [X: nat] :
      ( ( remdups_adj_nat @ ( cons_nat @ X @ nil_nat ) )
      = ( cons_nat @ X @ nil_nat ) ) ).

% remdups_adj.simps(2)
thf(fact_641_list_Omap__sel_I2_J,axiom,
    ! [A2: list_fm,F: fm > nat] :
      ( ( A2 != nil_fm )
     => ( ( tl_nat @ ( map_fm_nat @ F @ A2 ) )
        = ( map_fm_nat @ F @ ( tl_fm @ A2 ) ) ) ) ).

% list.map_sel(2)
thf(fact_642_list_Omap__sel_I2_J,axiom,
    ! [A2: list_tm,F: tm > nat] :
      ( ( A2 != nil_tm )
     => ( ( tl_nat @ ( map_tm_nat @ F @ A2 ) )
        = ( map_tm_nat @ F @ ( tl_tm @ A2 ) ) ) ) ).

% list.map_sel(2)
thf(fact_643_list_Omap__sel_I2_J,axiom,
    ! [A2: list_nat,F: nat > nat] :
      ( ( A2 != nil_nat )
     => ( ( tl_nat @ ( map_nat_nat @ F @ A2 ) )
        = ( map_nat_nat @ F @ ( tl_nat @ A2 ) ) ) ) ).

% list.map_sel(2)
thf(fact_644_tl__append__if,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( Xs = nil_fm )
       => ( ( tl_fm @ ( append_fm @ Xs @ Ys ) )
          = ( tl_fm @ Ys ) ) )
      & ( ( Xs != nil_fm )
       => ( ( tl_fm @ ( append_fm @ Xs @ Ys ) )
          = ( append_fm @ ( tl_fm @ Xs ) @ Ys ) ) ) ) ).

% tl_append_if
thf(fact_645_tl__append__if,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( Xs = nil_tm )
       => ( ( tl_tm @ ( append_tm @ Xs @ Ys ) )
          = ( tl_tm @ Ys ) ) )
      & ( ( Xs != nil_tm )
       => ( ( tl_tm @ ( append_tm @ Xs @ Ys ) )
          = ( append_tm @ ( tl_tm @ Xs ) @ Ys ) ) ) ) ).

% tl_append_if
thf(fact_646_tl__append__if,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( Xs = nil_nat )
       => ( ( tl_nat @ ( append_nat @ Xs @ Ys ) )
          = ( tl_nat @ Ys ) ) )
      & ( ( Xs != nil_nat )
       => ( ( tl_nat @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ ( tl_nat @ Xs ) @ Ys ) ) ) ) ).

% tl_append_if
thf(fact_647_last__tl,axiom,
    ! [Xs: list_fm] :
      ( ( ( Xs = nil_fm )
        | ( ( tl_fm @ Xs )
         != nil_fm ) )
     => ( ( last_fm @ ( tl_fm @ Xs ) )
        = ( last_fm @ Xs ) ) ) ).

% last_tl
thf(fact_648_last__tl,axiom,
    ! [Xs: list_tm] :
      ( ( ( Xs = nil_tm )
        | ( ( tl_tm @ Xs )
         != nil_tm ) )
     => ( ( last_tm @ ( tl_tm @ Xs ) )
        = ( last_tm @ Xs ) ) ) ).

% last_tl
thf(fact_649_last__tl,axiom,
    ! [Xs: list_nat] :
      ( ( ( Xs = nil_nat )
        | ( ( tl_nat @ Xs )
         != nil_nat ) )
     => ( ( last_nat @ ( tl_nat @ Xs ) )
        = ( last_nat @ Xs ) ) ) ).

% last_tl
thf(fact_650_filter__eq__Cons__iff,axiom,
    ! [P: tm > $o,Ys: list_tm,X: tm,Xs: list_tm] :
      ( ( ( filter_tm @ P @ Ys )
        = ( cons_tm @ X @ Xs ) )
      = ( ? [Us2: list_tm,Vs: list_tm] :
            ( ( Ys
              = ( append_tm @ Us2 @ ( cons_tm @ X @ Vs ) ) )
            & ! [X2: tm] :
                ( ( member_tm2 @ X2 @ ( set_tm2 @ Us2 ) )
               => ~ ( P @ X2 ) )
            & ( P @ X )
            & ( Xs
              = ( filter_tm @ P @ Vs ) ) ) ) ) ).

% filter_eq_Cons_iff
thf(fact_651_filter__eq__Cons__iff,axiom,
    ! [P: nat > $o,Ys: list_nat,X: nat,Xs: list_nat] :
      ( ( ( filter_nat @ P @ Ys )
        = ( cons_nat @ X @ Xs ) )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Ys
              = ( append_nat @ Us2 @ ( cons_nat @ X @ Vs ) ) )
            & ! [X2: nat] :
                ( ( member_nat2 @ X2 @ ( set_nat2 @ Us2 ) )
               => ~ ( P @ X2 ) )
            & ( P @ X )
            & ( Xs
              = ( filter_nat @ P @ Vs ) ) ) ) ) ).

% filter_eq_Cons_iff
thf(fact_652_Cons__eq__filter__iff,axiom,
    ! [X: tm,Xs: list_tm,P: tm > $o,Ys: list_tm] :
      ( ( ( cons_tm @ X @ Xs )
        = ( filter_tm @ P @ Ys ) )
      = ( ? [Us2: list_tm,Vs: list_tm] :
            ( ( Ys
              = ( append_tm @ Us2 @ ( cons_tm @ X @ Vs ) ) )
            & ! [X2: tm] :
                ( ( member_tm2 @ X2 @ ( set_tm2 @ Us2 ) )
               => ~ ( P @ X2 ) )
            & ( P @ X )
            & ( Xs
              = ( filter_tm @ P @ Vs ) ) ) ) ) ).

% Cons_eq_filter_iff
thf(fact_653_Cons__eq__filter__iff,axiom,
    ! [X: nat,Xs: list_nat,P: nat > $o,Ys: list_nat] :
      ( ( ( cons_nat @ X @ Xs )
        = ( filter_nat @ P @ Ys ) )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Ys
              = ( append_nat @ Us2 @ ( cons_nat @ X @ Vs ) ) )
            & ! [X2: nat] :
                ( ( member_nat2 @ X2 @ ( set_nat2 @ Us2 ) )
               => ~ ( P @ X2 ) )
            & ( P @ X )
            & ( Xs
              = ( filter_nat @ P @ Vs ) ) ) ) ) ).

% Cons_eq_filter_iff
thf(fact_654_filter__eq__ConsD,axiom,
    ! [P: tm > $o,Ys: list_tm,X: tm,Xs: list_tm] :
      ( ( ( filter_tm @ P @ Ys )
        = ( cons_tm @ X @ Xs ) )
     => ? [Us3: list_tm,Vs2: list_tm] :
          ( ( Ys
            = ( append_tm @ Us3 @ ( cons_tm @ X @ Vs2 ) ) )
          & ! [X4: tm] :
              ( ( member_tm2 @ X4 @ ( set_tm2 @ Us3 ) )
             => ~ ( P @ X4 ) )
          & ( P @ X )
          & ( Xs
            = ( filter_tm @ P @ Vs2 ) ) ) ) ).

% filter_eq_ConsD
thf(fact_655_filter__eq__ConsD,axiom,
    ! [P: nat > $o,Ys: list_nat,X: nat,Xs: list_nat] :
      ( ( ( filter_nat @ P @ Ys )
        = ( cons_nat @ X @ Xs ) )
     => ? [Us3: list_nat,Vs2: list_nat] :
          ( ( Ys
            = ( append_nat @ Us3 @ ( cons_nat @ X @ Vs2 ) ) )
          & ! [X4: nat] :
              ( ( member_nat2 @ X4 @ ( set_nat2 @ Us3 ) )
             => ~ ( P @ X4 ) )
          & ( P @ X )
          & ( Xs
            = ( filter_nat @ P @ Vs2 ) ) ) ) ).

% filter_eq_ConsD
thf(fact_656_Cons__eq__filterD,axiom,
    ! [X: tm,Xs: list_tm,P: tm > $o,Ys: list_tm] :
      ( ( ( cons_tm @ X @ Xs )
        = ( filter_tm @ P @ Ys ) )
     => ? [Us3: list_tm,Vs2: list_tm] :
          ( ( Ys
            = ( append_tm @ Us3 @ ( cons_tm @ X @ Vs2 ) ) )
          & ! [X4: tm] :
              ( ( member_tm2 @ X4 @ ( set_tm2 @ Us3 ) )
             => ~ ( P @ X4 ) )
          & ( P @ X )
          & ( Xs
            = ( filter_tm @ P @ Vs2 ) ) ) ) ).

% Cons_eq_filterD
thf(fact_657_Cons__eq__filterD,axiom,
    ! [X: nat,Xs: list_nat,P: nat > $o,Ys: list_nat] :
      ( ( ( cons_nat @ X @ Xs )
        = ( filter_nat @ P @ Ys ) )
     => ? [Us3: list_nat,Vs2: list_nat] :
          ( ( Ys
            = ( append_nat @ Us3 @ ( cons_nat @ X @ Vs2 ) ) )
          & ! [X4: nat] :
              ( ( member_nat2 @ X4 @ ( set_nat2 @ Us3 ) )
             => ~ ( P @ X4 ) )
          & ( P @ X )
          & ( Xs
            = ( filter_nat @ P @ Vs2 ) ) ) ) ).

% Cons_eq_filterD
thf(fact_658_tl__def,axiom,
    ( tl_fm
    = ( case_list_list_fm_fm @ nil_fm
      @ ^ [X213: fm,X223: list_fm] : X223 ) ) ).

% tl_def
thf(fact_659_tl__def,axiom,
    ( tl_tm
    = ( case_list_list_tm_tm @ nil_tm
      @ ^ [X213: tm,X223: list_tm] : X223 ) ) ).

% tl_def
thf(fact_660_tl__def,axiom,
    ( tl_nat
    = ( case_l2340614614379431832at_nat @ nil_nat
      @ ^ [X213: nat,X223: list_nat] : X223 ) ) ).

% tl_def
thf(fact_661_tl__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( tl_nat @ ( append_nat @ Xs @ Ys ) )
      = ( case_l2340614614379431832at_nat @ ( tl_nat @ Ys )
        @ ^ [Z2: nat,Zs3: list_nat] : ( append_nat @ Zs3 @ Ys )
        @ Xs ) ) ).

% tl_append
thf(fact_662_rev__conv__fold,axiom,
    ( rev_fm
    = ( ^ [Xs2: list_fm] : ( fold_fm_list_fm @ cons_fm @ Xs2 @ nil_fm ) ) ) ).

% rev_conv_fold
thf(fact_663_rev__conv__fold,axiom,
    ( rev_tm
    = ( ^ [Xs2: list_tm] : ( fold_tm_list_tm @ cons_tm @ Xs2 @ nil_tm ) ) ) ).

% rev_conv_fold
thf(fact_664_rev__conv__fold,axiom,
    ( rev_nat
    = ( ^ [Xs2: list_nat] : ( fold_nat_list_nat @ cons_nat @ Xs2 @ nil_nat ) ) ) ).

% rev_conv_fold
thf(fact_665_remdups__adj__append__two,axiom,
    ! [Xs: list_fm,X: fm,Y: fm] :
      ( ( remdups_adj_fm @ ( append_fm @ Xs @ ( cons_fm @ X @ ( cons_fm @ Y @ nil_fm ) ) ) )
      = ( append_fm @ ( remdups_adj_fm @ ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) ) ) @ ( if_list_fm @ ( X = Y ) @ nil_fm @ ( cons_fm @ Y @ nil_fm ) ) ) ) ).

% remdups_adj_append_two
thf(fact_666_remdups__adj__append__two,axiom,
    ! [Xs: list_tm,X: tm,Y: tm] :
      ( ( remdups_adj_tm @ ( append_tm @ Xs @ ( cons_tm @ X @ ( cons_tm @ Y @ nil_tm ) ) ) )
      = ( append_tm @ ( remdups_adj_tm @ ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) ) ) @ ( if_list_tm @ ( X = Y ) @ nil_tm @ ( cons_tm @ Y @ nil_tm ) ) ) ) ).

% remdups_adj_append_two
thf(fact_667_remdups__adj__append__two,axiom,
    ! [Xs: list_nat,X: nat,Y: nat] :
      ( ( remdups_adj_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ ( cons_nat @ Y @ nil_nat ) ) ) )
      = ( append_nat @ ( remdups_adj_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) ) @ ( if_list_nat @ ( X = Y ) @ nil_nat @ ( cons_nat @ Y @ nil_nat ) ) ) ) ).

% remdups_adj_append_two
thf(fact_668_fold__Cons__rev,axiom,
    ! [Xs: list_tm] :
      ( ( fold_tm_list_tm @ cons_tm @ Xs )
      = ( append_tm @ ( rev_tm @ Xs ) ) ) ).

% fold_Cons_rev
thf(fact_669_fold__Cons__rev,axiom,
    ! [Xs: list_nat] :
      ( ( fold_nat_list_nat @ cons_nat @ Xs )
      = ( append_nat @ ( rev_nat @ Xs ) ) ) ).

% fold_Cons_rev
thf(fact_670_remdups__adj_Opelims,axiom,
    ! [X: list_fm,Y: list_fm] :
      ( ( ( remdups_adj_fm @ X )
        = Y )
     => ( ( accp_list_fm @ remdups_adj_rel_fm @ X )
       => ( ( ( X = nil_fm )
           => ( ( Y = nil_fm )
             => ~ ( accp_list_fm @ remdups_adj_rel_fm @ nil_fm ) ) )
         => ( ! [X3: fm] :
                ( ( X
                  = ( cons_fm @ X3 @ nil_fm ) )
               => ( ( Y
                    = ( cons_fm @ X3 @ nil_fm ) )
                 => ~ ( accp_list_fm @ remdups_adj_rel_fm @ ( cons_fm @ X3 @ nil_fm ) ) ) )
           => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
                  ( ( X
                    = ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) )
                 => ( ( ( ( X3 = Y3 )
                       => ( Y
                          = ( remdups_adj_fm @ ( cons_fm @ X3 @ Xs3 ) ) ) )
                      & ( ( X3 != Y3 )
                       => ( Y
                          = ( cons_fm @ X3 @ ( remdups_adj_fm @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) )
                   => ~ ( accp_list_fm @ remdups_adj_rel_fm @ ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% remdups_adj.pelims
thf(fact_671_remdups__adj_Opelims,axiom,
    ! [X: list_tm,Y: list_tm] :
      ( ( ( remdups_adj_tm @ X )
        = Y )
     => ( ( accp_list_tm @ remdups_adj_rel_tm @ X )
       => ( ( ( X = nil_tm )
           => ( ( Y = nil_tm )
             => ~ ( accp_list_tm @ remdups_adj_rel_tm @ nil_tm ) ) )
         => ( ! [X3: tm] :
                ( ( X
                  = ( cons_tm @ X3 @ nil_tm ) )
               => ( ( Y
                    = ( cons_tm @ X3 @ nil_tm ) )
                 => ~ ( accp_list_tm @ remdups_adj_rel_tm @ ( cons_tm @ X3 @ nil_tm ) ) ) )
           => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
                  ( ( X
                    = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) )
                 => ( ( ( ( X3 = Y3 )
                       => ( Y
                          = ( remdups_adj_tm @ ( cons_tm @ X3 @ Xs3 ) ) ) )
                      & ( ( X3 != Y3 )
                       => ( Y
                          = ( cons_tm @ X3 @ ( remdups_adj_tm @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) )
                   => ~ ( accp_list_tm @ remdups_adj_rel_tm @ ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% remdups_adj.pelims
thf(fact_672_remdups__adj_Opelims,axiom,
    ! [X: list_nat,Y: list_nat] :
      ( ( ( remdups_adj_nat @ X )
        = Y )
     => ( ( accp_list_nat @ remdups_adj_rel_nat @ X )
       => ( ( ( X = nil_nat )
           => ( ( Y = nil_nat )
             => ~ ( accp_list_nat @ remdups_adj_rel_nat @ nil_nat ) ) )
         => ( ! [X3: nat] :
                ( ( X
                  = ( cons_nat @ X3 @ nil_nat ) )
               => ( ( Y
                    = ( cons_nat @ X3 @ nil_nat ) )
                 => ~ ( accp_list_nat @ remdups_adj_rel_nat @ ( cons_nat @ X3 @ nil_nat ) ) ) )
           => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
                  ( ( X
                    = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) )
                 => ( ( ( ( X3 = Y3 )
                       => ( Y
                          = ( remdups_adj_nat @ ( cons_nat @ X3 @ Xs3 ) ) ) )
                      & ( ( X3 != Y3 )
                       => ( Y
                          = ( cons_nat @ X3 @ ( remdups_adj_nat @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) )
                   => ~ ( accp_list_nat @ remdups_adj_rel_nat @ ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% remdups_adj.pelims
thf(fact_673_transpose__aux__filter__head,axiom,
    ! [Xss2: list_list_fm] :
      ( ( concat_fm
        @ ( map_list_fm_list_fm
          @ ( case_list_list_fm_fm @ nil_fm
            @ ^ [H: fm,T2: list_fm] : ( cons_fm @ H @ nil_fm ) )
          @ Xss2 ) )
      = ( map_list_fm_fm @ hd_fm
        @ ( filter_list_fm
          @ ^ [Ys3: list_fm] : ( Ys3 != nil_fm )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_head
thf(fact_674_transpose__aux__filter__head,axiom,
    ! [Xss2: list_list_tm] :
      ( ( concat_tm
        @ ( map_list_tm_list_tm
          @ ( case_list_list_tm_tm @ nil_tm
            @ ^ [H: tm,T2: list_tm] : ( cons_tm @ H @ nil_tm ) )
          @ Xss2 ) )
      = ( map_list_tm_tm @ hd_tm
        @ ( filter_list_tm
          @ ^ [Ys3: list_tm] : ( Ys3 != nil_tm )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_head
thf(fact_675_transpose__aux__filter__head,axiom,
    ! [Xss2: list_list_nat] :
      ( ( concat_nat
        @ ( map_li7225945977422193158st_nat
          @ ( case_l2340614614379431832at_nat @ nil_nat
            @ ^ [H: nat,T2: list_nat] : ( cons_nat @ H @ nil_nat ) )
          @ Xss2 ) )
      = ( map_list_nat_nat @ hd_nat
        @ ( filter_list_nat
          @ ^ [Ys3: list_nat] : ( Ys3 != nil_nat )
          @ Xss2 ) ) ) ).

% transpose_aux_filter_head
thf(fact_676_rotate1__hd__tl,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( rotate1_fm @ Xs )
        = ( append_fm @ ( tl_fm @ Xs ) @ ( cons_fm @ ( hd_fm @ Xs ) @ nil_fm ) ) ) ) ).

% rotate1_hd_tl
thf(fact_677_rotate1__hd__tl,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( rotate1_tm @ Xs )
        = ( append_tm @ ( tl_tm @ Xs ) @ ( cons_tm @ ( hd_tm @ Xs ) @ nil_tm ) ) ) ) ).

% rotate1_hd_tl
thf(fact_678_rotate1__hd__tl,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( rotate1_nat @ Xs )
        = ( append_nat @ ( tl_nat @ Xs ) @ ( cons_nat @ ( hd_nat @ Xs ) @ nil_nat ) ) ) ) ).

% rotate1_hd_tl
thf(fact_679_remdups__adj__append_H_H,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( remdups_adj_fm @ ( append_fm @ Xs @ Ys ) )
        = ( append_fm @ ( remdups_adj_fm @ Xs )
          @ ( remdups_adj_fm
            @ ( dropWhile_fm
              @ ^ [Y2: fm] :
                  ( Y2
                  = ( last_fm @ Xs ) )
              @ Ys ) ) ) ) ) ).

% remdups_adj_append''
thf(fact_680_remdups__adj__append_H_H,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( remdups_adj_tm @ ( append_tm @ Xs @ Ys ) )
        = ( append_tm @ ( remdups_adj_tm @ Xs )
          @ ( remdups_adj_tm
            @ ( dropWhile_tm
              @ ^ [Y2: tm] :
                  ( Y2
                  = ( last_tm @ Xs ) )
              @ Ys ) ) ) ) ) ).

% remdups_adj_append''
thf(fact_681_remdups__adj__append_H_H,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( remdups_adj_nat @ ( append_nat @ Xs @ Ys ) )
        = ( append_nat @ ( remdups_adj_nat @ Xs )
          @ ( remdups_adj_nat
            @ ( dropWhile_nat
              @ ^ [Y2: nat] :
                  ( Y2
                  = ( last_nat @ Xs ) )
              @ Ys ) ) ) ) ) ).

% remdups_adj_append''
thf(fact_682_Sup__fin_Oset__eq__fold,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( lattic1093996805478795353in_nat @ ( set_nat2 @ ( cons_nat @ X @ Xs ) ) )
      = ( fold_nat_nat @ sup_sup_nat @ Xs @ X ) ) ).

% Sup_fin.set_eq_fold
thf(fact_683_Sup__fin_Oset__eq__fold,axiom,
    ! [X: set_nat,Xs: list_set_nat] :
      ( ( lattic3835124923745554447et_nat @ ( set_set_nat2 @ ( cons_set_nat @ X @ Xs ) ) )
      = ( fold_set_nat_set_nat @ sup_sup_set_nat @ Xs @ X ) ) ).

% Sup_fin.set_eq_fold
thf(fact_684_remdups__adj__append__dropWhile,axiom,
    ! [Xs: list_fm,Y: fm,Ys: list_fm] :
      ( ( remdups_adj_fm @ ( append_fm @ Xs @ ( cons_fm @ Y @ Ys ) ) )
      = ( append_fm @ ( remdups_adj_fm @ ( append_fm @ Xs @ ( cons_fm @ Y @ nil_fm ) ) )
        @ ( remdups_adj_fm
          @ ( dropWhile_fm
            @ ^ [X2: fm] : ( X2 = Y )
            @ Ys ) ) ) ) ).

% remdups_adj_append_dropWhile
thf(fact_685_remdups__adj__append__dropWhile,axiom,
    ! [Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( remdups_adj_tm @ ( append_tm @ Xs @ ( cons_tm @ Y @ Ys ) ) )
      = ( append_tm @ ( remdups_adj_tm @ ( append_tm @ Xs @ ( cons_tm @ Y @ nil_tm ) ) )
        @ ( remdups_adj_tm
          @ ( dropWhile_tm
            @ ^ [X2: tm] : ( X2 = Y )
            @ Ys ) ) ) ) ).

% remdups_adj_append_dropWhile
thf(fact_686_remdups__adj__append__dropWhile,axiom,
    ! [Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( remdups_adj_nat @ ( append_nat @ Xs @ ( cons_nat @ Y @ Ys ) ) )
      = ( append_nat @ ( remdups_adj_nat @ ( append_nat @ Xs @ ( cons_nat @ Y @ nil_nat ) ) )
        @ ( remdups_adj_nat
          @ ( dropWhile_nat
            @ ^ [X2: nat] : ( X2 = Y )
            @ Ys ) ) ) ) ).

% remdups_adj_append_dropWhile
thf(fact_687_hd__remdups__adj,axiom,
    ! [Xs: list_nat] :
      ( ( hd_nat @ ( remdups_adj_nat @ Xs ) )
      = ( hd_nat @ Xs ) ) ).

% hd_remdups_adj
thf(fact_688_dropWhile__eq__Nil__conv,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( ( dropWhile_fm @ P @ Xs )
        = nil_fm )
      = ( ! [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs ) )
           => ( P @ X2 ) ) ) ) ).

% dropWhile_eq_Nil_conv
thf(fact_689_dropWhile__eq__Nil__conv,axiom,
    ! [P: tm > $o,Xs: list_tm] :
      ( ( ( dropWhile_tm @ P @ Xs )
        = nil_tm )
      = ( ! [X2: tm] :
            ( ( member_tm2 @ X2 @ ( set_tm2 @ Xs ) )
           => ( P @ X2 ) ) ) ) ).

% dropWhile_eq_Nil_conv
thf(fact_690_dropWhile__eq__Nil__conv,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( ( dropWhile_nat @ P @ Xs )
        = nil_nat )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
           => ( P @ X2 ) ) ) ) ).

% dropWhile_eq_Nil_conv
thf(fact_691_hd__append2,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( hd_fm @ ( append_fm @ Xs @ Ys ) )
        = ( hd_fm @ Xs ) ) ) ).

% hd_append2
thf(fact_692_hd__append2,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( hd_tm @ ( append_tm @ Xs @ Ys ) )
        = ( hd_tm @ Xs ) ) ) ).

% hd_append2
thf(fact_693_hd__append2,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( hd_nat @ ( append_nat @ Xs @ Ys ) )
        = ( hd_nat @ Xs ) ) ) ).

% hd_append2
thf(fact_694_dropWhile__append1,axiom,
    ! [X: a,Xs: list_a,P: a > $o,Ys: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( dropWhile_a @ P @ ( append_a @ Xs @ Ys ) )
          = ( append_a @ ( dropWhile_a @ P @ Xs ) @ Ys ) ) ) ) ).

% dropWhile_append1
thf(fact_695_dropWhile__append1,axiom,
    ! [X: fm,Xs: list_fm,P: fm > $o,Ys: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( dropWhile_fm @ P @ ( append_fm @ Xs @ Ys ) )
          = ( append_fm @ ( dropWhile_fm @ P @ Xs ) @ Ys ) ) ) ) ).

% dropWhile_append1
thf(fact_696_dropWhile__append1,axiom,
    ! [X: nat,Xs: list_nat,P: nat > $o,Ys: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( dropWhile_nat @ P @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ ( dropWhile_nat @ P @ Xs ) @ Ys ) ) ) ) ).

% dropWhile_append1
thf(fact_697_dropWhile__append2,axiom,
    ! [Xs: list_a,P: a > $o,Ys: list_a] :
      ( ! [X3: a] :
          ( ( member_a2 @ X3 @ ( set_a2 @ Xs ) )
         => ( P @ X3 ) )
     => ( ( dropWhile_a @ P @ ( append_a @ Xs @ Ys ) )
        = ( dropWhile_a @ P @ Ys ) ) ) ).

% dropWhile_append2
thf(fact_698_dropWhile__append2,axiom,
    ! [Xs: list_fm,P: fm > $o,Ys: list_fm] :
      ( ! [X3: fm] :
          ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
         => ( P @ X3 ) )
     => ( ( dropWhile_fm @ P @ ( append_fm @ Xs @ Ys ) )
        = ( dropWhile_fm @ P @ Ys ) ) ) ).

% dropWhile_append2
thf(fact_699_dropWhile__append2,axiom,
    ! [Xs: list_nat,P: nat > $o,Ys: list_nat] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( P @ X3 ) )
     => ( ( dropWhile_nat @ P @ ( append_nat @ Xs @ Ys ) )
        = ( dropWhile_nat @ P @ Ys ) ) ) ).

% dropWhile_append2
thf(fact_700_list_Ocollapse,axiom,
    ! [List: list_fm] :
      ( ( List != nil_fm )
     => ( ( cons_fm @ ( hd_fm @ List ) @ ( tl_fm @ List ) )
        = List ) ) ).

% list.collapse
thf(fact_701_list_Ocollapse,axiom,
    ! [List: list_tm] :
      ( ( List != nil_tm )
     => ( ( cons_tm @ ( hd_tm @ List ) @ ( tl_tm @ List ) )
        = List ) ) ).

% list.collapse
thf(fact_702_list_Ocollapse,axiom,
    ! [List: list_nat] :
      ( ( List != nil_nat )
     => ( ( cons_nat @ ( hd_nat @ List ) @ ( tl_nat @ List ) )
        = List ) ) ).

% list.collapse
thf(fact_703_hd__Cons__tl,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ( ( cons_fm @ ( hd_fm @ Xs ) @ ( tl_fm @ Xs ) )
        = Xs ) ) ).

% hd_Cons_tl
thf(fact_704_hd__Cons__tl,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ( ( cons_tm @ ( hd_tm @ Xs ) @ ( tl_tm @ Xs ) )
        = Xs ) ) ).

% hd_Cons_tl
thf(fact_705_hd__Cons__tl,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( cons_nat @ ( hd_nat @ Xs ) @ ( tl_nat @ Xs ) )
        = Xs ) ) ).

% hd_Cons_tl
thf(fact_706_hd__dropWhile,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( ( dropWhile_fm @ P @ Xs )
       != nil_fm )
     => ~ ( P @ ( hd_fm @ ( dropWhile_fm @ P @ Xs ) ) ) ) ).

% hd_dropWhile
thf(fact_707_hd__dropWhile,axiom,
    ! [P: tm > $o,Xs: list_tm] :
      ( ( ( dropWhile_tm @ P @ Xs )
       != nil_tm )
     => ~ ( P @ ( hd_tm @ ( dropWhile_tm @ P @ Xs ) ) ) ) ).

% hd_dropWhile
thf(fact_708_hd__dropWhile,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( ( dropWhile_nat @ P @ Xs )
       != nil_nat )
     => ~ ( P @ ( hd_nat @ ( dropWhile_nat @ P @ Xs ) ) ) ) ).

% hd_dropWhile
thf(fact_709_dropWhile__eq__self__iff,axiom,
    ! [P: fm > $o,Xs: list_fm] :
      ( ( ( dropWhile_fm @ P @ Xs )
        = Xs )
      = ( ( Xs = nil_fm )
        | ~ ( P @ ( hd_fm @ Xs ) ) ) ) ).

% dropWhile_eq_self_iff
thf(fact_710_dropWhile__eq__self__iff,axiom,
    ! [P: tm > $o,Xs: list_tm] :
      ( ( ( dropWhile_tm @ P @ Xs )
        = Xs )
      = ( ( Xs = nil_tm )
        | ~ ( P @ ( hd_tm @ Xs ) ) ) ) ).

% dropWhile_eq_self_iff
thf(fact_711_dropWhile__eq__self__iff,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( ( dropWhile_nat @ P @ Xs )
        = Xs )
      = ( ( Xs = nil_nat )
        | ~ ( P @ ( hd_nat @ Xs ) ) ) ) ).

% dropWhile_eq_self_iff
thf(fact_712_dropWhile_Osimps_I2_J,axiom,
    ! [P: tm > $o,X: tm,Xs: list_tm] :
      ( ( ( P @ X )
       => ( ( dropWhile_tm @ P @ ( cons_tm @ X @ Xs ) )
          = ( dropWhile_tm @ P @ Xs ) ) )
      & ( ~ ( P @ X )
       => ( ( dropWhile_tm @ P @ ( cons_tm @ X @ Xs ) )
          = ( cons_tm @ X @ Xs ) ) ) ) ).

% dropWhile.simps(2)
thf(fact_713_dropWhile_Osimps_I2_J,axiom,
    ! [P: nat > $o,X: nat,Xs: list_nat] :
      ( ( ( P @ X )
       => ( ( dropWhile_nat @ P @ ( cons_nat @ X @ Xs ) )
          = ( dropWhile_nat @ P @ Xs ) ) )
      & ( ~ ( P @ X )
       => ( ( dropWhile_nat @ P @ ( cons_nat @ X @ Xs ) )
          = ( cons_nat @ X @ Xs ) ) ) ) ).

% dropWhile.simps(2)
thf(fact_714_list_Osel_I1_J,axiom,
    ! [X21: tm,X22: list_tm] :
      ( ( hd_tm @ ( cons_tm @ X21 @ X22 ) )
      = X21 ) ).

% list.sel(1)
thf(fact_715_list_Osel_I1_J,axiom,
    ! [X21: nat,X22: list_nat] :
      ( ( hd_nat @ ( cons_nat @ X21 @ X22 ) )
      = X21 ) ).

% list.sel(1)
thf(fact_716_dropWhile_Osimps_I1_J,axiom,
    ! [P: fm > $o] :
      ( ( dropWhile_fm @ P @ nil_fm )
      = nil_fm ) ).

% dropWhile.simps(1)
thf(fact_717_dropWhile_Osimps_I1_J,axiom,
    ! [P: tm > $o] :
      ( ( dropWhile_tm @ P @ nil_tm )
      = nil_tm ) ).

% dropWhile.simps(1)
thf(fact_718_dropWhile_Osimps_I1_J,axiom,
    ! [P: nat > $o] :
      ( ( dropWhile_nat @ P @ nil_nat )
      = nil_nat ) ).

% dropWhile.simps(1)
thf(fact_719_dropWhile__cong,axiom,
    ! [L2: list_a,K2: list_a,P: a > $o,Q: a > $o] :
      ( ( L2 = K2 )
     => ( ! [X3: a] :
            ( ( member_a2 @ X3 @ ( set_a2 @ L2 ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( dropWhile_a @ P @ L2 )
          = ( dropWhile_a @ Q @ K2 ) ) ) ) ).

% dropWhile_cong
thf(fact_720_dropWhile__cong,axiom,
    ! [L2: list_nat,K2: list_nat,P: nat > $o,Q: nat > $o] :
      ( ( L2 = K2 )
     => ( ! [X3: nat] :
            ( ( member_nat2 @ X3 @ ( set_nat2 @ L2 ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( dropWhile_nat @ P @ L2 )
          = ( dropWhile_nat @ Q @ K2 ) ) ) ) ).

% dropWhile_cong
thf(fact_721_dropWhile__cong,axiom,
    ! [L2: list_fm,K2: list_fm,P: fm > $o,Q: fm > $o] :
      ( ( L2 = K2 )
     => ( ! [X3: fm] :
            ( ( member_fm2 @ X3 @ ( set_fm2 @ L2 ) )
           => ( ( P @ X3 )
              = ( Q @ X3 ) ) )
       => ( ( dropWhile_fm @ P @ L2 )
          = ( dropWhile_fm @ Q @ K2 ) ) ) ) ).

% dropWhile_cong
thf(fact_722_set__dropWhileD,axiom,
    ! [X: a,P: a > $o,Xs: list_a] :
      ( ( member_a2 @ X @ ( set_a2 @ ( dropWhile_a @ P @ Xs ) ) )
     => ( member_a2 @ X @ ( set_a2 @ Xs ) ) ) ).

% set_dropWhileD
thf(fact_723_set__dropWhileD,axiom,
    ! [X: nat,P: nat > $o,Xs: list_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ ( dropWhile_nat @ P @ Xs ) ) )
     => ( member_nat2 @ X @ ( set_nat2 @ Xs ) ) ) ).

% set_dropWhileD
thf(fact_724_set__dropWhileD,axiom,
    ! [X: fm,P: fm > $o,Xs: list_fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ ( dropWhile_fm @ P @ Xs ) ) )
     => ( member_fm2 @ X @ ( set_fm2 @ Xs ) ) ) ).

% set_dropWhileD
thf(fact_725_sup__set__def,axiom,
    ( sup_sup_set_a
    = ( ^ [A5: set_a,B3: set_a] :
          ( collect_a
          @ ( sup_sup_a_o
            @ ^ [X2: a] : ( member_a2 @ X2 @ A5 )
            @ ^ [X2: a] : ( member_a2 @ X2 @ B3 ) ) ) ) ) ).

% sup_set_def
thf(fact_726_sup__set__def,axiom,
    ( sup_sup_set_fm
    = ( ^ [A5: set_fm,B3: set_fm] :
          ( collect_fm
          @ ( sup_sup_fm_o
            @ ^ [X2: fm] : ( member_fm2 @ X2 @ A5 )
            @ ^ [X2: fm] : ( member_fm2 @ X2 @ B3 ) ) ) ) ) ).

% sup_set_def
thf(fact_727_sup__set__def,axiom,
    ( sup_sup_set_nat
    = ( ^ [A5: set_nat,B3: set_nat] :
          ( collect_nat
          @ ( sup_sup_nat_o
            @ ^ [X2: nat] : ( member_nat2 @ X2 @ A5 )
            @ ^ [X2: nat] : ( member_nat2 @ X2 @ B3 ) ) ) ) ) ).

% sup_set_def
thf(fact_728_hd__concat,axiom,
    ! [Xs: list_list_fm] :
      ( ( Xs != nil_list_fm )
     => ( ( ( hd_list_fm @ Xs )
         != nil_fm )
       => ( ( hd_fm @ ( concat_fm @ Xs ) )
          = ( hd_fm @ ( hd_list_fm @ Xs ) ) ) ) ) ).

% hd_concat
thf(fact_729_hd__concat,axiom,
    ! [Xs: list_list_tm] :
      ( ( Xs != nil_list_tm )
     => ( ( ( hd_list_tm @ Xs )
         != nil_tm )
       => ( ( hd_tm @ ( concat_tm @ Xs ) )
          = ( hd_tm @ ( hd_list_tm @ Xs ) ) ) ) ) ).

% hd_concat
thf(fact_730_hd__concat,axiom,
    ! [Xs: list_list_nat] :
      ( ( Xs != nil_list_nat )
     => ( ( ( hd_list_nat @ Xs )
         != nil_nat )
       => ( ( hd_nat @ ( concat_nat @ Xs ) )
          = ( hd_nat @ ( hd_list_nat @ Xs ) ) ) ) ) ).

% hd_concat
thf(fact_731_tl__remdups__adj,axiom,
    ! [Ys: list_fm] :
      ( ( Ys != nil_fm )
     => ( ( tl_fm @ ( remdups_adj_fm @ Ys ) )
        = ( remdups_adj_fm
          @ ( dropWhile_fm
            @ ^ [X2: fm] :
                ( X2
                = ( hd_fm @ Ys ) )
            @ ( tl_fm @ Ys ) ) ) ) ) ).

% tl_remdups_adj
thf(fact_732_tl__remdups__adj,axiom,
    ! [Ys: list_tm] :
      ( ( Ys != nil_tm )
     => ( ( tl_tm @ ( remdups_adj_tm @ Ys ) )
        = ( remdups_adj_tm
          @ ( dropWhile_tm
            @ ^ [X2: tm] :
                ( X2
                = ( hd_tm @ Ys ) )
            @ ( tl_tm @ Ys ) ) ) ) ) ).

% tl_remdups_adj
thf(fact_733_tl__remdups__adj,axiom,
    ! [Ys: list_nat] :
      ( ( Ys != nil_nat )
     => ( ( tl_nat @ ( remdups_adj_nat @ Ys ) )
        = ( remdups_adj_nat
          @ ( dropWhile_nat
            @ ^ [X2: nat] :
                ( X2
                = ( hd_nat @ Ys ) )
            @ ( tl_nat @ Ys ) ) ) ) ) ).

% tl_remdups_adj
thf(fact_734_list_Oset__sel_I1_J,axiom,
    ! [A2: list_a] :
      ( ( A2 != nil_a )
     => ( member_a2 @ ( hd_a @ A2 ) @ ( set_a2 @ A2 ) ) ) ).

% list.set_sel(1)
thf(fact_735_list_Oset__sel_I1_J,axiom,
    ! [A2: list_fm] :
      ( ( A2 != nil_fm )
     => ( member_fm2 @ ( hd_fm @ A2 ) @ ( set_fm2 @ A2 ) ) ) ).

% list.set_sel(1)
thf(fact_736_list_Oset__sel_I1_J,axiom,
    ! [A2: list_tm] :
      ( ( A2 != nil_tm )
     => ( member_tm2 @ ( hd_tm @ A2 ) @ ( set_tm2 @ A2 ) ) ) ).

% list.set_sel(1)
thf(fact_737_list_Oset__sel_I1_J,axiom,
    ! [A2: list_nat] :
      ( ( A2 != nil_nat )
     => ( member_nat2 @ ( hd_nat @ A2 ) @ ( set_nat2 @ A2 ) ) ) ).

% list.set_sel(1)
thf(fact_738_hd__in__set,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( member_a2 @ ( hd_a @ Xs ) @ ( set_a2 @ Xs ) ) ) ).

% hd_in_set
thf(fact_739_hd__in__set,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ( member_fm2 @ ( hd_fm @ Xs ) @ ( set_fm2 @ Xs ) ) ) ).

% hd_in_set
thf(fact_740_hd__in__set,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ( member_tm2 @ ( hd_tm @ Xs ) @ ( set_tm2 @ Xs ) ) ) ).

% hd_in_set
thf(fact_741_hd__in__set,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( member_nat2 @ ( hd_nat @ Xs ) @ ( set_nat2 @ Xs ) ) ) ).

% hd_in_set
thf(fact_742_dropWhile__append3,axiom,
    ! [P: tm > $o,Y: tm,Xs: list_tm,Ys: list_tm] :
      ( ~ ( P @ Y )
     => ( ( dropWhile_tm @ P @ ( append_tm @ Xs @ ( cons_tm @ Y @ Ys ) ) )
        = ( append_tm @ ( dropWhile_tm @ P @ Xs ) @ ( cons_tm @ Y @ Ys ) ) ) ) ).

% dropWhile_append3
thf(fact_743_dropWhile__append3,axiom,
    ! [P: nat > $o,Y: nat,Xs: list_nat,Ys: list_nat] :
      ( ~ ( P @ Y )
     => ( ( dropWhile_nat @ P @ ( append_nat @ Xs @ ( cons_nat @ Y @ Ys ) ) )
        = ( append_nat @ ( dropWhile_nat @ P @ Xs ) @ ( cons_nat @ Y @ Ys ) ) ) ) ).

% dropWhile_append3
thf(fact_744_list_Omap__sel_I1_J,axiom,
    ! [A2: list_fm,F: fm > nat] :
      ( ( A2 != nil_fm )
     => ( ( hd_nat @ ( map_fm_nat @ F @ A2 ) )
        = ( F @ ( hd_fm @ A2 ) ) ) ) ).

% list.map_sel(1)
thf(fact_745_list_Omap__sel_I1_J,axiom,
    ! [A2: list_tm,F: tm > nat] :
      ( ( A2 != nil_tm )
     => ( ( hd_nat @ ( map_tm_nat @ F @ A2 ) )
        = ( F @ ( hd_tm @ A2 ) ) ) ) ).

% list.map_sel(1)
thf(fact_746_list_Omap__sel_I1_J,axiom,
    ! [A2: list_nat,F: nat > nat] :
      ( ( A2 != nil_nat )
     => ( ( hd_nat @ ( map_nat_nat @ F @ A2 ) )
        = ( F @ ( hd_nat @ A2 ) ) ) ) ).

% list.map_sel(1)
thf(fact_747_hd__map,axiom,
    ! [Xs: list_fm,F: fm > nat] :
      ( ( Xs != nil_fm )
     => ( ( hd_nat @ ( map_fm_nat @ F @ Xs ) )
        = ( F @ ( hd_fm @ Xs ) ) ) ) ).

% hd_map
thf(fact_748_hd__map,axiom,
    ! [Xs: list_tm,F: tm > nat] :
      ( ( Xs != nil_tm )
     => ( ( hd_nat @ ( map_tm_nat @ F @ Xs ) )
        = ( F @ ( hd_tm @ Xs ) ) ) ) ).

% hd_map
thf(fact_749_hd__map,axiom,
    ! [Xs: list_nat,F: nat > nat] :
      ( ( Xs != nil_nat )
     => ( ( hd_nat @ ( map_nat_nat @ F @ Xs ) )
        = ( F @ ( hd_nat @ Xs ) ) ) ) ).

% hd_map
thf(fact_750_hd__append,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( Xs = nil_fm )
       => ( ( hd_fm @ ( append_fm @ Xs @ Ys ) )
          = ( hd_fm @ Ys ) ) )
      & ( ( Xs != nil_fm )
       => ( ( hd_fm @ ( append_fm @ Xs @ Ys ) )
          = ( hd_fm @ Xs ) ) ) ) ).

% hd_append
thf(fact_751_hd__append,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( Xs = nil_tm )
       => ( ( hd_tm @ ( append_tm @ Xs @ Ys ) )
          = ( hd_tm @ Ys ) ) )
      & ( ( Xs != nil_tm )
       => ( ( hd_tm @ ( append_tm @ Xs @ Ys ) )
          = ( hd_tm @ Xs ) ) ) ) ).

% hd_append
thf(fact_752_hd__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( Xs = nil_nat )
       => ( ( hd_nat @ ( append_nat @ Xs @ Ys ) )
          = ( hd_nat @ Ys ) ) )
      & ( ( Xs != nil_nat )
       => ( ( hd_nat @ ( append_nat @ Xs @ Ys ) )
          = ( hd_nat @ Xs ) ) ) ) ).

% hd_append
thf(fact_753_longest__common__prefix,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
    ? [Ps: list_fm,Xs6: list_fm,Ys6: list_fm] :
      ( ( Xs
        = ( append_fm @ Ps @ Xs6 ) )
      & ( Ys
        = ( append_fm @ Ps @ Ys6 ) )
      & ( ( Xs6 = nil_fm )
        | ( Ys6 = nil_fm )
        | ( ( hd_fm @ Xs6 )
         != ( hd_fm @ Ys6 ) ) ) ) ).

% longest_common_prefix
thf(fact_754_longest__common__prefix,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
    ? [Ps: list_tm,Xs6: list_tm,Ys6: list_tm] :
      ( ( Xs
        = ( append_tm @ Ps @ Xs6 ) )
      & ( Ys
        = ( append_tm @ Ps @ Ys6 ) )
      & ( ( Xs6 = nil_tm )
        | ( Ys6 = nil_tm )
        | ( ( hd_tm @ Xs6 )
         != ( hd_tm @ Ys6 ) ) ) ) ).

% longest_common_prefix
thf(fact_755_longest__common__prefix,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
    ? [Ps: list_nat,Xs6: list_nat,Ys6: list_nat] :
      ( ( Xs
        = ( append_nat @ Ps @ Xs6 ) )
      & ( Ys
        = ( append_nat @ Ps @ Ys6 ) )
      & ( ( Xs6 = nil_nat )
        | ( Ys6 = nil_nat )
        | ( ( hd_nat @ Xs6 )
         != ( hd_nat @ Ys6 ) ) ) ) ).

% longest_common_prefix
thf(fact_756_list_Oexpand,axiom,
    ! [List: list_fm,List2: list_fm] :
      ( ( ( List = nil_fm )
        = ( List2 = nil_fm ) )
     => ( ( ( List != nil_fm )
         => ( ( List2 != nil_fm )
           => ( ( ( hd_fm @ List )
                = ( hd_fm @ List2 ) )
              & ( ( tl_fm @ List )
                = ( tl_fm @ List2 ) ) ) ) )
       => ( List = List2 ) ) ) ).

% list.expand
thf(fact_757_list_Oexpand,axiom,
    ! [List: list_tm,List2: list_tm] :
      ( ( ( List = nil_tm )
        = ( List2 = nil_tm ) )
     => ( ( ( List != nil_tm )
         => ( ( List2 != nil_tm )
           => ( ( ( hd_tm @ List )
                = ( hd_tm @ List2 ) )
              & ( ( tl_tm @ List )
                = ( tl_tm @ List2 ) ) ) ) )
       => ( List = List2 ) ) ) ).

% list.expand
thf(fact_758_list_Oexpand,axiom,
    ! [List: list_nat,List2: list_nat] :
      ( ( ( List = nil_nat )
        = ( List2 = nil_nat ) )
     => ( ( ( List != nil_nat )
         => ( ( List2 != nil_nat )
           => ( ( ( hd_nat @ List )
                = ( hd_nat @ List2 ) )
              & ( ( tl_nat @ List )
                = ( tl_nat @ List2 ) ) ) ) )
       => ( List = List2 ) ) ) ).

% list.expand
thf(fact_759_dropWhile__last,axiom,
    ! [X: a,Xs: list_a,P: a > $o] :
      ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( last_a @ ( dropWhile_a @ P @ Xs ) )
          = ( last_a @ Xs ) ) ) ) ).

% dropWhile_last
thf(fact_760_dropWhile__last,axiom,
    ! [X: nat,Xs: list_nat,P: nat > $o] :
      ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( last_nat @ ( dropWhile_nat @ P @ Xs ) )
          = ( last_nat @ Xs ) ) ) ) ).

% dropWhile_last
thf(fact_761_dropWhile__last,axiom,
    ! [X: fm,Xs: list_fm,P: fm > $o] :
      ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ~ ( P @ X )
       => ( ( last_fm @ ( dropWhile_fm @ P @ Xs ) )
          = ( last_fm @ Xs ) ) ) ) ).

% dropWhile_last
thf(fact_762_hd__Nil__eq__last,axiom,
    ( ( hd_fm @ nil_fm )
    = ( last_fm @ nil_fm ) ) ).

% hd_Nil_eq_last
thf(fact_763_hd__Nil__eq__last,axiom,
    ( ( hd_tm @ nil_tm )
    = ( last_tm @ nil_tm ) ) ).

% hd_Nil_eq_last
thf(fact_764_hd__Nil__eq__last,axiom,
    ( ( hd_nat @ nil_nat )
    = ( last_nat @ nil_nat ) ) ).

% hd_Nil_eq_last
thf(fact_765_last__rev,axiom,
    ! [Xs: list_nat] :
      ( ( last_nat @ ( rev_nat @ Xs ) )
      = ( hd_nat @ Xs ) ) ).

% last_rev
thf(fact_766_hd__rev,axiom,
    ! [Xs: list_nat] :
      ( ( hd_nat @ ( rev_nat @ Xs ) )
      = ( last_nat @ Xs ) ) ).

% hd_rev
thf(fact_767_remdups__adj__Cons_H,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( remdups_adj_tm @ ( cons_tm @ X @ Xs ) )
      = ( cons_tm @ X
        @ ( remdups_adj_tm
          @ ( dropWhile_tm
            @ ^ [Y2: tm] : ( Y2 = X )
            @ Xs ) ) ) ) ).

% remdups_adj_Cons'
thf(fact_768_remdups__adj__Cons_H,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( remdups_adj_nat @ ( cons_nat @ X @ Xs ) )
      = ( cons_nat @ X
        @ ( remdups_adj_nat
          @ ( dropWhile_nat
            @ ^ [Y2: nat] : ( Y2 = X )
            @ Xs ) ) ) ) ).

% remdups_adj_Cons'
thf(fact_769_list_Oexhaust__sel,axiom,
    ! [List: list_fm] :
      ( ( List != nil_fm )
     => ( List
        = ( cons_fm @ ( hd_fm @ List ) @ ( tl_fm @ List ) ) ) ) ).

% list.exhaust_sel
thf(fact_770_list_Oexhaust__sel,axiom,
    ! [List: list_tm] :
      ( ( List != nil_tm )
     => ( List
        = ( cons_tm @ ( hd_tm @ List ) @ ( tl_tm @ List ) ) ) ) ).

% list.exhaust_sel
thf(fact_771_list_Oexhaust__sel,axiom,
    ! [List: list_nat] :
      ( ( List != nil_nat )
     => ( List
        = ( cons_nat @ ( hd_nat @ List ) @ ( tl_nat @ List ) ) ) ) ).

% list.exhaust_sel
thf(fact_772_remdups__adj__append_H,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( ( Xs = nil_fm )
        | ( Ys = nil_fm )
        | ( ( last_fm @ Xs )
         != ( hd_fm @ Ys ) ) )
     => ( ( remdups_adj_fm @ ( append_fm @ Xs @ Ys ) )
        = ( append_fm @ ( remdups_adj_fm @ Xs ) @ ( remdups_adj_fm @ Ys ) ) ) ) ).

% remdups_adj_append'
thf(fact_773_remdups__adj__append_H,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( ( Xs = nil_tm )
        | ( Ys = nil_tm )
        | ( ( last_tm @ Xs )
         != ( hd_tm @ Ys ) ) )
     => ( ( remdups_adj_tm @ ( append_tm @ Xs @ Ys ) )
        = ( append_tm @ ( remdups_adj_tm @ Xs ) @ ( remdups_adj_tm @ Ys ) ) ) ) ).

% remdups_adj_append'
thf(fact_774_remdups__adj__append_H,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( Xs = nil_nat )
        | ( Ys = nil_nat )
        | ( ( last_nat @ Xs )
         != ( hd_nat @ Ys ) ) )
     => ( ( remdups_adj_nat @ ( append_nat @ Xs @ Ys ) )
        = ( append_nat @ ( remdups_adj_nat @ Xs ) @ ( remdups_adj_nat @ Ys ) ) ) ) ).

% remdups_adj_append'
thf(fact_775_distinct__adj__append__iff,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( distinct_adj_fm @ ( append_fm @ Xs @ Ys ) )
      = ( ( distinct_adj_fm @ Xs )
        & ( distinct_adj_fm @ Ys )
        & ( ( Xs = nil_fm )
          | ( Ys = nil_fm )
          | ( ( last_fm @ Xs )
           != ( hd_fm @ Ys ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_776_distinct__adj__append__iff,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( distinct_adj_tm @ ( append_tm @ Xs @ Ys ) )
      = ( ( distinct_adj_tm @ Xs )
        & ( distinct_adj_tm @ Ys )
        & ( ( Xs = nil_tm )
          | ( Ys = nil_tm )
          | ( ( last_tm @ Xs )
           != ( hd_tm @ Ys ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_777_distinct__adj__append__iff,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( distinct_adj_nat @ ( append_nat @ Xs @ Ys ) )
      = ( ( distinct_adj_nat @ Xs )
        & ( distinct_adj_nat @ Ys )
        & ( ( Xs = nil_nat )
          | ( Ys = nil_nat )
          | ( ( last_nat @ Xs )
           != ( hd_nat @ Ys ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_778_sup__Un__eq,axiom,
    ! [R: set_a,S: set_a] :
      ( ( sup_sup_a_o
        @ ^ [X2: a] : ( member_a2 @ X2 @ R )
        @ ^ [X2: a] : ( member_a2 @ X2 @ S ) )
      = ( ^ [X2: a] : ( member_a2 @ X2 @ ( sup_sup_set_a @ R @ S ) ) ) ) ).

% sup_Un_eq
thf(fact_779_sup__Un__eq,axiom,
    ! [R: set_fm,S: set_fm] :
      ( ( sup_sup_fm_o
        @ ^ [X2: fm] : ( member_fm2 @ X2 @ R )
        @ ^ [X2: fm] : ( member_fm2 @ X2 @ S ) )
      = ( ^ [X2: fm] : ( member_fm2 @ X2 @ ( sup_sup_set_fm @ R @ S ) ) ) ) ).

% sup_Un_eq
thf(fact_780_sup__Un__eq,axiom,
    ! [R: set_nat,S: set_nat] :
      ( ( sup_sup_nat_o
        @ ^ [X2: nat] : ( member_nat2 @ X2 @ R )
        @ ^ [X2: nat] : ( member_nat2 @ X2 @ S ) )
      = ( ^ [X2: nat] : ( member_nat2 @ X2 @ ( sup_sup_set_nat @ R @ S ) ) ) ) ).

% sup_Un_eq
thf(fact_781_successively__append__iff,axiom,
    ! [P: fm > fm > $o,Xs: list_fm,Ys: list_fm] :
      ( ( successively_fm @ P @ ( append_fm @ Xs @ Ys ) )
      = ( ( successively_fm @ P @ Xs )
        & ( successively_fm @ P @ Ys )
        & ( ( Xs = nil_fm )
          | ( Ys = nil_fm )
          | ( P @ ( last_fm @ Xs ) @ ( hd_fm @ Ys ) ) ) ) ) ).

% successively_append_iff
thf(fact_782_successively__append__iff,axiom,
    ! [P: tm > tm > $o,Xs: list_tm,Ys: list_tm] :
      ( ( successively_tm @ P @ ( append_tm @ Xs @ Ys ) )
      = ( ( successively_tm @ P @ Xs )
        & ( successively_tm @ P @ Ys )
        & ( ( Xs = nil_tm )
          | ( Ys = nil_tm )
          | ( P @ ( last_tm @ Xs ) @ ( hd_tm @ Ys ) ) ) ) ) ).

% successively_append_iff
thf(fact_783_successively__append__iff,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( successively_nat @ P @ ( append_nat @ Xs @ Ys ) )
      = ( ( successively_nat @ P @ Xs )
        & ( successively_nat @ P @ Ys )
        & ( ( Xs = nil_nat )
          | ( Ys = nil_nat )
          | ( P @ ( last_nat @ Xs ) @ ( hd_nat @ Ys ) ) ) ) ) ).

% successively_append_iff
thf(fact_784_Cons__in__shuffles__iff,axiom,
    ! [Z: fm,Zs: list_fm,Xs: list_fm,Ys: list_fm] :
      ( ( member_list_fm @ ( cons_fm @ Z @ Zs ) @ ( shuffles_fm @ Xs @ Ys ) )
      = ( ( ( Xs != nil_fm )
          & ( ( hd_fm @ Xs )
            = Z )
          & ( member_list_fm @ Zs @ ( shuffles_fm @ ( tl_fm @ Xs ) @ Ys ) ) )
        | ( ( Ys != nil_fm )
          & ( ( hd_fm @ Ys )
            = Z )
          & ( member_list_fm @ Zs @ ( shuffles_fm @ Xs @ ( tl_fm @ Ys ) ) ) ) ) ) ).

% Cons_in_shuffles_iff
thf(fact_785_Cons__in__shuffles__iff,axiom,
    ! [Z: tm,Zs: list_tm,Xs: list_tm,Ys: list_tm] :
      ( ( member_list_tm @ ( cons_tm @ Z @ Zs ) @ ( shuffles_tm @ Xs @ Ys ) )
      = ( ( ( Xs != nil_tm )
          & ( ( hd_tm @ Xs )
            = Z )
          & ( member_list_tm @ Zs @ ( shuffles_tm @ ( tl_tm @ Xs ) @ Ys ) ) )
        | ( ( Ys != nil_tm )
          & ( ( hd_tm @ Ys )
            = Z )
          & ( member_list_tm @ Zs @ ( shuffles_tm @ Xs @ ( tl_tm @ Ys ) ) ) ) ) ) ).

% Cons_in_shuffles_iff
thf(fact_786_Cons__in__shuffles__iff,axiom,
    ! [Z: nat,Zs: list_nat,Xs: list_nat,Ys: list_nat] :
      ( ( member_list_nat @ ( cons_nat @ Z @ Zs ) @ ( shuffles_nat @ Xs @ Ys ) )
      = ( ( ( Xs != nil_nat )
          & ( ( hd_nat @ Xs )
            = Z )
          & ( member_list_nat @ Zs @ ( shuffles_nat @ ( tl_nat @ Xs ) @ Ys ) ) )
        | ( ( Ys != nil_nat )
          & ( ( hd_nat @ Ys )
            = Z )
          & ( member_list_nat @ Zs @ ( shuffles_nat @ Xs @ ( tl_nat @ Ys ) ) ) ) ) ) ).

% Cons_in_shuffles_iff
thf(fact_787_union__coset__filter,axiom,
    ! [Xs: list_a,A3: set_a] :
      ( ( sup_sup_set_a @ ( coset_a @ Xs ) @ A3 )
      = ( coset_a
        @ ( filter_a
          @ ^ [X2: a] :
              ~ ( member_a2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% union_coset_filter
thf(fact_788_union__coset__filter,axiom,
    ! [Xs: list_fm,A3: set_fm] :
      ( ( sup_sup_set_fm @ ( coset_fm @ Xs ) @ A3 )
      = ( coset_fm
        @ ( filter_fm
          @ ^ [X2: fm] :
              ~ ( member_fm2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% union_coset_filter
thf(fact_789_union__coset__filter,axiom,
    ! [Xs: list_nat,A3: set_nat] :
      ( ( sup_sup_set_nat @ ( coset_nat @ Xs ) @ A3 )
      = ( coset_nat
        @ ( filter_nat
          @ ^ [X2: nat] :
              ~ ( member_nat2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% union_coset_filter
thf(fact_790_Nil__in__shuffles,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( member_list_fm @ nil_fm @ ( shuffles_fm @ Xs @ Ys ) )
      = ( ( Xs = nil_fm )
        & ( Ys = nil_fm ) ) ) ).

% Nil_in_shuffles
thf(fact_791_Nil__in__shuffles,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( member_list_tm @ nil_tm @ ( shuffles_tm @ Xs @ Ys ) )
      = ( ( Xs = nil_tm )
        & ( Ys = nil_tm ) ) ) ).

% Nil_in_shuffles
thf(fact_792_Nil__in__shuffles,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( member_list_nat @ nil_nat @ ( shuffles_nat @ Xs @ Ys ) )
      = ( ( Xs = nil_nat )
        & ( Ys = nil_nat ) ) ) ).

% Nil_in_shuffles
thf(fact_793_distinct__adj__Cons__Cons,axiom,
    ! [X: tm,Y: tm,Xs: list_tm] :
      ( ( distinct_adj_tm @ ( cons_tm @ X @ ( cons_tm @ Y @ Xs ) ) )
      = ( ( X != Y )
        & ( distinct_adj_tm @ ( cons_tm @ Y @ Xs ) ) ) ) ).

% distinct_adj_Cons_Cons
thf(fact_794_distinct__adj__Cons__Cons,axiom,
    ! [X: nat,Y: nat,Xs: list_nat] :
      ( ( distinct_adj_nat @ ( cons_nat @ X @ ( cons_nat @ Y @ Xs ) ) )
      = ( ( X != Y )
        & ( distinct_adj_nat @ ( cons_nat @ Y @ Xs ) ) ) ) ).

% distinct_adj_Cons_Cons
thf(fact_795_Set_Ofilter__def,axiom,
    ( filter_a2
    = ( ^ [P3: a > $o,A5: set_a] :
          ( collect_a
          @ ^ [A: a] :
              ( ( member_a2 @ A @ A5 )
              & ( P3 @ A ) ) ) ) ) ).

% Set.filter_def
thf(fact_796_Set_Ofilter__def,axiom,
    ( filter_fm2
    = ( ^ [P3: fm > $o,A5: set_fm] :
          ( collect_fm
          @ ^ [A: fm] :
              ( ( member_fm2 @ A @ A5 )
              & ( P3 @ A ) ) ) ) ) ).

% Set.filter_def
thf(fact_797_Set_Ofilter__def,axiom,
    ( filter_nat2
    = ( ^ [P3: nat > $o,A5: set_nat] :
          ( collect_nat
          @ ^ [A: nat] :
              ( ( member_nat2 @ A @ A5 )
              & ( P3 @ A ) ) ) ) ) ).

% Set.filter_def
thf(fact_798_Cons__in__shuffles__rightI,axiom,
    ! [Zs: list_tm,Xs: list_tm,Ys: list_tm,Z: tm] :
      ( ( member_list_tm @ Zs @ ( shuffles_tm @ Xs @ Ys ) )
     => ( member_list_tm @ ( cons_tm @ Z @ Zs ) @ ( shuffles_tm @ Xs @ ( cons_tm @ Z @ Ys ) ) ) ) ).

% Cons_in_shuffles_rightI
thf(fact_799_Cons__in__shuffles__rightI,axiom,
    ! [Zs: list_nat,Xs: list_nat,Ys: list_nat,Z: nat] :
      ( ( member_list_nat @ Zs @ ( shuffles_nat @ Xs @ Ys ) )
     => ( member_list_nat @ ( cons_nat @ Z @ Zs ) @ ( shuffles_nat @ Xs @ ( cons_nat @ Z @ Ys ) ) ) ) ).

% Cons_in_shuffles_rightI
thf(fact_800_Cons__in__shuffles__leftI,axiom,
    ! [Zs: list_tm,Xs: list_tm,Ys: list_tm,Z: tm] :
      ( ( member_list_tm @ Zs @ ( shuffles_tm @ Xs @ Ys ) )
     => ( member_list_tm @ ( cons_tm @ Z @ Zs ) @ ( shuffles_tm @ ( cons_tm @ Z @ Xs ) @ Ys ) ) ) ).

% Cons_in_shuffles_leftI
thf(fact_801_Cons__in__shuffles__leftI,axiom,
    ! [Zs: list_nat,Xs: list_nat,Ys: list_nat,Z: nat] :
      ( ( member_list_nat @ Zs @ ( shuffles_nat @ Xs @ Ys ) )
     => ( member_list_nat @ ( cons_nat @ Z @ Zs ) @ ( shuffles_nat @ ( cons_nat @ Z @ Xs ) @ Ys ) ) ) ).

% Cons_in_shuffles_leftI
thf(fact_802_Nil__in__shufflesI,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs = nil_fm )
     => ( ( Ys = nil_fm )
       => ( member_list_fm @ nil_fm @ ( shuffles_fm @ Xs @ Ys ) ) ) ) ).

% Nil_in_shufflesI
thf(fact_803_Nil__in__shufflesI,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs = nil_tm )
     => ( ( Ys = nil_tm )
       => ( member_list_tm @ nil_tm @ ( shuffles_tm @ Xs @ Ys ) ) ) ) ).

% Nil_in_shufflesI
thf(fact_804_Nil__in__shufflesI,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs = nil_nat )
     => ( ( Ys = nil_nat )
       => ( member_list_nat @ nil_nat @ ( shuffles_nat @ Xs @ Ys ) ) ) ) ).

% Nil_in_shufflesI
thf(fact_805_successively_Osimps_I3_J,axiom,
    ! [P: tm > tm > $o,X: tm,Y: tm,Xs: list_tm] :
      ( ( successively_tm @ P @ ( cons_tm @ X @ ( cons_tm @ Y @ Xs ) ) )
      = ( ( P @ X @ Y )
        & ( successively_tm @ P @ ( cons_tm @ Y @ Xs ) ) ) ) ).

% successively.simps(3)
thf(fact_806_successively_Osimps_I3_J,axiom,
    ! [P: nat > nat > $o,X: nat,Y: nat,Xs: list_nat] :
      ( ( successively_nat @ P @ ( cons_nat @ X @ ( cons_nat @ Y @ Xs ) ) )
      = ( ( P @ X @ Y )
        & ( successively_nat @ P @ ( cons_nat @ Y @ Xs ) ) ) ) ).

% successively.simps(3)
thf(fact_807_successively_Oelims_I3_J,axiom,
    ! [X: tm > tm > $o,Xa: list_tm] :
      ( ~ ( successively_tm @ X @ Xa )
     => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
            ( ( Xa
              = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) )
           => ( ( X @ X3 @ Y3 )
              & ( successively_tm @ X @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ).

% successively.elims(3)
thf(fact_808_successively_Oelims_I3_J,axiom,
    ! [X: nat > nat > $o,Xa: list_nat] :
      ( ~ ( successively_nat @ X @ Xa )
     => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
            ( ( Xa
              = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) )
           => ( ( X @ X3 @ Y3 )
              & ( successively_nat @ X @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ).

% successively.elims(3)
thf(fact_809_successively_Osimps_I1_J,axiom,
    ! [P: fm > fm > $o] : ( successively_fm @ P @ nil_fm ) ).

% successively.simps(1)
thf(fact_810_successively_Osimps_I1_J,axiom,
    ! [P: tm > tm > $o] : ( successively_tm @ P @ nil_tm ) ).

% successively.simps(1)
thf(fact_811_successively_Osimps_I1_J,axiom,
    ! [P: nat > nat > $o] : ( successively_nat @ P @ nil_nat ) ).

% successively.simps(1)
thf(fact_812_successively__mono,axiom,
    ! [P: a > a > $o,Xs: list_a,Q: a > a > $o] :
      ( ( successively_a @ P @ Xs )
     => ( ! [X3: a,Y3: a] :
            ( ( member_a2 @ X3 @ ( set_a2 @ Xs ) )
           => ( ( member_a2 @ Y3 @ ( set_a2 @ Xs ) )
             => ( ( P @ X3 @ Y3 )
               => ( Q @ X3 @ Y3 ) ) ) )
       => ( successively_a @ Q @ Xs ) ) ) ).

% successively_mono
thf(fact_813_successively__mono,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Q: nat > nat > $o] :
      ( ( successively_nat @ P @ Xs )
     => ( ! [X3: nat,Y3: nat] :
            ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
           => ( ( member_nat2 @ Y3 @ ( set_nat2 @ Xs ) )
             => ( ( P @ X3 @ Y3 )
               => ( Q @ X3 @ Y3 ) ) ) )
       => ( successively_nat @ Q @ Xs ) ) ) ).

% successively_mono
thf(fact_814_successively__mono,axiom,
    ! [P: fm > fm > $o,Xs: list_fm,Q: fm > fm > $o] :
      ( ( successively_fm @ P @ Xs )
     => ( ! [X3: fm,Y3: fm] :
            ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
           => ( ( member_fm2 @ Y3 @ ( set_fm2 @ Xs ) )
             => ( ( P @ X3 @ Y3 )
               => ( Q @ X3 @ Y3 ) ) ) )
       => ( successively_fm @ Q @ Xs ) ) ) ).

% successively_mono
thf(fact_815_successively__cong,axiom,
    ! [Xs: list_a,P: a > a > $o,Q: a > a > $o,Ys: list_a] :
      ( ! [X3: a,Y3: a] :
          ( ( member_a2 @ X3 @ ( set_a2 @ Xs ) )
         => ( ( member_a2 @ Y3 @ ( set_a2 @ Xs ) )
           => ( ( P @ X3 @ Y3 )
              = ( Q @ X3 @ Y3 ) ) ) )
     => ( ( Xs = Ys )
       => ( ( successively_a @ P @ Xs )
          = ( successively_a @ Q @ Ys ) ) ) ) ).

% successively_cong
thf(fact_816_successively__cong,axiom,
    ! [Xs: list_nat,P: nat > nat > $o,Q: nat > nat > $o,Ys: list_nat] :
      ( ! [X3: nat,Y3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( ( member_nat2 @ Y3 @ ( set_nat2 @ Xs ) )
           => ( ( P @ X3 @ Y3 )
              = ( Q @ X3 @ Y3 ) ) ) )
     => ( ( Xs = Ys )
       => ( ( successively_nat @ P @ Xs )
          = ( successively_nat @ Q @ Ys ) ) ) ) ).

% successively_cong
thf(fact_817_successively__cong,axiom,
    ! [Xs: list_fm,P: fm > fm > $o,Q: fm > fm > $o,Ys: list_fm] :
      ( ! [X3: fm,Y3: fm] :
          ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
         => ( ( member_fm2 @ Y3 @ ( set_fm2 @ Xs ) )
           => ( ( P @ X3 @ Y3 )
              = ( Q @ X3 @ Y3 ) ) ) )
     => ( ( Xs = Ys )
       => ( ( successively_fm @ P @ Xs )
          = ( successively_fm @ Q @ Ys ) ) ) ) ).

% successively_cong
thf(fact_818_distinct__adj__ConsD,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( distinct_adj_tm @ ( cons_tm @ X @ Xs ) )
     => ( distinct_adj_tm @ Xs ) ) ).

% distinct_adj_ConsD
thf(fact_819_distinct__adj__ConsD,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( distinct_adj_nat @ ( cons_nat @ X @ Xs ) )
     => ( distinct_adj_nat @ Xs ) ) ).

% distinct_adj_ConsD
thf(fact_820_distinct__adj__Nil,axiom,
    distinct_adj_fm @ nil_fm ).

% distinct_adj_Nil
thf(fact_821_distinct__adj__Nil,axiom,
    distinct_adj_tm @ nil_tm ).

% distinct_adj_Nil
thf(fact_822_distinct__adj__Nil,axiom,
    distinct_adj_nat @ nil_nat ).

% distinct_adj_Nil
thf(fact_823_distinct__adj__mapD,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( distinct_adj_nat @ ( map_nat_nat @ F @ Xs ) )
     => ( distinct_adj_nat @ Xs ) ) ).

% distinct_adj_mapD
thf(fact_824_distinct__adj__appendD2,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( distinct_adj_nat @ ( append_nat @ Xs @ Ys ) )
     => ( distinct_adj_nat @ Ys ) ) ).

% distinct_adj_appendD2
thf(fact_825_distinct__adj__appendD1,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( distinct_adj_nat @ ( append_nat @ Xs @ Ys ) )
     => ( distinct_adj_nat @ Xs ) ) ).

% distinct_adj_appendD1
thf(fact_826_successively__map,axiom,
    ! [P: nat > nat > $o,F: nat > nat,Xs: list_nat] :
      ( ( successively_nat @ P @ ( map_nat_nat @ F @ Xs ) )
      = ( successively_nat
        @ ^ [X2: nat,Y2: nat] : ( P @ ( F @ X2 ) @ ( F @ Y2 ) )
        @ Xs ) ) ).

% successively_map
thf(fact_827_shufflesE,axiom,
    ! [Zs: list_fm,Xs: list_fm,Ys: list_fm] :
      ( ( member_list_fm @ Zs @ ( shuffles_fm @ Xs @ Ys ) )
     => ( ( ( Zs = Xs )
         => ( Ys != nil_fm ) )
       => ( ( ( Zs = Ys )
           => ( Xs != nil_fm ) )
         => ( ! [X3: fm,Xs6: list_fm] :
                ( ( Xs
                  = ( cons_fm @ X3 @ Xs6 ) )
               => ! [Z3: fm,Zs4: list_fm] :
                    ( ( Zs
                      = ( cons_fm @ Z3 @ Zs4 ) )
                   => ( ( X3 = Z3 )
                     => ~ ( member_list_fm @ Zs4 @ ( shuffles_fm @ Xs6 @ Ys ) ) ) ) )
           => ~ ! [Y3: fm,Ys6: list_fm] :
                  ( ( Ys
                    = ( cons_fm @ Y3 @ Ys6 ) )
                 => ! [Z3: fm,Zs4: list_fm] :
                      ( ( Zs
                        = ( cons_fm @ Z3 @ Zs4 ) )
                     => ( ( Y3 = Z3 )
                       => ~ ( member_list_fm @ Zs4 @ ( shuffles_fm @ Xs @ Ys6 ) ) ) ) ) ) ) ) ) ).

% shufflesE
thf(fact_828_shufflesE,axiom,
    ! [Zs: list_tm,Xs: list_tm,Ys: list_tm] :
      ( ( member_list_tm @ Zs @ ( shuffles_tm @ Xs @ Ys ) )
     => ( ( ( Zs = Xs )
         => ( Ys != nil_tm ) )
       => ( ( ( Zs = Ys )
           => ( Xs != nil_tm ) )
         => ( ! [X3: tm,Xs6: list_tm] :
                ( ( Xs
                  = ( cons_tm @ X3 @ Xs6 ) )
               => ! [Z3: tm,Zs4: list_tm] :
                    ( ( Zs
                      = ( cons_tm @ Z3 @ Zs4 ) )
                   => ( ( X3 = Z3 )
                     => ~ ( member_list_tm @ Zs4 @ ( shuffles_tm @ Xs6 @ Ys ) ) ) ) )
           => ~ ! [Y3: tm,Ys6: list_tm] :
                  ( ( Ys
                    = ( cons_tm @ Y3 @ Ys6 ) )
                 => ! [Z3: tm,Zs4: list_tm] :
                      ( ( Zs
                        = ( cons_tm @ Z3 @ Zs4 ) )
                     => ( ( Y3 = Z3 )
                       => ~ ( member_list_tm @ Zs4 @ ( shuffles_tm @ Xs @ Ys6 ) ) ) ) ) ) ) ) ) ).

% shufflesE
thf(fact_829_shufflesE,axiom,
    ! [Zs: list_nat,Xs: list_nat,Ys: list_nat] :
      ( ( member_list_nat @ Zs @ ( shuffles_nat @ Xs @ Ys ) )
     => ( ( ( Zs = Xs )
         => ( Ys != nil_nat ) )
       => ( ( ( Zs = Ys )
           => ( Xs != nil_nat ) )
         => ( ! [X3: nat,Xs6: list_nat] :
                ( ( Xs
                  = ( cons_nat @ X3 @ Xs6 ) )
               => ! [Z3: nat,Zs4: list_nat] :
                    ( ( Zs
                      = ( cons_nat @ Z3 @ Zs4 ) )
                   => ( ( X3 = Z3 )
                     => ~ ( member_list_nat @ Zs4 @ ( shuffles_nat @ Xs6 @ Ys ) ) ) ) )
           => ~ ! [Y3: nat,Ys6: list_nat] :
                  ( ( Ys
                    = ( cons_nat @ Y3 @ Ys6 ) )
                 => ! [Z3: nat,Zs4: list_nat] :
                      ( ( Zs
                        = ( cons_nat @ Z3 @ Zs4 ) )
                     => ( ( Y3 = Z3 )
                       => ~ ( member_list_nat @ Zs4 @ ( shuffles_nat @ Xs @ Ys6 ) ) ) ) ) ) ) ) ) ).

% shufflesE
thf(fact_830_successively_Osimps_I2_J,axiom,
    ! [P: fm > fm > $o,X: fm] : ( successively_fm @ P @ ( cons_fm @ X @ nil_fm ) ) ).

% successively.simps(2)
thf(fact_831_successively_Osimps_I2_J,axiom,
    ! [P: tm > tm > $o,X: tm] : ( successively_tm @ P @ ( cons_tm @ X @ nil_tm ) ) ).

% successively.simps(2)
thf(fact_832_successively_Osimps_I2_J,axiom,
    ! [P: nat > nat > $o,X: nat] : ( successively_nat @ P @ ( cons_nat @ X @ nil_nat ) ) ).

% successively.simps(2)
thf(fact_833_successively_Oelims_I1_J,axiom,
    ! [X: fm > fm > $o,Xa: list_fm,Y: $o] :
      ( ( ( successively_fm @ X @ Xa )
        = Y )
     => ( ( ( Xa = nil_fm )
         => ~ Y )
       => ( ( ? [X3: fm] :
                ( Xa
                = ( cons_fm @ X3 @ nil_fm ) )
           => ~ Y )
         => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
                ( ( Xa
                  = ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) )
               => ( Y
                  = ( ~ ( ( X @ X3 @ Y3 )
                        & ( successively_fm @ X @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% successively.elims(1)
thf(fact_834_successively_Oelims_I1_J,axiom,
    ! [X: tm > tm > $o,Xa: list_tm,Y: $o] :
      ( ( ( successively_tm @ X @ Xa )
        = Y )
     => ( ( ( Xa = nil_tm )
         => ~ Y )
       => ( ( ? [X3: tm] :
                ( Xa
                = ( cons_tm @ X3 @ nil_tm ) )
           => ~ Y )
         => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
                ( ( Xa
                  = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) )
               => ( Y
                  = ( ~ ( ( X @ X3 @ Y3 )
                        & ( successively_tm @ X @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% successively.elims(1)
thf(fact_835_successively_Oelims_I1_J,axiom,
    ! [X: nat > nat > $o,Xa: list_nat,Y: $o] :
      ( ( ( successively_nat @ X @ Xa )
        = Y )
     => ( ( ( Xa = nil_nat )
         => ~ Y )
       => ( ( ? [X3: nat] :
                ( Xa
                = ( cons_nat @ X3 @ nil_nat ) )
           => ~ Y )
         => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
                ( ( Xa
                  = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) )
               => ( Y
                  = ( ~ ( ( X @ X3 @ Y3 )
                        & ( successively_nat @ X @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ) ) ) ) ).

% successively.elims(1)
thf(fact_836_successively_Oelims_I2_J,axiom,
    ! [X: fm > fm > $o,Xa: list_fm] :
      ( ( successively_fm @ X @ Xa )
     => ( ( Xa != nil_fm )
       => ( ! [X3: fm] :
              ( Xa
             != ( cons_fm @ X3 @ nil_fm ) )
         => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
                ( ( Xa
                  = ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Xs3 ) ) )
               => ~ ( ( X @ X3 @ Y3 )
                    & ( successively_fm @ X @ ( cons_fm @ Y3 @ Xs3 ) ) ) ) ) ) ) ).

% successively.elims(2)
thf(fact_837_successively_Oelims_I2_J,axiom,
    ! [X: tm > tm > $o,Xa: list_tm] :
      ( ( successively_tm @ X @ Xa )
     => ( ( Xa != nil_tm )
       => ( ! [X3: tm] :
              ( Xa
             != ( cons_tm @ X3 @ nil_tm ) )
         => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
                ( ( Xa
                  = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Xs3 ) ) )
               => ~ ( ( X @ X3 @ Y3 )
                    & ( successively_tm @ X @ ( cons_tm @ Y3 @ Xs3 ) ) ) ) ) ) ) ).

% successively.elims(2)
thf(fact_838_successively_Oelims_I2_J,axiom,
    ! [X: nat > nat > $o,Xa: list_nat] :
      ( ( successively_nat @ X @ Xa )
     => ( ( Xa != nil_nat )
       => ( ! [X3: nat] :
              ( Xa
             != ( cons_nat @ X3 @ nil_nat ) )
         => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
                ( ( Xa
                  = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Xs3 ) ) )
               => ~ ( ( X @ X3 @ Y3 )
                    & ( successively_nat @ X @ ( cons_nat @ Y3 @ Xs3 ) ) ) ) ) ) ) ).

% successively.elims(2)
thf(fact_839_set__shuffles,axiom,
    ! [Zs: list_nat,Xs: list_nat,Ys: list_nat] :
      ( ( member_list_nat @ Zs @ ( shuffles_nat @ Xs @ Ys ) )
     => ( ( set_nat2 @ Zs )
        = ( sup_sup_set_nat @ ( set_nat2 @ Xs ) @ ( set_nat2 @ Ys ) ) ) ) ).

% set_shuffles
thf(fact_840_successively__remdups__adj__iff,axiom,
    ! [Xs: list_a,P: a > a > $o] :
      ( ! [X3: a] :
          ( ( member_a2 @ X3 @ ( set_a2 @ Xs ) )
         => ( P @ X3 @ X3 ) )
     => ( ( successively_a @ P @ ( remdups_adj_a @ Xs ) )
        = ( successively_a @ P @ Xs ) ) ) ).

% successively_remdups_adj_iff
thf(fact_841_successively__remdups__adj__iff,axiom,
    ! [Xs: list_nat,P: nat > nat > $o] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( P @ X3 @ X3 ) )
     => ( ( successively_nat @ P @ ( remdups_adj_nat @ Xs ) )
        = ( successively_nat @ P @ Xs ) ) ) ).

% successively_remdups_adj_iff
thf(fact_842_successively__remdups__adj__iff,axiom,
    ! [Xs: list_fm,P: fm > fm > $o] :
      ( ! [X3: fm] :
          ( ( member_fm2 @ X3 @ ( set_fm2 @ Xs ) )
         => ( P @ X3 @ X3 ) )
     => ( ( successively_fm @ P @ ( remdups_adj_fm @ Xs ) )
        = ( successively_fm @ P @ Xs ) ) ) ).

% successively_remdups_adj_iff
thf(fact_843_distinct__adj__singleton,axiom,
    ! [X: fm] : ( distinct_adj_fm @ ( cons_fm @ X @ nil_fm ) ) ).

% distinct_adj_singleton
thf(fact_844_distinct__adj__singleton,axiom,
    ! [X: tm] : ( distinct_adj_tm @ ( cons_tm @ X @ nil_tm ) ) ).

% distinct_adj_singleton
thf(fact_845_distinct__adj__singleton,axiom,
    ! [X: nat] : ( distinct_adj_nat @ ( cons_nat @ X @ nil_nat ) ) ).

% distinct_adj_singleton
thf(fact_846_successively__Cons,axiom,
    ! [P: fm > fm > $o,X: fm,Xs: list_fm] :
      ( ( successively_fm @ P @ ( cons_fm @ X @ Xs ) )
      = ( ( Xs = nil_fm )
        | ( ( P @ X @ ( hd_fm @ Xs ) )
          & ( successively_fm @ P @ Xs ) ) ) ) ).

% successively_Cons
thf(fact_847_successively__Cons,axiom,
    ! [P: tm > tm > $o,X: tm,Xs: list_tm] :
      ( ( successively_tm @ P @ ( cons_tm @ X @ Xs ) )
      = ( ( Xs = nil_tm )
        | ( ( P @ X @ ( hd_tm @ Xs ) )
          & ( successively_tm @ P @ Xs ) ) ) ) ).

% successively_Cons
thf(fact_848_successively__Cons,axiom,
    ! [P: nat > nat > $o,X: nat,Xs: list_nat] :
      ( ( successively_nat @ P @ ( cons_nat @ X @ Xs ) )
      = ( ( Xs = nil_nat )
        | ( ( P @ X @ ( hd_nat @ Xs ) )
          & ( successively_nat @ P @ Xs ) ) ) ) ).

% successively_Cons
thf(fact_849_distinct__adj__Cons,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ( distinct_adj_fm @ ( cons_fm @ X @ Xs ) )
      = ( ( Xs = nil_fm )
        | ( ( X
           != ( hd_fm @ Xs ) )
          & ( distinct_adj_fm @ Xs ) ) ) ) ).

% distinct_adj_Cons
thf(fact_850_distinct__adj__Cons,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( distinct_adj_tm @ ( cons_tm @ X @ Xs ) )
      = ( ( Xs = nil_tm )
        | ( ( X
           != ( hd_tm @ Xs ) )
          & ( distinct_adj_tm @ Xs ) ) ) ) ).

% distinct_adj_Cons
thf(fact_851_distinct__adj__Cons,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( distinct_adj_nat @ ( cons_nat @ X @ Xs ) )
      = ( ( Xs = nil_nat )
        | ( ( X
           != ( hd_nat @ Xs ) )
          & ( distinct_adj_nat @ Xs ) ) ) ) ).

% distinct_adj_Cons
thf(fact_852_minus__coset__filter,axiom,
    ! [A3: set_a,Xs: list_a] :
      ( ( minus_minus_set_a @ A3 @ ( coset_a @ Xs ) )
      = ( set_a2
        @ ( filter_a
          @ ^ [X2: a] : ( member_a2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% minus_coset_filter
thf(fact_853_minus__coset__filter,axiom,
    ! [A3: set_nat,Xs: list_nat] :
      ( ( minus_minus_set_nat @ A3 @ ( coset_nat @ Xs ) )
      = ( set_nat2
        @ ( filter_nat
          @ ^ [X2: nat] : ( member_nat2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% minus_coset_filter
thf(fact_854_minus__coset__filter,axiom,
    ! [A3: set_fm,Xs: list_fm] :
      ( ( minus_minus_set_fm @ A3 @ ( coset_fm @ Xs ) )
      = ( set_fm2
        @ ( filter_fm
          @ ^ [X2: fm] : ( member_fm2 @ X2 @ A3 )
          @ Xs ) ) ) ).

% minus_coset_filter
thf(fact_855_product__lists__set,axiom,
    ! [Xss2: list_list_a] :
      ( ( set_list_a2 @ ( product_lists_a @ Xss2 ) )
      = ( collect_list_a
        @ ^ [Xs2: list_a] :
            ( list_all2_a_list_a
            @ ^ [X2: a,Ys3: list_a] : ( member_a2 @ X2 @ ( set_a2 @ Ys3 ) )
            @ Xs2
            @ Xss2 ) ) ) ).

% product_lists_set
thf(fact_856_product__lists__set,axiom,
    ! [Xss2: list_list_nat] :
      ( ( set_list_nat2 @ ( product_lists_nat @ Xss2 ) )
      = ( collect_list_nat
        @ ^ [Xs2: list_nat] :
            ( list_a5155878676884504761st_nat
            @ ^ [X2: nat,Ys3: list_nat] : ( member_nat2 @ X2 @ ( set_nat2 @ Ys3 ) )
            @ Xs2
            @ Xss2 ) ) ) ).

% product_lists_set
thf(fact_857_product__lists__set,axiom,
    ! [Xss2: list_list_fm] :
      ( ( set_list_fm2 @ ( product_lists_fm @ Xss2 ) )
      = ( collect_list_fm
        @ ^ [Xs2: list_fm] :
            ( list_all2_fm_list_fm
            @ ^ [X2: fm,Ys3: list_fm] : ( member_fm2 @ X2 @ ( set_fm2 @ Ys3 ) )
            @ Xs2
            @ Xss2 ) ) ) ).

% product_lists_set
thf(fact_858_list__all2__Nil,axiom,
    ! [P: fm > fm > $o,Ys: list_fm] :
      ( ( list_all2_fm_fm @ P @ nil_fm @ Ys )
      = ( Ys = nil_fm ) ) ).

% list_all2_Nil
thf(fact_859_list__all2__Nil,axiom,
    ! [P: fm > tm > $o,Ys: list_tm] :
      ( ( list_all2_fm_tm @ P @ nil_fm @ Ys )
      = ( Ys = nil_tm ) ) ).

% list_all2_Nil
thf(fact_860_list__all2__Nil,axiom,
    ! [P: fm > nat > $o,Ys: list_nat] :
      ( ( list_all2_fm_nat @ P @ nil_fm @ Ys )
      = ( Ys = nil_nat ) ) ).

% list_all2_Nil
thf(fact_861_list__all2__Nil,axiom,
    ! [P: tm > fm > $o,Ys: list_fm] :
      ( ( list_all2_tm_fm @ P @ nil_tm @ Ys )
      = ( Ys = nil_fm ) ) ).

% list_all2_Nil
thf(fact_862_list__all2__Nil,axiom,
    ! [P: tm > tm > $o,Ys: list_tm] :
      ( ( list_all2_tm_tm @ P @ nil_tm @ Ys )
      = ( Ys = nil_tm ) ) ).

% list_all2_Nil
thf(fact_863_list__all2__Nil,axiom,
    ! [P: tm > nat > $o,Ys: list_nat] :
      ( ( list_all2_tm_nat @ P @ nil_tm @ Ys )
      = ( Ys = nil_nat ) ) ).

% list_all2_Nil
thf(fact_864_list__all2__Nil,axiom,
    ! [P: nat > fm > $o,Ys: list_fm] :
      ( ( list_all2_nat_fm @ P @ nil_nat @ Ys )
      = ( Ys = nil_fm ) ) ).

% list_all2_Nil
thf(fact_865_list__all2__Nil,axiom,
    ! [P: nat > tm > $o,Ys: list_tm] :
      ( ( list_all2_nat_tm @ P @ nil_nat @ Ys )
      = ( Ys = nil_tm ) ) ).

% list_all2_Nil
thf(fact_866_list__all2__Nil,axiom,
    ! [P: nat > nat > $o,Ys: list_nat] :
      ( ( list_all2_nat_nat @ P @ nil_nat @ Ys )
      = ( Ys = nil_nat ) ) ).

% list_all2_Nil
thf(fact_867_list__all2__Nil2,axiom,
    ! [P: fm > fm > $o,Xs: list_fm] :
      ( ( list_all2_fm_fm @ P @ Xs @ nil_fm )
      = ( Xs = nil_fm ) ) ).

% list_all2_Nil2
thf(fact_868_list__all2__Nil2,axiom,
    ! [P: tm > fm > $o,Xs: list_tm] :
      ( ( list_all2_tm_fm @ P @ Xs @ nil_fm )
      = ( Xs = nil_tm ) ) ).

% list_all2_Nil2
thf(fact_869_list__all2__Nil2,axiom,
    ! [P: nat > fm > $o,Xs: list_nat] :
      ( ( list_all2_nat_fm @ P @ Xs @ nil_fm )
      = ( Xs = nil_nat ) ) ).

% list_all2_Nil2
thf(fact_870_list__all2__Nil2,axiom,
    ! [P: fm > tm > $o,Xs: list_fm] :
      ( ( list_all2_fm_tm @ P @ Xs @ nil_tm )
      = ( Xs = nil_fm ) ) ).

% list_all2_Nil2
thf(fact_871_list__all2__Nil2,axiom,
    ! [P: tm > tm > $o,Xs: list_tm] :
      ( ( list_all2_tm_tm @ P @ Xs @ nil_tm )
      = ( Xs = nil_tm ) ) ).

% list_all2_Nil2
thf(fact_872_list__all2__Nil2,axiom,
    ! [P: nat > tm > $o,Xs: list_nat] :
      ( ( list_all2_nat_tm @ P @ Xs @ nil_tm )
      = ( Xs = nil_nat ) ) ).

% list_all2_Nil2
thf(fact_873_list__all2__Nil2,axiom,
    ! [P: fm > nat > $o,Xs: list_fm] :
      ( ( list_all2_fm_nat @ P @ Xs @ nil_nat )
      = ( Xs = nil_fm ) ) ).

% list_all2_Nil2
thf(fact_874_list__all2__Nil2,axiom,
    ! [P: tm > nat > $o,Xs: list_tm] :
      ( ( list_all2_tm_nat @ P @ Xs @ nil_nat )
      = ( Xs = nil_tm ) ) ).

% list_all2_Nil2
thf(fact_875_list__all2__Nil2,axiom,
    ! [P: nat > nat > $o,Xs: list_nat] :
      ( ( list_all2_nat_nat @ P @ Xs @ nil_nat )
      = ( Xs = nil_nat ) ) ).

% list_all2_Nil2
thf(fact_876_list__all2__Cons2,axiom,
    ! [P: tm > tm > $o,Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( list_all2_tm_tm @ P @ Xs @ ( cons_tm @ Y @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( P @ Z2 @ Y )
            & ( list_all2_tm_tm @ P @ Zs3 @ Ys ) ) ) ) ).

% list_all2_Cons2
thf(fact_877_list__all2__Cons2,axiom,
    ! [P: nat > tm > $o,Xs: list_nat,Y: tm,Ys: list_tm] :
      ( ( list_all2_nat_tm @ P @ Xs @ ( cons_tm @ Y @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( P @ Z2 @ Y )
            & ( list_all2_nat_tm @ P @ Zs3 @ Ys ) ) ) ) ).

% list_all2_Cons2
thf(fact_878_list__all2__Cons2,axiom,
    ! [P: tm > nat > $o,Xs: list_tm,Y: nat,Ys: list_nat] :
      ( ( list_all2_tm_nat @ P @ Xs @ ( cons_nat @ Y @ Ys ) )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( P @ Z2 @ Y )
            & ( list_all2_tm_nat @ P @ Zs3 @ Ys ) ) ) ) ).

% list_all2_Cons2
thf(fact_879_list__all2__Cons2,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( list_all2_nat_nat @ P @ Xs @ ( cons_nat @ Y @ Ys ) )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( P @ Z2 @ Y )
            & ( list_all2_nat_nat @ P @ Zs3 @ Ys ) ) ) ) ).

% list_all2_Cons2
thf(fact_880_list__all2__Cons1,axiom,
    ! [P: tm > tm > $o,X: tm,Xs: list_tm,Ys: list_tm] :
      ( ( list_all2_tm_tm @ P @ ( cons_tm @ X @ Xs ) @ Ys )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Ys
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( P @ X @ Z2 )
            & ( list_all2_tm_tm @ P @ Xs @ Zs3 ) ) ) ) ).

% list_all2_Cons1
thf(fact_881_list__all2__Cons1,axiom,
    ! [P: tm > nat > $o,X: tm,Xs: list_tm,Ys: list_nat] :
      ( ( list_all2_tm_nat @ P @ ( cons_tm @ X @ Xs ) @ Ys )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( P @ X @ Z2 )
            & ( list_all2_tm_nat @ P @ Xs @ Zs3 ) ) ) ) ).

% list_all2_Cons1
thf(fact_882_list__all2__Cons1,axiom,
    ! [P: nat > tm > $o,X: nat,Xs: list_nat,Ys: list_tm] :
      ( ( list_all2_nat_tm @ P @ ( cons_nat @ X @ Xs ) @ Ys )
      = ( ? [Z2: tm,Zs3: list_tm] :
            ( ( Ys
              = ( cons_tm @ Z2 @ Zs3 ) )
            & ( P @ X @ Z2 )
            & ( list_all2_nat_tm @ P @ Xs @ Zs3 ) ) ) ) ).

% list_all2_Cons1
thf(fact_883_list__all2__Cons1,axiom,
    ! [P: nat > nat > $o,X: nat,Xs: list_nat,Ys: list_nat] :
      ( ( list_all2_nat_nat @ P @ ( cons_nat @ X @ Xs ) @ Ys )
      = ( ? [Z2: nat,Zs3: list_nat] :
            ( ( Ys
              = ( cons_nat @ Z2 @ Zs3 ) )
            & ( P @ X @ Z2 )
            & ( list_all2_nat_nat @ P @ Xs @ Zs3 ) ) ) ) ).

% list_all2_Cons1
thf(fact_884_list__all2__Cons,axiom,
    ! [P: tm > tm > $o,X: tm,Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( list_all2_tm_tm @ P @ ( cons_tm @ X @ Xs ) @ ( cons_tm @ Y @ Ys ) )
      = ( ( P @ X @ Y )
        & ( list_all2_tm_tm @ P @ Xs @ Ys ) ) ) ).

% list_all2_Cons
thf(fact_885_list__all2__Cons,axiom,
    ! [P: tm > nat > $o,X: tm,Xs: list_tm,Y: nat,Ys: list_nat] :
      ( ( list_all2_tm_nat @ P @ ( cons_tm @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) )
      = ( ( P @ X @ Y )
        & ( list_all2_tm_nat @ P @ Xs @ Ys ) ) ) ).

% list_all2_Cons
thf(fact_886_list__all2__Cons,axiom,
    ! [P: nat > tm > $o,X: nat,Xs: list_nat,Y: tm,Ys: list_tm] :
      ( ( list_all2_nat_tm @ P @ ( cons_nat @ X @ Xs ) @ ( cons_tm @ Y @ Ys ) )
      = ( ( P @ X @ Y )
        & ( list_all2_nat_tm @ P @ Xs @ Ys ) ) ) ).

% list_all2_Cons
thf(fact_887_list__all2__Cons,axiom,
    ! [P: nat > nat > $o,X: nat,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( list_all2_nat_nat @ P @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) )
      = ( ( P @ X @ Y )
        & ( list_all2_nat_nat @ P @ Xs @ Ys ) ) ) ).

% list_all2_Cons
thf(fact_888_list_Orel__intros_I2_J,axiom,
    ! [R: tm > tm > $o,X21: tm,Y21: tm,X22: list_tm,Y22: list_tm] :
      ( ( R @ X21 @ Y21 )
     => ( ( list_all2_tm_tm @ R @ X22 @ Y22 )
       => ( list_all2_tm_tm @ R @ ( cons_tm @ X21 @ X22 ) @ ( cons_tm @ Y21 @ Y22 ) ) ) ) ).

% list.rel_intros(2)
thf(fact_889_list_Orel__intros_I2_J,axiom,
    ! [R: tm > nat > $o,X21: tm,Y21: nat,X22: list_tm,Y22: list_nat] :
      ( ( R @ X21 @ Y21 )
     => ( ( list_all2_tm_nat @ R @ X22 @ Y22 )
       => ( list_all2_tm_nat @ R @ ( cons_tm @ X21 @ X22 ) @ ( cons_nat @ Y21 @ Y22 ) ) ) ) ).

% list.rel_intros(2)
thf(fact_890_list_Orel__intros_I2_J,axiom,
    ! [R: nat > tm > $o,X21: nat,Y21: tm,X22: list_nat,Y22: list_tm] :
      ( ( R @ X21 @ Y21 )
     => ( ( list_all2_nat_tm @ R @ X22 @ Y22 )
       => ( list_all2_nat_tm @ R @ ( cons_nat @ X21 @ X22 ) @ ( cons_tm @ Y21 @ Y22 ) ) ) ) ).

% list.rel_intros(2)
thf(fact_891_list_Orel__intros_I2_J,axiom,
    ! [R: nat > nat > $o,X21: nat,Y21: nat,X22: list_nat,Y22: list_nat] :
      ( ( R @ X21 @ Y21 )
     => ( ( list_all2_nat_nat @ R @ X22 @ Y22 )
       => ( list_all2_nat_nat @ R @ ( cons_nat @ X21 @ X22 ) @ ( cons_nat @ Y21 @ Y22 ) ) ) ) ).

% list.rel_intros(2)
thf(fact_892_list_Orel__inject_I2_J,axiom,
    ! [R: tm > tm > $o,X21: tm,X22: list_tm,Y21: tm,Y22: list_tm] :
      ( ( list_all2_tm_tm @ R @ ( cons_tm @ X21 @ X22 ) @ ( cons_tm @ Y21 @ Y22 ) )
      = ( ( R @ X21 @ Y21 )
        & ( list_all2_tm_tm @ R @ X22 @ Y22 ) ) ) ).

% list.rel_inject(2)
thf(fact_893_list_Orel__inject_I2_J,axiom,
    ! [R: tm > nat > $o,X21: tm,X22: list_tm,Y21: nat,Y22: list_nat] :
      ( ( list_all2_tm_nat @ R @ ( cons_tm @ X21 @ X22 ) @ ( cons_nat @ Y21 @ Y22 ) )
      = ( ( R @ X21 @ Y21 )
        & ( list_all2_tm_nat @ R @ X22 @ Y22 ) ) ) ).

% list.rel_inject(2)
thf(fact_894_list_Orel__inject_I2_J,axiom,
    ! [R: nat > tm > $o,X21: nat,X22: list_nat,Y21: tm,Y22: list_tm] :
      ( ( list_all2_nat_tm @ R @ ( cons_nat @ X21 @ X22 ) @ ( cons_tm @ Y21 @ Y22 ) )
      = ( ( R @ X21 @ Y21 )
        & ( list_all2_nat_tm @ R @ X22 @ Y22 ) ) ) ).

% list.rel_inject(2)
thf(fact_895_list_Orel__inject_I2_J,axiom,
    ! [R: nat > nat > $o,X21: nat,X22: list_nat,Y21: nat,Y22: list_nat] :
      ( ( list_all2_nat_nat @ R @ ( cons_nat @ X21 @ X22 ) @ ( cons_nat @ Y21 @ Y22 ) )
      = ( ( R @ X21 @ Y21 )
        & ( list_all2_nat_nat @ R @ X22 @ Y22 ) ) ) ).

% list.rel_inject(2)
thf(fact_896_list_Octr__transfer_I1_J,axiom,
    ! [R: fm > fm > $o] : ( list_all2_fm_fm @ R @ nil_fm @ nil_fm ) ).

% list.ctr_transfer(1)
thf(fact_897_list_Octr__transfer_I1_J,axiom,
    ! [R: fm > tm > $o] : ( list_all2_fm_tm @ R @ nil_fm @ nil_tm ) ).

% list.ctr_transfer(1)
thf(fact_898_list_Octr__transfer_I1_J,axiom,
    ! [R: fm > nat > $o] : ( list_all2_fm_nat @ R @ nil_fm @ nil_nat ) ).

% list.ctr_transfer(1)
thf(fact_899_list_Octr__transfer_I1_J,axiom,
    ! [R: tm > fm > $o] : ( list_all2_tm_fm @ R @ nil_tm @ nil_fm ) ).

% list.ctr_transfer(1)
thf(fact_900_list_Octr__transfer_I1_J,axiom,
    ! [R: tm > tm > $o] : ( list_all2_tm_tm @ R @ nil_tm @ nil_tm ) ).

% list.ctr_transfer(1)
thf(fact_901_list_Octr__transfer_I1_J,axiom,
    ! [R: tm > nat > $o] : ( list_all2_tm_nat @ R @ nil_tm @ nil_nat ) ).

% list.ctr_transfer(1)
thf(fact_902_list_Octr__transfer_I1_J,axiom,
    ! [R: nat > fm > $o] : ( list_all2_nat_fm @ R @ nil_nat @ nil_fm ) ).

% list.ctr_transfer(1)
thf(fact_903_list_Octr__transfer_I1_J,axiom,
    ! [R: nat > tm > $o] : ( list_all2_nat_tm @ R @ nil_nat @ nil_tm ) ).

% list.ctr_transfer(1)
thf(fact_904_list_Octr__transfer_I1_J,axiom,
    ! [R: nat > nat > $o] : ( list_all2_nat_nat @ R @ nil_nat @ nil_nat ) ).

% list.ctr_transfer(1)
thf(fact_905_list_Orel__refl__strong,axiom,
    ! [X: list_a,Ra: a > a > $o] :
      ( ! [Z3: a] :
          ( ( member_a2 @ Z3 @ ( set_a2 @ X ) )
         => ( Ra @ Z3 @ Z3 ) )
     => ( list_all2_a_a @ Ra @ X @ X ) ) ).

% list.rel_refl_strong
thf(fact_906_list_Orel__refl__strong,axiom,
    ! [X: list_nat,Ra: nat > nat > $o] :
      ( ! [Z3: nat] :
          ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
         => ( Ra @ Z3 @ Z3 ) )
     => ( list_all2_nat_nat @ Ra @ X @ X ) ) ).

% list.rel_refl_strong
thf(fact_907_list_Orel__refl__strong,axiom,
    ! [X: list_fm,Ra: fm > fm > $o] :
      ( ! [Z3: fm] :
          ( ( member_fm2 @ Z3 @ ( set_fm2 @ X ) )
         => ( Ra @ Z3 @ Z3 ) )
     => ( list_all2_fm_fm @ Ra @ X @ X ) ) ).

% list.rel_refl_strong
thf(fact_908_list_Orel__mono__strong,axiom,
    ! [R: a > a > $o,X: list_a,Y: list_a,Ra: a > a > $o] :
      ( ( list_all2_a_a @ R @ X @ Y )
     => ( ! [Z3: a,Yb: a] :
            ( ( member_a2 @ Z3 @ ( set_a2 @ X ) )
           => ( ( member_a2 @ Yb @ ( set_a2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_a_a @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_909_list_Orel__mono__strong,axiom,
    ! [R: a > nat > $o,X: list_a,Y: list_nat,Ra: a > nat > $o] :
      ( ( list_all2_a_nat @ R @ X @ Y )
     => ( ! [Z3: a,Yb: nat] :
            ( ( member_a2 @ Z3 @ ( set_a2 @ X ) )
           => ( ( member_nat2 @ Yb @ ( set_nat2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_a_nat @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_910_list_Orel__mono__strong,axiom,
    ! [R: a > fm > $o,X: list_a,Y: list_fm,Ra: a > fm > $o] :
      ( ( list_all2_a_fm @ R @ X @ Y )
     => ( ! [Z3: a,Yb: fm] :
            ( ( member_a2 @ Z3 @ ( set_a2 @ X ) )
           => ( ( member_fm2 @ Yb @ ( set_fm2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_a_fm @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_911_list_Orel__mono__strong,axiom,
    ! [R: nat > a > $o,X: list_nat,Y: list_a,Ra: nat > a > $o] :
      ( ( list_all2_nat_a @ R @ X @ Y )
     => ( ! [Z3: nat,Yb: a] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
           => ( ( member_a2 @ Yb @ ( set_a2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_nat_a @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_912_list_Orel__mono__strong,axiom,
    ! [R: nat > nat > $o,X: list_nat,Y: list_nat,Ra: nat > nat > $o] :
      ( ( list_all2_nat_nat @ R @ X @ Y )
     => ( ! [Z3: nat,Yb: nat] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
           => ( ( member_nat2 @ Yb @ ( set_nat2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_nat_nat @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_913_list_Orel__mono__strong,axiom,
    ! [R: nat > fm > $o,X: list_nat,Y: list_fm,Ra: nat > fm > $o] :
      ( ( list_all2_nat_fm @ R @ X @ Y )
     => ( ! [Z3: nat,Yb: fm] :
            ( ( member_nat2 @ Z3 @ ( set_nat2 @ X ) )
           => ( ( member_fm2 @ Yb @ ( set_fm2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_nat_fm @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_914_list_Orel__mono__strong,axiom,
    ! [R: fm > a > $o,X: list_fm,Y: list_a,Ra: fm > a > $o] :
      ( ( list_all2_fm_a @ R @ X @ Y )
     => ( ! [Z3: fm,Yb: a] :
            ( ( member_fm2 @ Z3 @ ( set_fm2 @ X ) )
           => ( ( member_a2 @ Yb @ ( set_a2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_fm_a @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_915_list_Orel__mono__strong,axiom,
    ! [R: fm > nat > $o,X: list_fm,Y: list_nat,Ra: fm > nat > $o] :
      ( ( list_all2_fm_nat @ R @ X @ Y )
     => ( ! [Z3: fm,Yb: nat] :
            ( ( member_fm2 @ Z3 @ ( set_fm2 @ X ) )
           => ( ( member_nat2 @ Yb @ ( set_nat2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_fm_nat @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_916_list_Orel__mono__strong,axiom,
    ! [R: fm > fm > $o,X: list_fm,Y: list_fm,Ra: fm > fm > $o] :
      ( ( list_all2_fm_fm @ R @ X @ Y )
     => ( ! [Z3: fm,Yb: fm] :
            ( ( member_fm2 @ Z3 @ ( set_fm2 @ X ) )
           => ( ( member_fm2 @ Yb @ ( set_fm2 @ Y ) )
             => ( ( R @ Z3 @ Yb )
               => ( Ra @ Z3 @ Yb ) ) ) )
       => ( list_all2_fm_fm @ Ra @ X @ Y ) ) ) ).

% list.rel_mono_strong
thf(fact_917_list_Orel__cong,axiom,
    ! [X: list_a,Ya: list_a,Y: list_a,Xa: list_a,R: a > a > $o,Ra: a > a > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: a,Yb: a] :
              ( ( member_a2 @ Z3 @ ( set_a2 @ Ya ) )
             => ( ( member_a2 @ Yb @ ( set_a2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_a_a @ R @ X @ Y )
            = ( list_all2_a_a @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_918_list_Orel__cong,axiom,
    ! [X: list_a,Ya: list_a,Y: list_nat,Xa: list_nat,R: a > nat > $o,Ra: a > nat > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: a,Yb: nat] :
              ( ( member_a2 @ Z3 @ ( set_a2 @ Ya ) )
             => ( ( member_nat2 @ Yb @ ( set_nat2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_a_nat @ R @ X @ Y )
            = ( list_all2_a_nat @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_919_list_Orel__cong,axiom,
    ! [X: list_a,Ya: list_a,Y: list_fm,Xa: list_fm,R: a > fm > $o,Ra: a > fm > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: a,Yb: fm] :
              ( ( member_a2 @ Z3 @ ( set_a2 @ Ya ) )
             => ( ( member_fm2 @ Yb @ ( set_fm2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_a_fm @ R @ X @ Y )
            = ( list_all2_a_fm @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_920_list_Orel__cong,axiom,
    ! [X: list_nat,Ya: list_nat,Y: list_a,Xa: list_a,R: nat > a > $o,Ra: nat > a > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: nat,Yb: a] :
              ( ( member_nat2 @ Z3 @ ( set_nat2 @ Ya ) )
             => ( ( member_a2 @ Yb @ ( set_a2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_nat_a @ R @ X @ Y )
            = ( list_all2_nat_a @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_921_list_Orel__cong,axiom,
    ! [X: list_nat,Ya: list_nat,Y: list_nat,Xa: list_nat,R: nat > nat > $o,Ra: nat > nat > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: nat,Yb: nat] :
              ( ( member_nat2 @ Z3 @ ( set_nat2 @ Ya ) )
             => ( ( member_nat2 @ Yb @ ( set_nat2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_nat_nat @ R @ X @ Y )
            = ( list_all2_nat_nat @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_922_list_Orel__cong,axiom,
    ! [X: list_nat,Ya: list_nat,Y: list_fm,Xa: list_fm,R: nat > fm > $o,Ra: nat > fm > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: nat,Yb: fm] :
              ( ( member_nat2 @ Z3 @ ( set_nat2 @ Ya ) )
             => ( ( member_fm2 @ Yb @ ( set_fm2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_nat_fm @ R @ X @ Y )
            = ( list_all2_nat_fm @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_923_list_Orel__cong,axiom,
    ! [X: list_fm,Ya: list_fm,Y: list_a,Xa: list_a,R: fm > a > $o,Ra: fm > a > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: fm,Yb: a] :
              ( ( member_fm2 @ Z3 @ ( set_fm2 @ Ya ) )
             => ( ( member_a2 @ Yb @ ( set_a2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_fm_a @ R @ X @ Y )
            = ( list_all2_fm_a @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_924_list_Orel__cong,axiom,
    ! [X: list_fm,Ya: list_fm,Y: list_nat,Xa: list_nat,R: fm > nat > $o,Ra: fm > nat > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: fm,Yb: nat] :
              ( ( member_fm2 @ Z3 @ ( set_fm2 @ Ya ) )
             => ( ( member_nat2 @ Yb @ ( set_nat2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_fm_nat @ R @ X @ Y )
            = ( list_all2_fm_nat @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_925_list_Orel__cong,axiom,
    ! [X: list_fm,Ya: list_fm,Y: list_fm,Xa: list_fm,R: fm > fm > $o,Ra: fm > fm > $o] :
      ( ( X = Ya )
     => ( ( Y = Xa )
       => ( ! [Z3: fm,Yb: fm] :
              ( ( member_fm2 @ Z3 @ ( set_fm2 @ Ya ) )
             => ( ( member_fm2 @ Yb @ ( set_fm2 @ Xa ) )
               => ( ( R @ Z3 @ Yb )
                  = ( Ra @ Z3 @ Yb ) ) ) )
         => ( ( list_all2_fm_fm @ R @ X @ Y )
            = ( list_all2_fm_fm @ Ra @ Ya @ Xa ) ) ) ) ) ).

% list.rel_cong
thf(fact_926_list__all2__appendI,axiom,
    ! [P: nat > nat > $o,A2: list_nat,B2: list_nat,C: list_nat,D: list_nat] :
      ( ( list_all2_nat_nat @ P @ A2 @ B2 )
     => ( ( list_all2_nat_nat @ P @ C @ D )
       => ( list_all2_nat_nat @ P @ ( append_nat @ A2 @ C ) @ ( append_nat @ B2 @ D ) ) ) ) ).

% list_all2_appendI
thf(fact_927_set__diff__eq,axiom,
    ( minus_minus_set_a
    = ( ^ [A5: set_a,B3: set_a] :
          ( collect_a
          @ ^ [X2: a] :
              ( ( member_a2 @ X2 @ A5 )
              & ~ ( member_a2 @ X2 @ B3 ) ) ) ) ) ).

% set_diff_eq
thf(fact_928_set__diff__eq,axiom,
    ( minus_minus_set_fm
    = ( ^ [A5: set_fm,B3: set_fm] :
          ( collect_fm
          @ ^ [X2: fm] :
              ( ( member_fm2 @ X2 @ A5 )
              & ~ ( member_fm2 @ X2 @ B3 ) ) ) ) ) ).

% set_diff_eq
thf(fact_929_set__diff__eq,axiom,
    ( minus_minus_set_nat
    = ( ^ [A5: set_nat,B3: set_nat] :
          ( collect_nat
          @ ^ [X2: nat] :
              ( ( member_nat2 @ X2 @ A5 )
              & ~ ( member_nat2 @ X2 @ B3 ) ) ) ) ) ).

% set_diff_eq
thf(fact_930_list_Orel__distinct_I2_J,axiom,
    ! [R: tm > fm > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_tm_fm @ R @ ( cons_tm @ Y21 @ Y22 ) @ nil_fm ) ).

% list.rel_distinct(2)
thf(fact_931_list_Orel__distinct_I2_J,axiom,
    ! [R: tm > tm > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_tm_tm @ R @ ( cons_tm @ Y21 @ Y22 ) @ nil_tm ) ).

% list.rel_distinct(2)
thf(fact_932_list_Orel__distinct_I2_J,axiom,
    ! [R: tm > nat > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_tm_nat @ R @ ( cons_tm @ Y21 @ Y22 ) @ nil_nat ) ).

% list.rel_distinct(2)
thf(fact_933_list_Orel__distinct_I2_J,axiom,
    ! [R: nat > fm > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_nat_fm @ R @ ( cons_nat @ Y21 @ Y22 ) @ nil_fm ) ).

% list.rel_distinct(2)
thf(fact_934_list_Orel__distinct_I2_J,axiom,
    ! [R: nat > tm > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_nat_tm @ R @ ( cons_nat @ Y21 @ Y22 ) @ nil_tm ) ).

% list.rel_distinct(2)
thf(fact_935_list_Orel__distinct_I2_J,axiom,
    ! [R: nat > nat > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_nat_nat @ R @ ( cons_nat @ Y21 @ Y22 ) @ nil_nat ) ).

% list.rel_distinct(2)
thf(fact_936_list_Orel__distinct_I1_J,axiom,
    ! [R: fm > tm > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_fm_tm @ R @ nil_fm @ ( cons_tm @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_937_list_Orel__distinct_I1_J,axiom,
    ! [R: tm > tm > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_tm_tm @ R @ nil_tm @ ( cons_tm @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_938_list_Orel__distinct_I1_J,axiom,
    ! [R: nat > tm > $o,Y21: tm,Y22: list_tm] :
      ~ ( list_all2_nat_tm @ R @ nil_nat @ ( cons_tm @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_939_list_Orel__distinct_I1_J,axiom,
    ! [R: fm > nat > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_fm_nat @ R @ nil_fm @ ( cons_nat @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_940_list_Orel__distinct_I1_J,axiom,
    ! [R: tm > nat > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_tm_nat @ R @ nil_tm @ ( cons_nat @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_941_list_Orel__distinct_I1_J,axiom,
    ! [R: nat > nat > $o,Y21: nat,Y22: list_nat] :
      ~ ( list_all2_nat_nat @ R @ nil_nat @ ( cons_nat @ Y21 @ Y22 ) ) ).

% list.rel_distinct(1)
thf(fact_942_list_Orel__cases,axiom,
    ! [R: fm > fm > $o,A2: list_fm,B2: list_fm] :
      ( ( list_all2_fm_fm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_fm )
         => ( B2 != nil_fm ) )
       => ~ ! [X1: fm,X24: list_fm] :
              ( ( A2
                = ( cons_fm @ X1 @ X24 ) )
             => ! [Y1: fm,Y24: list_fm] :
                  ( ( B2
                    = ( cons_fm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_fm_fm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_943_list_Orel__cases,axiom,
    ! [R: fm > tm > $o,A2: list_fm,B2: list_tm] :
      ( ( list_all2_fm_tm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_fm )
         => ( B2 != nil_tm ) )
       => ~ ! [X1: fm,X24: list_fm] :
              ( ( A2
                = ( cons_fm @ X1 @ X24 ) )
             => ! [Y1: tm,Y24: list_tm] :
                  ( ( B2
                    = ( cons_tm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_fm_tm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_944_list_Orel__cases,axiom,
    ! [R: fm > nat > $o,A2: list_fm,B2: list_nat] :
      ( ( list_all2_fm_nat @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_fm )
         => ( B2 != nil_nat ) )
       => ~ ! [X1: fm,X24: list_fm] :
              ( ( A2
                = ( cons_fm @ X1 @ X24 ) )
             => ! [Y1: nat,Y24: list_nat] :
                  ( ( B2
                    = ( cons_nat @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_fm_nat @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_945_list_Orel__cases,axiom,
    ! [R: tm > fm > $o,A2: list_tm,B2: list_fm] :
      ( ( list_all2_tm_fm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_tm )
         => ( B2 != nil_fm ) )
       => ~ ! [X1: tm,X24: list_tm] :
              ( ( A2
                = ( cons_tm @ X1 @ X24 ) )
             => ! [Y1: fm,Y24: list_fm] :
                  ( ( B2
                    = ( cons_fm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_tm_fm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_946_list_Orel__cases,axiom,
    ! [R: tm > tm > $o,A2: list_tm,B2: list_tm] :
      ( ( list_all2_tm_tm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_tm )
         => ( B2 != nil_tm ) )
       => ~ ! [X1: tm,X24: list_tm] :
              ( ( A2
                = ( cons_tm @ X1 @ X24 ) )
             => ! [Y1: tm,Y24: list_tm] :
                  ( ( B2
                    = ( cons_tm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_tm_tm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_947_list_Orel__cases,axiom,
    ! [R: tm > nat > $o,A2: list_tm,B2: list_nat] :
      ( ( list_all2_tm_nat @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_tm )
         => ( B2 != nil_nat ) )
       => ~ ! [X1: tm,X24: list_tm] :
              ( ( A2
                = ( cons_tm @ X1 @ X24 ) )
             => ! [Y1: nat,Y24: list_nat] :
                  ( ( B2
                    = ( cons_nat @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_tm_nat @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_948_list_Orel__cases,axiom,
    ! [R: nat > fm > $o,A2: list_nat,B2: list_fm] :
      ( ( list_all2_nat_fm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_nat )
         => ( B2 != nil_fm ) )
       => ~ ! [X1: nat,X24: list_nat] :
              ( ( A2
                = ( cons_nat @ X1 @ X24 ) )
             => ! [Y1: fm,Y24: list_fm] :
                  ( ( B2
                    = ( cons_fm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_nat_fm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_949_list_Orel__cases,axiom,
    ! [R: nat > tm > $o,A2: list_nat,B2: list_tm] :
      ( ( list_all2_nat_tm @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_nat )
         => ( B2 != nil_tm ) )
       => ~ ! [X1: nat,X24: list_nat] :
              ( ( A2
                = ( cons_nat @ X1 @ X24 ) )
             => ! [Y1: tm,Y24: list_tm] :
                  ( ( B2
                    = ( cons_tm @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_nat_tm @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_950_list_Orel__cases,axiom,
    ! [R: nat > nat > $o,A2: list_nat,B2: list_nat] :
      ( ( list_all2_nat_nat @ R @ A2 @ B2 )
     => ( ( ( A2 = nil_nat )
         => ( B2 != nil_nat ) )
       => ~ ! [X1: nat,X24: list_nat] :
              ( ( A2
                = ( cons_nat @ X1 @ X24 ) )
             => ! [Y1: nat,Y24: list_nat] :
                  ( ( B2
                    = ( cons_nat @ Y1 @ Y24 ) )
                 => ( ( R @ X1 @ Y1 )
                   => ~ ( list_all2_nat_nat @ R @ X24 @ Y24 ) ) ) ) ) ) ).

% list.rel_cases
thf(fact_951_list_Orel__induct,axiom,
    ! [R: fm > fm > $o,X: list_fm,Y: list_fm,Q: list_fm > list_fm > $o] :
      ( ( list_all2_fm_fm @ R @ X @ Y )
     => ( ( Q @ nil_fm @ nil_fm )
       => ( ! [A21: fm,A22: list_fm,B21: fm,B22: list_fm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_fm @ A21 @ A22 ) @ ( cons_fm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_952_list_Orel__induct,axiom,
    ! [R: fm > tm > $o,X: list_fm,Y: list_tm,Q: list_fm > list_tm > $o] :
      ( ( list_all2_fm_tm @ R @ X @ Y )
     => ( ( Q @ nil_fm @ nil_tm )
       => ( ! [A21: fm,A22: list_fm,B21: tm,B22: list_tm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_fm @ A21 @ A22 ) @ ( cons_tm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_953_list_Orel__induct,axiom,
    ! [R: fm > nat > $o,X: list_fm,Y: list_nat,Q: list_fm > list_nat > $o] :
      ( ( list_all2_fm_nat @ R @ X @ Y )
     => ( ( Q @ nil_fm @ nil_nat )
       => ( ! [A21: fm,A22: list_fm,B21: nat,B22: list_nat] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_fm @ A21 @ A22 ) @ ( cons_nat @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_954_list_Orel__induct,axiom,
    ! [R: tm > fm > $o,X: list_tm,Y: list_fm,Q: list_tm > list_fm > $o] :
      ( ( list_all2_tm_fm @ R @ X @ Y )
     => ( ( Q @ nil_tm @ nil_fm )
       => ( ! [A21: tm,A22: list_tm,B21: fm,B22: list_fm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_tm @ A21 @ A22 ) @ ( cons_fm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_955_list_Orel__induct,axiom,
    ! [R: tm > tm > $o,X: list_tm,Y: list_tm,Q: list_tm > list_tm > $o] :
      ( ( list_all2_tm_tm @ R @ X @ Y )
     => ( ( Q @ nil_tm @ nil_tm )
       => ( ! [A21: tm,A22: list_tm,B21: tm,B22: list_tm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_tm @ A21 @ A22 ) @ ( cons_tm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_956_list_Orel__induct,axiom,
    ! [R: tm > nat > $o,X: list_tm,Y: list_nat,Q: list_tm > list_nat > $o] :
      ( ( list_all2_tm_nat @ R @ X @ Y )
     => ( ( Q @ nil_tm @ nil_nat )
       => ( ! [A21: tm,A22: list_tm,B21: nat,B22: list_nat] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_tm @ A21 @ A22 ) @ ( cons_nat @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_957_list_Orel__induct,axiom,
    ! [R: nat > fm > $o,X: list_nat,Y: list_fm,Q: list_nat > list_fm > $o] :
      ( ( list_all2_nat_fm @ R @ X @ Y )
     => ( ( Q @ nil_nat @ nil_fm )
       => ( ! [A21: nat,A22: list_nat,B21: fm,B22: list_fm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_nat @ A21 @ A22 ) @ ( cons_fm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_958_list_Orel__induct,axiom,
    ! [R: nat > tm > $o,X: list_nat,Y: list_tm,Q: list_nat > list_tm > $o] :
      ( ( list_all2_nat_tm @ R @ X @ Y )
     => ( ( Q @ nil_nat @ nil_tm )
       => ( ! [A21: nat,A22: list_nat,B21: tm,B22: list_tm] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_nat @ A21 @ A22 ) @ ( cons_tm @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_959_list_Orel__induct,axiom,
    ! [R: nat > nat > $o,X: list_nat,Y: list_nat,Q: list_nat > list_nat > $o] :
      ( ( list_all2_nat_nat @ R @ X @ Y )
     => ( ( Q @ nil_nat @ nil_nat )
       => ( ! [A21: nat,A22: list_nat,B21: nat,B22: list_nat] :
              ( ( R @ A21 @ B21 )
             => ( ( Q @ A22 @ B22 )
               => ( Q @ ( cons_nat @ A21 @ A22 ) @ ( cons_nat @ B21 @ B22 ) ) ) )
         => ( Q @ X @ Y ) ) ) ) ).

% list.rel_induct
thf(fact_960_list__all2__induct,axiom,
    ! [P: fm > fm > $o,Xs: list_fm,Ys: list_fm,R: list_fm > list_fm > $o] :
      ( ( list_all2_fm_fm @ P @ Xs @ Ys )
     => ( ( R @ nil_fm @ nil_fm )
       => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_fm_fm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_961_list__all2__induct,axiom,
    ! [P: fm > tm > $o,Xs: list_fm,Ys: list_tm,R: list_fm > list_tm > $o] :
      ( ( list_all2_fm_tm @ P @ Xs @ Ys )
     => ( ( R @ nil_fm @ nil_tm )
       => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_fm_tm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_962_list__all2__induct,axiom,
    ! [P: fm > nat > $o,Xs: list_fm,Ys: list_nat,R: list_fm > list_nat > $o] :
      ( ( list_all2_fm_nat @ P @ Xs @ Ys )
     => ( ( R @ nil_fm @ nil_nat )
       => ( ! [X3: fm,Xs3: list_fm,Y3: nat,Ys2: list_nat] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_fm_nat @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_963_list__all2__induct,axiom,
    ! [P: tm > fm > $o,Xs: list_tm,Ys: list_fm,R: list_tm > list_fm > $o] :
      ( ( list_all2_tm_fm @ P @ Xs @ Ys )
     => ( ( R @ nil_tm @ nil_fm )
       => ( ! [X3: tm,Xs3: list_tm,Y3: fm,Ys2: list_fm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_tm_fm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_964_list__all2__induct,axiom,
    ! [P: tm > tm > $o,Xs: list_tm,Ys: list_tm,R: list_tm > list_tm > $o] :
      ( ( list_all2_tm_tm @ P @ Xs @ Ys )
     => ( ( R @ nil_tm @ nil_tm )
       => ( ! [X3: tm,Xs3: list_tm,Y3: tm,Ys2: list_tm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_tm_tm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_965_list__all2__induct,axiom,
    ! [P: tm > nat > $o,Xs: list_tm,Ys: list_nat,R: list_tm > list_nat > $o] :
      ( ( list_all2_tm_nat @ P @ Xs @ Ys )
     => ( ( R @ nil_tm @ nil_nat )
       => ( ! [X3: tm,Xs3: list_tm,Y3: nat,Ys2: list_nat] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_tm_nat @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_966_list__all2__induct,axiom,
    ! [P: nat > fm > $o,Xs: list_nat,Ys: list_fm,R: list_nat > list_fm > $o] :
      ( ( list_all2_nat_fm @ P @ Xs @ Ys )
     => ( ( R @ nil_nat @ nil_fm )
       => ( ! [X3: nat,Xs3: list_nat,Y3: fm,Ys2: list_fm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_nat_fm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_967_list__all2__induct,axiom,
    ! [P: nat > tm > $o,Xs: list_nat,Ys: list_tm,R: list_nat > list_tm > $o] :
      ( ( list_all2_nat_tm @ P @ Xs @ Ys )
     => ( ( R @ nil_nat @ nil_tm )
       => ( ! [X3: nat,Xs3: list_nat,Y3: tm,Ys2: list_tm] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_nat_tm @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_968_list__all2__induct,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat,R: list_nat > list_nat > $o] :
      ( ( list_all2_nat_nat @ P @ Xs @ Ys )
     => ( ( R @ nil_nat @ nil_nat )
       => ( ! [X3: nat,Xs3: list_nat,Y3: nat,Ys2: list_nat] :
              ( ( P @ X3 @ Y3 )
             => ( ( list_all2_nat_nat @ P @ Xs3 @ Ys2 )
               => ( ( R @ Xs3 @ Ys2 )
                 => ( R @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) ) )
         => ( R @ Xs @ Ys ) ) ) ) ).

% list_all2_induct
thf(fact_969_list_Orel__sel,axiom,
    ( list_all2_fm_fm
    = ( ^ [R2: fm > fm > $o,A: list_fm,B: list_fm] :
          ( ( ( A = nil_fm )
            = ( B = nil_fm ) )
          & ( ( A != nil_fm )
           => ( ( B != nil_fm )
             => ( ( R2 @ ( hd_fm @ A ) @ ( hd_fm @ B ) )
                & ( list_all2_fm_fm @ R2 @ ( tl_fm @ A ) @ ( tl_fm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_970_list_Orel__sel,axiom,
    ( list_all2_fm_tm
    = ( ^ [R2: fm > tm > $o,A: list_fm,B: list_tm] :
          ( ( ( A = nil_fm )
            = ( B = nil_tm ) )
          & ( ( A != nil_fm )
           => ( ( B != nil_tm )
             => ( ( R2 @ ( hd_fm @ A ) @ ( hd_tm @ B ) )
                & ( list_all2_fm_tm @ R2 @ ( tl_fm @ A ) @ ( tl_tm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_971_list_Orel__sel,axiom,
    ( list_all2_fm_nat
    = ( ^ [R2: fm > nat > $o,A: list_fm,B: list_nat] :
          ( ( ( A = nil_fm )
            = ( B = nil_nat ) )
          & ( ( A != nil_fm )
           => ( ( B != nil_nat )
             => ( ( R2 @ ( hd_fm @ A ) @ ( hd_nat @ B ) )
                & ( list_all2_fm_nat @ R2 @ ( tl_fm @ A ) @ ( tl_nat @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_972_list_Orel__sel,axiom,
    ( list_all2_tm_fm
    = ( ^ [R2: tm > fm > $o,A: list_tm,B: list_fm] :
          ( ( ( A = nil_tm )
            = ( B = nil_fm ) )
          & ( ( A != nil_tm )
           => ( ( B != nil_fm )
             => ( ( R2 @ ( hd_tm @ A ) @ ( hd_fm @ B ) )
                & ( list_all2_tm_fm @ R2 @ ( tl_tm @ A ) @ ( tl_fm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_973_list_Orel__sel,axiom,
    ( list_all2_tm_tm
    = ( ^ [R2: tm > tm > $o,A: list_tm,B: list_tm] :
          ( ( ( A = nil_tm )
            = ( B = nil_tm ) )
          & ( ( A != nil_tm )
           => ( ( B != nil_tm )
             => ( ( R2 @ ( hd_tm @ A ) @ ( hd_tm @ B ) )
                & ( list_all2_tm_tm @ R2 @ ( tl_tm @ A ) @ ( tl_tm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_974_list_Orel__sel,axiom,
    ( list_all2_tm_nat
    = ( ^ [R2: tm > nat > $o,A: list_tm,B: list_nat] :
          ( ( ( A = nil_tm )
            = ( B = nil_nat ) )
          & ( ( A != nil_tm )
           => ( ( B != nil_nat )
             => ( ( R2 @ ( hd_tm @ A ) @ ( hd_nat @ B ) )
                & ( list_all2_tm_nat @ R2 @ ( tl_tm @ A ) @ ( tl_nat @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_975_list_Orel__sel,axiom,
    ( list_all2_nat_fm
    = ( ^ [R2: nat > fm > $o,A: list_nat,B: list_fm] :
          ( ( ( A = nil_nat )
            = ( B = nil_fm ) )
          & ( ( A != nil_nat )
           => ( ( B != nil_fm )
             => ( ( R2 @ ( hd_nat @ A ) @ ( hd_fm @ B ) )
                & ( list_all2_nat_fm @ R2 @ ( tl_nat @ A ) @ ( tl_fm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_976_list_Orel__sel,axiom,
    ( list_all2_nat_tm
    = ( ^ [R2: nat > tm > $o,A: list_nat,B: list_tm] :
          ( ( ( A = nil_nat )
            = ( B = nil_tm ) )
          & ( ( A != nil_nat )
           => ( ( B != nil_tm )
             => ( ( R2 @ ( hd_nat @ A ) @ ( hd_tm @ B ) )
                & ( list_all2_nat_tm @ R2 @ ( tl_nat @ A ) @ ( tl_tm @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_977_list_Orel__sel,axiom,
    ( list_all2_nat_nat
    = ( ^ [R2: nat > nat > $o,A: list_nat,B: list_nat] :
          ( ( ( A = nil_nat )
            = ( B = nil_nat ) )
          & ( ( A != nil_nat )
           => ( ( B != nil_nat )
             => ( ( R2 @ ( hd_nat @ A ) @ ( hd_nat @ B ) )
                & ( list_all2_nat_nat @ R2 @ ( tl_nat @ A ) @ ( tl_nat @ B ) ) ) ) ) ) ) ) ).

% list.rel_sel
thf(fact_978_length__concat__rev,axiom,
    ! [Xs: list_list_nat] :
      ( ( size_size_list_nat @ ( concat_nat @ ( rev_list_nat @ Xs ) ) )
      = ( size_size_list_nat @ ( concat_nat @ Xs ) ) ) ).

% length_concat_rev
thf(fact_979_remove1__split,axiom,
    ! [A2: a,Xs: list_a,Ys: list_a] :
      ( ( member_a2 @ A2 @ ( set_a2 @ Xs ) )
     => ( ( ( remove1_a @ A2 @ Xs )
          = Ys )
        = ( ? [Ls: list_a,Rs: list_a] :
              ( ( Xs
                = ( append_a @ Ls @ ( cons_a @ A2 @ Rs ) ) )
              & ~ ( member_a2 @ A2 @ ( set_a2 @ Ls ) )
              & ( Ys
                = ( append_a @ Ls @ Rs ) ) ) ) ) ) ).

% remove1_split
thf(fact_980_remove1__split,axiom,
    ! [A2: fm,Xs: list_fm,Ys: list_fm] :
      ( ( member_fm2 @ A2 @ ( set_fm2 @ Xs ) )
     => ( ( ( remove1_fm @ A2 @ Xs )
          = Ys )
        = ( ? [Ls: list_fm,Rs: list_fm] :
              ( ( Xs
                = ( append_fm @ Ls @ ( cons_fm @ A2 @ Rs ) ) )
              & ~ ( member_fm2 @ A2 @ ( set_fm2 @ Ls ) )
              & ( Ys
                = ( append_fm @ Ls @ Rs ) ) ) ) ) ) ).

% remove1_split
thf(fact_981_remove1__split,axiom,
    ! [A2: tm,Xs: list_tm,Ys: list_tm] :
      ( ( member_tm2 @ A2 @ ( set_tm2 @ Xs ) )
     => ( ( ( remove1_tm @ A2 @ Xs )
          = Ys )
        = ( ? [Ls: list_tm,Rs: list_tm] :
              ( ( Xs
                = ( append_tm @ Ls @ ( cons_tm @ A2 @ Rs ) ) )
              & ~ ( member_tm2 @ A2 @ ( set_tm2 @ Ls ) )
              & ( Ys
                = ( append_tm @ Ls @ Rs ) ) ) ) ) ) ).

% remove1_split
thf(fact_982_remove1__split,axiom,
    ! [A2: nat,Xs: list_nat,Ys: list_nat] :
      ( ( member_nat2 @ A2 @ ( set_nat2 @ Xs ) )
     => ( ( ( remove1_nat @ A2 @ Xs )
          = Ys )
        = ( ? [Ls: list_nat,Rs: list_nat] :
              ( ( Xs
                = ( append_nat @ Ls @ ( cons_nat @ A2 @ Rs ) ) )
              & ~ ( member_nat2 @ A2 @ ( set_nat2 @ Ls ) )
              & ( Ys
                = ( append_nat @ Ls @ Rs ) ) ) ) ) ) ).

% remove1_split
thf(fact_983_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [Less: fm > fm > $o,X: fm,Xs: list_fm] :
      ~ ( lexordp_eq_fm @ Less @ ( cons_fm @ X @ Xs ) @ nil_fm ) ).

% ord.lexordp_eq_simps(3)
thf(fact_984_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [Less: tm > tm > $o,X: tm,Xs: list_tm] :
      ~ ( lexordp_eq_tm @ Less @ ( cons_tm @ X @ Xs ) @ nil_tm ) ).

% ord.lexordp_eq_simps(3)
thf(fact_985_ord_Olexordp__eq__simps_I3_J,axiom,
    ! [Less: nat > nat > $o,X: nat,Xs: list_nat] :
      ~ ( lexordp_eq_nat @ Less @ ( cons_nat @ X @ Xs ) @ nil_nat ) ).

% ord.lexordp_eq_simps(3)
thf(fact_986_inc__list_Osimps_I1_J,axiom,
    ( ( inc_list @ nil_tm )
    = nil_tm ) ).

% inc_list.simps(1)
thf(fact_987_n__lists_Osimps_I2_J,axiom,
    ! [N: nat,Xs: list_tm] :
      ( ( n_lists_tm @ ( suc @ N ) @ Xs )
      = ( concat_list_tm
        @ ( map_li6264597563971819530ist_tm
          @ ^ [Ys3: list_tm] :
              ( map_tm_list_tm
              @ ^ [Y2: tm] : ( cons_tm @ Y2 @ Ys3 )
              @ Xs )
          @ ( n_lists_tm @ N @ Xs ) ) ) ) ).

% n_lists.simps(2)
thf(fact_988_n__lists_Osimps_I2_J,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( n_lists_nat @ ( suc @ N ) @ Xs )
      = ( concat_list_nat
        @ ( map_li960784813134754710st_nat
          @ ^ [Ys3: list_nat] :
              ( map_nat_list_nat
              @ ^ [Y2: nat] : ( cons_nat @ Y2 @ Ys3 )
              @ Xs )
          @ ( n_lists_nat @ N @ Xs ) ) ) ) ).

% n_lists.simps(2)
thf(fact_989_length__map,axiom,
    ! [F: nat > nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( map_nat_nat @ F @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_map
thf(fact_990_append__eq__append__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat,Us: list_nat,Vs3: list_nat] :
      ( ( ( ( size_size_list_nat @ Xs )
          = ( size_size_list_nat @ Ys ) )
        | ( ( size_size_list_nat @ Us )
          = ( size_size_list_nat @ Vs3 ) ) )
     => ( ( ( append_nat @ Xs @ Us )
          = ( append_nat @ Ys @ Vs3 ) )
        = ( ( Xs = Ys )
          & ( Us = Vs3 ) ) ) ) ).

% append_eq_append_conv
thf(fact_991_length__rev,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( rev_nat @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_rev
thf(fact_992_in__set__remove1,axiom,
    ! [A2: a,B2: a,Xs: list_a] :
      ( ( A2 != B2 )
     => ( ( member_a2 @ A2 @ ( set_a2 @ ( remove1_a @ B2 @ Xs ) ) )
        = ( member_a2 @ A2 @ ( set_a2 @ Xs ) ) ) ) ).

% in_set_remove1
thf(fact_993_in__set__remove1,axiom,
    ! [A2: nat,B2: nat,Xs: list_nat] :
      ( ( A2 != B2 )
     => ( ( member_nat2 @ A2 @ ( set_nat2 @ ( remove1_nat @ B2 @ Xs ) ) )
        = ( member_nat2 @ A2 @ ( set_nat2 @ Xs ) ) ) ) ).

% in_set_remove1
thf(fact_994_in__set__remove1,axiom,
    ! [A2: fm,B2: fm,Xs: list_fm] :
      ( ( A2 != B2 )
     => ( ( member_fm2 @ A2 @ ( set_fm2 @ ( remove1_fm @ B2 @ Xs ) ) )
        = ( member_fm2 @ A2 @ ( set_fm2 @ Xs ) ) ) ) ).

% in_set_remove1
thf(fact_995_ord_Olexordp__eq__simps_I4_J,axiom,
    ! [Less: tm > tm > $o,X: tm,Xs: list_tm,Y: tm,Ys: list_tm] :
      ( ( lexordp_eq_tm @ Less @ ( cons_tm @ X @ Xs ) @ ( cons_tm @ Y @ Ys ) )
      = ( ( Less @ X @ Y )
        | ( ~ ( Less @ Y @ X )
          & ( lexordp_eq_tm @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lexordp_eq_simps(4)
thf(fact_996_ord_Olexordp__eq__simps_I4_J,axiom,
    ! [Less: nat > nat > $o,X: nat,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( lexordp_eq_nat @ Less @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) )
      = ( ( Less @ X @ Y )
        | ( ~ ( Less @ Y @ X )
          & ( lexordp_eq_nat @ Less @ Xs @ Ys ) ) ) ) ).

% ord.lexordp_eq_simps(4)
thf(fact_997_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [Less: fm > fm > $o,Ys: list_fm] : ( lexordp_eq_fm @ Less @ nil_fm @ Ys ) ).

% ord.lexordp_eq_simps(1)
thf(fact_998_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [Less: tm > tm > $o,Ys: list_tm] : ( lexordp_eq_tm @ Less @ nil_tm @ Ys ) ).

% ord.lexordp_eq_simps(1)
thf(fact_999_ord_Olexordp__eq__simps_I1_J,axiom,
    ! [Less: nat > nat > $o,Ys: list_nat] : ( lexordp_eq_nat @ Less @ nil_nat @ Ys ) ).

% ord.lexordp_eq_simps(1)
thf(fact_1000_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [Less: fm > fm > $o,Xs: list_fm] :
      ( ( lexordp_eq_fm @ Less @ Xs @ nil_fm )
      = ( Xs = nil_fm ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_1001_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [Less: tm > tm > $o,Xs: list_tm] :
      ( ( lexordp_eq_tm @ Less @ Xs @ nil_tm )
      = ( Xs = nil_tm ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_1002_ord_Olexordp__eq__simps_I2_J,axiom,
    ! [Less: nat > nat > $o,Xs: list_nat] :
      ( ( lexordp_eq_nat @ Less @ Xs @ nil_nat )
      = ( Xs = nil_nat ) ) ).

% ord.lexordp_eq_simps(2)
thf(fact_1003_length__rotate1,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( rotate1_nat @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_rotate1
thf(fact_1004_map__eq__imp__length__eq,axiom,
    ! [F: nat > nat,Xs: list_nat,G: nat > nat,Ys: list_nat] :
      ( ( ( map_nat_nat @ F @ Xs )
        = ( map_nat_nat @ G @ Ys ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) ) ) ).

% map_eq_imp_length_eq
thf(fact_1005_length__n__lists__elem,axiom,
    ! [Ys: list_nat,N: nat,Xs: list_nat] :
      ( ( member_list_nat @ Ys @ ( set_list_nat2 @ ( n_lists_nat @ N @ Xs ) ) )
     => ( ( size_size_list_nat @ Ys )
        = N ) ) ).

% length_n_lists_elem
thf(fact_1006_length__Cons,axiom,
    ! [X: tm,Xs: list_tm] :
      ( ( size_size_list_tm @ ( cons_tm @ X @ Xs ) )
      = ( suc @ ( size_size_list_tm @ Xs ) ) ) ).

% length_Cons
thf(fact_1007_length__Cons,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( cons_nat @ X @ Xs ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_1008_neq__if__length__neq,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
       != ( size_size_list_nat @ Ys ) )
     => ( Xs != Ys ) ) ).

% neq_if_length_neq
thf(fact_1009_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs3: list_nat] :
      ( ( size_size_list_nat @ Xs3 )
      = N ) ).

% Ex_list_of_length
thf(fact_1010_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_tm] :
      ( ( ( suc @ N )
        = ( size_size_list_tm @ Xs ) )
      = ( ? [Y2: tm,Ys3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Y2 @ Ys3 ) )
            & ( ( size_size_list_tm @ Ys3 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_1011_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ( suc @ N )
        = ( size_size_list_nat @ Xs ) )
      = ( ? [Y2: nat,Ys3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y2 @ Ys3 ) )
            & ( ( size_size_list_nat @ Ys3 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_1012_length__Suc__conv,axiom,
    ! [Xs: list_tm,N: nat] :
      ( ( ( size_size_list_tm @ Xs )
        = ( suc @ N ) )
      = ( ? [Y2: tm,Ys3: list_tm] :
            ( ( Xs
              = ( cons_tm @ Y2 @ Ys3 ) )
            & ( ( size_size_list_tm @ Ys3 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_1013_length__Suc__conv,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y2: nat,Ys3: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y2 @ Ys3 ) )
            & ( ( size_size_list_nat @ Ys3 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_1014_list__all2__lengthD,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( list_all2_nat_nat @ P @ Xs @ Ys )
     => ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) ) ) ).

% list_all2_lengthD
thf(fact_1015_in__set__product__lists__length,axiom,
    ! [Xs: list_nat,Xss2: list_list_nat] :
      ( ( member_list_nat @ Xs @ ( set_list_nat2 @ ( product_lists_nat @ Xss2 ) ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_s3023201423986296836st_nat @ Xss2 ) ) ) ).

% in_set_product_lists_length
thf(fact_1016_remove1_Osimps_I2_J,axiom,
    ! [X: tm,Y: tm,Xs: list_tm] :
      ( ( ( X = Y )
       => ( ( remove1_tm @ X @ ( cons_tm @ Y @ Xs ) )
          = Xs ) )
      & ( ( X != Y )
       => ( ( remove1_tm @ X @ ( cons_tm @ Y @ Xs ) )
          = ( cons_tm @ Y @ ( remove1_tm @ X @ Xs ) ) ) ) ) ).

% remove1.simps(2)
thf(fact_1017_remove1_Osimps_I2_J,axiom,
    ! [X: nat,Y: nat,Xs: list_nat] :
      ( ( ( X = Y )
       => ( ( remove1_nat @ X @ ( cons_nat @ Y @ Xs ) )
          = Xs ) )
      & ( ( X != Y )
       => ( ( remove1_nat @ X @ ( cons_nat @ Y @ Xs ) )
          = ( cons_nat @ Y @ ( remove1_nat @ X @ Xs ) ) ) ) ) ).

% remove1.simps(2)
thf(fact_1018_remove1_Osimps_I1_J,axiom,
    ! [X: fm] :
      ( ( remove1_fm @ X @ nil_fm )
      = nil_fm ) ).

% remove1.simps(1)
thf(fact_1019_remove1_Osimps_I1_J,axiom,
    ! [X: tm] :
      ( ( remove1_tm @ X @ nil_tm )
      = nil_tm ) ).

% remove1.simps(1)
thf(fact_1020_remove1_Osimps_I1_J,axiom,
    ! [X: nat] :
      ( ( remove1_nat @ X @ nil_nat )
      = nil_nat ) ).

% remove1.simps(1)
thf(fact_1021_notin__set__remove1,axiom,
    ! [X: a,Xs: list_a,Y: a] :
      ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ~ ( member_a2 @ X @ ( set_a2 @ ( remove1_a @ Y @ Xs ) ) ) ) ).

% notin_set_remove1
thf(fact_1022_notin__set__remove1,axiom,
    ! [X: nat,Xs: list_nat,Y: nat] :
      ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ~ ( member_nat2 @ X @ ( set_nat2 @ ( remove1_nat @ Y @ Xs ) ) ) ) ).

% notin_set_remove1
thf(fact_1023_notin__set__remove1,axiom,
    ! [X: fm,Xs: list_fm,Y: fm] :
      ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ~ ( member_fm2 @ X @ ( set_fm2 @ ( remove1_fm @ Y @ Xs ) ) ) ) ).

% notin_set_remove1
thf(fact_1024_remove1__idem,axiom,
    ! [X: a,Xs: list_a] :
      ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ( ( remove1_a @ X @ Xs )
        = Xs ) ) ).

% remove1_idem
thf(fact_1025_remove1__idem,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ( ( remove1_nat @ X @ Xs )
        = Xs ) ) ).

% remove1_idem
thf(fact_1026_remove1__idem,axiom,
    ! [X: fm,Xs: list_fm] :
      ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ( ( remove1_fm @ X @ Xs )
        = Xs ) ) ).

% remove1_idem
thf(fact_1027_minus__set__def,axiom,
    ( minus_minus_set_a
    = ( ^ [A5: set_a,B3: set_a] :
          ( collect_a
          @ ( minus_minus_a_o
            @ ^ [X2: a] : ( member_a2 @ X2 @ A5 )
            @ ^ [X2: a] : ( member_a2 @ X2 @ B3 ) ) ) ) ) ).

% minus_set_def
thf(fact_1028_minus__set__def,axiom,
    ( minus_minus_set_fm
    = ( ^ [A5: set_fm,B3: set_fm] :
          ( collect_fm
          @ ( minus_minus_fm_o
            @ ^ [X2: fm] : ( member_fm2 @ X2 @ A5 )
            @ ^ [X2: fm] : ( member_fm2 @ X2 @ B3 ) ) ) ) ) ).

% minus_set_def
thf(fact_1029_minus__set__def,axiom,
    ( minus_minus_set_nat
    = ( ^ [A5: set_nat,B3: set_nat] :
          ( collect_nat
          @ ( minus_minus_nat_o
            @ ^ [X2: nat] : ( member_nat2 @ X2 @ A5 )
            @ ^ [X2: nat] : ( member_nat2 @ X2 @ B3 ) ) ) ) ) ).

% minus_set_def
thf(fact_1030_length__Suc__conv__rev,axiom,
    ! [Xs: list_fm,N: nat] :
      ( ( ( size_size_list_fm @ Xs )
        = ( suc @ N ) )
      = ( ? [Y2: fm,Ys3: list_fm] :
            ( ( Xs
              = ( append_fm @ Ys3 @ ( cons_fm @ Y2 @ nil_fm ) ) )
            & ( ( size_size_list_fm @ Ys3 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_1031_length__Suc__conv__rev,axiom,
    ! [Xs: list_tm,N: nat] :
      ( ( ( size_size_list_tm @ Xs )
        = ( suc @ N ) )
      = ( ? [Y2: tm,Ys3: list_tm] :
            ( ( Xs
              = ( append_tm @ Ys3 @ ( cons_tm @ Y2 @ nil_tm ) ) )
            & ( ( size_size_list_tm @ Ys3 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_1032_length__Suc__conv__rev,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y2: nat,Ys3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys3 @ ( cons_nat @ Y2 @ nil_nat ) ) )
            & ( ( size_size_list_nat @ Ys3 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_1033_length__append__singleton,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( size_size_list_fm @ ( append_fm @ Xs @ ( cons_fm @ X @ nil_fm ) ) )
      = ( suc @ ( size_size_list_fm @ Xs ) ) ) ).

% length_append_singleton
thf(fact_1034_length__append__singleton,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( size_size_list_tm @ ( append_tm @ Xs @ ( cons_tm @ X @ nil_tm ) ) )
      = ( suc @ ( size_size_list_tm @ Xs ) ) ) ).

% length_append_singleton
thf(fact_1035_length__append__singleton,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( size_size_list_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_append_singleton
thf(fact_1036_ord_Olexordp__eq_OCons__eq,axiom,
    ! [Less: tm > tm > $o,X: tm,Y: tm,Xs: list_tm,Ys: list_tm] :
      ( ~ ( Less @ X @ Y )
     => ( ~ ( Less @ Y @ X )
       => ( ( lexordp_eq_tm @ Less @ Xs @ Ys )
         => ( lexordp_eq_tm @ Less @ ( cons_tm @ X @ Xs ) @ ( cons_tm @ Y @ Ys ) ) ) ) ) ).

% ord.lexordp_eq.Cons_eq
thf(fact_1037_ord_Olexordp__eq_OCons__eq,axiom,
    ! [Less: nat > nat > $o,X: nat,Y: nat,Xs: list_nat,Ys: list_nat] :
      ( ~ ( Less @ X @ Y )
     => ( ~ ( Less @ Y @ X )
       => ( ( lexordp_eq_nat @ Less @ Xs @ Ys )
         => ( lexordp_eq_nat @ Less @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) ) ) ) ) ).

% ord.lexordp_eq.Cons_eq
thf(fact_1038_ord_Olexordp__eq_OCons,axiom,
    ! [Less: tm > tm > $o,X: tm,Y: tm,Xs: list_tm,Ys: list_tm] :
      ( ( Less @ X @ Y )
     => ( lexordp_eq_tm @ Less @ ( cons_tm @ X @ Xs ) @ ( cons_tm @ Y @ Ys ) ) ) ).

% ord.lexordp_eq.Cons
thf(fact_1039_ord_Olexordp__eq_OCons,axiom,
    ! [Less: nat > nat > $o,X: nat,Y: nat,Xs: list_nat,Ys: list_nat] :
      ( ( Less @ X @ Y )
     => ( lexordp_eq_nat @ Less @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) ) ) ).

% ord.lexordp_eq.Cons
thf(fact_1040_ord_Olexordp__eq_ONil,axiom,
    ! [Less: fm > fm > $o,Ys: list_fm] : ( lexordp_eq_fm @ Less @ nil_fm @ Ys ) ).

% ord.lexordp_eq.Nil
thf(fact_1041_ord_Olexordp__eq_ONil,axiom,
    ! [Less: tm > tm > $o,Ys: list_tm] : ( lexordp_eq_tm @ Less @ nil_tm @ Ys ) ).

% ord.lexordp_eq.Nil
thf(fact_1042_ord_Olexordp__eq_ONil,axiom,
    ! [Less: nat > nat > $o,Ys: list_nat] : ( lexordp_eq_nat @ Less @ nil_nat @ Ys ) ).

% ord.lexordp_eq.Nil
thf(fact_1043_ord_Olexordp__eq__pref,axiom,
    ! [Less: nat > nat > $o,U2: list_nat,V: list_nat] : ( lexordp_eq_nat @ Less @ U2 @ ( append_nat @ U2 @ V ) ) ).

% ord.lexordp_eq_pref
thf(fact_1044_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_fm,Zs: list_fm,P: list_fm > list_fm > list_fm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( ( size_size_list_fm @ Ys )
          = ( size_size_list_fm @ Zs ) )
       => ( ( P @ nil_fm @ nil_fm @ nil_fm )
         => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm,Z3: fm,Zs2: list_fm] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_fm @ Ys2 ) )
               => ( ( ( size_size_list_fm @ Ys2 )
                    = ( size_size_list_fm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) @ ( cons_fm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1045_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_fm,Zs: list_tm,P: list_fm > list_fm > list_tm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( ( size_size_list_fm @ Ys )
          = ( size_size_list_tm @ Zs ) )
       => ( ( P @ nil_fm @ nil_fm @ nil_tm )
         => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm,Z3: tm,Zs2: list_tm] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_fm @ Ys2 ) )
               => ( ( ( size_size_list_fm @ Ys2 )
                    = ( size_size_list_tm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) @ ( cons_tm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1046_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_tm,Zs: list_fm,P: list_fm > list_tm > list_fm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( ( size_size_list_tm @ Ys )
          = ( size_size_list_fm @ Zs ) )
       => ( ( P @ nil_fm @ nil_tm @ nil_fm )
         => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm,Z3: fm,Zs2: list_fm] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_tm @ Ys2 ) )
               => ( ( ( size_size_list_tm @ Ys2 )
                    = ( size_size_list_fm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) @ ( cons_fm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1047_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_tm,Zs: list_tm,P: list_fm > list_tm > list_tm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( ( size_size_list_tm @ Ys )
          = ( size_size_list_tm @ Zs ) )
       => ( ( P @ nil_fm @ nil_tm @ nil_tm )
         => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm,Z3: tm,Zs2: list_tm] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_tm @ Ys2 ) )
               => ( ( ( size_size_list_tm @ Ys2 )
                    = ( size_size_list_tm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) @ ( cons_tm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1048_list__induct3,axiom,
    ! [Xs: list_tm,Ys: list_fm,Zs: list_fm,P: list_tm > list_fm > list_fm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( ( size_size_list_fm @ Ys )
          = ( size_size_list_fm @ Zs ) )
       => ( ( P @ nil_tm @ nil_fm @ nil_fm )
         => ( ! [X3: tm,Xs3: list_tm,Y3: fm,Ys2: list_fm,Z3: fm,Zs2: list_fm] :
                ( ( ( size_size_list_tm @ Xs3 )
                  = ( size_size_list_fm @ Ys2 ) )
               => ( ( ( size_size_list_fm @ Ys2 )
                    = ( size_size_list_fm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) @ ( cons_fm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1049_list__induct3,axiom,
    ! [Xs: list_tm,Ys: list_fm,Zs: list_tm,P: list_tm > list_fm > list_tm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( ( size_size_list_fm @ Ys )
          = ( size_size_list_tm @ Zs ) )
       => ( ( P @ nil_tm @ nil_fm @ nil_tm )
         => ( ! [X3: tm,Xs3: list_tm,Y3: fm,Ys2: list_fm,Z3: tm,Zs2: list_tm] :
                ( ( ( size_size_list_tm @ Xs3 )
                  = ( size_size_list_fm @ Ys2 ) )
               => ( ( ( size_size_list_fm @ Ys2 )
                    = ( size_size_list_tm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) @ ( cons_tm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1050_list__induct3,axiom,
    ! [Xs: list_tm,Ys: list_tm,Zs: list_fm,P: list_tm > list_tm > list_fm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( ( size_size_list_tm @ Ys )
          = ( size_size_list_fm @ Zs ) )
       => ( ( P @ nil_tm @ nil_tm @ nil_fm )
         => ( ! [X3: tm,Xs3: list_tm,Y3: tm,Ys2: list_tm,Z3: fm,Zs2: list_fm] :
                ( ( ( size_size_list_tm @ Xs3 )
                  = ( size_size_list_tm @ Ys2 ) )
               => ( ( ( size_size_list_tm @ Ys2 )
                    = ( size_size_list_fm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) @ ( cons_fm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1051_list__induct3,axiom,
    ! [Xs: list_tm,Ys: list_tm,Zs: list_tm,P: list_tm > list_tm > list_tm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( ( size_size_list_tm @ Ys )
          = ( size_size_list_tm @ Zs ) )
       => ( ( P @ nil_tm @ nil_tm @ nil_tm )
         => ( ! [X3: tm,Xs3: list_tm,Y3: tm,Ys2: list_tm,Z3: tm,Zs2: list_tm] :
                ( ( ( size_size_list_tm @ Xs3 )
                  = ( size_size_list_tm @ Ys2 ) )
               => ( ( ( size_size_list_tm @ Ys2 )
                    = ( size_size_list_tm @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) @ ( cons_tm @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1052_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_fm,Zs: list_nat,P: list_fm > list_fm > list_nat > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( ( size_size_list_fm @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_fm @ nil_fm @ nil_nat )
         => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_fm @ Ys2 ) )
               => ( ( ( size_size_list_fm @ Ys2 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1053_list__induct3,axiom,
    ! [Xs: list_fm,Ys: list_tm,Zs: list_nat,P: list_fm > list_tm > list_nat > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( ( size_size_list_tm @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_fm @ nil_tm @ nil_nat )
         => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_fm @ Xs3 )
                  = ( size_size_list_tm @ Ys2 ) )
               => ( ( ( size_size_list_tm @ Ys2 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys2 @ Zs2 )
                   => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_1054_list__induct2,axiom,
    ! [Xs: list_fm,Ys: list_fm,P: list_fm > list_fm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( P @ nil_fm @ nil_fm )
       => ( ! [X3: fm,Xs3: list_fm,Y3: fm,Ys2: list_fm] :
              ( ( ( size_size_list_fm @ Xs3 )
                = ( size_size_list_fm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1055_list__induct2,axiom,
    ! [Xs: list_fm,Ys: list_tm,P: list_fm > list_tm > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( P @ nil_fm @ nil_tm )
       => ( ! [X3: fm,Xs3: list_fm,Y3: tm,Ys2: list_tm] :
              ( ( ( size_size_list_fm @ Xs3 )
                = ( size_size_list_tm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1056_list__induct2,axiom,
    ! [Xs: list_tm,Ys: list_fm,P: list_tm > list_fm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( P @ nil_tm @ nil_fm )
       => ( ! [X3: tm,Xs3: list_tm,Y3: fm,Ys2: list_fm] :
              ( ( ( size_size_list_tm @ Xs3 )
                = ( size_size_list_fm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1057_list__induct2,axiom,
    ! [Xs: list_tm,Ys: list_tm,P: list_tm > list_tm > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( P @ nil_tm @ nil_tm )
       => ( ! [X3: tm,Xs3: list_tm,Y3: tm,Ys2: list_tm] :
              ( ( ( size_size_list_tm @ Xs3 )
                = ( size_size_list_tm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1058_list__induct2,axiom,
    ! [Xs: list_fm,Ys: list_nat,P: list_fm > list_nat > $o] :
      ( ( ( size_size_list_fm @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_fm @ nil_nat )
       => ( ! [X3: fm,Xs3: list_fm,Y3: nat,Ys2: list_nat] :
              ( ( ( size_size_list_fm @ Xs3 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_fm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1059_list__induct2,axiom,
    ! [Xs: list_tm,Ys: list_nat,P: list_tm > list_nat > $o] :
      ( ( ( size_size_list_tm @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_tm @ nil_nat )
       => ( ! [X3: tm,Xs3: list_tm,Y3: nat,Ys2: list_nat] :
              ( ( ( size_size_list_tm @ Xs3 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_tm @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1060_list__induct2,axiom,
    ! [Xs: list_nat,Ys: list_fm,P: list_nat > list_fm > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_fm @ Ys ) )
     => ( ( P @ nil_nat @ nil_fm )
       => ( ! [X3: nat,Xs3: list_nat,Y3: fm,Ys2: list_fm] :
              ( ( ( size_size_list_nat @ Xs3 )
                = ( size_size_list_fm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_fm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1061_list__induct2,axiom,
    ! [Xs: list_nat,Ys: list_tm,P: list_nat > list_tm > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_tm @ Ys ) )
     => ( ( P @ nil_nat @ nil_tm )
       => ( ! [X3: nat,Xs3: list_nat,Y3: tm,Ys2: list_tm] :
              ( ( ( size_size_list_nat @ Xs3 )
                = ( size_size_list_tm @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_tm @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1062_list__induct2,axiom,
    ! [Xs: list_nat,Ys: list_nat,P: list_nat > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_nat @ nil_nat )
       => ( ! [X3: nat,Xs3: list_nat,Y3: nat,Ys2: list_nat] :
              ( ( ( size_size_list_nat @ Xs3 )
                = ( size_size_list_nat @ Ys2 ) )
             => ( ( P @ Xs3 @ Ys2 )
               => ( P @ ( cons_nat @ X3 @ Xs3 ) @ ( cons_nat @ Y3 @ Ys2 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_1063_list__all2__append2,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( list_all2_nat_nat @ P @ Xs @ ( append_nat @ Ys @ Zs ) )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Xs
              = ( append_nat @ Us2 @ Vs ) )
            & ( ( size_size_list_nat @ Us2 )
              = ( size_size_list_nat @ Ys ) )
            & ( ( size_size_list_nat @ Vs )
              = ( size_size_list_nat @ Zs ) )
            & ( list_all2_nat_nat @ P @ Us2 @ Ys )
            & ( list_all2_nat_nat @ P @ Vs @ Zs ) ) ) ) ).

% list_all2_append2
thf(fact_1064_list__all2__append1,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( list_all2_nat_nat @ P @ ( append_nat @ Xs @ Ys ) @ Zs )
      = ( ? [Us2: list_nat,Vs: list_nat] :
            ( ( Zs
              = ( append_nat @ Us2 @ Vs ) )
            & ( ( size_size_list_nat @ Us2 )
              = ( size_size_list_nat @ Xs ) )
            & ( ( size_size_list_nat @ Vs )
              = ( size_size_list_nat @ Ys ) )
            & ( list_all2_nat_nat @ P @ Xs @ Us2 )
            & ( list_all2_nat_nat @ P @ Ys @ Vs ) ) ) ) ).

% list_all2_append1
thf(fact_1065_list__all2__append,axiom,
    ! [Xs: list_nat,Ys: list_nat,P: nat > nat > $o,Us: list_nat,Vs3: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( list_all2_nat_nat @ P @ ( append_nat @ Xs @ Us ) @ ( append_nat @ Ys @ Vs3 ) )
        = ( ( list_all2_nat_nat @ P @ Xs @ Ys )
          & ( list_all2_nat_nat @ P @ Us @ Vs3 ) ) ) ) ).

% list_all2_append
thf(fact_1066_remove1__append,axiom,
    ! [X: a,Xs: list_a,Ys: list_a] :
      ( ( ( member_a2 @ X @ ( set_a2 @ Xs ) )
       => ( ( remove1_a @ X @ ( append_a @ Xs @ Ys ) )
          = ( append_a @ ( remove1_a @ X @ Xs ) @ Ys ) ) )
      & ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
       => ( ( remove1_a @ X @ ( append_a @ Xs @ Ys ) )
          = ( append_a @ Xs @ ( remove1_a @ X @ Ys ) ) ) ) ) ).

% remove1_append
thf(fact_1067_remove1__append,axiom,
    ! [X: fm,Xs: list_fm,Ys: list_fm] :
      ( ( ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
       => ( ( remove1_fm @ X @ ( append_fm @ Xs @ Ys ) )
          = ( append_fm @ ( remove1_fm @ X @ Xs ) @ Ys ) ) )
      & ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
       => ( ( remove1_fm @ X @ ( append_fm @ Xs @ Ys ) )
          = ( append_fm @ Xs @ ( remove1_fm @ X @ Ys ) ) ) ) ) ).

% remove1_append
thf(fact_1068_remove1__append,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
       => ( ( remove1_nat @ X @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ ( remove1_nat @ X @ Xs ) @ Ys ) ) )
      & ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
       => ( ( remove1_nat @ X @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ Xs @ ( remove1_nat @ X @ Ys ) ) ) ) ) ).

% remove1_append
thf(fact_1069_ord_Olexordp__eq_Osimps,axiom,
    ( lexordp_eq_fm
    = ( ^ [Less2: fm > fm > $o,A1: list_fm,A23: list_fm] :
          ( ? [Ys3: list_fm] :
              ( ( A1 = nil_fm )
              & ( A23 = Ys3 ) )
          | ? [X2: fm,Y2: fm,Xs2: list_fm,Ys3: list_fm] :
              ( ( A1
                = ( cons_fm @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_fm @ Y2 @ Ys3 ) )
              & ( Less2 @ X2 @ Y2 ) )
          | ? [X2: fm,Y2: fm,Xs2: list_fm,Ys3: list_fm] :
              ( ( A1
                = ( cons_fm @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_fm @ Y2 @ Ys3 ) )
              & ~ ( Less2 @ X2 @ Y2 )
              & ~ ( Less2 @ Y2 @ X2 )
              & ( lexordp_eq_fm @ Less2 @ Xs2 @ Ys3 ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_1070_ord_Olexordp__eq_Osimps,axiom,
    ( lexordp_eq_tm
    = ( ^ [Less2: tm > tm > $o,A1: list_tm,A23: list_tm] :
          ( ? [Ys3: list_tm] :
              ( ( A1 = nil_tm )
              & ( A23 = Ys3 ) )
          | ? [X2: tm,Y2: tm,Xs2: list_tm,Ys3: list_tm] :
              ( ( A1
                = ( cons_tm @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_tm @ Y2 @ Ys3 ) )
              & ( Less2 @ X2 @ Y2 ) )
          | ? [X2: tm,Y2: tm,Xs2: list_tm,Ys3: list_tm] :
              ( ( A1
                = ( cons_tm @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_tm @ Y2 @ Ys3 ) )
              & ~ ( Less2 @ X2 @ Y2 )
              & ~ ( Less2 @ Y2 @ X2 )
              & ( lexordp_eq_tm @ Less2 @ Xs2 @ Ys3 ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_1071_ord_Olexordp__eq_Osimps,axiom,
    ( lexordp_eq_nat
    = ( ^ [Less2: nat > nat > $o,A1: list_nat,A23: list_nat] :
          ( ? [Ys3: list_nat] :
              ( ( A1 = nil_nat )
              & ( A23 = Ys3 ) )
          | ? [X2: nat,Y2: nat,Xs2: list_nat,Ys3: list_nat] :
              ( ( A1
                = ( cons_nat @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_nat @ Y2 @ Ys3 ) )
              & ( Less2 @ X2 @ Y2 ) )
          | ? [X2: nat,Y2: nat,Xs2: list_nat,Ys3: list_nat] :
              ( ( A1
                = ( cons_nat @ X2 @ Xs2 ) )
              & ( A23
                = ( cons_nat @ Y2 @ Ys3 ) )
              & ~ ( Less2 @ X2 @ Y2 )
              & ~ ( Less2 @ Y2 @ X2 )
              & ( lexordp_eq_nat @ Less2 @ Xs2 @ Ys3 ) ) ) ) ) ).

% ord.lexordp_eq.simps
thf(fact_1072_ord_Olexordp__eq_Ocases,axiom,
    ! [Less: fm > fm > $o,A12: list_fm,A24: list_fm] :
      ( ( lexordp_eq_fm @ Less @ A12 @ A24 )
     => ( ( A12 != nil_fm )
       => ( ! [X3: fm] :
              ( ? [Xs3: list_fm] :
                  ( A12
                  = ( cons_fm @ X3 @ Xs3 ) )
             => ! [Y3: fm] :
                  ( ? [Ys2: list_fm] :
                      ( A24
                      = ( cons_fm @ Y3 @ Ys2 ) )
                 => ~ ( Less @ X3 @ Y3 ) ) )
         => ~ ! [X3: fm,Y3: fm,Xs3: list_fm] :
                ( ( A12
                  = ( cons_fm @ X3 @ Xs3 ) )
               => ! [Ys2: list_fm] :
                    ( ( A24
                      = ( cons_fm @ Y3 @ Ys2 ) )
                   => ( ~ ( Less @ X3 @ Y3 )
                     => ( ~ ( Less @ Y3 @ X3 )
                       => ~ ( lexordp_eq_fm @ Less @ Xs3 @ Ys2 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_1073_ord_Olexordp__eq_Ocases,axiom,
    ! [Less: tm > tm > $o,A12: list_tm,A24: list_tm] :
      ( ( lexordp_eq_tm @ Less @ A12 @ A24 )
     => ( ( A12 != nil_tm )
       => ( ! [X3: tm] :
              ( ? [Xs3: list_tm] :
                  ( A12
                  = ( cons_tm @ X3 @ Xs3 ) )
             => ! [Y3: tm] :
                  ( ? [Ys2: list_tm] :
                      ( A24
                      = ( cons_tm @ Y3 @ Ys2 ) )
                 => ~ ( Less @ X3 @ Y3 ) ) )
         => ~ ! [X3: tm,Y3: tm,Xs3: list_tm] :
                ( ( A12
                  = ( cons_tm @ X3 @ Xs3 ) )
               => ! [Ys2: list_tm] :
                    ( ( A24
                      = ( cons_tm @ Y3 @ Ys2 ) )
                   => ( ~ ( Less @ X3 @ Y3 )
                     => ( ~ ( Less @ Y3 @ X3 )
                       => ~ ( lexordp_eq_tm @ Less @ Xs3 @ Ys2 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_1074_ord_Olexordp__eq_Ocases,axiom,
    ! [Less: nat > nat > $o,A12: list_nat,A24: list_nat] :
      ( ( lexordp_eq_nat @ Less @ A12 @ A24 )
     => ( ( A12 != nil_nat )
       => ( ! [X3: nat] :
              ( ? [Xs3: list_nat] :
                  ( A12
                  = ( cons_nat @ X3 @ Xs3 ) )
             => ! [Y3: nat] :
                  ( ? [Ys2: list_nat] :
                      ( A24
                      = ( cons_nat @ Y3 @ Ys2 ) )
                 => ~ ( Less @ X3 @ Y3 ) ) )
         => ~ ! [X3: nat,Y3: nat,Xs3: list_nat] :
                ( ( A12
                  = ( cons_nat @ X3 @ Xs3 ) )
               => ! [Ys2: list_nat] :
                    ( ( A24
                      = ( cons_nat @ Y3 @ Ys2 ) )
                   => ( ~ ( Less @ X3 @ Y3 )
                     => ( ~ ( Less @ Y3 @ X3 )
                       => ~ ( lexordp_eq_nat @ Less @ Xs3 @ Ys2 ) ) ) ) ) ) ) ) ).

% ord.lexordp_eq.cases
thf(fact_1075_same__length__different,axiom,
    ! [Xs: list_fm,Ys: list_fm] :
      ( ( Xs != Ys )
     => ( ( ( size_size_list_fm @ Xs )
          = ( size_size_list_fm @ Ys ) )
       => ? [Pre: list_fm,X3: fm,Xs6: list_fm,Y3: fm,Ys6: list_fm] :
            ( ( X3 != Y3 )
            & ( Xs
              = ( append_fm @ Pre @ ( append_fm @ ( cons_fm @ X3 @ nil_fm ) @ Xs6 ) ) )
            & ( Ys
              = ( append_fm @ Pre @ ( append_fm @ ( cons_fm @ Y3 @ nil_fm ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_1076_same__length__different,axiom,
    ! [Xs: list_tm,Ys: list_tm] :
      ( ( Xs != Ys )
     => ( ( ( size_size_list_tm @ Xs )
          = ( size_size_list_tm @ Ys ) )
       => ? [Pre: list_tm,X3: tm,Xs6: list_tm,Y3: tm,Ys6: list_tm] :
            ( ( X3 != Y3 )
            & ( Xs
              = ( append_tm @ Pre @ ( append_tm @ ( cons_tm @ X3 @ nil_tm ) @ Xs6 ) ) )
            & ( Ys
              = ( append_tm @ Pre @ ( append_tm @ ( cons_tm @ Y3 @ nil_tm ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_1077_same__length__different,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != Ys )
     => ( ( ( size_size_list_nat @ Xs )
          = ( size_size_list_nat @ Ys ) )
       => ? [Pre: list_nat,X3: nat,Xs6: list_nat,Y3: nat,Ys6: list_nat] :
            ( ( X3 != Y3 )
            & ( Xs
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ X3 @ nil_nat ) @ Xs6 ) ) )
            & ( Ys
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ Y3 @ nil_nat ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_1078_inc__list_Osimps_I2_J,axiom,
    ! [T: tm,L2: list_tm] :
      ( ( inc_list @ ( cons_tm @ T @ L2 ) )
      = ( cons_tm @ ( inc_term @ T ) @ ( inc_list @ L2 ) ) ) ).

% inc_list.simps(2)
thf(fact_1079_n__lists__Nil,axiom,
    ! [N: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( n_lists_fm @ N @ nil_fm )
          = ( cons_list_fm @ nil_fm @ nil_list_fm ) ) )
      & ( ( N != zero_zero_nat )
       => ( ( n_lists_fm @ N @ nil_fm )
          = nil_list_fm ) ) ) ).

% n_lists_Nil
thf(fact_1080_n__lists__Nil,axiom,
    ! [N: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( n_lists_tm @ N @ nil_tm )
          = ( cons_list_tm @ nil_tm @ nil_list_tm ) ) )
      & ( ( N != zero_zero_nat )
       => ( ( n_lists_tm @ N @ nil_tm )
          = nil_list_tm ) ) ) ).

% n_lists_Nil
thf(fact_1081_n__lists__Nil,axiom,
    ! [N: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( n_lists_nat @ N @ nil_nat )
          = ( cons_list_nat @ nil_nat @ nil_list_nat ) ) )
      & ( ( N != zero_zero_nat )
       => ( ( n_lists_nat @ N @ nil_nat )
          = nil_list_nat ) ) ) ).

% n_lists_Nil
thf(fact_1082_inc__term_Osimps_I2_J,axiom,
    ! [I2: nat,L2: list_tm] :
      ( ( inc_term @ ( fun @ I2 @ L2 ) )
      = ( fun @ I2 @ ( inc_list @ L2 ) ) ) ).

% inc_term.simps(2)
thf(fact_1083_s4_I2_J,axiom,
    inc_list = liftts ).

% s4(2)
thf(fact_1084_length__0__conv,axiom,
    ! [Xs: list_fm] :
      ( ( ( size_size_list_fm @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_fm ) ) ).

% length_0_conv
thf(fact_1085_length__0__conv,axiom,
    ! [Xs: list_tm] :
      ( ( ( size_size_list_tm @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_tm ) ) ).

% length_0_conv
thf(fact_1086_length__0__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_nat ) ) ).

% length_0_conv
thf(fact_1087_list_Osize_I3_J,axiom,
    ( ( size_size_list_fm @ nil_fm )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_1088_list_Osize_I3_J,axiom,
    ( ( size_size_list_tm @ nil_tm )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_1089_list_Osize_I3_J,axiom,
    ( ( size_size_list_nat @ nil_nat )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_1090_liftts_Osimps_I1_J,axiom,
    ( ( liftts @ nil_tm )
    = nil_tm ) ).

% liftts.simps(1)
thf(fact_1091_n__lists_Osimps_I1_J,axiom,
    ! [Xs: list_fm] :
      ( ( n_lists_fm @ zero_zero_nat @ Xs )
      = ( cons_list_fm @ nil_fm @ nil_list_fm ) ) ).

% n_lists.simps(1)
thf(fact_1092_n__lists_Osimps_I1_J,axiom,
    ! [Xs: list_tm] :
      ( ( n_lists_tm @ zero_zero_nat @ Xs )
      = ( cons_list_tm @ nil_tm @ nil_list_tm ) ) ).

% n_lists.simps(1)
thf(fact_1093_n__lists_Osimps_I1_J,axiom,
    ! [Xs: list_nat] :
      ( ( n_lists_nat @ zero_zero_nat @ Xs )
      = ( cons_list_nat @ nil_nat @ nil_list_nat ) ) ).

% n_lists.simps(1)
thf(fact_1094_Nitpick_Osize__list__simp_I2_J,axiom,
    ( size_size_list_fm
    = ( ^ [Xs2: list_fm] : ( if_nat @ ( Xs2 = nil_fm ) @ zero_zero_nat @ ( suc @ ( size_size_list_fm @ ( tl_fm @ Xs2 ) ) ) ) ) ) ).

% Nitpick.size_list_simp(2)
thf(fact_1095_Nitpick_Osize__list__simp_I2_J,axiom,
    ( size_size_list_tm
    = ( ^ [Xs2: list_tm] : ( if_nat @ ( Xs2 = nil_tm ) @ zero_zero_nat @ ( suc @ ( size_size_list_tm @ ( tl_tm @ Xs2 ) ) ) ) ) ) ).

% Nitpick.size_list_simp(2)
thf(fact_1096_Nitpick_Osize__list__simp_I2_J,axiom,
    ( size_size_list_nat
    = ( ^ [Xs2: list_nat] : ( if_nat @ ( Xs2 = nil_nat ) @ zero_zero_nat @ ( suc @ ( size_size_list_nat @ ( tl_nat @ Xs2 ) ) ) ) ) ) ).

% Nitpick.size_list_simp(2)
thf(fact_1097_tm_Osize__gen_I2_J,axiom,
    ! [X23: nat] :
      ( ( size_tm @ ( var @ X23 ) )
      = zero_zero_nat ) ).

% tm.size_gen(2)
thf(fact_1098_transpose__max__length,axiom,
    ! [Xs: list_list_fm] :
      ( ( foldr_list_fm_nat
        @ ^ [Xs2: list_fm] : ( ord_max_nat @ ( size_size_list_fm @ Xs2 ) )
        @ ( transpose_fm @ Xs )
        @ zero_zero_nat )
      = ( size_s115229985653309035ist_fm
        @ ( filter_list_fm
          @ ^ [X2: list_fm] : ( X2 != nil_fm )
          @ Xs ) ) ) ).

% transpose_max_length
thf(fact_1099_transpose__max__length,axiom,
    ! [Xs: list_list_tm] :
      ( ( foldr_list_tm_nat
        @ ^ [Xs2: list_tm] : ( ord_max_nat @ ( size_size_list_tm @ Xs2 ) )
        @ ( transpose_tm @ Xs )
        @ zero_zero_nat )
      = ( size_s9096087352182575069ist_tm
        @ ( filter_list_tm
          @ ^ [X2: list_tm] : ( X2 != nil_tm )
          @ Xs ) ) ) ).

% transpose_max_length
thf(fact_1100_transpose__max__length,axiom,
    ! [Xs: list_list_nat] :
      ( ( foldr_list_nat_nat
        @ ^ [Xs2: list_nat] : ( ord_max_nat @ ( size_size_list_nat @ Xs2 ) )
        @ ( transpose_nat @ Xs )
        @ zero_zero_nat )
      = ( size_s3023201423986296836st_nat
        @ ( filter_list_nat
          @ ^ [X2: list_nat] : ( X2 != nil_nat )
          @ Xs ) ) ) ).

% transpose_max_length
thf(fact_1101_length__transpose,axiom,
    ! [Xs: list_list_nat] :
      ( ( size_s3023201423986296836st_nat @ ( transpose_nat @ Xs ) )
      = ( foldr_list_nat_nat
        @ ^ [Xs2: list_nat] : ( ord_max_nat @ ( size_size_list_nat @ Xs2 ) )
        @ Xs
        @ zero_zero_nat ) ) ).

% length_transpose
thf(fact_1102_transpose__aux__max,axiom,
    ! [Xs: list_nat,Xss2: list_list_fm] :
      ( ( ord_max_nat @ ( suc @ ( size_size_list_nat @ Xs ) )
        @ ( foldr_list_fm_nat
          @ ^ [Xs2: list_fm] : ( ord_max_nat @ ( size_size_list_fm @ Xs2 ) )
          @ Xss2
          @ zero_zero_nat ) )
      = ( suc
        @ ( ord_max_nat @ ( size_size_list_nat @ Xs )
          @ ( foldr_list_fm_nat
            @ ^ [X2: list_fm] : ( ord_max_nat @ ( minus_minus_nat @ ( size_size_list_fm @ X2 ) @ ( suc @ zero_zero_nat ) ) )
            @ ( filter_list_fm
              @ ^ [Ys3: list_fm] : ( Ys3 != nil_fm )
              @ Xss2 )
            @ zero_zero_nat ) ) ) ) ).

% transpose_aux_max
thf(fact_1103_transpose__aux__max,axiom,
    ! [Xs: list_nat,Xss2: list_list_tm] :
      ( ( ord_max_nat @ ( suc @ ( size_size_list_nat @ Xs ) )
        @ ( foldr_list_tm_nat
          @ ^ [Xs2: list_tm] : ( ord_max_nat @ ( size_size_list_tm @ Xs2 ) )
          @ Xss2
          @ zero_zero_nat ) )
      = ( suc
        @ ( ord_max_nat @ ( size_size_list_nat @ Xs )
          @ ( foldr_list_tm_nat
            @ ^ [X2: list_tm] : ( ord_max_nat @ ( minus_minus_nat @ ( size_size_list_tm @ X2 ) @ ( suc @ zero_zero_nat ) ) )
            @ ( filter_list_tm
              @ ^ [Ys3: list_tm] : ( Ys3 != nil_tm )
              @ Xss2 )
            @ zero_zero_nat ) ) ) ) ).

% transpose_aux_max
thf(fact_1104_transpose__aux__max,axiom,
    ! [Xs: list_nat,Xss2: list_list_nat] :
      ( ( ord_max_nat @ ( suc @ ( size_size_list_nat @ Xs ) )
        @ ( foldr_list_nat_nat
          @ ^ [Xs2: list_nat] : ( ord_max_nat @ ( size_size_list_nat @ Xs2 ) )
          @ Xss2
          @ zero_zero_nat ) )
      = ( suc
        @ ( ord_max_nat @ ( size_size_list_nat @ Xs )
          @ ( foldr_list_nat_nat
            @ ^ [X2: list_nat] : ( ord_max_nat @ ( minus_minus_nat @ ( size_size_list_nat @ X2 ) @ ( suc @ zero_zero_nat ) ) )
            @ ( filter_list_nat
              @ ^ [Ys3: list_nat] : ( Ys3 != nil_nat )
              @ Xss2 )
            @ zero_zero_nat ) ) ) ) ).

% transpose_aux_max
thf(fact_1105_s4_I1_J,axiom,
    inc_term = liftt ).

% s4(1)
thf(fact_1106_substt_Osimps_I2_J,axiom,
    ! [A2: nat,Ts: list_tm,S2: tm,K2: nat] :
      ( ( substt @ ( fun @ A2 @ Ts ) @ S2 @ K2 )
      = ( fun @ A2 @ ( substts @ Ts @ S2 @ K2 ) ) ) ).

% substt.simps(2)
thf(fact_1107_substts_Osimps_I2_J,axiom,
    ! [T: tm,Ts: list_tm,S2: tm,K2: nat] :
      ( ( substts @ ( cons_tm @ T @ Ts ) @ S2 @ K2 )
      = ( cons_tm @ ( substt @ T @ S2 @ K2 ) @ ( substts @ Ts @ S2 @ K2 ) ) ) ).

% substts.simps(2)
thf(fact_1108_substts_Osimps_I1_J,axiom,
    ! [S2: tm,K2: nat] :
      ( ( substts @ nil_tm @ S2 @ K2 )
      = nil_tm ) ).

% substts.simps(1)
thf(fact_1109_liftt_Osimps_I1_J,axiom,
    ! [I2: nat] :
      ( ( liftt @ ( var @ I2 ) )
      = ( var @ ( suc @ I2 ) ) ) ).

% liftt.simps(1)
thf(fact_1110_liftt_Osimps_I2_J,axiom,
    ! [A2: nat,Ts: list_tm] :
      ( ( liftt @ ( fun @ A2 @ Ts ) )
      = ( fun @ A2 @ ( liftts @ Ts ) ) ) ).

% liftt.simps(2)
thf(fact_1111_liftts_Osimps_I2_J,axiom,
    ! [T: tm,Ts: list_tm] :
      ( ( liftts @ ( cons_tm @ T @ Ts ) )
      = ( cons_tm @ ( liftt @ T ) @ ( liftts @ Ts ) ) ) ).

% liftts.simps(2)
thf(fact_1112_s5_I1_J,axiom,
    ( sub_term
    = ( ^ [V2: nat,S3: tm,T2: tm] : ( substt @ T2 @ S3 @ V2 ) ) ) ).

% s5(1)
thf(fact_1113_nths__Cons,axiom,
    ! [X: fm,L2: list_fm,A3: set_nat] :
      ( ( nths_fm @ ( cons_fm @ X @ L2 ) @ A3 )
      = ( append_fm @ ( if_list_fm @ ( member_nat2 @ zero_zero_nat @ A3 ) @ ( cons_fm @ X @ nil_fm ) @ nil_fm )
        @ ( nths_fm @ L2
          @ ( collect_nat
            @ ^ [J: nat] : ( member_nat2 @ ( suc @ J ) @ A3 ) ) ) ) ) ).

% nths_Cons
thf(fact_1114_nths__Cons,axiom,
    ! [X: tm,L2: list_tm,A3: set_nat] :
      ( ( nths_tm @ ( cons_tm @ X @ L2 ) @ A3 )
      = ( append_tm @ ( if_list_tm @ ( member_nat2 @ zero_zero_nat @ A3 ) @ ( cons_tm @ X @ nil_tm ) @ nil_tm )
        @ ( nths_tm @ L2
          @ ( collect_nat
            @ ^ [J: nat] : ( member_nat2 @ ( suc @ J ) @ A3 ) ) ) ) ) ).

% nths_Cons
thf(fact_1115_nths__Cons,axiom,
    ! [X: nat,L2: list_nat,A3: set_nat] :
      ( ( nths_nat @ ( cons_nat @ X @ L2 ) @ A3 )
      = ( append_nat @ ( if_list_nat @ ( member_nat2 @ zero_zero_nat @ A3 ) @ ( cons_nat @ X @ nil_nat ) @ nil_nat )
        @ ( nths_nat @ L2
          @ ( collect_nat
            @ ^ [J: nat] : ( member_nat2 @ ( suc @ J ) @ A3 ) ) ) ) ) ).

% nths_Cons
thf(fact_1116_remdups__adj__singleton__iff,axiom,
    ! [Xs: list_fm] :
      ( ( ( size_size_list_fm @ ( remdups_adj_fm @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_fm )
        & ( Xs
          = ( replicate_fm @ ( size_size_list_fm @ Xs ) @ ( hd_fm @ Xs ) ) ) ) ) ).

% remdups_adj_singleton_iff
thf(fact_1117_remdups__adj__singleton__iff,axiom,
    ! [Xs: list_tm] :
      ( ( ( size_size_list_tm @ ( remdups_adj_tm @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_tm )
        & ( Xs
          = ( replicate_tm @ ( size_size_list_tm @ Xs ) @ ( hd_tm @ Xs ) ) ) ) ) ).

% remdups_adj_singleton_iff
thf(fact_1118_remdups__adj__singleton__iff,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ ( remdups_adj_nat @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_nat )
        & ( Xs
          = ( replicate_nat @ ( size_size_list_nat @ Xs ) @ ( hd_nat @ Xs ) ) ) ) ) ).

% remdups_adj_singleton_iff
thf(fact_1119_s5_I2_J,axiom,
    ( sub_list
    = ( ^ [V2: nat,S3: tm,L: list_tm] : ( substts @ L @ S3 @ V2 ) ) ) ).

% s5(2)
thf(fact_1120_length__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( size_size_list_nat @ ( replicate_nat @ N @ X ) )
      = N ) ).

% length_replicate
thf(fact_1121_concat__replicate__trivial,axiom,
    ! [I2: nat] :
      ( ( concat_fm @ ( replicate_list_fm @ I2 @ nil_fm ) )
      = nil_fm ) ).

% concat_replicate_trivial
thf(fact_1122_concat__replicate__trivial,axiom,
    ! [I2: nat] :
      ( ( concat_tm @ ( replicate_list_tm @ I2 @ nil_tm ) )
      = nil_tm ) ).

% concat_replicate_trivial
thf(fact_1123_concat__replicate__trivial,axiom,
    ! [I2: nat] :
      ( ( concat_nat @ ( replicate_list_nat @ I2 @ nil_nat ) )
      = nil_nat ) ).

% concat_replicate_trivial
thf(fact_1124_map__replicate,axiom,
    ! [F: nat > nat,N: nat,X: nat] :
      ( ( map_nat_nat @ F @ ( replicate_nat @ N @ X ) )
      = ( replicate_nat @ N @ ( F @ X ) ) ) ).

% map_replicate
thf(fact_1125_nths__nil,axiom,
    ! [A3: set_nat] :
      ( ( nths_fm @ nil_fm @ A3 )
      = nil_fm ) ).

% nths_nil
thf(fact_1126_nths__nil,axiom,
    ! [A3: set_nat] :
      ( ( nths_tm @ nil_tm @ A3 )
      = nil_tm ) ).

% nths_nil
thf(fact_1127_nths__nil,axiom,
    ! [A3: set_nat] :
      ( ( nths_nat @ nil_nat @ A3 )
      = nil_nat ) ).

% nths_nil
thf(fact_1128_replicate__empty,axiom,
    ! [N: nat,X: fm] :
      ( ( ( replicate_fm @ N @ X )
        = nil_fm )
      = ( N = zero_zero_nat ) ) ).

% replicate_empty
thf(fact_1129_replicate__empty,axiom,
    ! [N: nat,X: tm] :
      ( ( ( replicate_tm @ N @ X )
        = nil_tm )
      = ( N = zero_zero_nat ) ) ).

% replicate_empty
thf(fact_1130_replicate__empty,axiom,
    ! [N: nat,X: nat] :
      ( ( ( replicate_nat @ N @ X )
        = nil_nat )
      = ( N = zero_zero_nat ) ) ).

% replicate_empty
thf(fact_1131_empty__replicate,axiom,
    ! [N: nat,X: fm] :
      ( ( nil_fm
        = ( replicate_fm @ N @ X ) )
      = ( N = zero_zero_nat ) ) ).

% empty_replicate
thf(fact_1132_empty__replicate,axiom,
    ! [N: nat,X: tm] :
      ( ( nil_tm
        = ( replicate_tm @ N @ X ) )
      = ( N = zero_zero_nat ) ) ).

% empty_replicate
thf(fact_1133_empty__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( nil_nat
        = ( replicate_nat @ N @ X ) )
      = ( N = zero_zero_nat ) ) ).

% empty_replicate
thf(fact_1134_in__set__replicate,axiom,
    ! [X: a,N: nat,Y: a] :
      ( ( member_a2 @ X @ ( set_a2 @ ( replicate_a @ N @ Y ) ) )
      = ( ( X = Y )
        & ( N != zero_zero_nat ) ) ) ).

% in_set_replicate
thf(fact_1135_in__set__replicate,axiom,
    ! [X: nat,N: nat,Y: nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ ( replicate_nat @ N @ Y ) ) )
      = ( ( X = Y )
        & ( N != zero_zero_nat ) ) ) ).

% in_set_replicate
thf(fact_1136_in__set__replicate,axiom,
    ! [X: fm,N: nat,Y: fm] :
      ( ( member_fm2 @ X @ ( set_fm2 @ ( replicate_fm @ N @ Y ) ) )
      = ( ( X = Y )
        & ( N != zero_zero_nat ) ) ) ).

% in_set_replicate
thf(fact_1137_hd__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( N != zero_zero_nat )
     => ( ( hd_nat @ ( replicate_nat @ N @ X ) )
        = X ) ) ).

% hd_replicate
thf(fact_1138_dropWhile__replicate,axiom,
    ! [P: fm > $o,X: fm,N: nat] :
      ( ( ( P @ X )
       => ( ( dropWhile_fm @ P @ ( replicate_fm @ N @ X ) )
          = nil_fm ) )
      & ( ~ ( P @ X )
       => ( ( dropWhile_fm @ P @ ( replicate_fm @ N @ X ) )
          = ( replicate_fm @ N @ X ) ) ) ) ).

% dropWhile_replicate
thf(fact_1139_dropWhile__replicate,axiom,
    ! [P: tm > $o,X: tm,N: nat] :
      ( ( ( P @ X )
       => ( ( dropWhile_tm @ P @ ( replicate_tm @ N @ X ) )
          = nil_tm ) )
      & ( ~ ( P @ X )
       => ( ( dropWhile_tm @ P @ ( replicate_tm @ N @ X ) )
          = ( replicate_tm @ N @ X ) ) ) ) ).

% dropWhile_replicate
thf(fact_1140_dropWhile__replicate,axiom,
    ! [P: nat > $o,X: nat,N: nat] :
      ( ( ( P @ X )
       => ( ( dropWhile_nat @ P @ ( replicate_nat @ N @ X ) )
          = nil_nat ) )
      & ( ~ ( P @ X )
       => ( ( dropWhile_nat @ P @ ( replicate_nat @ N @ X ) )
          = ( replicate_nat @ N @ X ) ) ) ) ).

% dropWhile_replicate
thf(fact_1141_last__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( N != zero_zero_nat )
     => ( ( last_nat @ ( replicate_nat @ N @ X ) )
        = X ) ) ).

% last_replicate
thf(fact_1142_nths__singleton,axiom,
    ! [A3: set_nat,X: fm] :
      ( ( ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_fm @ ( cons_fm @ X @ nil_fm ) @ A3 )
          = ( cons_fm @ X @ nil_fm ) ) )
      & ( ~ ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_fm @ ( cons_fm @ X @ nil_fm ) @ A3 )
          = nil_fm ) ) ) ).

% nths_singleton
thf(fact_1143_nths__singleton,axiom,
    ! [A3: set_nat,X: tm] :
      ( ( ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_tm @ ( cons_tm @ X @ nil_tm ) @ A3 )
          = ( cons_tm @ X @ nil_tm ) ) )
      & ( ~ ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_tm @ ( cons_tm @ X @ nil_tm ) @ A3 )
          = nil_tm ) ) ) ).

% nths_singleton
thf(fact_1144_nths__singleton,axiom,
    ! [A3: set_nat,X: nat] :
      ( ( ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_nat @ ( cons_nat @ X @ nil_nat ) @ A3 )
          = ( cons_nat @ X @ nil_nat ) ) )
      & ( ~ ( member_nat2 @ zero_zero_nat @ A3 )
       => ( ( nths_nat @ ( cons_nat @ X @ nil_nat ) @ A3 )
          = nil_nat ) ) ) ).

% nths_singleton
thf(fact_1145_nths__map,axiom,
    ! [F: nat > nat,Xs: list_nat,I3: set_nat] :
      ( ( nths_nat @ ( map_nat_nat @ F @ Xs ) @ I3 )
      = ( map_nat_nat @ F @ ( nths_nat @ Xs @ I3 ) ) ) ).

% nths_map
thf(fact_1146_append__replicate__commute,axiom,
    ! [N: nat,X: nat,K2: nat] :
      ( ( append_nat @ ( replicate_nat @ N @ X ) @ ( replicate_nat @ K2 @ X ) )
      = ( append_nat @ ( replicate_nat @ K2 @ X ) @ ( replicate_nat @ N @ X ) ) ) ).

% append_replicate_commute
thf(fact_1147_in__set__nthsD,axiom,
    ! [X: a,Xs: list_a,I3: set_nat] :
      ( ( member_a2 @ X @ ( set_a2 @ ( nths_a @ Xs @ I3 ) ) )
     => ( member_a2 @ X @ ( set_a2 @ Xs ) ) ) ).

% in_set_nthsD
thf(fact_1148_in__set__nthsD,axiom,
    ! [X: nat,Xs: list_nat,I3: set_nat] :
      ( ( member_nat2 @ X @ ( set_nat2 @ ( nths_nat @ Xs @ I3 ) ) )
     => ( member_nat2 @ X @ ( set_nat2 @ Xs ) ) ) ).

% in_set_nthsD
thf(fact_1149_in__set__nthsD,axiom,
    ! [X: fm,Xs: list_fm,I3: set_nat] :
      ( ( member_fm2 @ X @ ( set_fm2 @ ( nths_fm @ Xs @ I3 ) ) )
     => ( member_fm2 @ X @ ( set_fm2 @ Xs ) ) ) ).

% in_set_nthsD
thf(fact_1150_notin__set__nthsI,axiom,
    ! [X: a,Xs: list_a,I3: set_nat] :
      ( ~ ( member_a2 @ X @ ( set_a2 @ Xs ) )
     => ~ ( member_a2 @ X @ ( set_a2 @ ( nths_a @ Xs @ I3 ) ) ) ) ).

% notin_set_nthsI
thf(fact_1151_notin__set__nthsI,axiom,
    ! [X: nat,Xs: list_nat,I3: set_nat] :
      ( ~ ( member_nat2 @ X @ ( set_nat2 @ Xs ) )
     => ~ ( member_nat2 @ X @ ( set_nat2 @ ( nths_nat @ Xs @ I3 ) ) ) ) ).

% notin_set_nthsI
thf(fact_1152_notin__set__nthsI,axiom,
    ! [X: fm,Xs: list_fm,I3: set_nat] :
      ( ~ ( member_fm2 @ X @ ( set_fm2 @ Xs ) )
     => ~ ( member_fm2 @ X @ ( set_fm2 @ ( nths_fm @ Xs @ I3 ) ) ) ) ).

% notin_set_nthsI
thf(fact_1153_sub__term_Osimps_I2_J,axiom,
    ! [V: nat,S2: tm,I2: nat,L2: list_tm] :
      ( ( sub_term @ V @ S2 @ ( fun @ I2 @ L2 ) )
      = ( fun @ I2 @ ( sub_list @ V @ S2 @ L2 ) ) ) ).

% sub_term.simps(2)
thf(fact_1154_sub__list_Osimps_I2_J,axiom,
    ! [V: nat,S2: tm,T: tm,L2: list_tm] :
      ( ( sub_list @ V @ S2 @ ( cons_tm @ T @ L2 ) )
      = ( cons_tm @ ( sub_term @ V @ S2 @ T ) @ ( sub_list @ V @ S2 @ L2 ) ) ) ).

% sub_list.simps(2)
thf(fact_1155_replicate__Suc,axiom,
    ! [N: nat,X: tm] :
      ( ( replicate_tm @ ( suc @ N ) @ X )
      = ( cons_tm @ X @ ( replicate_tm @ N @ X ) ) ) ).

% replicate_Suc
thf(fact_1156_replicate__Suc,axiom,
    ! [N: nat,X: nat] :
      ( ( replicate_nat @ ( suc @ N ) @ X )
      = ( cons_nat @ X @ ( replicate_nat @ N @ X ) ) ) ).

% replicate_Suc
thf(fact_1157_replicate__0,axiom,
    ! [X: fm] :
      ( ( replicate_fm @ zero_zero_nat @ X )
      = nil_fm ) ).

% replicate_0
thf(fact_1158_replicate__0,axiom,
    ! [X: tm] :
      ( ( replicate_tm @ zero_zero_nat @ X )
      = nil_tm ) ).

% replicate_0
thf(fact_1159_replicate__0,axiom,
    ! [X: nat] :
      ( ( replicate_nat @ zero_zero_nat @ X )
      = nil_nat ) ).

% replicate_0
thf(fact_1160_replicate__eqI,axiom,
    ! [Xs: list_a,N: nat,X: a] :
      ( ( ( size_size_list_a @ Xs )
        = N )
     => ( ! [Y3: a] :
            ( ( member_a2 @ Y3 @ ( set_a2 @ Xs ) )
           => ( Y3 = X ) )
       => ( Xs
          = ( replicate_a @ N @ X ) ) ) ) ).

% replicate_eqI
thf(fact_1161_replicate__eqI,axiom,
    ! [Xs: list_fm,N: nat,X: fm] :
      ( ( ( size_size_list_fm @ Xs )
        = N )
     => ( ! [Y3: fm] :
            ( ( member_fm2 @ Y3 @ ( set_fm2 @ Xs ) )
           => ( Y3 = X ) )
       => ( Xs
          = ( replicate_fm @ N @ X ) ) ) ) ).

% replicate_eqI
thf(fact_1162_replicate__eqI,axiom,
    ! [Xs: list_nat,N: nat,X: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = N )
     => ( ! [Y3: nat] :
            ( ( member_nat2 @ Y3 @ ( set_nat2 @ Xs ) )
           => ( Y3 = X ) )
       => ( Xs
          = ( replicate_nat @ N @ X ) ) ) ) ).

% replicate_eqI
thf(fact_1163_replicate__length__same,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ! [X3: nat] :
          ( ( member_nat2 @ X3 @ ( set_nat2 @ Xs ) )
         => ( X3 = X ) )
     => ( ( replicate_nat @ ( size_size_list_nat @ Xs ) @ X )
        = Xs ) ) ).

% replicate_length_same
thf(fact_1164_replicate__app__Cons__same,axiom,
    ! [N: nat,X: tm,Xs: list_tm] :
      ( ( append_tm @ ( replicate_tm @ N @ X ) @ ( cons_tm @ X @ Xs ) )
      = ( cons_tm @ X @ ( append_tm @ ( replicate_tm @ N @ X ) @ Xs ) ) ) ).

% replicate_app_Cons_same
thf(fact_1165_replicate__app__Cons__same,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( append_nat @ ( replicate_nat @ N @ X ) @ ( cons_nat @ X @ Xs ) )
      = ( cons_nat @ X @ ( append_nat @ ( replicate_nat @ N @ X ) @ Xs ) ) ) ).

% replicate_app_Cons_same
thf(fact_1166_filter__replicate,axiom,
    ! [P: fm > $o,X: fm,N: nat] :
      ( ( ( P @ X )
       => ( ( filter_fm @ P @ ( replicate_fm @ N @ X ) )
          = ( replicate_fm @ N @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( filter_fm @ P @ ( replicate_fm @ N @ X ) )
          = nil_fm ) ) ) ).

% filter_replicate
thf(fact_1167_filter__replicate,axiom,
    ! [P: tm > $o,X: tm,N: nat] :
      ( ( ( P @ X )
       => ( ( filter_tm @ P @ ( replicate_tm @ N @ X ) )
          = ( replicate_tm @ N @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( filter_tm @ P @ ( replicate_tm @ N @ X ) )
          = nil_tm ) ) ) ).

% filter_replicate
thf(fact_1168_filter__replicate,axiom,
    ! [P: nat > $o,X: nat,N: nat] :
      ( ( ( P @ X )
       => ( ( filter_nat @ P @ ( replicate_nat @ N @ X ) )
          = ( replicate_nat @ N @ X ) ) )
      & ( ~ ( P @ X )
       => ( ( filter_nat @ P @ ( replicate_nat @ N @ X ) )
          = nil_nat ) ) ) ).

% filter_replicate
thf(fact_1169_comm__append__are__replicate,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = ( append_nat @ Ys @ Xs ) )
     => ? [M2: nat,N3: nat,Zs2: list_nat] :
          ( ( ( concat_nat @ ( replicate_list_nat @ M2 @ Zs2 ) )
            = Xs )
          & ( ( concat_nat @ ( replicate_list_nat @ N3 @ Zs2 ) )
            = Ys ) ) ) ).

% comm_append_are_replicate
thf(fact_1170_map__replicate__const,axiom,
    ! [K2: nat,Lst: list_nat] :
      ( ( map_nat_nat
        @ ^ [X2: nat] : K2
        @ Lst )
      = ( replicate_nat @ ( size_size_list_nat @ Lst ) @ K2 ) ) ).

% map_replicate_const
thf(fact_1171_replicate__length__filter,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( replicate_nat
        @ ( size_size_list_nat
          @ ( filter_nat
            @ ( ^ [Y4: nat,Z4: nat] : ( Y4 = Z4 )
              @ X )
            @ Xs ) )
        @ X )
      = ( filter_nat
        @ ( ^ [Y4: nat,Z4: nat] : ( Y4 = Z4 )
          @ X )
        @ Xs ) ) ).

% replicate_length_filter
thf(fact_1172_replicate__append__same,axiom,
    ! [I2: nat,X: fm] :
      ( ( append_fm @ ( replicate_fm @ I2 @ X ) @ ( cons_fm @ X @ nil_fm ) )
      = ( cons_fm @ X @ ( replicate_fm @ I2 @ X ) ) ) ).

% replicate_append_same
thf(fact_1173_replicate__append__same,axiom,
    ! [I2: nat,X: tm] :
      ( ( append_tm @ ( replicate_tm @ I2 @ X ) @ ( cons_tm @ X @ nil_tm ) )
      = ( cons_tm @ X @ ( replicate_tm @ I2 @ X ) ) ) ).

% replicate_append_same
thf(fact_1174_replicate__append__same,axiom,
    ! [I2: nat,X: nat] :
      ( ( append_nat @ ( replicate_nat @ I2 @ X ) @ ( cons_nat @ X @ nil_nat ) )
      = ( cons_nat @ X @ ( replicate_nat @ I2 @ X ) ) ) ).

% replicate_append_same
thf(fact_1175_sub__list_Osimps_I1_J,axiom,
    ! [V: nat,S2: tm] :
      ( ( sub_list @ V @ S2 @ nil_tm )
      = nil_tm ) ).

% sub_list.simps(1)
thf(fact_1176_remdups__adj__replicate,axiom,
    ! [N: nat,X: fm] :
      ( ( ( N = zero_zero_nat )
       => ( ( remdups_adj_fm @ ( replicate_fm @ N @ X ) )
          = nil_fm ) )
      & ( ( N != zero_zero_nat )
       => ( ( remdups_adj_fm @ ( replicate_fm @ N @ X ) )
          = ( cons_fm @ X @ nil_fm ) ) ) ) ).

% remdups_adj_replicate
thf(fact_1177_remdups__adj__replicate,axiom,
    ! [N: nat,X: tm] :
      ( ( ( N = zero_zero_nat )
       => ( ( remdups_adj_tm @ ( replicate_tm @ N @ X ) )
          = nil_tm ) )
      & ( ( N != zero_zero_nat )
       => ( ( remdups_adj_tm @ ( replicate_tm @ N @ X ) )
          = ( cons_tm @ X @ nil_tm ) ) ) ) ).

% remdups_adj_replicate
thf(fact_1178_remdups__adj__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( remdups_adj_nat @ ( replicate_nat @ N @ X ) )
          = nil_nat ) )
      & ( ( N != zero_zero_nat )
       => ( ( remdups_adj_nat @ ( replicate_nat @ N @ X ) )
          = ( cons_nat @ X @ nil_nat ) ) ) ) ).

% remdups_adj_replicate
thf(fact_1179_remdups__adj__singleton,axiom,
    ! [Xs: list_fm,X: fm] :
      ( ( ( remdups_adj_fm @ Xs )
        = ( cons_fm @ X @ nil_fm ) )
     => ( Xs
        = ( replicate_fm @ ( size_size_list_fm @ Xs ) @ X ) ) ) ).

% remdups_adj_singleton
thf(fact_1180_remdups__adj__singleton,axiom,
    ! [Xs: list_tm,X: tm] :
      ( ( ( remdups_adj_tm @ Xs )
        = ( cons_tm @ X @ nil_tm ) )
     => ( Xs
        = ( replicate_tm @ ( size_size_list_tm @ Xs ) @ X ) ) ) ).

% remdups_adj_singleton
thf(fact_1181_remdups__adj__singleton,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( ( remdups_adj_nat @ Xs )
        = ( cons_nat @ X @ nil_nat ) )
     => ( Xs
        = ( replicate_nat @ ( size_size_list_nat @ Xs ) @ X ) ) ) ).

% remdups_adj_singleton
thf(fact_1182_card__set__1__iff__replicate,axiom,
    ! [Xs: list_fm] :
      ( ( ( finite_card_fm @ ( set_fm2 @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_fm )
        & ? [X2: fm] :
            ( Xs
            = ( replicate_fm @ ( size_size_list_fm @ Xs ) @ X2 ) ) ) ) ).

% card_set_1_iff_replicate
thf(fact_1183_card__set__1__iff__replicate,axiom,
    ! [Xs: list_tm] :
      ( ( ( finite_card_tm @ ( set_tm2 @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_tm )
        & ? [X2: tm] :
            ( Xs
            = ( replicate_tm @ ( size_size_list_tm @ Xs ) @ X2 ) ) ) ) ).

% card_set_1_iff_replicate
thf(fact_1184_card__set__1__iff__replicate,axiom,
    ! [Xs: list_nat] :
      ( ( ( finite_card_nat @ ( set_nat2 @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_nat )
        & ? [X2: nat] :
            ( Xs
            = ( replicate_nat @ ( size_size_list_nat @ Xs ) @ X2 ) ) ) ) ).

% card_set_1_iff_replicate
thf(fact_1185_remdups__adj__length__ge1,axiom,
    ! [Xs: list_fm] :
      ( ( Xs != nil_fm )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_fm @ ( remdups_adj_fm @ Xs ) ) ) ) ).

% remdups_adj_length_ge1
thf(fact_1186_remdups__adj__length__ge1,axiom,
    ! [Xs: list_tm] :
      ( ( Xs != nil_tm )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_tm @ ( remdups_adj_tm @ Xs ) ) ) ) ).

% remdups_adj_length_ge1
thf(fact_1187_remdups__adj__length__ge1,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_nat @ ( remdups_adj_nat @ Xs ) ) ) ) ).

% remdups_adj_length_ge1
thf(fact_1188_set__n__lists,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( set_list_nat2 @ ( n_lists_nat @ N @ Xs ) )
      = ( collect_list_nat
        @ ^ [Ys3: list_nat] :
            ( ( ( size_size_list_nat @ Ys3 )
              = N )
            & ( ord_less_eq_set_nat @ ( set_nat2 @ Ys3 ) @ ( set_nat2 @ Xs ) ) ) ) ) ).

% set_n_lists
thf(fact_1189_length__code,axiom,
    ( size_size_list_nat
    = ( gen_length_nat @ zero_zero_nat ) ) ).

% length_code
thf(fact_1190_subset__code_I1_J,axiom,
    ! [Xs: list_a,B4: set_a] :
      ( ( ord_less_eq_set_a @ ( set_a2 @ Xs ) @ B4 )
      = ( ! [X2: a] :
            ( ( member_a2 @ X2 @ ( set_a2 @ Xs ) )
           => ( member_a2 @ X2 @ B4 ) ) ) ) ).

% subset_code(1)
thf(fact_1191_subset__code_I1_J,axiom,
    ! [Xs: list_nat,B4: set_nat] :
      ( ( ord_less_eq_set_nat @ ( set_nat2 @ Xs ) @ B4 )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Xs ) )
           => ( member_nat2 @ X2 @ B4 ) ) ) ) ).

% subset_code(1)
thf(fact_1192_subset__code_I1_J,axiom,
    ! [Xs: list_fm,B4: set_fm] :
      ( ( ord_less_eq_set_fm @ ( set_fm2 @ Xs ) @ B4 )
      = ( ! [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Xs ) )
           => ( member_fm2 @ X2 @ B4 ) ) ) ) ).

% subset_code(1)
thf(fact_1193_subset__CollectI,axiom,
    ! [B4: set_a,A3: set_a,Q: a > $o,P: a > $o] :
      ( ( ord_less_eq_set_a @ B4 @ A3 )
     => ( ! [X3: a] :
            ( ( member_a2 @ X3 @ B4 )
           => ( ( Q @ X3 )
             => ( P @ X3 ) ) )
       => ( ord_less_eq_set_a
          @ ( collect_a
            @ ^ [X2: a] :
                ( ( member_a2 @ X2 @ B4 )
                & ( Q @ X2 ) ) )
          @ ( collect_a
            @ ^ [X2: a] :
                ( ( member_a2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_1194_subset__CollectI,axiom,
    ! [B4: set_fm,A3: set_fm,Q: fm > $o,P: fm > $o] :
      ( ( ord_less_eq_set_fm @ B4 @ A3 )
     => ( ! [X3: fm] :
            ( ( member_fm2 @ X3 @ B4 )
           => ( ( Q @ X3 )
             => ( P @ X3 ) ) )
       => ( ord_less_eq_set_fm
          @ ( collect_fm
            @ ^ [X2: fm] :
                ( ( member_fm2 @ X2 @ B4 )
                & ( Q @ X2 ) ) )
          @ ( collect_fm
            @ ^ [X2: fm] :
                ( ( member_fm2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_1195_subset__CollectI,axiom,
    ! [B4: set_nat,A3: set_nat,Q: nat > $o,P: nat > $o] :
      ( ( ord_less_eq_set_nat @ B4 @ A3 )
     => ( ! [X3: nat] :
            ( ( member_nat2 @ X3 @ B4 )
           => ( ( Q @ X3 )
             => ( P @ X3 ) ) )
       => ( ord_less_eq_set_nat
          @ ( collect_nat
            @ ^ [X2: nat] :
                ( ( member_nat2 @ X2 @ B4 )
                & ( Q @ X2 ) ) )
          @ ( collect_nat
            @ ^ [X2: nat] :
                ( ( member_nat2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_1196_subset__Collect__iff,axiom,
    ! [B4: set_a,A3: set_a,P: a > $o] :
      ( ( ord_less_eq_set_a @ B4 @ A3 )
     => ( ( ord_less_eq_set_a @ B4
          @ ( collect_a
            @ ^ [X2: a] :
                ( ( member_a2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) )
        = ( ! [X2: a] :
              ( ( member_a2 @ X2 @ B4 )
             => ( P @ X2 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_1197_subset__Collect__iff,axiom,
    ! [B4: set_fm,A3: set_fm,P: fm > $o] :
      ( ( ord_less_eq_set_fm @ B4 @ A3 )
     => ( ( ord_less_eq_set_fm @ B4
          @ ( collect_fm
            @ ^ [X2: fm] :
                ( ( member_fm2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) )
        = ( ! [X2: fm] :
              ( ( member_fm2 @ X2 @ B4 )
             => ( P @ X2 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_1198_subset__Collect__iff,axiom,
    ! [B4: set_nat,A3: set_nat,P: nat > $o] :
      ( ( ord_less_eq_set_nat @ B4 @ A3 )
     => ( ( ord_less_eq_set_nat @ B4
          @ ( collect_nat
            @ ^ [X2: nat] :
                ( ( member_nat2 @ X2 @ A3 )
                & ( P @ X2 ) ) ) )
        = ( ! [X2: nat] :
              ( ( member_nat2 @ X2 @ B4 )
             => ( P @ X2 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_1199_Collect__subset,axiom,
    ! [A3: set_a,P: a > $o] :
      ( ord_less_eq_set_a
      @ ( collect_a
        @ ^ [X2: a] :
            ( ( member_a2 @ X2 @ A3 )
            & ( P @ X2 ) ) )
      @ A3 ) ).

% Collect_subset
thf(fact_1200_Collect__subset,axiom,
    ! [A3: set_fm,P: fm > $o] :
      ( ord_less_eq_set_fm
      @ ( collect_fm
        @ ^ [X2: fm] :
            ( ( member_fm2 @ X2 @ A3 )
            & ( P @ X2 ) ) )
      @ A3 ) ).

% Collect_subset
thf(fact_1201_Collect__subset,axiom,
    ! [A3: set_nat,P: nat > $o] :
      ( ord_less_eq_set_nat
      @ ( collect_nat
        @ ^ [X2: nat] :
            ( ( member_nat2 @ X2 @ A3 )
            & ( P @ X2 ) ) )
      @ A3 ) ).

% Collect_subset
thf(fact_1202_card__length,axiom,
    ! [Xs: list_nat] : ( ord_less_eq_nat @ ( finite_card_nat @ ( set_nat2 @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ).

% card_length
thf(fact_1203_set__subset__Cons,axiom,
    ! [Xs: list_tm,X: tm] : ( ord_less_eq_set_tm @ ( set_tm2 @ Xs ) @ ( set_tm2 @ ( cons_tm @ X @ Xs ) ) ) ).

% set_subset_Cons
thf(fact_1204_set__subset__Cons,axiom,
    ! [Xs: list_nat,X: nat] : ( ord_less_eq_set_nat @ ( set_nat2 @ Xs ) @ ( set_nat2 @ ( cons_nat @ X @ Xs ) ) ) ).

% set_subset_Cons
thf(fact_1205_impossible__Cons,axiom,
    ! [Xs: list_tm,Ys: list_tm,X: tm] :
      ( ( ord_less_eq_nat @ ( size_size_list_tm @ Xs ) @ ( size_size_list_tm @ Ys ) )
     => ( Xs
       != ( cons_tm @ X @ Ys ) ) ) ).

% impossible_Cons
thf(fact_1206_impossible__Cons,axiom,
    ! [Xs: list_nat,Ys: list_nat,X: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) )
     => ( Xs
       != ( cons_nat @ X @ Ys ) ) ) ).

% impossible_Cons
thf(fact_1207_length__filter__le,axiom,
    ! [P: nat > $o,Xs: list_nat] : ( ord_less_eq_nat @ ( size_size_list_nat @ ( filter_nat @ P @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ).

% length_filter_le
thf(fact_1208_remdups__adj__length,axiom,
    ! [Xs: list_nat] : ( ord_less_eq_nat @ ( size_size_list_nat @ ( remdups_adj_nat @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ).

% remdups_adj_length
thf(fact_1209_length__dropWhile__le,axiom,
    ! [P: nat > $o,Xs: list_nat] : ( ord_less_eq_nat @ ( size_size_list_nat @ ( dropWhile_nat @ P @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ).

% length_dropWhile_le
thf(fact_1210_subset__code_I2_J,axiom,
    ! [A3: set_a,Ys: list_a] :
      ( ( ord_less_eq_set_a @ A3 @ ( coset_a @ Ys ) )
      = ( ! [X2: a] :
            ( ( member_a2 @ X2 @ ( set_a2 @ Ys ) )
           => ~ ( member_a2 @ X2 @ A3 ) ) ) ) ).

% subset_code(2)
thf(fact_1211_subset__code_I2_J,axiom,
    ! [A3: set_nat,Ys: list_nat] :
      ( ( ord_less_eq_set_nat @ A3 @ ( coset_nat @ Ys ) )
      = ( ! [X2: nat] :
            ( ( member_nat2 @ X2 @ ( set_nat2 @ Ys ) )
           => ~ ( member_nat2 @ X2 @ A3 ) ) ) ) ).

% subset_code(2)
thf(fact_1212_subset__code_I2_J,axiom,
    ! [A3: set_fm,Ys: list_fm] :
      ( ( ord_less_eq_set_fm @ A3 @ ( coset_fm @ Ys ) )
      = ( ! [X2: fm] :
            ( ( member_fm2 @ X2 @ ( set_fm2 @ Ys ) )
           => ~ ( member_fm2 @ X2 @ A3 ) ) ) ) ).

% subset_code(2)
thf(fact_1213_gen__length__code_I1_J,axiom,
    ! [N: nat] :
      ( ( gen_length_fm @ N @ nil_fm )
      = N ) ).

% gen_length_code(1)
thf(fact_1214_gen__length__code_I1_J,axiom,
    ! [N: nat] :
      ( ( gen_length_tm @ N @ nil_tm )
      = N ) ).

% gen_length_code(1)
thf(fact_1215_gen__length__code_I1_J,axiom,
    ! [N: nat] :
      ( ( gen_length_nat @ N @ nil_nat )
      = N ) ).

% gen_length_code(1)
thf(fact_1216_arg__min__list_Osimps_I2_J,axiom,
    ! [F: tm > nat,X: tm,Y: tm,Zs: list_tm] :
      ( ( arg_min_list_tm_nat @ F @ ( cons_tm @ X @ ( cons_tm @ Y @ Zs ) ) )
      = ( if_tm @ ( ord_less_eq_nat @ ( F @ X ) @ ( F @ ( arg_min_list_tm_nat @ F @ ( cons_tm @ Y @ Zs ) ) ) ) @ X @ ( arg_min_list_tm_nat @ F @ ( cons_tm @ Y @ Zs ) ) ) ) ).

% arg_min_list.simps(2)
thf(fact_1217_arg__min__list_Osimps_I2_J,axiom,
    ! [F: nat > nat,X: nat,Y: nat,Zs: list_nat] :
      ( ( arg_min_list_nat_nat @ F @ ( cons_nat @ X @ ( cons_nat @ Y @ Zs ) ) )
      = ( if_nat @ ( ord_less_eq_nat @ ( F @ X ) @ ( F @ ( arg_min_list_nat_nat @ F @ ( cons_nat @ Y @ Zs ) ) ) ) @ X @ ( arg_min_list_nat_nat @ F @ ( cons_nat @ Y @ Zs ) ) ) ) ).

% arg_min_list.simps(2)
thf(fact_1218_Suc__le__length__iff,axiom,
    ! [N: nat,Xs: list_tm] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( size_size_list_tm @ Xs ) )
      = ( ? [X2: tm,Ys3: list_tm] :
            ( ( Xs
              = ( cons_tm @ X2 @ Ys3 ) )
            & ( ord_less_eq_nat @ N @ ( size_size_list_tm @ Ys3 ) ) ) ) ) ).

% Suc_le_length_iff
thf(fact_1219_Suc__le__length__iff,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( size_size_list_nat @ Xs ) )
      = ( ? [X2: nat,Ys3: list_nat] :
            ( ( Xs
              = ( cons_nat @ X2 @ Ys3 ) )
            & ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Ys3 ) ) ) ) ) ).

% Suc_le_length_iff
thf(fact_1220_subset__code_I3_J,axiom,
    ~ ( ord_less_eq_set_fm @ ( coset_fm @ nil_fm ) @ ( set_fm2 @ nil_fm ) ) ).

% subset_code(3)
thf(fact_1221_subset__code_I3_J,axiom,
    ~ ( ord_less_eq_set_tm @ ( coset_tm @ nil_tm ) @ ( set_tm2 @ nil_tm ) ) ).

% subset_code(3)
thf(fact_1222_subset__code_I3_J,axiom,
    ~ ( ord_less_eq_set_nat @ ( coset_nat @ nil_nat ) @ ( set_nat2 @ nil_nat ) ) ).

% subset_code(3)
thf(fact_1223_gen__length__code_I2_J,axiom,
    ! [N: nat,X: tm,Xs: list_tm] :
      ( ( gen_length_tm @ N @ ( cons_tm @ X @ Xs ) )
      = ( gen_length_tm @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_1224_gen__length__code_I2_J,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( gen_length_nat @ N @ ( cons_nat @ X @ Xs ) )
      = ( gen_length_nat @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_1225_card__Collect__le__nat,axiom,
    ! [N: nat] :
      ( ( finite_card_nat
        @ ( collect_nat
          @ ^ [I: nat] : ( ord_less_eq_nat @ I @ N ) ) )
      = ( suc @ N ) ) ).

% card_Collect_le_nat
thf(fact_1226_max__def__raw,axiom,
    ( ord_max_nat
    = ( ^ [A: nat,B: nat] : ( if_nat @ ( ord_less_eq_nat @ A @ B ) @ B @ A ) ) ) ).

% max_def_raw
thf(fact_1227_arg__min__list_Oelims,axiom,
    ! [X: fm > nat,Xa: list_fm,Y: fm] :
      ( ( ( arg_min_list_fm_nat @ X @ Xa )
        = Y )
     => ( ! [X3: fm] :
            ( ( Xa
              = ( cons_fm @ X3 @ nil_fm ) )
           => ( Y != X3 ) )
       => ( ! [X3: fm,Y3: fm,Zs2: list_fm] :
              ( ( Xa
                = ( cons_fm @ X3 @ ( cons_fm @ Y3 @ Zs2 ) ) )
             => ( Y
               != ( if_fm @ ( ord_less_eq_nat @ ( X @ X3 ) @ ( X @ ( arg_min_list_fm_nat @ X @ ( cons_fm @ Y3 @ Zs2 ) ) ) ) @ X3 @ ( arg_min_list_fm_nat @ X @ ( cons_fm @ Y3 @ Zs2 ) ) ) ) )
         => ~ ( ( Xa = nil_fm )
             => ( Y != undefined_fm ) ) ) ) ) ).

% arg_min_list.elims
thf(fact_1228_arg__min__list_Oelims,axiom,
    ! [X: tm > nat,Xa: list_tm,Y: tm] :
      ( ( ( arg_min_list_tm_nat @ X @ Xa )
        = Y )
     => ( ! [X3: tm] :
            ( ( Xa
              = ( cons_tm @ X3 @ nil_tm ) )
           => ( Y != X3 ) )
       => ( ! [X3: tm,Y3: tm,Zs2: list_tm] :
              ( ( Xa
                = ( cons_tm @ X3 @ ( cons_tm @ Y3 @ Zs2 ) ) )
             => ( Y
               != ( if_tm @ ( ord_less_eq_nat @ ( X @ X3 ) @ ( X @ ( arg_min_list_tm_nat @ X @ ( cons_tm @ Y3 @ Zs2 ) ) ) ) @ X3 @ ( arg_min_list_tm_nat @ X @ ( cons_tm @ Y3 @ Zs2 ) ) ) ) )
         => ~ ( ( Xa = nil_tm )
             => ( Y != undefined_tm ) ) ) ) ) ).

% arg_min_list.elims
thf(fact_1229_arg__min__list_Oelims,axiom,
    ! [X: nat > nat,Xa: list_nat,Y: nat] :
      ( ( ( arg_min_list_nat_nat @ X @ Xa )
        = Y )
     => ( ! [X3: nat] :
            ( ( Xa
              = ( cons_nat @ X3 @ nil_nat ) )
           => ( Y != X3 ) )
       => ( ! [X3: nat,Y3: nat,Zs2: list_nat] :
              ( ( Xa
                = ( cons_nat @ X3 @ ( cons_nat @ Y3 @ Zs2 ) ) )
             => ( Y
               != ( if_nat @ ( ord_less_eq_nat @ ( X @ X3 ) @ ( X @ ( arg_min_list_nat_nat @ X @ ( cons_nat @ Y3 @ Zs2 ) ) ) ) @ X3 @ ( arg_min_list_nat_nat @ X @ ( cons_nat @ Y3 @ Zs2 ) ) ) ) )
         => ~ ( ( Xa = nil_nat )
             => ( Y != undefined_nat ) ) ) ) ) ).

% arg_min_list.elims
thf(fact_1230_tm_Osize_I4_J,axiom,
    ! [X23: nat] :
      ( ( size_size_tm @ ( var @ X23 ) )
      = zero_zero_nat ) ).

% tm.size(4)
thf(fact_1231_pred__subset__eq,axiom,
    ! [R: set_a,S: set_a] :
      ( ( ord_less_eq_a_o
        @ ^ [X2: a] : ( member_a2 @ X2 @ R )
        @ ^ [X2: a] : ( member_a2 @ X2 @ S ) )
      = ( ord_less_eq_set_a @ R @ S ) ) ).

% pred_subset_eq
thf(fact_1232_pred__subset__eq,axiom,
    ! [R: set_nat,S: set_nat] :
      ( ( ord_less_eq_nat_o
        @ ^ [X2: nat] : ( member_nat2 @ X2 @ R )
        @ ^ [X2: nat] : ( member_nat2 @ X2 @ S ) )
      = ( ord_less_eq_set_nat @ R @ S ) ) ).

% pred_subset_eq
thf(fact_1233_pred__subset__eq,axiom,
    ! [R: set_fm,S: set_fm] :
      ( ( ord_less_eq_fm_o
        @ ^ [X2: fm] : ( member_fm2 @ X2 @ R )
        @ ^ [X2: fm] : ( member_fm2 @ X2 @ S ) )
      = ( ord_less_eq_set_fm @ R @ S ) ) ).

% pred_subset_eq
thf(fact_1234_list_Opred__mono,axiom,
    ! [P: fm > $o,Pa: fm > $o] :
      ( ( ord_less_eq_fm_o @ P @ Pa )
     => ( ord_le6518561683347902116t_fm_o @ ( list_all_fm @ P ) @ ( list_all_fm @ Pa ) ) ) ).

% list.pred_mono
thf(fact_1235_list_Opred__mono,axiom,
    ! [P: nat > $o,Pa: nat > $o] :
      ( ( ord_less_eq_nat_o @ P @ Pa )
     => ( ord_le1520216061033275535_nat_o @ ( list_all_nat @ P ) @ ( list_all_nat @ Pa ) ) ) ).

% list.pred_mono
thf(fact_1236_card__Collect__less__nat,axiom,
    ! [N: nat] :
      ( ( finite_card_nat
        @ ( collect_nat
          @ ^ [I: nat] : ( ord_less_nat @ I @ N ) ) )
      = N ) ).

% card_Collect_less_nat
thf(fact_1237_sorted__wrt__less__idx,axiom,
    ! [Ns: list_nat,I2: nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ Ns )
     => ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Ns ) )
       => ( ord_less_eq_nat @ I2 @ ( nth_nat @ Ns @ I2 ) ) ) ) ).

% sorted_wrt_less_idx
thf(fact_1238_card__less,axiom,
    ! [M3: set_nat,I2: nat] :
      ( ( member_nat2 @ zero_zero_nat @ M3 )
     => ( ( finite_card_nat
          @ ( collect_nat
            @ ^ [K: nat] :
                ( ( member_nat2 @ K @ M3 )
                & ( ord_less_nat @ K @ ( suc @ I2 ) ) ) ) )
       != zero_zero_nat ) ) ).

% card_less
thf(fact_1239_card__less__Suc,axiom,
    ! [M3: set_nat,I2: nat] :
      ( ( member_nat2 @ zero_zero_nat @ M3 )
     => ( ( suc
          @ ( finite_card_nat
            @ ( collect_nat
              @ ^ [K: nat] :
                  ( ( member_nat2 @ ( suc @ K ) @ M3 )
                  & ( ord_less_nat @ K @ I2 ) ) ) ) )
        = ( finite_card_nat
          @ ( collect_nat
            @ ^ [K: nat] :
                ( ( member_nat2 @ K @ M3 )
                & ( ord_less_nat @ K @ ( suc @ I2 ) ) ) ) ) ) ) ).

% card_less_Suc
thf(fact_1240_card__less__Suc2,axiom,
    ! [M3: set_nat,I2: nat] :
      ( ~ ( member_nat2 @ zero_zero_nat @ M3 )
     => ( ( finite_card_nat
          @ ( collect_nat
            @ ^ [K: nat] :
                ( ( member_nat2 @ ( suc @ K ) @ M3 )
                & ( ord_less_nat @ K @ I2 ) ) ) )
        = ( finite_card_nat
          @ ( collect_nat
            @ ^ [K: nat] :
                ( ( member_nat2 @ K @ M3 )
                & ( ord_less_nat @ K @ ( suc @ I2 ) ) ) ) ) ) ) ).

% card_less_Suc2
thf(fact_1241_tl__upt,axiom,
    ! [M: nat,N: nat] :
      ( ( tl_nat @ ( upt @ M @ N ) )
      = ( upt @ ( suc @ M ) @ N ) ) ).

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

% hd_upt
thf(fact_1243_upt__conv__Nil,axiom,
    ! [J2: nat,I2: nat] :
      ( ( ord_less_eq_nat @ J2 @ I2 )
     => ( ( upt @ I2 @ J2 )
        = nil_nat ) ) ).

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

% upt_eq_Nil_conv
thf(fact_1245_length__upt,axiom,
    ! [I2: nat,J2: nat] :
      ( ( size_size_list_nat @ ( upt @ I2 @ J2 ) )
      = ( minus_minus_nat @ J2 @ I2 ) ) ).

% length_upt
thf(fact_1246_map__Suc__upt,axiom,
    ! [M: nat,N: nat] :
      ( ( map_nat_nat @ suc @ ( upt @ M @ N ) )
      = ( upt @ ( suc @ M ) @ ( suc @ N ) ) ) ).

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

% upt_conv_Cons
thf(fact_1248_upt__rec,axiom,
    ( upt
    = ( ^ [I: nat,J: nat] : ( if_list_nat @ ( ord_less_nat @ I @ J ) @ ( cons_nat @ I @ ( upt @ ( suc @ I ) @ J ) ) @ nil_nat ) ) ) ).

% upt_rec
thf(fact_1249_upt__Suc,axiom,
    ! [I2: nat,J2: nat] :
      ( ( ( ord_less_eq_nat @ I2 @ J2 )
       => ( ( upt @ I2 @ ( suc @ J2 ) )
          = ( append_nat @ ( upt @ I2 @ J2 ) @ ( cons_nat @ J2 @ nil_nat ) ) ) )
      & ( ~ ( ord_less_eq_nat @ I2 @ J2 )
       => ( ( upt @ I2 @ ( suc @ J2 ) )
          = nil_nat ) ) ) ).

% upt_Suc
thf(fact_1250_upt__Suc__append,axiom,
    ! [I2: nat,J2: nat] :
      ( ( ord_less_eq_nat @ I2 @ J2 )
     => ( ( upt @ I2 @ ( suc @ J2 ) )
        = ( append_nat @ ( upt @ I2 @ J2 ) @ ( cons_nat @ J2 @ nil_nat ) ) ) ) ).

% upt_Suc_append
thf(fact_1251_upt__0,axiom,
    ! [I2: nat] :
      ( ( upt @ I2 @ zero_zero_nat )
      = nil_nat ) ).

% upt_0
thf(fact_1252_upt__conv__Cons__Cons,axiom,
    ! [M: nat,N: nat,Ns: list_nat,Q2: nat] :
      ( ( ( cons_nat @ M @ ( cons_nat @ N @ Ns ) )
        = ( upt @ M @ Q2 ) )
      = ( ( cons_nat @ N @ Ns )
        = ( upt @ ( suc @ M ) @ Q2 ) ) ) ).

% upt_conv_Cons_Cons
thf(fact_1253_sorted__wrt__upt,axiom,
    ! [M: nat,N: nat] : ( sorted_wrt_nat @ ord_less_nat @ ( upt @ M @ N ) ) ).

% sorted_wrt_upt
thf(fact_1254_sorted__upt,axiom,
    ! [M: nat,N: nat] : ( sorted_wrt_nat @ ord_less_eq_nat @ ( upt @ M @ N ) ) ).

% sorted_upt
thf(fact_1255_map__decr__upt,axiom,
    ! [M: nat,N: nat] :
      ( ( map_nat_nat
        @ ^ [N2: nat] : ( minus_minus_nat @ N2 @ ( suc @ zero_zero_nat ) )
        @ ( upt @ ( suc @ M ) @ ( suc @ N ) ) )
      = ( upt @ M @ N ) ) ).

% map_decr_upt
thf(fact_1256_last__upt,axiom,
    ! [I2: nat,J2: nat] :
      ( ( ord_less_nat @ I2 @ J2 )
     => ( ( last_nat @ ( upt @ I2 @ J2 ) )
        = ( minus_minus_nat @ J2 @ one_one_nat ) ) ) ).

% last_upt
thf(fact_1257_substt_Osimps_I1_J,axiom,
    ! [K2: nat,I2: nat,S2: tm] :
      ( ( ( ord_less_nat @ K2 @ I2 )
       => ( ( substt @ ( var @ I2 ) @ S2 @ K2 )
          = ( var @ ( minus_minus_nat @ I2 @ one_one_nat ) ) ) )
      & ( ~ ( ord_less_nat @ K2 @ I2 )
       => ( ( ( I2 = K2 )
           => ( ( substt @ ( var @ I2 ) @ S2 @ K2 )
              = S2 ) )
          & ( ( I2 != K2 )
           => ( ( substt @ ( var @ I2 ) @ S2 @ K2 )
              = ( var @ I2 ) ) ) ) ) ) ).

% substt.simps(1)
thf(fact_1258_sub__term_Osimps_I1_J,axiom,
    ! [N: nat,V: nat,S2: tm] :
      ( ( ( ord_less_nat @ N @ V )
       => ( ( sub_term @ V @ S2 @ ( var @ N ) )
          = ( var @ N ) ) )
      & ( ~ ( ord_less_nat @ N @ V )
       => ( ( ( N = V )
           => ( ( sub_term @ V @ S2 @ ( var @ N ) )
              = S2 ) )
          & ( ( N != V )
           => ( ( sub_term @ V @ S2 @ ( var @ N ) )
              = ( var @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ) ) ) ).

% sub_term.simps(1)
thf(fact_1259_upt__rec__numeral,axiom,
    ! [M: num,N: num] :
      ( ( ( ord_less_nat @ ( numeral_numeral_nat @ M ) @ ( numeral_numeral_nat @ N ) )
       => ( ( upt @ ( numeral_numeral_nat @ M ) @ ( numeral_numeral_nat @ N ) )
          = ( cons_nat @ ( numeral_numeral_nat @ M ) @ ( upt @ ( suc @ ( numeral_numeral_nat @ M ) ) @ ( numeral_numeral_nat @ N ) ) ) ) )
      & ( ~ ( ord_less_nat @ ( numeral_numeral_nat @ M ) @ ( numeral_numeral_nat @ N ) )
       => ( ( upt @ ( numeral_numeral_nat @ M ) @ ( numeral_numeral_nat @ N ) )
          = nil_nat ) ) ) ).

% upt_rec_numeral
thf(fact_1260_sort__upt,axiom,
    ! [M: nat,N: nat] :
      ( ( linord738340561235409698at_nat
        @ ^ [X2: nat] : X2
        @ ( upt @ M @ N ) )
      = ( upt @ M @ N ) ) ).

% sort_upt
thf(fact_1261_drop__upt,axiom,
    ! [M: nat,I2: nat,J2: nat] :
      ( ( drop_nat @ M @ ( upt @ I2 @ J2 ) )
      = ( upt @ ( plus_plus_nat @ I2 @ M ) @ J2 ) ) ).

% drop_upt
thf(fact_1262_take__upt,axiom,
    ! [I2: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ I2 @ M ) @ N )
     => ( ( take_nat @ M @ ( upt @ I2 @ N ) )
        = ( upt @ I2 @ ( plus_plus_nat @ I2 @ M ) ) ) ) ).

% take_upt
thf(fact_1263_nth__upt,axiom,
    ! [I2: nat,K2: nat,J2: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ I2 @ K2 ) @ J2 )
     => ( ( nth_nat @ ( upt @ I2 @ J2 ) @ K2 )
        = ( plus_plus_nat @ I2 @ K2 ) ) ) ).

% nth_upt
thf(fact_1264_upt__add__eq__append,axiom,
    ! [I2: nat,J2: nat,K2: nat] :
      ( ( ord_less_eq_nat @ I2 @ J2 )
     => ( ( upt @ I2 @ ( plus_plus_nat @ J2 @ K2 ) )
        = ( append_nat @ ( upt @ I2 @ J2 ) @ ( upt @ J2 @ ( plus_plus_nat @ J2 @ K2 ) ) ) ) ) ).

% upt_add_eq_append
thf(fact_1265_inc__term_Osimps_I1_J,axiom,
    ! [N: nat] :
      ( ( inc_term @ ( var @ N ) )
      = ( var @ ( plus_plus_nat @ N @ one_one_nat ) ) ) ).

% inc_term.simps(1)
thf(fact_1266_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_1267_upt__eq__Cons__conv,axiom,
    ! [I2: nat,J2: nat,X: nat,Xs: list_nat] :
      ( ( ( upt @ I2 @ J2 )
        = ( cons_nat @ X @ Xs ) )
      = ( ( ord_less_nat @ I2 @ J2 )
        & ( I2 = X )
        & ( ( upt @ ( plus_plus_nat @ I2 @ one_one_nat ) @ J2 )
          = Xs ) ) ) ).

% upt_eq_Cons_conv
thf(fact_1268_tm_Osize_I3_J,axiom,
    ! [X11: nat,X12: list_tm] :
      ( ( size_size_tm @ ( fun @ X11 @ X12 ) )
      = ( plus_plus_nat @ ( size_list_tm @ size_size_tm @ X12 ) @ ( suc @ zero_zero_nat ) ) ) ).

% tm.size(3)
thf(fact_1269_tm_Osize__gen_I1_J,axiom,
    ! [X11: nat,X12: list_tm] :
      ( ( size_tm @ ( fun @ X11 @ X12 ) )
      = ( plus_plus_nat @ ( size_list_tm @ size_tm @ X12 ) @ ( suc @ zero_zero_nat ) ) ) ).

% tm.size_gen(1)
thf(fact_1270_distinct__upt,axiom,
    ! [I2: nat,J2: nat] : ( distinct_nat @ ( upt @ I2 @ J2 ) ) ).

% distinct_upt
thf(fact_1271_inj__on__diff__nat,axiom,
    ! [N4: set_nat,K2: nat] :
      ( ! [N3: nat] :
          ( ( member_nat2 @ N3 @ N4 )
         => ( ord_less_eq_nat @ K2 @ N3 ) )
     => ( inj_on_nat_nat
        @ ^ [N2: nat] : ( minus_minus_nat @ N2 @ K2 )
        @ N4 ) ) ).

% inj_on_diff_nat
thf(fact_1272_paramst_Osimps_I1_J,axiom,
    ! [N: nat] :
      ( ( paramst @ ( var @ N ) )
      = bot_bot_set_nat ) ).

% paramst.simps(1)
thf(fact_1273_paramsts_Osimps_I1_J,axiom,
    ( ( paramsts @ nil_tm )
    = bot_bot_set_nat ) ).

% paramsts.simps(1)
thf(fact_1274_paramst_H_Osimps_I1_J,axiom,
    ! [N: nat] :
      ( ( paramst2 @ ( var @ N ) )
      = bot_bot_set_nat ) ).

% paramst'.simps(1)
thf(fact_1275_paramst_H_H_Osimps_I1_J,axiom,
    ! [N: nat] :
      ( ( paramst3 @ ( var @ N ) )
      = bot_bot_set_nat ) ).

% paramst''.simps(1)

% Helper facts (17)
thf(help_If_2_1_If_001t__Nat__Onat_T,axiom,
    ! [X: nat,Y: nat] :
      ( ( if_nat @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Nat__Onat_T,axiom,
    ! [X: nat,Y: nat] :
      ( ( if_nat @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__SeCaV__Ofm_T,axiom,
    ! [X: fm,Y: fm] :
      ( ( if_fm @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__SeCaV__Ofm_T,axiom,
    ! [X: fm,Y: fm] :
      ( ( if_fm @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__SeCaV__Otm_T,axiom,
    ! [X: tm,Y: tm] :
      ( ( if_tm @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__SeCaV__Otm_T,axiom,
    ! [X: tm,Y: tm] :
      ( ( if_tm @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X: list_a,Y: list_a] :
      ( ( if_list_a @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X: list_a,Y: list_a] :
      ( ( if_list_a @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__List__Olist_It__Nat__Onat_J_T,axiom,
    ! [X: list_nat,Y: list_nat] :
      ( ( if_list_nat @ $false @ X @ Y )
      = Y ) ).

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

thf(help_If_2_1_If_001t__List__Olist_It__SeCaV__Ofm_J_T,axiom,
    ! [X: list_fm,Y: list_fm] :
      ( ( if_list_fm @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_It__SeCaV__Ofm_J_T,axiom,
    ! [X: list_fm,Y: list_fm] :
      ( ( if_list_fm @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__List__Olist_It__SeCaV__Otm_J_T,axiom,
    ! [X: list_tm,Y: list_tm] :
      ( ( if_list_tm @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_It__SeCaV__Otm_J_T,axiom,
    ! [X: list_tm,Y: list_tm] :
      ( ( if_list_tm @ $true @ X @ Y )
      = X ) ).

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

thf(help_If_2_1_If_001_062_It__List__Olist_Itf__a_J_Mtf__a_J_T,axiom,
    ! [X: list_a > a,Y: list_a > a] :
      ( ( if_list_a_a @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001_062_It__List__Olist_Itf__a_J_Mtf__a_J_T,axiom,
    ! [X: list_a > a,Y: list_a > a] :
      ( ( if_list_a_a @ $true @ X @ Y )
      = X ) ).

% Conjectures (3)
thf(conj_0,hypothesis,
    ! [I4: nat,L3: list_a] :
      ( ( list_all_a
        @ ^ [X2: a] : ( member_a2 @ X2 @ u )
        @ L3 )
     => ( member_a2 @ ( f @ I4 @ L3 ) @ u ) ) ).

thf(conj_1,hypothesis,
    member_a2 @ x @ u ).

thf(conj_2,conjecture,
    ! [I5: nat,L4: list_a] :
      ( ~ ( list_all_a
          @ ^ [X2: a] : ( member_a2 @ X2 @ u )
          @ L4 )
      | ( member_a2
        @ ( fun_upd_nat_list_a_a @ f @ i
          @ ^ [Uu: list_a] : x
          @ I5
          @ L4 )
        @ u ) ) ).

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