TPTP Problem File: SLH0977^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    : Frequency_Moments/0082_K_Smallest/prob_00268_009324__19825192_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1428 ( 506 unt; 160 typ;   0 def)
%            Number of atoms       : 3688 (1348 equ;   0 cnn)
%            Maximal formula atoms :   12 (   2 avg)
%            Number of connectives : 11838 ( 384   ~;  55   |; 232   &;9435   @)
%                                         (   0 <=>;1732  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   29 (   7 avg)
%            Number of types       :   13 (  12 usr)
%            Number of type conns  :  673 ( 673   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  151 ( 148 usr;  16 con; 0-3 aty)
%            Number of variables   : 3684 ( 331   ^;3244   !; 109   ?;3684   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-19 12:13:38.721
%------------------------------------------------------------------------------
% Could-be-implicit typings (12)
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__Nat__Onat_J_J,type,
    set_list_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__Multiset__Omultiset_It__Nat__Onat_J,type,
    multiset_nat: $tType ).

thf(ty_n_t__Multiset__Omultiset_Itf__a_J,type,
    multiset_a: $tType ).

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

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

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

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

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

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

% Explicit typings (148)
thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001t__Nat__Onat,type,
    bNF_Gr6352880689984616693cc_nat: set_list_nat > list_nat > set_nat ).

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

thf(sy_c_Finite__Set_Ocard_001tf__a,type,
    finite_card_a: set_a > nat ).

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_001t__Multiset__Omultiset_It__Nat__Onat_J,type,
    minus_8522176038001411705et_nat: multiset_nat > multiset_nat > multiset_nat ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Multiset__Omultiset_Itf__a_J,type,
    minus_3765977307040488491iset_a: multiset_a > multiset_a > multiset_a ).

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_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_Oone__class_Oone_001t__Set__Oset_It__Nat__Onat_J,type,
    one_one_set_nat: set_nat ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Multiset__Omultiset_It__Nat__Onat_J,type,
    zero_z7348594199698428585et_nat: multiset_nat ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Multiset__Omultiset_Itf__a_J,type,
    zero_zero_multiset_a: multiset_a ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat,type,
    zero_zero_nat: nat ).

thf(sy_c_K__Smallest_Ocount__le_001t__Nat__Onat,type,
    k_count_le_nat: nat > multiset_nat > nat ).

thf(sy_c_K__Smallest_Ocount__le_001tf__a,type,
    k_count_le_a: a > multiset_a > nat ).

thf(sy_c_K__Smallest_Ocount__less_001t__Nat__Onat,type,
    k_count_less_nat: nat > multiset_nat > nat ).

thf(sy_c_K__Smallest_Ocount__less_001tf__a,type,
    k_count_less_a: a > multiset_a > nat ).

thf(sy_c_K__Smallest_Oleast_001t__Nat__Onat,type,
    k_least_nat: nat > set_nat > set_nat ).

thf(sy_c_K__Smallest_Onth__mset_001t__Nat__Onat,type,
    k_nth_mset_nat: nat > multiset_nat > nat ).

thf(sy_c_K__Smallest_Onth__mset_001tf__a,type,
    k_nth_mset_a: nat > multiset_a > a ).

thf(sy_c_K__Smallest_Orank__of_001t__Nat__Onat,type,
    k_rank_of_nat: nat > set_nat > nat ).

thf(sy_c_K__Smallest_Orank__of_001tf__a,type,
    k_rank_of_a: a > set_a > nat ).

thf(sy_c_Lattices_Oinf__class_Oinf_001_062_It__Nat__Onat_M_Eo_J,type,
    inf_inf_nat_o: ( nat > $o ) > ( nat > $o ) > nat > $o ).

thf(sy_c_Lattices_Oinf__class_Oinf_001t__Nat__Onat,type,
    inf_inf_nat: nat > nat > nat ).

thf(sy_c_Lattices_Oinf__class_Oinf_001t__Set__Oset_It__Nat__Onat_J,type,
    inf_inf_set_nat: set_nat > set_nat > set_nat ).

thf(sy_c_Lattices_Oinf__class_Oinf_001t__Set__Oset_Itf__a_J,type,
    inf_inf_set_a: set_a > set_a > set_a ).

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

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

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

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

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

thf(sy_c_List_Oconcat_001tf__a,type,
    concat_a: list_list_a > list_a ).

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

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

thf(sy_c_List_Ocount__list_001t__Nat__Onat,type,
    count_list_nat: list_nat > nat > nat ).

thf(sy_c_List_Ocount__list_001tf__a,type,
    count_list_a: list_a > a > nat ).

thf(sy_c_List_Odistinct_001t__List__Olist_It__Nat__Onat_J,type,
    distinct_list_nat: list_list_nat > $o ).

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

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

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

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

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_Itf__a_J,type,
    filter_list_a: ( list_a > $o ) > list_list_a > list_list_a ).

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

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

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

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

thf(sy_c_List_Olinorder__class_Oinsort__insert__key_001t__Nat__Onat_001t__Nat__Onat,type,
    linord1921536354676448932at_nat: ( nat > nat ) > nat > list_nat > list_nat ).

thf(sy_c_List_Olinorder__class_Oinsort__insert__key_001tf__a_001tf__a,type,
    linord1239490678762408450ey_a_a: ( a > a ) > a > list_a > list_a ).

thf(sy_c_List_Olinorder__class_Oinsort__key_001t__Nat__Onat_001t__Nat__Onat,type,
    linord8961336180081300637at_nat: ( nat > nat ) > nat > list_nat > list_nat ).

thf(sy_c_List_Olinorder__class_Oinsort__key_001tf__a_001tf__a,type,
    linord5015558716440999803ey_a_a: ( a > a ) > a > list_a > list_a ).

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

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

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001tf__a,type,
    nil_a: list_a ).

thf(sy_c_List_Olist_Orec__list_001t__Set__Oset_It__Nat__Onat_J_001t__Nat__Onat,type,
    rec_list_set_nat_nat: set_nat > ( nat > list_nat > set_nat > set_nat ) > list_nat > set_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_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_001tf__a,type,
    set_a2: list_a > set_a ).

thf(sy_c_List_Olist__ex_001t__Nat__Onat,type,
    list_ex_nat: ( nat > $o ) > list_nat > $o ).

thf(sy_c_List_Olist__ex_001tf__a,type,
    list_ex_a: ( a > $o ) > list_a > $o ).

thf(sy_c_List_Olist__update_001t__Nat__Onat,type,
    list_update_nat: list_nat > nat > nat > list_nat ).

thf(sy_c_List_Olist__update_001tf__a,type,
    list_update_a: list_a > nat > a > list_a ).

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_001tf__a,type,
    n_lists_a: nat > list_a > list_list_a ).

thf(sy_c_List_Onth_001t__List__Olist_It__Nat__Onat_J,type,
    nth_list_nat: list_list_nat > nat > list_nat ).

thf(sy_c_List_Onth_001t__List__Olist_Itf__a_J,type,
    nth_list_a: list_list_a > nat > list_a ).

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

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

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

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

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_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_001tf__a,type,
    remdups_adj_a: list_a > list_a ).

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

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

thf(sy_c_List_OremoveAll_001t__List__Olist_It__Nat__Onat_J,type,
    removeAll_list_nat: list_nat > list_list_nat > list_list_nat ).

thf(sy_c_List_OremoveAll_001t__Nat__Onat,type,
    removeAll_nat: nat > list_nat > list_nat ).

thf(sy_c_List_OremoveAll_001tf__a,type,
    removeAll_a: a > list_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__List__Olist_Itf__a_J,type,
    rev_list_a: list_list_a > list_list_a ).

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

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_001tf__a,type,
    rotate1_a: list_a > list_a ).

thf(sy_c_List_Osorted__wrt_001t__List__Olist_It__Nat__Onat_J,type,
    sorted_wrt_list_nat: ( list_nat > list_nat > $o ) > list_list_nat > $o ).

thf(sy_c_List_Osorted__wrt_001t__List__Olist_Itf__a_J,type,
    sorted_wrt_list_a: ( list_a > list_a > $o ) > list_list_a > $o ).

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

thf(sy_c_List_Osorted__wrt_001tf__a,type,
    sorted_wrt_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_Otake_001tf__a,type,
    take_a: nat > list_a > list_a ).

thf(sy_c_Multiset_Oadd__mset_001t__Nat__Onat,type,
    add_mset_nat: nat > multiset_nat > multiset_nat ).

thf(sy_c_Multiset_Oadd__mset_001tf__a,type,
    add_mset_a: a > multiset_a > multiset_a ).

thf(sy_c_Multiset_Ofilter__mset_001t__Nat__Onat,type,
    filter_mset_nat: ( nat > $o ) > multiset_nat > multiset_nat ).

thf(sy_c_Multiset_Ofilter__mset_001tf__a,type,
    filter_mset_a: ( a > $o ) > multiset_a > multiset_a ).

thf(sy_c_Multiset_Olinorder__class_Osorted__list__of__multiset_001t__Nat__Onat,type,
    linord3047872887403683810et_nat: multiset_nat > list_nat ).

thf(sy_c_Multiset_Olinorder__class_Osorted__list__of__multiset_001tf__a,type,
    linord814965612141868908iset_a: multiset_a > list_a ).

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

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

thf(sy_c_Multiset_Oreplicate__mset_001t__Nat__Onat,type,
    replicate_mset_nat: nat > nat > multiset_nat ).

thf(sy_c_Multiset_Oreplicate__mset_001tf__a,type,
    replicate_mset_a: nat > a > multiset_a ).

thf(sy_c_Multiset_Oset__mset_001t__Nat__Onat,type,
    set_mset_nat: multiset_nat > set_nat ).

thf(sy_c_Multiset_Oset__mset_001tf__a,type,
    set_mset_a: multiset_a > set_a ).

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_Itf__a_J_J,type,
    size_s349497388124573686list_a: list_list_a > 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_Itf__a_J,type,
    size_size_list_a: list_a > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__Multiset__Omultiset_It__Nat__Onat_J,type,
    size_s5917832649809541300et_nat: multiset_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__Multiset__Omultiset_Itf__a_J,type,
    size_size_multiset_a: multiset_a > nat ).

thf(sy_c_Orderings_Obot__class_Obot_001t__Nat__Onat,type,
    bot_bot_nat: 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_Obot__class_Obot_001t__Set__Oset_Itf__a_J,type,
    bot_bot_set_a: set_a ).

thf(sy_c_Orderings_Oord__class_Oless_001t__List__Olist_It__Nat__Onat_J,type,
    ord_less_list_nat: list_nat > list_nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless_001t__List__Olist_Itf__a_J,type,
    ord_less_list_a: list_a > list_a > $o ).

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

thf(sy_c_Orderings_Oord__class_Oless_001t__Set__Oset_It__Nat__Onat_J,type,
    ord_less_set_nat: set_nat > set_nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless_001tf__a,type,
    ord_less_a: a > a > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__List__Olist_It__Nat__Onat_J,type,
    ord_less_eq_list_nat: list_nat > list_nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__List__Olist_Itf__a_J,type,
    ord_less_eq_list_a: list_a > list_a > $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_Itf__a_J,type,
    ord_less_eq_set_a: set_a > set_a > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001tf__a,type,
    ord_less_eq_a: a > a > $o ).

thf(sy_c_Orderings_Oordering__top_001t__Nat__Onat,type,
    ordering_top_nat: ( nat > nat > $o ) > ( nat > nat > $o ) > nat > $o ).

thf(sy_c_Orderings_Oordering__top_001t__Set__Oset_It__Nat__Onat_J,type,
    ordering_top_set_nat: ( set_nat > set_nat > $o ) > ( set_nat > set_nat > $o ) > set_nat > $o ).

thf(sy_c_Pocklington_Oord_001t__Nat__Onat,type,
    ord_nat: nat > nat > 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_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_001tf__a,type,
    collect_a: ( a > $o ) > set_a ).

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

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

thf(sy_c_Set_Oremove_001t__Nat__Onat,type,
    remove_nat: nat > set_nat > set_nat ).

thf(sy_c_Sublist_Osuffix_001t__Nat__Onat,type,
    suffix_nat: list_nat > list_nat > $o ).

thf(sy_c_Sublist_Osuffix_001tf__a,type,
    suffix_a: list_a > list_a > $o ).

thf(sy_c_Totient_Ototatives,type,
    totatives: nat > set_nat ).

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_Itf__a_J,type,
    member_list_a: list_a > set_list_a > $o ).

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

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

thf(sy_v_M,type,
    m: multiset_a ).

thf(sy_v_k,type,
    k: nat ).

thf(sy_v_x,type,
    x: a ).

thf(sy_v_xs____,type,
    xs: list_a ).

% Relevant facts (1267)
thf(fact_0_a,axiom,
    ! [I: nat] :
      ( ( ( ord_less_nat @ I @ ( size_size_list_a @ xs ) )
        & ( ord_less_eq_a @ ( nth_a @ xs @ I ) @ x ) )
     => ( ord_less_nat @ I @ k ) ) ).

% a
thf(fact_1_l__xs,axiom,
    ord_less_nat @ k @ ( size_size_list_a @ xs ) ).

% l_xs
thf(fact_2__092_060open_062_092_060not_062_Anth__mset_Ak_AM_A_092_060le_062_Ax_092_060close_062,axiom,
    ~ ( ord_less_eq_a @ ( k_nth_mset_a @ k @ m ) @ x ) ).

% \<open>\<not> nth_mset k M \<le> x\<close>
thf(fact_3_assms_I2_J,axiom,
    ord_less_nat @ k @ ( k_count_le_a @ x @ m ) ).

% assms(2)
thf(fact_4_card__Collect__less__nat,axiom,
    ! [N: nat] :
      ( ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] : ( ord_less_nat @ I2 @ N ) ) )
      = N ) ).

% card_Collect_less_nat
thf(fact_5__092_060open_062x_A_060_Axs_A_B_Ak_092_060close_062,axiom,
    ord_less_a @ x @ ( nth_a @ xs @ k ) ).

% \<open>x < xs ! k\<close>
thf(fact_6__092_060open_062length_A_Ifilter_A_I_092_060lambda_062y_O_Ay_A_092_060le_062_Ax_J_Axs_J_A_061_Acard_A_123i_O_Ai_A_060_Alength_Axs_A_092_060and_062_Axs_A_B_Ai_A_092_060le_062_Ax_125_092_060close_062,axiom,
    ( ( size_size_list_a
      @ ( filter_a
        @ ^ [Y: a] : ( ord_less_eq_a @ Y @ x )
        @ xs ) )
    = ( finite_card_nat
      @ ( collect_nat
        @ ^ [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ xs ) )
            & ( ord_less_eq_a @ ( nth_a @ xs @ I2 ) @ x ) ) ) ) ) ).

% \<open>length (filter (\<lambda>y. y \<le> x) xs) = card {i. i < length xs \<and> xs ! i \<le> x}\<close>
thf(fact_7_calculation,axiom,
    ( ( k_count_le_a @ x @ m )
    = ( finite_card_nat
      @ ( collect_nat
        @ ^ [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ xs ) )
            & ( ord_less_eq_a @ ( nth_a @ xs @ I2 ) @ x ) ) ) ) ) ).

% calculation
thf(fact_8_nth__equalityI,axiom,
    ! [Xs: list_list_nat,Ys: list_list_nat] :
      ( ( ( size_s3023201423986296836st_nat @ Xs )
        = ( size_s3023201423986296836st_nat @ Ys ) )
     => ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( size_s3023201423986296836st_nat @ Xs ) )
           => ( ( nth_list_nat @ Xs @ I3 )
              = ( nth_list_nat @ Ys @ I3 ) ) )
       => ( Xs = Ys ) ) ) ).

% nth_equalityI
thf(fact_9_nth__equalityI,axiom,
    ! [Xs: list_list_a,Ys: list_list_a] :
      ( ( ( size_s349497388124573686list_a @ Xs )
        = ( size_s349497388124573686list_a @ Ys ) )
     => ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( size_s349497388124573686list_a @ Xs ) )
           => ( ( nth_list_a @ Xs @ I3 )
              = ( nth_list_a @ Ys @ I3 ) ) )
       => ( Xs = Ys ) ) ) ).

% nth_equalityI
thf(fact_10_nth__equalityI,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( size_size_list_a @ Xs ) )
           => ( ( nth_a @ Xs @ I3 )
              = ( nth_a @ Ys @ I3 ) ) )
       => ( Xs = Ys ) ) ) ).

% nth_equalityI
thf(fact_11_nth__equalityI,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( size_size_list_nat @ Xs ) )
           => ( ( nth_nat @ Xs @ I3 )
              = ( nth_nat @ Ys @ I3 ) ) )
       => ( Xs = Ys ) ) ) ).

% nth_equalityI
thf(fact_12_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > list_nat > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ K )
           => ? [X: list_nat] : ( P @ I2 @ X ) ) )
      = ( ? [Xs2: list_list_nat] :
            ( ( ( size_s3023201423986296836st_nat @ Xs2 )
              = K )
            & ! [I2: nat] :
                ( ( ord_less_nat @ I2 @ K )
               => ( P @ I2 @ ( nth_list_nat @ Xs2 @ I2 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_13_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > list_a > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ K )
           => ? [X: list_a] : ( P @ I2 @ X ) ) )
      = ( ? [Xs2: list_list_a] :
            ( ( ( size_s349497388124573686list_a @ Xs2 )
              = K )
            & ! [I2: nat] :
                ( ( ord_less_nat @ I2 @ K )
               => ( P @ I2 @ ( nth_list_a @ Xs2 @ I2 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_14_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > a > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ K )
           => ? [X: a] : ( P @ I2 @ X ) ) )
      = ( ? [Xs2: list_a] :
            ( ( ( size_size_list_a @ Xs2 )
              = K )
            & ! [I2: nat] :
                ( ( ord_less_nat @ I2 @ K )
               => ( P @ I2 @ ( nth_a @ Xs2 @ I2 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_15_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > nat > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ K )
           => ? [X: nat] : ( P @ I2 @ X ) ) )
      = ( ? [Xs2: list_nat] :
            ( ( ( size_size_list_nat @ Xs2 )
              = K )
            & ! [I2: nat] :
                ( ( ord_less_nat @ I2 @ K )
               => ( P @ I2 @ ( nth_nat @ Xs2 @ I2 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_16_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y2: list_list_nat,Z: list_list_nat] : ( Y2 = Z ) )
    = ( ^ [Xs2: list_list_nat,Ys2: list_list_nat] :
          ( ( ( size_s3023201423986296836st_nat @ Xs2 )
            = ( size_s3023201423986296836st_nat @ Ys2 ) )
          & ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s3023201423986296836st_nat @ Xs2 ) )
             => ( ( nth_list_nat @ Xs2 @ I2 )
                = ( nth_list_nat @ Ys2 @ I2 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_17_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y2: list_list_a,Z: list_list_a] : ( Y2 = Z ) )
    = ( ^ [Xs2: list_list_a,Ys2: list_list_a] :
          ( ( ( size_s349497388124573686list_a @ Xs2 )
            = ( size_s349497388124573686list_a @ Ys2 ) )
          & ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s349497388124573686list_a @ Xs2 ) )
             => ( ( nth_list_a @ Xs2 @ I2 )
                = ( nth_list_a @ Ys2 @ I2 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_18_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y2: list_a,Z: list_a] : ( Y2 = Z ) )
    = ( ^ [Xs2: list_a,Ys2: list_a] :
          ( ( ( size_size_list_a @ Xs2 )
            = ( size_size_list_a @ Ys2 ) )
          & ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs2 ) )
             => ( ( nth_a @ Xs2 @ I2 )
                = ( nth_a @ Ys2 @ I2 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_19_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y2: list_nat,Z: list_nat] : ( Y2 = Z ) )
    = ( ^ [Xs2: list_nat,Ys2: list_nat] :
          ( ( ( size_size_list_nat @ Xs2 )
            = ( size_size_list_nat @ Ys2 ) )
          & ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs2 ) )
             => ( ( nth_nat @ Xs2 @ I2 )
                = ( nth_nat @ Ys2 @ I2 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_20_order__refl,axiom,
    ! [X2: set_nat] : ( ord_less_eq_set_nat @ X2 @ X2 ) ).

% order_refl
thf(fact_21_order__refl,axiom,
    ! [X2: set_a] : ( ord_less_eq_set_a @ X2 @ X2 ) ).

% order_refl
thf(fact_22_order__refl,axiom,
    ! [X2: list_a] : ( ord_less_eq_list_a @ X2 @ X2 ) ).

% order_refl
thf(fact_23_order__refl,axiom,
    ! [X2: list_nat] : ( ord_less_eq_list_nat @ X2 @ X2 ) ).

% order_refl
thf(fact_24_order__refl,axiom,
    ! [X2: nat] : ( ord_less_eq_nat @ X2 @ X2 ) ).

% order_refl
thf(fact_25_order__refl,axiom,
    ! [X2: a] : ( ord_less_eq_a @ X2 @ X2 ) ).

% order_refl
thf(fact_26_dual__order_Orefl,axiom,
    ! [A: set_nat] : ( ord_less_eq_set_nat @ A @ A ) ).

% dual_order.refl
thf(fact_27_dual__order_Orefl,axiom,
    ! [A: set_a] : ( ord_less_eq_set_a @ A @ A ) ).

% dual_order.refl
thf(fact_28_dual__order_Orefl,axiom,
    ! [A: list_a] : ( ord_less_eq_list_a @ A @ A ) ).

% dual_order.refl
thf(fact_29_dual__order_Orefl,axiom,
    ! [A: list_nat] : ( ord_less_eq_list_nat @ A @ A ) ).

% dual_order.refl
thf(fact_30_dual__order_Orefl,axiom,
    ! [A: nat] : ( ord_less_eq_nat @ A @ A ) ).

% dual_order.refl
thf(fact_31_dual__order_Orefl,axiom,
    ! [A: a] : ( ord_less_eq_a @ A @ A ) ).

% dual_order.refl
thf(fact_32_s__xs,axiom,
    sorted_wrt_a @ ord_less_eq_a @ xs ).

% s_xs
thf(fact_33_filter__filter,axiom,
    ! [P: nat > $o,Q: nat > $o,Xs: list_nat] :
      ( ( filter_nat @ P @ ( filter_nat @ Q @ Xs ) )
      = ( filter_nat
        @ ^ [X3: nat] :
            ( ( Q @ X3 )
            & ( P @ X3 ) )
        @ Xs ) ) ).

% filter_filter
thf(fact_34_filter__filter,axiom,
    ! [P: a > $o,Q: a > $o,Xs: list_a] :
      ( ( filter_a @ P @ ( filter_a @ Q @ Xs ) )
      = ( filter_a
        @ ^ [X3: a] :
            ( ( Q @ X3 )
            & ( P @ X3 ) )
        @ Xs ) ) ).

% filter_filter
thf(fact_35__092_060open_062x_A_060_Anth__mset_Ak_AM_092_060close_062,axiom,
    ord_less_a @ x @ ( k_nth_mset_a @ k @ m ) ).

% \<open>x < nth_mset k M\<close>
thf(fact_36_assms_I1_J,axiom,
    ord_less_nat @ k @ ( size_size_multiset_a @ m ) ).

% assms(1)
thf(fact_37_sorted__same,axiom,
    ! [G: list_list_a > list_a,Xs: list_list_a] :
      ( sorted_wrt_list_a @ ord_less_eq_list_a
      @ ( filter_list_a
        @ ^ [X3: list_a] :
            ( X3
            = ( G @ Xs ) )
        @ Xs ) ) ).

% sorted_same
thf(fact_38_sorted__same,axiom,
    ! [G: list_list_nat > list_nat,Xs: list_list_nat] :
      ( sorted_wrt_list_nat @ ord_less_eq_list_nat
      @ ( filter_list_nat
        @ ^ [X3: list_nat] :
            ( X3
            = ( G @ Xs ) )
        @ Xs ) ) ).

% sorted_same
thf(fact_39_sorted__same,axiom,
    ! [G: list_nat > nat,Xs: list_nat] :
      ( sorted_wrt_nat @ ord_less_eq_nat
      @ ( filter_nat
        @ ^ [X3: nat] :
            ( X3
            = ( G @ Xs ) )
        @ Xs ) ) ).

% sorted_same
thf(fact_40_sorted__same,axiom,
    ! [G: list_a > a,Xs: list_a] :
      ( sorted_wrt_a @ ord_less_eq_a
      @ ( filter_a
        @ ^ [X3: a] :
            ( X3
            = ( G @ Xs ) )
        @ Xs ) ) ).

% sorted_same
thf(fact_41_sorted__wrt__true,axiom,
    ! [Xs: list_a] :
      ( sorted_wrt_a
      @ ^ [Uu: a,Uv: a] : $true
      @ Xs ) ).

% sorted_wrt_true
thf(fact_42_sorted__wrt__true,axiom,
    ! [Xs: list_nat] :
      ( sorted_wrt_nat
      @ ^ [Uu: nat,Uv: nat] : $true
      @ Xs ) ).

% sorted_wrt_true
thf(fact_43_sorted__wrt__filter,axiom,
    ! [F: a > a > $o,Xs: list_a,P: a > $o] :
      ( ( sorted_wrt_a @ F @ Xs )
     => ( sorted_wrt_a @ F @ ( filter_a @ P @ Xs ) ) ) ).

% sorted_wrt_filter
thf(fact_44_sorted__wrt__filter,axiom,
    ! [F: nat > nat > $o,Xs: list_nat,P: nat > $o] :
      ( ( sorted_wrt_nat @ F @ Xs )
     => ( sorted_wrt_nat @ F @ ( filter_nat @ P @ Xs ) ) ) ).

% sorted_wrt_filter
thf(fact_45_strict__sorted__imp__sorted,axiom,
    ! [Xs: list_list_a] :
      ( ( sorted_wrt_list_a @ ord_less_list_a @ Xs )
     => ( sorted_wrt_list_a @ ord_less_eq_list_a @ Xs ) ) ).

% strict_sorted_imp_sorted
thf(fact_46_strict__sorted__imp__sorted,axiom,
    ! [Xs: list_list_nat] :
      ( ( sorted_wrt_list_nat @ ord_less_list_nat @ Xs )
     => ( sorted_wrt_list_nat @ ord_less_eq_list_nat @ Xs ) ) ).

% strict_sorted_imp_sorted
thf(fact_47_strict__sorted__imp__sorted,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ Xs ) ) ).

% strict_sorted_imp_sorted
thf(fact_48_strict__sorted__imp__sorted,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ Xs ) ) ).

% strict_sorted_imp_sorted
thf(fact_49_length__filter__le,axiom,
    ! [P: list_nat > $o,Xs: list_list_nat] : ( ord_less_eq_nat @ ( size_s3023201423986296836st_nat @ ( filter_list_nat @ P @ Xs ) ) @ ( size_s3023201423986296836st_nat @ Xs ) ) ).

% length_filter_le
thf(fact_50_length__filter__le,axiom,
    ! [P: list_a > $o,Xs: list_list_a] : ( ord_less_eq_nat @ ( size_s349497388124573686list_a @ ( filter_list_a @ P @ Xs ) ) @ ( size_s349497388124573686list_a @ Xs ) ) ).

% length_filter_le
thf(fact_51_length__filter__le,axiom,
    ! [P: a > $o,Xs: list_a] : ( ord_less_eq_nat @ ( size_size_list_a @ ( filter_a @ P @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ).

% length_filter_le
thf(fact_52_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_53_sorted__wrt__iff__nth__less,axiom,
    ( sorted_wrt_list_nat
    = ( ^ [P2: list_nat > list_nat > $o,Xs2: list_list_nat] :
        ! [I2: nat,J: nat] :
          ( ( ord_less_nat @ I2 @ J )
         => ( ( ord_less_nat @ J @ ( size_s3023201423986296836st_nat @ Xs2 ) )
           => ( P2 @ ( nth_list_nat @ Xs2 @ I2 ) @ ( nth_list_nat @ Xs2 @ J ) ) ) ) ) ) ).

% sorted_wrt_iff_nth_less
thf(fact_54_sorted__wrt__iff__nth__less,axiom,
    ( sorted_wrt_list_a
    = ( ^ [P2: list_a > list_a > $o,Xs2: list_list_a] :
        ! [I2: nat,J: nat] :
          ( ( ord_less_nat @ I2 @ J )
         => ( ( ord_less_nat @ J @ ( size_s349497388124573686list_a @ Xs2 ) )
           => ( P2 @ ( nth_list_a @ Xs2 @ I2 ) @ ( nth_list_a @ Xs2 @ J ) ) ) ) ) ) ).

% sorted_wrt_iff_nth_less
thf(fact_55_sorted__wrt__iff__nth__less,axiom,
    ( sorted_wrt_a
    = ( ^ [P2: a > a > $o,Xs2: list_a] :
        ! [I2: nat,J: nat] :
          ( ( ord_less_nat @ I2 @ J )
         => ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs2 ) )
           => ( P2 @ ( nth_a @ Xs2 @ I2 ) @ ( nth_a @ Xs2 @ J ) ) ) ) ) ) ).

% sorted_wrt_iff_nth_less
thf(fact_56_sorted__wrt__iff__nth__less,axiom,
    ( sorted_wrt_nat
    = ( ^ [P2: nat > nat > $o,Xs2: list_nat] :
        ! [I2: nat,J: nat] :
          ( ( ord_less_nat @ I2 @ J )
         => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs2 ) )
           => ( P2 @ ( nth_nat @ Xs2 @ I2 ) @ ( nth_nat @ Xs2 @ J ) ) ) ) ) ) ).

% sorted_wrt_iff_nth_less
thf(fact_57_sorted__wrt__nth__less,axiom,
    ! [P: list_nat > list_nat > $o,Xs: list_list_nat,I: nat,J2: nat] :
      ( ( sorted_wrt_list_nat @ P @ Xs )
     => ( ( ord_less_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_s3023201423986296836st_nat @ Xs ) )
         => ( P @ ( nth_list_nat @ Xs @ I ) @ ( nth_list_nat @ Xs @ J2 ) ) ) ) ) ).

% sorted_wrt_nth_less
thf(fact_58_sorted__wrt__nth__less,axiom,
    ! [P: list_a > list_a > $o,Xs: list_list_a,I: nat,J2: nat] :
      ( ( sorted_wrt_list_a @ P @ Xs )
     => ( ( ord_less_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_s349497388124573686list_a @ Xs ) )
         => ( P @ ( nth_list_a @ Xs @ I ) @ ( nth_list_a @ Xs @ J2 ) ) ) ) ) ).

% sorted_wrt_nth_less
thf(fact_59_sorted__wrt__nth__less,axiom,
    ! [P: a > a > $o,Xs: list_a,I: nat,J2: nat] :
      ( ( sorted_wrt_a @ P @ Xs )
     => ( ( ord_less_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
         => ( P @ ( nth_a @ Xs @ I ) @ ( nth_a @ Xs @ J2 ) ) ) ) ) ).

% sorted_wrt_nth_less
thf(fact_60_sorted__wrt__nth__less,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,I: nat,J2: nat] :
      ( ( sorted_wrt_nat @ P @ Xs )
     => ( ( ord_less_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
         => ( P @ ( nth_nat @ Xs @ I ) @ ( nth_nat @ Xs @ J2 ) ) ) ) ) ).

% sorted_wrt_nth_less
thf(fact_61_sorted__iff__nth__mono__less,axiom,
    ! [Xs: list_list_a] :
      ( ( sorted_wrt_list_a @ ord_less_eq_list_a @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_s349497388124573686list_a @ Xs ) )
             => ( ord_less_eq_list_a @ ( nth_list_a @ Xs @ I2 ) @ ( nth_list_a @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono_less
thf(fact_62_sorted__iff__nth__mono__less,axiom,
    ! [Xs: list_list_nat] :
      ( ( sorted_wrt_list_nat @ ord_less_eq_list_nat @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_s3023201423986296836st_nat @ Xs ) )
             => ( ord_less_eq_list_nat @ ( nth_list_nat @ Xs @ I2 ) @ ( nth_list_nat @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono_less
thf(fact_63_sorted__iff__nth__mono__less,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I2 ) @ ( nth_nat @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono_less
thf(fact_64_sorted__iff__nth__mono__less,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs ) )
             => ( ord_less_eq_a @ ( nth_a @ Xs @ I2 ) @ ( nth_a @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono_less
thf(fact_65_length__filter__conv__card,axiom,
    ! [P3: list_nat > $o,Xs: list_list_nat] :
      ( ( size_s3023201423986296836st_nat @ ( filter_list_nat @ P3 @ Xs ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s3023201423986296836st_nat @ Xs ) )
              & ( P3 @ ( nth_list_nat @ Xs @ I2 ) ) ) ) ) ) ).

% length_filter_conv_card
thf(fact_66_length__filter__conv__card,axiom,
    ! [P3: list_a > $o,Xs: list_list_a] :
      ( ( size_s349497388124573686list_a @ ( filter_list_a @ P3 @ Xs ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_s349497388124573686list_a @ Xs ) )
              & ( P3 @ ( nth_list_a @ Xs @ I2 ) ) ) ) ) ) ).

% length_filter_conv_card
thf(fact_67_length__filter__conv__card,axiom,
    ! [P3: a > $o,Xs: list_a] :
      ( ( size_size_list_a @ ( filter_a @ P3 @ Xs ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs ) )
              & ( P3 @ ( nth_a @ Xs @ I2 ) ) ) ) ) ) ).

% length_filter_conv_card
thf(fact_68_length__filter__conv__card,axiom,
    ! [P3: nat > $o,Xs: list_nat] :
      ( ( size_size_list_nat @ ( filter_nat @ P3 @ Xs ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
              & ( P3 @ ( nth_nat @ Xs @ I2 ) ) ) ) ) ) ).

% length_filter_conv_card
thf(fact_69_order__antisym__conv,axiom,
    ! [Y3: set_nat,X2: set_nat] :
      ( ( ord_less_eq_set_nat @ Y3 @ X2 )
     => ( ( ord_less_eq_set_nat @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_70_order__antisym__conv,axiom,
    ! [Y3: set_a,X2: set_a] :
      ( ( ord_less_eq_set_a @ Y3 @ X2 )
     => ( ( ord_less_eq_set_a @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_71_order__antisym__conv,axiom,
    ! [Y3: list_a,X2: list_a] :
      ( ( ord_less_eq_list_a @ Y3 @ X2 )
     => ( ( ord_less_eq_list_a @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_72_order__antisym__conv,axiom,
    ! [Y3: list_nat,X2: list_nat] :
      ( ( ord_less_eq_list_nat @ Y3 @ X2 )
     => ( ( ord_less_eq_list_nat @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_73_order__antisym__conv,axiom,
    ! [Y3: nat,X2: nat] :
      ( ( ord_less_eq_nat @ Y3 @ X2 )
     => ( ( ord_less_eq_nat @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_74_order__antisym__conv,axiom,
    ! [Y3: a,X2: a] :
      ( ( ord_less_eq_a @ Y3 @ X2 )
     => ( ( ord_less_eq_a @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% order_antisym_conv
thf(fact_75_linorder__le__cases,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ~ ( ord_less_eq_list_a @ X2 @ Y3 )
     => ( ord_less_eq_list_a @ Y3 @ X2 ) ) ).

% linorder_le_cases
thf(fact_76_linorder__le__cases,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ~ ( ord_less_eq_list_nat @ X2 @ Y3 )
     => ( ord_less_eq_list_nat @ Y3 @ X2 ) ) ).

% linorder_le_cases
thf(fact_77_linorder__le__cases,axiom,
    ! [X2: nat,Y3: nat] :
      ( ~ ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ord_less_eq_nat @ Y3 @ X2 ) ) ).

% linorder_le_cases
thf(fact_78_linorder__le__cases,axiom,
    ! [X2: a,Y3: a] :
      ( ~ ( ord_less_eq_a @ X2 @ Y3 )
     => ( ord_less_eq_a @ Y3 @ X2 ) ) ).

% linorder_le_cases
thf(fact_79_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_80_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_81_ord__le__eq__subst,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_82_ord__le__eq__subst,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_83_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > set_nat,C: set_nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_84_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > set_a,C: set_a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_85_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > list_a,C: list_a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_86_ord__le__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > list_nat,C: list_nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_87_ord__le__eq__subst,axiom,
    ! [A: a,B: a,F: a > set_nat,C: set_nat] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_88_ord__le__eq__subst,axiom,
    ! [A: a,B: a,F: a > set_a,C: set_a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_89_ord__eq__le__subst,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_90_ord__eq__le__subst,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_91_ord__eq__le__subst,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_92_ord__eq__le__subst,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_93_ord__eq__le__subst,axiom,
    ! [A: set_nat,F: nat > set_nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_94_ord__eq__le__subst,axiom,
    ! [A: set_a,F: nat > set_a,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_95_ord__eq__le__subst,axiom,
    ! [A: list_a,F: nat > list_a,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_96_ord__eq__le__subst,axiom,
    ! [A: list_nat,F: nat > list_nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_97_ord__eq__le__subst,axiom,
    ! [A: set_nat,F: a > set_nat,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_98_ord__eq__le__subst,axiom,
    ! [A: set_a,F: a > set_a,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_99_linorder__linear,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_eq_list_a @ X2 @ Y3 )
      | ( ord_less_eq_list_a @ Y3 @ X2 ) ) ).

% linorder_linear
thf(fact_100_linorder__linear,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_eq_list_nat @ X2 @ Y3 )
      | ( ord_less_eq_list_nat @ Y3 @ X2 ) ) ).

% linorder_linear
thf(fact_101_linorder__linear,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
      | ( ord_less_eq_nat @ Y3 @ X2 ) ) ).

% linorder_linear
thf(fact_102_linorder__linear,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
      | ( ord_less_eq_a @ Y3 @ X2 ) ) ).

% linorder_linear
thf(fact_103_order__eq__refl,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_set_nat @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_104_order__eq__refl,axiom,
    ! [X2: set_a,Y3: set_a] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_set_a @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_105_order__eq__refl,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_list_a @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_106_order__eq__refl,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_list_nat @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_107_order__eq__refl,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_nat @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_108_order__eq__refl,axiom,
    ! [X2: a,Y3: a] :
      ( ( X2 = Y3 )
     => ( ord_less_eq_a @ X2 @ Y3 ) ) ).

% order_eq_refl
thf(fact_109_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_110_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_111_order__subst2,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_112_order__subst2,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_113_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > set_nat,C: set_nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_set_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_114_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > set_a,C: set_a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_set_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_115_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > list_a,C: list_a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_list_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_116_order__subst2,axiom,
    ! [A: nat,B: nat,F: nat > list_nat,C: list_nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_list_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_117_order__subst2,axiom,
    ! [A: a,B: a,F: a > set_nat,C: set_nat] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_set_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_118_order__subst2,axiom,
    ! [A: a,B: a,F: a > set_a,C: set_a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_set_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_set_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_set_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_119_order__subst1,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_120_order__subst1,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_121_order__subst1,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_122_order__subst1,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_123_order__subst1,axiom,
    ! [A: nat,F: set_nat > nat,B: set_nat,C: set_nat] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_set_nat @ B @ C )
       => ( ! [X4: set_nat,Y4: set_nat] :
              ( ( ord_less_eq_set_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_124_order__subst1,axiom,
    ! [A: nat,F: set_a > nat,B: set_a,C: set_a] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_set_a @ B @ C )
       => ( ! [X4: set_a,Y4: set_a] :
              ( ( ord_less_eq_set_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_125_order__subst1,axiom,
    ! [A: nat,F: list_a > nat,B: list_a,C: list_a] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_list_a @ B @ C )
       => ( ! [X4: list_a,Y4: list_a] :
              ( ( ord_less_eq_list_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_126_order__subst1,axiom,
    ! [A: nat,F: list_nat > nat,B: list_nat,C: list_nat] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_list_nat @ B @ C )
       => ( ! [X4: list_nat,Y4: list_nat] :
              ( ( ord_less_eq_list_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_127_order__subst1,axiom,
    ! [A: a,F: set_nat > a,B: set_nat,C: set_nat] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_set_nat @ B @ C )
       => ( ! [X4: set_nat,Y4: set_nat] :
              ( ( ord_less_eq_set_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_128_order__subst1,axiom,
    ! [A: a,F: set_a > a,B: set_a,C: set_a] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_set_a @ B @ C )
       => ( ! [X4: set_a,Y4: set_a] :
              ( ( ord_less_eq_set_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_129_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: set_nat,Z: set_nat] : ( Y2 = Z ) )
    = ( ^ [A2: set_nat,B2: set_nat] :
          ( ( ord_less_eq_set_nat @ A2 @ B2 )
          & ( ord_less_eq_set_nat @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_130_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: set_a,Z: set_a] : ( Y2 = Z ) )
    = ( ^ [A2: set_a,B2: set_a] :
          ( ( ord_less_eq_set_a @ A2 @ B2 )
          & ( ord_less_eq_set_a @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_131_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: list_a,Z: list_a] : ( Y2 = Z ) )
    = ( ^ [A2: list_a,B2: list_a] :
          ( ( ord_less_eq_list_a @ A2 @ B2 )
          & ( ord_less_eq_list_a @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_132_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: list_nat,Z: list_nat] : ( Y2 = Z ) )
    = ( ^ [A2: list_nat,B2: list_nat] :
          ( ( ord_less_eq_list_nat @ A2 @ B2 )
          & ( ord_less_eq_list_nat @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_133_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: nat,Z: nat] : ( Y2 = Z ) )
    = ( ^ [A2: nat,B2: nat] :
          ( ( ord_less_eq_nat @ A2 @ B2 )
          & ( ord_less_eq_nat @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_134_Orderings_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: a,Z: a] : ( Y2 = Z ) )
    = ( ^ [A2: a,B2: a] :
          ( ( ord_less_eq_a @ A2 @ B2 )
          & ( ord_less_eq_a @ B2 @ A2 ) ) ) ) ).

% Orderings.order_eq_iff
thf(fact_135_antisym,axiom,
    ! [A: set_nat,B: set_nat] :
      ( ( ord_less_eq_set_nat @ A @ B )
     => ( ( ord_less_eq_set_nat @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_136_antisym,axiom,
    ! [A: set_a,B: set_a] :
      ( ( ord_less_eq_set_a @ A @ B )
     => ( ( ord_less_eq_set_a @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_137_antisym,axiom,
    ! [A: list_a,B: list_a] :
      ( ( ord_less_eq_list_a @ A @ B )
     => ( ( ord_less_eq_list_a @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_138_antisym,axiom,
    ! [A: list_nat,B: list_nat] :
      ( ( ord_less_eq_list_nat @ A @ B )
     => ( ( ord_less_eq_list_nat @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_139_antisym,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_nat @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_140_antisym,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ B @ A )
       => ( A = B ) ) ) ).

% antisym
thf(fact_141_dual__order_Otrans,axiom,
    ! [B: set_nat,A: set_nat,C: set_nat] :
      ( ( ord_less_eq_set_nat @ B @ A )
     => ( ( ord_less_eq_set_nat @ C @ B )
       => ( ord_less_eq_set_nat @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_142_dual__order_Otrans,axiom,
    ! [B: set_a,A: set_a,C: set_a] :
      ( ( ord_less_eq_set_a @ B @ A )
     => ( ( ord_less_eq_set_a @ C @ B )
       => ( ord_less_eq_set_a @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_143_dual__order_Otrans,axiom,
    ! [B: list_a,A: list_a,C: list_a] :
      ( ( ord_less_eq_list_a @ B @ A )
     => ( ( ord_less_eq_list_a @ C @ B )
       => ( ord_less_eq_list_a @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_144_dual__order_Otrans,axiom,
    ! [B: list_nat,A: list_nat,C: list_nat] :
      ( ( ord_less_eq_list_nat @ B @ A )
     => ( ( ord_less_eq_list_nat @ C @ B )
       => ( ord_less_eq_list_nat @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_145_dual__order_Otrans,axiom,
    ! [B: nat,A: nat,C: nat] :
      ( ( ord_less_eq_nat @ B @ A )
     => ( ( ord_less_eq_nat @ C @ B )
       => ( ord_less_eq_nat @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_146_dual__order_Otrans,axiom,
    ! [B: a,A: a,C: a] :
      ( ( ord_less_eq_a @ B @ A )
     => ( ( ord_less_eq_a @ C @ B )
       => ( ord_less_eq_a @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_147_dual__order_Oantisym,axiom,
    ! [B: set_nat,A: set_nat] :
      ( ( ord_less_eq_set_nat @ B @ A )
     => ( ( ord_less_eq_set_nat @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_148_dual__order_Oantisym,axiom,
    ! [B: set_a,A: set_a] :
      ( ( ord_less_eq_set_a @ B @ A )
     => ( ( ord_less_eq_set_a @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_149_dual__order_Oantisym,axiom,
    ! [B: list_a,A: list_a] :
      ( ( ord_less_eq_list_a @ B @ A )
     => ( ( ord_less_eq_list_a @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_150_dual__order_Oantisym,axiom,
    ! [B: list_nat,A: list_nat] :
      ( ( ord_less_eq_list_nat @ B @ A )
     => ( ( ord_less_eq_list_nat @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_151_dual__order_Oantisym,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_eq_nat @ B @ A )
     => ( ( ord_less_eq_nat @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_152_dual__order_Oantisym,axiom,
    ! [B: a,A: a] :
      ( ( ord_less_eq_a @ B @ A )
     => ( ( ord_less_eq_a @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_153_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: set_nat,Z: set_nat] : ( Y2 = Z ) )
    = ( ^ [A2: set_nat,B2: set_nat] :
          ( ( ord_less_eq_set_nat @ B2 @ A2 )
          & ( ord_less_eq_set_nat @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_154_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: set_a,Z: set_a] : ( Y2 = Z ) )
    = ( ^ [A2: set_a,B2: set_a] :
          ( ( ord_less_eq_set_a @ B2 @ A2 )
          & ( ord_less_eq_set_a @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_155_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: list_a,Z: list_a] : ( Y2 = Z ) )
    = ( ^ [A2: list_a,B2: list_a] :
          ( ( ord_less_eq_list_a @ B2 @ A2 )
          & ( ord_less_eq_list_a @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_156_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: list_nat,Z: list_nat] : ( Y2 = Z ) )
    = ( ^ [A2: list_nat,B2: list_nat] :
          ( ( ord_less_eq_list_nat @ B2 @ A2 )
          & ( ord_less_eq_list_nat @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_157_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: nat,Z: nat] : ( Y2 = Z ) )
    = ( ^ [A2: nat,B2: nat] :
          ( ( ord_less_eq_nat @ B2 @ A2 )
          & ( ord_less_eq_nat @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_158_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y2: a,Z: a] : ( Y2 = Z ) )
    = ( ^ [A2: a,B2: a] :
          ( ( ord_less_eq_a @ B2 @ A2 )
          & ( ord_less_eq_a @ A2 @ B2 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_159_linorder__wlog,axiom,
    ! [P: list_a > list_a > $o,A: list_a,B: list_a] :
      ( ! [A3: list_a,B3: list_a] :
          ( ( ord_less_eq_list_a @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: list_a,B3: list_a] :
            ( ( P @ B3 @ A3 )
           => ( P @ A3 @ B3 ) )
       => ( P @ A @ B ) ) ) ).

% linorder_wlog
thf(fact_160_linorder__wlog,axiom,
    ! [P: list_nat > list_nat > $o,A: list_nat,B: list_nat] :
      ( ! [A3: list_nat,B3: list_nat] :
          ( ( ord_less_eq_list_nat @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: list_nat,B3: list_nat] :
            ( ( P @ B3 @ A3 )
           => ( P @ A3 @ B3 ) )
       => ( P @ A @ B ) ) ) ).

% linorder_wlog
thf(fact_161_linorder__wlog,axiom,
    ! [P: nat > nat > $o,A: nat,B: nat] :
      ( ! [A3: nat,B3: nat] :
          ( ( ord_less_eq_nat @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: nat,B3: nat] :
            ( ( P @ B3 @ A3 )
           => ( P @ A3 @ B3 ) )
       => ( P @ A @ B ) ) ) ).

% linorder_wlog
thf(fact_162_linorder__wlog,axiom,
    ! [P: a > a > $o,A: a,B: a] :
      ( ! [A3: a,B3: a] :
          ( ( ord_less_eq_a @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: a,B3: a] :
            ( ( P @ B3 @ A3 )
           => ( P @ A3 @ B3 ) )
       => ( P @ A @ B ) ) ) ).

% linorder_wlog
thf(fact_163_order__trans,axiom,
    ! [X2: set_nat,Y3: set_nat,Z2: set_nat] :
      ( ( ord_less_eq_set_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_set_nat @ Y3 @ Z2 )
       => ( ord_less_eq_set_nat @ X2 @ Z2 ) ) ) ).

% order_trans
thf(fact_164_order__trans,axiom,
    ! [X2: set_a,Y3: set_a,Z2: set_a] :
      ( ( ord_less_eq_set_a @ X2 @ Y3 )
     => ( ( ord_less_eq_set_a @ Y3 @ Z2 )
       => ( ord_less_eq_set_a @ X2 @ Z2 ) ) ) ).

% order_trans
thf(fact_165_order__trans,axiom,
    ! [X2: list_a,Y3: list_a,Z2: list_a] :
      ( ( ord_less_eq_list_a @ X2 @ Y3 )
     => ( ( ord_less_eq_list_a @ Y3 @ Z2 )
       => ( ord_less_eq_list_a @ X2 @ Z2 ) ) ) ).

% order_trans
thf(fact_166_order__trans,axiom,
    ! [X2: list_nat,Y3: list_nat,Z2: list_nat] :
      ( ( ord_less_eq_list_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_list_nat @ Y3 @ Z2 )
       => ( ord_less_eq_list_nat @ X2 @ Z2 ) ) ) ).

% order_trans
thf(fact_167_order__trans,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_nat @ Y3 @ Z2 )
       => ( ord_less_eq_nat @ X2 @ Z2 ) ) ) ).

% order_trans
thf(fact_168_order__trans,axiom,
    ! [X2: a,Y3: a,Z2: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
     => ( ( ord_less_eq_a @ Y3 @ Z2 )
       => ( ord_less_eq_a @ X2 @ Z2 ) ) ) ).

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

% mem_Collect_eq
thf(fact_170_mem__Collect__eq,axiom,
    ! [A: list_nat,P: list_nat > $o] :
      ( ( member_list_nat @ A @ ( collect_list_nat @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_171_mem__Collect__eq,axiom,
    ! [A: list_a,P: list_a > $o] :
      ( ( member_list_a @ A @ ( collect_list_a @ P ) )
      = ( P @ A ) ) ).

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

% mem_Collect_eq
thf(fact_173_Collect__mem__eq,axiom,
    ! [A4: set_a] :
      ( ( collect_a
        @ ^ [X3: a] : ( member_a @ X3 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_174_Collect__mem__eq,axiom,
    ! [A4: set_list_nat] :
      ( ( collect_list_nat
        @ ^ [X3: list_nat] : ( member_list_nat @ X3 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_175_Collect__mem__eq,axiom,
    ! [A4: set_list_a] :
      ( ( collect_list_a
        @ ^ [X3: list_a] : ( member_list_a @ X3 @ A4 ) )
      = A4 ) ).

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

% Collect_mem_eq
thf(fact_177_Collect__cong,axiom,
    ! [P: a > $o,Q: a > $o] :
      ( ! [X4: a] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect_a @ P )
        = ( collect_a @ Q ) ) ) ).

% Collect_cong
thf(fact_178_Collect__cong,axiom,
    ! [P: list_nat > $o,Q: list_nat > $o] :
      ( ! [X4: list_nat] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect_list_nat @ P )
        = ( collect_list_nat @ Q ) ) ) ).

% Collect_cong
thf(fact_179_Collect__cong,axiom,
    ! [P: list_a > $o,Q: list_a > $o] :
      ( ! [X4: list_a] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect_list_a @ P )
        = ( collect_list_a @ Q ) ) ) ).

% Collect_cong
thf(fact_180_Collect__cong,axiom,
    ! [P: nat > $o,Q: nat > $o] :
      ( ! [X4: nat] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect_nat @ P )
        = ( collect_nat @ Q ) ) ) ).

% Collect_cong
thf(fact_181_order_Otrans,axiom,
    ! [A: set_nat,B: set_nat,C: set_nat] :
      ( ( ord_less_eq_set_nat @ A @ B )
     => ( ( ord_less_eq_set_nat @ B @ C )
       => ( ord_less_eq_set_nat @ A @ C ) ) ) ).

% order.trans
thf(fact_182_order_Otrans,axiom,
    ! [A: set_a,B: set_a,C: set_a] :
      ( ( ord_less_eq_set_a @ A @ B )
     => ( ( ord_less_eq_set_a @ B @ C )
       => ( ord_less_eq_set_a @ A @ C ) ) ) ).

% order.trans
thf(fact_183_order_Otrans,axiom,
    ! [A: list_a,B: list_a,C: list_a] :
      ( ( ord_less_eq_list_a @ A @ B )
     => ( ( ord_less_eq_list_a @ B @ C )
       => ( ord_less_eq_list_a @ A @ C ) ) ) ).

% order.trans
thf(fact_184_order_Otrans,axiom,
    ! [A: list_nat,B: list_nat,C: list_nat] :
      ( ( ord_less_eq_list_nat @ A @ B )
     => ( ( ord_less_eq_list_nat @ B @ C )
       => ( ord_less_eq_list_nat @ A @ C ) ) ) ).

% order.trans
thf(fact_185_order_Otrans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ord_less_eq_nat @ A @ C ) ) ) ).

% order.trans
thf(fact_186_order_Otrans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% order.trans
thf(fact_187_order__antisym,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_eq_set_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_set_nat @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_188_order__antisym,axiom,
    ! [X2: set_a,Y3: set_a] :
      ( ( ord_less_eq_set_a @ X2 @ Y3 )
     => ( ( ord_less_eq_set_a @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_189_order__antisym,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_eq_list_a @ X2 @ Y3 )
     => ( ( ord_less_eq_list_a @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_190_order__antisym,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_eq_list_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_list_nat @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_191_order__antisym,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_nat @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_192_order__antisym,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
     => ( ( ord_less_eq_a @ Y3 @ X2 )
       => ( X2 = Y3 ) ) ) ).

% order_antisym
thf(fact_193_ord__le__eq__trans,axiom,
    ! [A: set_nat,B: set_nat,C: set_nat] :
      ( ( ord_less_eq_set_nat @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_set_nat @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_194_ord__le__eq__trans,axiom,
    ! [A: set_a,B: set_a,C: set_a] :
      ( ( ord_less_eq_set_a @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_set_a @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_195_ord__le__eq__trans,axiom,
    ! [A: list_a,B: list_a,C: list_a] :
      ( ( ord_less_eq_list_a @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_list_a @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_196_ord__le__eq__trans,axiom,
    ! [A: list_nat,B: list_nat,C: list_nat] :
      ( ( ord_less_eq_list_nat @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_list_nat @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_197_ord__le__eq__trans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_nat @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_198_ord__le__eq__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_199_ord__eq__le__trans,axiom,
    ! [A: set_nat,B: set_nat,C: set_nat] :
      ( ( A = B )
     => ( ( ord_less_eq_set_nat @ B @ C )
       => ( ord_less_eq_set_nat @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_200_ord__eq__le__trans,axiom,
    ! [A: set_a,B: set_a,C: set_a] :
      ( ( A = B )
     => ( ( ord_less_eq_set_a @ B @ C )
       => ( ord_less_eq_set_a @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_201_ord__eq__le__trans,axiom,
    ! [A: list_a,B: list_a,C: list_a] :
      ( ( A = B )
     => ( ( ord_less_eq_list_a @ B @ C )
       => ( ord_less_eq_list_a @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_202_ord__eq__le__trans,axiom,
    ! [A: list_nat,B: list_nat,C: list_nat] :
      ( ( A = B )
     => ( ( ord_less_eq_list_nat @ B @ C )
       => ( ord_less_eq_list_nat @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_203_ord__eq__le__trans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( A = B )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ord_less_eq_nat @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_204_ord__eq__le__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( A = B )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_205_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: set_nat,Z: set_nat] : ( Y2 = Z ) )
    = ( ^ [X3: set_nat,Y: set_nat] :
          ( ( ord_less_eq_set_nat @ X3 @ Y )
          & ( ord_less_eq_set_nat @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_206_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: set_a,Z: set_a] : ( Y2 = Z ) )
    = ( ^ [X3: set_a,Y: set_a] :
          ( ( ord_less_eq_set_a @ X3 @ Y )
          & ( ord_less_eq_set_a @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_207_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: list_a,Z: list_a] : ( Y2 = Z ) )
    = ( ^ [X3: list_a,Y: list_a] :
          ( ( ord_less_eq_list_a @ X3 @ Y )
          & ( ord_less_eq_list_a @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_208_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: list_nat,Z: list_nat] : ( Y2 = Z ) )
    = ( ^ [X3: list_nat,Y: list_nat] :
          ( ( ord_less_eq_list_nat @ X3 @ Y )
          & ( ord_less_eq_list_nat @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_209_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: nat,Z: nat] : ( Y2 = Z ) )
    = ( ^ [X3: nat,Y: nat] :
          ( ( ord_less_eq_nat @ X3 @ Y )
          & ( ord_less_eq_nat @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_210_order__class_Oorder__eq__iff,axiom,
    ( ( ^ [Y2: a,Z: a] : ( Y2 = Z ) )
    = ( ^ [X3: a,Y: a] :
          ( ( ord_less_eq_a @ X3 @ Y )
          & ( ord_less_eq_a @ Y @ X3 ) ) ) ) ).

% order_class.order_eq_iff
thf(fact_211_le__cases3,axiom,
    ! [X2: list_a,Y3: list_a,Z2: list_a] :
      ( ( ( ord_less_eq_list_a @ X2 @ Y3 )
       => ~ ( ord_less_eq_list_a @ Y3 @ Z2 ) )
     => ( ( ( ord_less_eq_list_a @ Y3 @ X2 )
         => ~ ( ord_less_eq_list_a @ X2 @ Z2 ) )
       => ( ( ( ord_less_eq_list_a @ X2 @ Z2 )
           => ~ ( ord_less_eq_list_a @ Z2 @ Y3 ) )
         => ( ( ( ord_less_eq_list_a @ Z2 @ Y3 )
             => ~ ( ord_less_eq_list_a @ Y3 @ X2 ) )
           => ( ( ( ord_less_eq_list_a @ Y3 @ Z2 )
               => ~ ( ord_less_eq_list_a @ Z2 @ X2 ) )
             => ~ ( ( ord_less_eq_list_a @ Z2 @ X2 )
                 => ~ ( ord_less_eq_list_a @ X2 @ Y3 ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_212_le__cases3,axiom,
    ! [X2: list_nat,Y3: list_nat,Z2: list_nat] :
      ( ( ( ord_less_eq_list_nat @ X2 @ Y3 )
       => ~ ( ord_less_eq_list_nat @ Y3 @ Z2 ) )
     => ( ( ( ord_less_eq_list_nat @ Y3 @ X2 )
         => ~ ( ord_less_eq_list_nat @ X2 @ Z2 ) )
       => ( ( ( ord_less_eq_list_nat @ X2 @ Z2 )
           => ~ ( ord_less_eq_list_nat @ Z2 @ Y3 ) )
         => ( ( ( ord_less_eq_list_nat @ Z2 @ Y3 )
             => ~ ( ord_less_eq_list_nat @ Y3 @ X2 ) )
           => ( ( ( ord_less_eq_list_nat @ Y3 @ Z2 )
               => ~ ( ord_less_eq_list_nat @ Z2 @ X2 ) )
             => ~ ( ( ord_less_eq_list_nat @ Z2 @ X2 )
                 => ~ ( ord_less_eq_list_nat @ X2 @ Y3 ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_213_le__cases3,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ( ord_less_eq_nat @ X2 @ Y3 )
       => ~ ( ord_less_eq_nat @ Y3 @ Z2 ) )
     => ( ( ( ord_less_eq_nat @ Y3 @ X2 )
         => ~ ( ord_less_eq_nat @ X2 @ Z2 ) )
       => ( ( ( ord_less_eq_nat @ X2 @ Z2 )
           => ~ ( ord_less_eq_nat @ Z2 @ Y3 ) )
         => ( ( ( ord_less_eq_nat @ Z2 @ Y3 )
             => ~ ( ord_less_eq_nat @ Y3 @ X2 ) )
           => ( ( ( ord_less_eq_nat @ Y3 @ Z2 )
               => ~ ( ord_less_eq_nat @ Z2 @ X2 ) )
             => ~ ( ( ord_less_eq_nat @ Z2 @ X2 )
                 => ~ ( ord_less_eq_nat @ X2 @ Y3 ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_214_le__cases3,axiom,
    ! [X2: a,Y3: a,Z2: a] :
      ( ( ( ord_less_eq_a @ X2 @ Y3 )
       => ~ ( ord_less_eq_a @ Y3 @ Z2 ) )
     => ( ( ( ord_less_eq_a @ Y3 @ X2 )
         => ~ ( ord_less_eq_a @ X2 @ Z2 ) )
       => ( ( ( ord_less_eq_a @ X2 @ Z2 )
           => ~ ( ord_less_eq_a @ Z2 @ Y3 ) )
         => ( ( ( ord_less_eq_a @ Z2 @ Y3 )
             => ~ ( ord_less_eq_a @ Y3 @ X2 ) )
           => ( ( ( ord_less_eq_a @ Y3 @ Z2 )
               => ~ ( ord_less_eq_a @ Z2 @ X2 ) )
             => ~ ( ( ord_less_eq_a @ Z2 @ X2 )
                 => ~ ( ord_less_eq_a @ X2 @ Y3 ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_215_nle__le,axiom,
    ! [A: list_a,B: list_a] :
      ( ( ~ ( ord_less_eq_list_a @ A @ B ) )
      = ( ( ord_less_eq_list_a @ B @ A )
        & ( B != A ) ) ) ).

% nle_le
thf(fact_216_nle__le,axiom,
    ! [A: list_nat,B: list_nat] :
      ( ( ~ ( ord_less_eq_list_nat @ A @ B ) )
      = ( ( ord_less_eq_list_nat @ B @ A )
        & ( B != A ) ) ) ).

% nle_le
thf(fact_217_nle__le,axiom,
    ! [A: nat,B: nat] :
      ( ( ~ ( ord_less_eq_nat @ A @ B ) )
      = ( ( ord_less_eq_nat @ B @ A )
        & ( B != A ) ) ) ).

% nle_le
thf(fact_218_nle__le,axiom,
    ! [A: a,B: a] :
      ( ( ~ ( ord_less_eq_a @ A @ B ) )
      = ( ( ord_less_eq_a @ B @ A )
        & ( B != A ) ) ) ).

% nle_le
thf(fact_219_order__less__imp__not__less,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ~ ( ord_less_list_a @ Y3 @ X2 ) ) ).

% order_less_imp_not_less
thf(fact_220_order__less__imp__not__less,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ~ ( ord_less_list_nat @ Y3 @ X2 ) ) ).

% order_less_imp_not_less
thf(fact_221_order__less__imp__not__less,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ~ ( ord_less_set_nat @ Y3 @ X2 ) ) ).

% order_less_imp_not_less
thf(fact_222_order__less__imp__not__less,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ~ ( ord_less_nat @ Y3 @ X2 ) ) ).

% order_less_imp_not_less
thf(fact_223_order__less__imp__not__less,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ~ ( ord_less_a @ Y3 @ X2 ) ) ).

% order_less_imp_not_less
thf(fact_224_order__less__imp__not__eq2,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ( Y3 != X2 ) ) ).

% order_less_imp_not_eq2
thf(fact_225_order__less__imp__not__eq2,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ( Y3 != X2 ) ) ).

% order_less_imp_not_eq2
thf(fact_226_order__less__imp__not__eq2,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ( Y3 != X2 ) ) ).

% order_less_imp_not_eq2
thf(fact_227_order__less__imp__not__eq2,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( Y3 != X2 ) ) ).

% order_less_imp_not_eq2
thf(fact_228_order__less__imp__not__eq2,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( Y3 != X2 ) ) ).

% order_less_imp_not_eq2
thf(fact_229_order__less__imp__not__eq,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% order_less_imp_not_eq
thf(fact_230_order__less__imp__not__eq,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% order_less_imp_not_eq
thf(fact_231_order__less__imp__not__eq,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% order_less_imp_not_eq
thf(fact_232_order__less__imp__not__eq,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% order_less_imp_not_eq
thf(fact_233_order__less__imp__not__eq,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% order_less_imp_not_eq
thf(fact_234_linorder__less__linear,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
      | ( X2 = Y3 )
      | ( ord_less_list_a @ Y3 @ X2 ) ) ).

% linorder_less_linear
thf(fact_235_linorder__less__linear,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
      | ( X2 = Y3 )
      | ( ord_less_list_nat @ Y3 @ X2 ) ) ).

% linorder_less_linear
thf(fact_236_linorder__less__linear,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
      | ( X2 = Y3 )
      | ( ord_less_nat @ Y3 @ X2 ) ) ).

% linorder_less_linear
thf(fact_237_linorder__less__linear,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
      | ( X2 = Y3 )
      | ( ord_less_a @ Y3 @ X2 ) ) ).

% linorder_less_linear
thf(fact_238_order__less__imp__triv,axiom,
    ! [X2: list_a,Y3: list_a,P: $o] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ( ( ord_less_list_a @ Y3 @ X2 )
       => P ) ) ).

% order_less_imp_triv
thf(fact_239_order__less__imp__triv,axiom,
    ! [X2: list_nat,Y3: list_nat,P: $o] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ( ( ord_less_list_nat @ Y3 @ X2 )
       => P ) ) ).

% order_less_imp_triv
thf(fact_240_order__less__imp__triv,axiom,
    ! [X2: set_nat,Y3: set_nat,P: $o] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ( ( ord_less_set_nat @ Y3 @ X2 )
       => P ) ) ).

% order_less_imp_triv
thf(fact_241_order__less__imp__triv,axiom,
    ! [X2: nat,Y3: nat,P: $o] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( ( ord_less_nat @ Y3 @ X2 )
       => P ) ) ).

% order_less_imp_triv
thf(fact_242_order__less__imp__triv,axiom,
    ! [X2: a,Y3: a,P: $o] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( ( ord_less_a @ Y3 @ X2 )
       => P ) ) ).

% order_less_imp_triv
thf(fact_243_order__less__not__sym,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ~ ( ord_less_list_a @ Y3 @ X2 ) ) ).

% order_less_not_sym
thf(fact_244_order__less__not__sym,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ~ ( ord_less_list_nat @ Y3 @ X2 ) ) ).

% order_less_not_sym
thf(fact_245_order__less__not__sym,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ~ ( ord_less_set_nat @ Y3 @ X2 ) ) ).

% order_less_not_sym
thf(fact_246_order__less__not__sym,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ~ ( ord_less_nat @ Y3 @ X2 ) ) ).

% order_less_not_sym
thf(fact_247_order__less__not__sym,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ~ ( ord_less_a @ Y3 @ X2 ) ) ).

% order_less_not_sym
thf(fact_248_order__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_249_order__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_250_order__less__subst2,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_251_order__less__subst2,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_252_order__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > list_a,C: list_a] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_list_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_253_order__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > list_nat,C: list_nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_list_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_254_order__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > set_nat,C: set_nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_set_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_255_order__less__subst2,axiom,
    ! [A: a,B: a,F: a > list_a,C: list_a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_list_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_256_order__less__subst2,axiom,
    ! [A: a,B: a,F: a > list_nat,C: list_nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_list_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_257_order__less__subst2,axiom,
    ! [A: a,B: a,F: a > set_nat,C: set_nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_set_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_subst2
thf(fact_258_order__less__subst1,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_259_order__less__subst1,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_260_order__less__subst1,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_261_order__less__subst1,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_262_order__less__subst1,axiom,
    ! [A: nat,F: list_a > nat,B: list_a,C: list_a] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_list_a @ B @ C )
       => ( ! [X4: list_a,Y4: list_a] :
              ( ( ord_less_list_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_263_order__less__subst1,axiom,
    ! [A: nat,F: list_nat > nat,B: list_nat,C: list_nat] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_list_nat @ B @ C )
       => ( ! [X4: list_nat,Y4: list_nat] :
              ( ( ord_less_list_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_264_order__less__subst1,axiom,
    ! [A: nat,F: set_nat > nat,B: set_nat,C: set_nat] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_set_nat @ B @ C )
       => ( ! [X4: set_nat,Y4: set_nat] :
              ( ( ord_less_set_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_265_order__less__subst1,axiom,
    ! [A: a,F: list_a > a,B: list_a,C: list_a] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_list_a @ B @ C )
       => ( ! [X4: list_a,Y4: list_a] :
              ( ( ord_less_list_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_266_order__less__subst1,axiom,
    ! [A: a,F: list_nat > a,B: list_nat,C: list_nat] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_list_nat @ B @ C )
       => ( ! [X4: list_nat,Y4: list_nat] :
              ( ( ord_less_list_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_267_order__less__subst1,axiom,
    ! [A: a,F: set_nat > a,B: set_nat,C: set_nat] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_set_nat @ B @ C )
       => ( ! [X4: set_nat,Y4: set_nat] :
              ( ( ord_less_set_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_subst1
thf(fact_268_order__less__irrefl,axiom,
    ! [X2: list_a] :
      ~ ( ord_less_list_a @ X2 @ X2 ) ).

% order_less_irrefl
thf(fact_269_order__less__irrefl,axiom,
    ! [X2: list_nat] :
      ~ ( ord_less_list_nat @ X2 @ X2 ) ).

% order_less_irrefl
thf(fact_270_order__less__irrefl,axiom,
    ! [X2: set_nat] :
      ~ ( ord_less_set_nat @ X2 @ X2 ) ).

% order_less_irrefl
thf(fact_271_order__less__irrefl,axiom,
    ! [X2: nat] :
      ~ ( ord_less_nat @ X2 @ X2 ) ).

% order_less_irrefl
thf(fact_272_order__less__irrefl,axiom,
    ! [X2: a] :
      ~ ( ord_less_a @ X2 @ X2 ) ).

% order_less_irrefl
thf(fact_273_ord__less__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_274_ord__less__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_275_ord__less__eq__subst,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_276_ord__less__eq__subst,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_277_ord__less__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > list_a,C: list_a] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_278_ord__less__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > list_nat,C: list_nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_279_ord__less__eq__subst,axiom,
    ! [A: nat,B: nat,F: nat > set_nat,C: set_nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_280_ord__less__eq__subst,axiom,
    ! [A: a,B: a,F: a > list_a,C: list_a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_281_ord__less__eq__subst,axiom,
    ! [A: a,B: a,F: a > list_nat,C: list_nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_282_ord__less__eq__subst,axiom,
    ! [A: a,B: a,F: a > set_nat,C: set_nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ ( F @ A ) @ C ) ) ) ) ).

% ord_less_eq_subst
thf(fact_283_ord__eq__less__subst,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_284_ord__eq__less__subst,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_285_ord__eq__less__subst,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_286_ord__eq__less__subst,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_287_ord__eq__less__subst,axiom,
    ! [A: list_a,F: nat > list_a,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_288_ord__eq__less__subst,axiom,
    ! [A: list_nat,F: nat > list_nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_289_ord__eq__less__subst,axiom,
    ! [A: set_nat,F: nat > set_nat,B: nat,C: nat] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_290_ord__eq__less__subst,axiom,
    ! [A: list_a,F: a > list_a,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_291_ord__eq__less__subst,axiom,
    ! [A: list_nat,F: a > list_nat,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_list_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_list_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_292_ord__eq__less__subst,axiom,
    ! [A: set_nat,F: a > set_nat,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_set_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_set_nat @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_293_order__less__trans,axiom,
    ! [X2: list_a,Y3: list_a,Z2: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ( ( ord_less_list_a @ Y3 @ Z2 )
       => ( ord_less_list_a @ X2 @ Z2 ) ) ) ).

% order_less_trans
thf(fact_294_order__less__trans,axiom,
    ! [X2: list_nat,Y3: list_nat,Z2: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ( ( ord_less_list_nat @ Y3 @ Z2 )
       => ( ord_less_list_nat @ X2 @ Z2 ) ) ) ).

% order_less_trans
thf(fact_295_order__less__trans,axiom,
    ! [X2: set_nat,Y3: set_nat,Z2: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ( ( ord_less_set_nat @ Y3 @ Z2 )
       => ( ord_less_set_nat @ X2 @ Z2 ) ) ) ).

% order_less_trans
thf(fact_296_order__less__trans,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( ( ord_less_nat @ Y3 @ Z2 )
       => ( ord_less_nat @ X2 @ Z2 ) ) ) ).

% order_less_trans
thf(fact_297_order__less__trans,axiom,
    ! [X2: a,Y3: a,Z2: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( ( ord_less_a @ Y3 @ Z2 )
       => ( ord_less_a @ X2 @ Z2 ) ) ) ).

% order_less_trans
thf(fact_298_order__less__asym_H,axiom,
    ! [A: list_a,B: list_a] :
      ( ( ord_less_list_a @ A @ B )
     => ~ ( ord_less_list_a @ B @ A ) ) ).

% order_less_asym'
thf(fact_299_order__less__asym_H,axiom,
    ! [A: list_nat,B: list_nat] :
      ( ( ord_less_list_nat @ A @ B )
     => ~ ( ord_less_list_nat @ B @ A ) ) ).

% order_less_asym'
thf(fact_300_order__less__asym_H,axiom,
    ! [A: set_nat,B: set_nat] :
      ( ( ord_less_set_nat @ A @ B )
     => ~ ( ord_less_set_nat @ B @ A ) ) ).

% order_less_asym'
thf(fact_301_order__less__asym_H,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_nat @ A @ B )
     => ~ ( ord_less_nat @ B @ A ) ) ).

% order_less_asym'
thf(fact_302_order__less__asym_H,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_a @ A @ B )
     => ~ ( ord_less_a @ B @ A ) ) ).

% order_less_asym'
thf(fact_303_linorder__neq__iff,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( X2 != Y3 )
      = ( ( ord_less_list_a @ X2 @ Y3 )
        | ( ord_less_list_a @ Y3 @ X2 ) ) ) ).

% linorder_neq_iff
thf(fact_304_linorder__neq__iff,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( X2 != Y3 )
      = ( ( ord_less_list_nat @ X2 @ Y3 )
        | ( ord_less_list_nat @ Y3 @ X2 ) ) ) ).

% linorder_neq_iff
thf(fact_305_linorder__neq__iff,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( X2 != Y3 )
      = ( ( ord_less_nat @ X2 @ Y3 )
        | ( ord_less_nat @ Y3 @ X2 ) ) ) ).

% linorder_neq_iff
thf(fact_306_linorder__neq__iff,axiom,
    ! [X2: a,Y3: a] :
      ( ( X2 != Y3 )
      = ( ( ord_less_a @ X2 @ Y3 )
        | ( ord_less_a @ Y3 @ X2 ) ) ) ).

% linorder_neq_iff
thf(fact_307_order__less__asym,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ord_less_list_a @ X2 @ Y3 )
     => ~ ( ord_less_list_a @ Y3 @ X2 ) ) ).

% order_less_asym
thf(fact_308_order__less__asym,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ X2 @ Y3 )
     => ~ ( ord_less_list_nat @ Y3 @ X2 ) ) ).

% order_less_asym
thf(fact_309_order__less__asym,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ord_less_set_nat @ X2 @ Y3 )
     => ~ ( ord_less_set_nat @ Y3 @ X2 ) ) ).

% order_less_asym
thf(fact_310_order__less__asym,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ~ ( ord_less_nat @ Y3 @ X2 ) ) ).

% order_less_asym
thf(fact_311_order__less__asym,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ~ ( ord_less_a @ Y3 @ X2 ) ) ).

% order_less_asym
thf(fact_312_linorder__neqE,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( X2 != Y3 )
     => ( ~ ( ord_less_list_a @ X2 @ Y3 )
       => ( ord_less_list_a @ Y3 @ X2 ) ) ) ).

% linorder_neqE
thf(fact_313_linorder__neqE,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( X2 != Y3 )
     => ( ~ ( ord_less_list_nat @ X2 @ Y3 )
       => ( ord_less_list_nat @ Y3 @ X2 ) ) ) ).

% linorder_neqE
thf(fact_314_linorder__neqE,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( X2 != Y3 )
     => ( ~ ( ord_less_nat @ X2 @ Y3 )
       => ( ord_less_nat @ Y3 @ X2 ) ) ) ).

% linorder_neqE
thf(fact_315_linorder__neqE,axiom,
    ! [X2: a,Y3: a] :
      ( ( X2 != Y3 )
     => ( ~ ( ord_less_a @ X2 @ Y3 )
       => ( ord_less_a @ Y3 @ X2 ) ) ) ).

% linorder_neqE
thf(fact_316_dual__order_Ostrict__implies__not__eq,axiom,
    ! [B: list_a,A: list_a] :
      ( ( ord_less_list_a @ B @ A )
     => ( A != B ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_317_dual__order_Ostrict__implies__not__eq,axiom,
    ! [B: list_nat,A: list_nat] :
      ( ( ord_less_list_nat @ B @ A )
     => ( A != B ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_318_dual__order_Ostrict__implies__not__eq,axiom,
    ! [B: set_nat,A: set_nat] :
      ( ( ord_less_set_nat @ B @ A )
     => ( A != B ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_319_dual__order_Ostrict__implies__not__eq,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_nat @ B @ A )
     => ( A != B ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_320_dual__order_Ostrict__implies__not__eq,axiom,
    ! [B: a,A: a] :
      ( ( ord_less_a @ B @ A )
     => ( A != B ) ) ).

% dual_order.strict_implies_not_eq
thf(fact_321_order_Ostrict__implies__not__eq,axiom,
    ! [A: list_a,B: list_a] :
      ( ( ord_less_list_a @ A @ B )
     => ( A != B ) ) ).

% order.strict_implies_not_eq
thf(fact_322_order_Ostrict__implies__not__eq,axiom,
    ! [A: list_nat,B: list_nat] :
      ( ( ord_less_list_nat @ A @ B )
     => ( A != B ) ) ).

% order.strict_implies_not_eq
thf(fact_323_order_Ostrict__implies__not__eq,axiom,
    ! [A: set_nat,B: set_nat] :
      ( ( ord_less_set_nat @ A @ B )
     => ( A != B ) ) ).

% order.strict_implies_not_eq
thf(fact_324_order_Ostrict__implies__not__eq,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( A != B ) ) ).

% order.strict_implies_not_eq
thf(fact_325_order_Ostrict__implies__not__eq,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_a @ A @ B )
     => ( A != B ) ) ).

% order.strict_implies_not_eq
thf(fact_326_dual__order_Ostrict__trans,axiom,
    ! [B: set_nat,A: set_nat,C: set_nat] :
      ( ( ord_less_set_nat @ B @ A )
     => ( ( ord_less_set_nat @ C @ B )
       => ( ord_less_set_nat @ C @ A ) ) ) ).

% dual_order.strict_trans
thf(fact_327_dual__order_Ostrict__trans,axiom,
    ! [B: nat,A: nat,C: nat] :
      ( ( ord_less_nat @ B @ A )
     => ( ( ord_less_nat @ C @ B )
       => ( ord_less_nat @ C @ A ) ) ) ).

% dual_order.strict_trans
thf(fact_328_dual__order_Ostrict__trans,axiom,
    ! [B: a,A: a,C: a] :
      ( ( ord_less_a @ B @ A )
     => ( ( ord_less_a @ C @ B )
       => ( ord_less_a @ C @ A ) ) ) ).

% dual_order.strict_trans
thf(fact_329_not__less__iff__gr__or__eq,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ~ ( ord_less_nat @ X2 @ Y3 ) )
      = ( ( ord_less_nat @ Y3 @ X2 )
        | ( X2 = Y3 ) ) ) ).

% not_less_iff_gr_or_eq
thf(fact_330_not__less__iff__gr__or__eq,axiom,
    ! [X2: a,Y3: a] :
      ( ( ~ ( ord_less_a @ X2 @ Y3 ) )
      = ( ( ord_less_a @ Y3 @ X2 )
        | ( X2 = Y3 ) ) ) ).

% not_less_iff_gr_or_eq
thf(fact_331_order_Ostrict__trans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_nat @ B @ C )
       => ( ord_less_nat @ A @ C ) ) ) ).

% order.strict_trans
thf(fact_332_order_Ostrict__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_a @ B @ C )
       => ( ord_less_a @ A @ C ) ) ) ).

% order.strict_trans
thf(fact_333_linorder__less__wlog,axiom,
    ! [P: nat > nat > $o,A: nat,B: nat] :
      ( ! [A3: nat,B3: nat] :
          ( ( ord_less_nat @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: nat] : ( P @ A3 @ A3 )
       => ( ! [A3: nat,B3: nat] :
              ( ( P @ B3 @ A3 )
             => ( P @ A3 @ B3 ) )
         => ( P @ A @ B ) ) ) ) ).

% linorder_less_wlog
thf(fact_334_linorder__less__wlog,axiom,
    ! [P: a > a > $o,A: a,B: a] :
      ( ! [A3: a,B3: a] :
          ( ( ord_less_a @ A3 @ B3 )
         => ( P @ A3 @ B3 ) )
     => ( ! [A3: a] : ( P @ A3 @ A3 )
       => ( ! [A3: a,B3: a] :
              ( ( P @ B3 @ A3 )
             => ( P @ A3 @ B3 ) )
         => ( P @ A @ B ) ) ) ) ).

% linorder_less_wlog
thf(fact_335_exists__least__iff,axiom,
    ( ( ^ [P4: nat > $o] :
        ? [X5: nat] : ( P4 @ X5 ) )
    = ( ^ [P2: nat > $o] :
        ? [N2: nat] :
          ( ( P2 @ N2 )
          & ! [M: nat] :
              ( ( ord_less_nat @ M @ N2 )
             => ~ ( P2 @ M ) ) ) ) ) ).

% exists_least_iff
thf(fact_336_dual__order_Oirrefl,axiom,
    ! [A: nat] :
      ~ ( ord_less_nat @ A @ A ) ).

% dual_order.irrefl
thf(fact_337_dual__order_Oirrefl,axiom,
    ! [A: a] :
      ~ ( ord_less_a @ A @ A ) ).

% dual_order.irrefl
thf(fact_338_dual__order_Oasym,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_nat @ B @ A )
     => ~ ( ord_less_nat @ A @ B ) ) ).

% dual_order.asym
thf(fact_339_dual__order_Oasym,axiom,
    ! [B: a,A: a] :
      ( ( ord_less_a @ B @ A )
     => ~ ( ord_less_a @ A @ B ) ) ).

% dual_order.asym
thf(fact_340_linorder__cases,axiom,
    ! [X2: nat,Y3: nat] :
      ( ~ ( ord_less_nat @ X2 @ Y3 )
     => ( ( X2 != Y3 )
       => ( ord_less_nat @ Y3 @ X2 ) ) ) ).

% linorder_cases
thf(fact_341_linorder__cases,axiom,
    ! [X2: a,Y3: a] :
      ( ~ ( ord_less_a @ X2 @ Y3 )
     => ( ( X2 != Y3 )
       => ( ord_less_a @ Y3 @ X2 ) ) ) ).

% linorder_cases
thf(fact_342_antisym__conv3,axiom,
    ! [Y3: nat,X2: nat] :
      ( ~ ( ord_less_nat @ Y3 @ X2 )
     => ( ( ~ ( ord_less_nat @ X2 @ Y3 ) )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv3
thf(fact_343_antisym__conv3,axiom,
    ! [Y3: a,X2: a] :
      ( ~ ( ord_less_a @ Y3 @ X2 )
     => ( ( ~ ( ord_less_a @ X2 @ Y3 ) )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv3
thf(fact_344_less__induct,axiom,
    ! [P: nat > $o,A: nat] :
      ( ! [X4: nat] :
          ( ! [Y5: nat] :
              ( ( ord_less_nat @ Y5 @ X4 )
             => ( P @ Y5 ) )
         => ( P @ X4 ) )
     => ( P @ A ) ) ).

% less_induct
thf(fact_345_ord__less__eq__trans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( B = C )
       => ( ord_less_nat @ A @ C ) ) ) ).

% ord_less_eq_trans
thf(fact_346_ord__less__eq__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( B = C )
       => ( ord_less_a @ A @ C ) ) ) ).

% ord_less_eq_trans
thf(fact_347_ord__eq__less__trans,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( A = B )
     => ( ( ord_less_nat @ B @ C )
       => ( ord_less_nat @ A @ C ) ) ) ).

% ord_eq_less_trans
thf(fact_348_ord__eq__less__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( A = B )
     => ( ( ord_less_a @ B @ C )
       => ( ord_less_a @ A @ C ) ) ) ).

% ord_eq_less_trans
thf(fact_349_order_Oasym,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_nat @ A @ B )
     => ~ ( ord_less_nat @ B @ A ) ) ).

% order.asym
thf(fact_350_order_Oasym,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_a @ A @ B )
     => ~ ( ord_less_a @ B @ A ) ) ).

% order.asym
thf(fact_351_less__imp__neq,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% less_imp_neq
thf(fact_352_less__imp__neq,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( X2 != Y3 ) ) ).

% less_imp_neq
thf(fact_353_gt__ex,axiom,
    ! [X2: nat] :
    ? [X_1: nat] : ( ord_less_nat @ X2 @ X_1 ) ).

% gt_ex
thf(fact_354_sorted__iff__nth__mono,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_eq_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I2 ) @ ( nth_nat @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono
thf(fact_355_sorted__iff__nth__mono,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_eq_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs ) )
             => ( ord_less_eq_a @ ( nth_a @ Xs @ I2 ) @ ( nth_a @ Xs @ J ) ) ) ) ) ) ).

% sorted_iff_nth_mono
thf(fact_356_sorted__nth__mono,axiom,
    ! [Xs: list_nat,I: nat,J2: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
         => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I ) @ ( nth_nat @ Xs @ J2 ) ) ) ) ) ).

% sorted_nth_mono
thf(fact_357_sorted__nth__mono,axiom,
    ! [Xs: list_a,I: nat,J2: nat] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
         => ( ord_less_eq_a @ ( nth_a @ Xs @ I ) @ ( nth_a @ Xs @ J2 ) ) ) ) ) ).

% sorted_nth_mono
thf(fact_358_neq__if__length__neq,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( size_size_list_a @ Xs )
       != ( size_size_list_a @ Ys ) )
     => ( Xs != Ys ) ) ).

% neq_if_length_neq
thf(fact_359_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_360_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs3: list_a] :
      ( ( size_size_list_a @ Xs3 )
      = N ) ).

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

% Ex_list_of_length
thf(fact_362_order__le__imp__less__or__eq,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ord_less_nat @ X2 @ Y3 )
        | ( X2 = Y3 ) ) ) ).

% order_le_imp_less_or_eq
thf(fact_363_order__le__imp__less__or__eq,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
     => ( ( ord_less_a @ X2 @ Y3 )
        | ( X2 = Y3 ) ) ) ).

% order_le_imp_less_or_eq
thf(fact_364_linorder__le__less__linear,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
      | ( ord_less_nat @ Y3 @ X2 ) ) ).

% linorder_le_less_linear
thf(fact_365_linorder__le__less__linear,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
      | ( ord_less_a @ Y3 @ X2 ) ) ).

% linorder_le_less_linear
thf(fact_366_order__less__le__subst2,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_eq_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_le_subst2
thf(fact_367_order__less__le__subst2,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_eq_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_less_le_subst2
thf(fact_368_order__less__le__subst2,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_eq_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_le_subst2
thf(fact_369_order__less__le__subst2,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_eq_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_less_le_subst2
thf(fact_370_order__less__le__subst1,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_le_subst1
thf(fact_371_order__less__le__subst1,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_le_subst1
thf(fact_372_order__less__le__subst1,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( ord_less_nat @ A @ ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_less_le_subst1
thf(fact_373_order__less__le__subst1,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( ord_less_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_less_le_subst1
thf(fact_374_order__le__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_nat @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_le_less_subst2
thf(fact_375_order__le__less__subst2,axiom,
    ! [A: nat,B: nat,F: nat > a,C: a] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_a @ ( F @ B ) @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_le_less_subst2
thf(fact_376_order__le__less__subst2,axiom,
    ! [A: a,B: a,F: a > nat,C: nat] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_nat @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ ( F @ A ) @ C ) ) ) ) ).

% order_le_less_subst2
thf(fact_377_order__le__less__subst2,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_a @ ( F @ B ) @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_eq_a @ X4 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ ( F @ A ) @ C ) ) ) ) ).

% order_le_less_subst2
thf(fact_378_order__le__less__subst1,axiom,
    ! [A: nat,F: nat > nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_le_less_subst1
thf(fact_379_order__le__less__subst1,axiom,
    ! [A: nat,F: a > nat,B: a,C: a] :
      ( ( ord_less_eq_nat @ A @ ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_nat @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_nat @ A @ ( F @ C ) ) ) ) ) ).

% order_le_less_subst1
thf(fact_380_order__le__less__subst1,axiom,
    ! [A: a,F: nat > a,B: nat,C: nat] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_nat @ B @ C )
       => ( ! [X4: nat,Y4: nat] :
              ( ( ord_less_nat @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_le_less_subst1
thf(fact_381_order__le__less__subst1,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_a @ B @ C )
       => ( ! [X4: a,Y4: a] :
              ( ( ord_less_a @ X4 @ Y4 )
             => ( ord_less_a @ ( F @ X4 ) @ ( F @ Y4 ) ) )
         => ( ord_less_a @ A @ ( F @ C ) ) ) ) ) ).

% order_le_less_subst1
thf(fact_382_order__less__le__trans,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_nat @ Y3 @ Z2 )
       => ( ord_less_nat @ X2 @ Z2 ) ) ) ).

% order_less_le_trans
thf(fact_383_order__less__le__trans,axiom,
    ! [X2: a,Y3: a,Z2: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( ( ord_less_eq_a @ Y3 @ Z2 )
       => ( ord_less_a @ X2 @ Z2 ) ) ) ).

% order_less_le_trans
thf(fact_384_order__le__less__trans,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ord_less_nat @ Y3 @ Z2 )
       => ( ord_less_nat @ X2 @ Z2 ) ) ) ).

% order_le_less_trans
thf(fact_385_order__le__less__trans,axiom,
    ! [X2: a,Y3: a,Z2: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
     => ( ( ord_less_a @ Y3 @ Z2 )
       => ( ord_less_a @ X2 @ Z2 ) ) ) ).

% order_le_less_trans
thf(fact_386_order__neq__le__trans,axiom,
    ! [A: nat,B: nat] :
      ( ( A != B )
     => ( ( ord_less_eq_nat @ A @ B )
       => ( ord_less_nat @ A @ B ) ) ) ).

% order_neq_le_trans
thf(fact_387_order__neq__le__trans,axiom,
    ! [A: a,B: a] :
      ( ( A != B )
     => ( ( ord_less_eq_a @ A @ B )
       => ( ord_less_a @ A @ B ) ) ) ).

% order_neq_le_trans
thf(fact_388_order__le__neq__trans,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( A != B )
       => ( ord_less_nat @ A @ B ) ) ) ).

% order_le_neq_trans
thf(fact_389_order__le__neq__trans,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( A != B )
       => ( ord_less_a @ A @ B ) ) ) ).

% order_le_neq_trans
thf(fact_390_order__less__imp__le,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_nat @ X2 @ Y3 )
     => ( ord_less_eq_nat @ X2 @ Y3 ) ) ).

% order_less_imp_le
thf(fact_391_order__less__imp__le,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_a @ X2 @ Y3 )
     => ( ord_less_eq_a @ X2 @ Y3 ) ) ).

% order_less_imp_le
thf(fact_392_linorder__not__less,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ~ ( ord_less_nat @ X2 @ Y3 ) )
      = ( ord_less_eq_nat @ Y3 @ X2 ) ) ).

% linorder_not_less
thf(fact_393_linorder__not__less,axiom,
    ! [X2: a,Y3: a] :
      ( ( ~ ( ord_less_a @ X2 @ Y3 ) )
      = ( ord_less_eq_a @ Y3 @ X2 ) ) ).

% linorder_not_less
thf(fact_394_linorder__not__le,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ~ ( ord_less_eq_nat @ X2 @ Y3 ) )
      = ( ord_less_nat @ Y3 @ X2 ) ) ).

% linorder_not_le
thf(fact_395_linorder__not__le,axiom,
    ! [X2: a,Y3: a] :
      ( ( ~ ( ord_less_eq_a @ X2 @ Y3 ) )
      = ( ord_less_a @ Y3 @ X2 ) ) ).

% linorder_not_le
thf(fact_396_order__less__le,axiom,
    ( ord_less_nat
    = ( ^ [X3: nat,Y: nat] :
          ( ( ord_less_eq_nat @ X3 @ Y )
          & ( X3 != Y ) ) ) ) ).

% order_less_le
thf(fact_397_order__less__le,axiom,
    ( ord_less_a
    = ( ^ [X3: a,Y: a] :
          ( ( ord_less_eq_a @ X3 @ Y )
          & ( X3 != Y ) ) ) ) ).

% order_less_le
thf(fact_398_order__le__less,axiom,
    ( ord_less_eq_nat
    = ( ^ [X3: nat,Y: nat] :
          ( ( ord_less_nat @ X3 @ Y )
          | ( X3 = Y ) ) ) ) ).

% order_le_less
thf(fact_399_order__le__less,axiom,
    ( ord_less_eq_a
    = ( ^ [X3: a,Y: a] :
          ( ( ord_less_a @ X3 @ Y )
          | ( X3 = Y ) ) ) ) ).

% order_le_less
thf(fact_400_dual__order_Ostrict__implies__order,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_nat @ B @ A )
     => ( ord_less_eq_nat @ B @ A ) ) ).

% dual_order.strict_implies_order
thf(fact_401_dual__order_Ostrict__implies__order,axiom,
    ! [B: a,A: a] :
      ( ( ord_less_a @ B @ A )
     => ( ord_less_eq_a @ B @ A ) ) ).

% dual_order.strict_implies_order
thf(fact_402_order_Ostrict__implies__order,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ord_less_eq_nat @ A @ B ) ) ).

% order.strict_implies_order
thf(fact_403_order_Ostrict__implies__order,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_a @ A @ B )
     => ( ord_less_eq_a @ A @ B ) ) ).

% order.strict_implies_order
thf(fact_404_dual__order_Ostrict__iff__not,axiom,
    ( ord_less_nat
    = ( ^ [B2: nat,A2: nat] :
          ( ( ord_less_eq_nat @ B2 @ A2 )
          & ~ ( ord_less_eq_nat @ A2 @ B2 ) ) ) ) ).

% dual_order.strict_iff_not
thf(fact_405_dual__order_Ostrict__iff__not,axiom,
    ( ord_less_a
    = ( ^ [B2: a,A2: a] :
          ( ( ord_less_eq_a @ B2 @ A2 )
          & ~ ( ord_less_eq_a @ A2 @ B2 ) ) ) ) ).

% dual_order.strict_iff_not
thf(fact_406_dual__order_Ostrict__trans2,axiom,
    ! [B: nat,A: nat,C: nat] :
      ( ( ord_less_nat @ B @ A )
     => ( ( ord_less_eq_nat @ C @ B )
       => ( ord_less_nat @ C @ A ) ) ) ).

% dual_order.strict_trans2
thf(fact_407_dual__order_Ostrict__trans2,axiom,
    ! [B: a,A: a,C: a] :
      ( ( ord_less_a @ B @ A )
     => ( ( ord_less_eq_a @ C @ B )
       => ( ord_less_a @ C @ A ) ) ) ).

% dual_order.strict_trans2
thf(fact_408_dual__order_Ostrict__trans1,axiom,
    ! [B: nat,A: nat,C: nat] :
      ( ( ord_less_eq_nat @ B @ A )
     => ( ( ord_less_nat @ C @ B )
       => ( ord_less_nat @ C @ A ) ) ) ).

% dual_order.strict_trans1
thf(fact_409_dual__order_Ostrict__trans1,axiom,
    ! [B: a,A: a,C: a] :
      ( ( ord_less_eq_a @ B @ A )
     => ( ( ord_less_a @ C @ B )
       => ( ord_less_a @ C @ A ) ) ) ).

% dual_order.strict_trans1
thf(fact_410_dual__order_Ostrict__iff__order,axiom,
    ( ord_less_nat
    = ( ^ [B2: nat,A2: nat] :
          ( ( ord_less_eq_nat @ B2 @ A2 )
          & ( A2 != B2 ) ) ) ) ).

% dual_order.strict_iff_order
thf(fact_411_dual__order_Ostrict__iff__order,axiom,
    ( ord_less_a
    = ( ^ [B2: a,A2: a] :
          ( ( ord_less_eq_a @ B2 @ A2 )
          & ( A2 != B2 ) ) ) ) ).

% dual_order.strict_iff_order
thf(fact_412_dual__order_Oorder__iff__strict,axiom,
    ( ord_less_eq_nat
    = ( ^ [B2: nat,A2: nat] :
          ( ( ord_less_nat @ B2 @ A2 )
          | ( A2 = B2 ) ) ) ) ).

% dual_order.order_iff_strict
thf(fact_413_dual__order_Oorder__iff__strict,axiom,
    ( ord_less_eq_a
    = ( ^ [B2: a,A2: a] :
          ( ( ord_less_a @ B2 @ A2 )
          | ( A2 = B2 ) ) ) ) ).

% dual_order.order_iff_strict
thf(fact_414_order_Ostrict__iff__not,axiom,
    ( ord_less_nat
    = ( ^ [A2: nat,B2: nat] :
          ( ( ord_less_eq_nat @ A2 @ B2 )
          & ~ ( ord_less_eq_nat @ B2 @ A2 ) ) ) ) ).

% order.strict_iff_not
thf(fact_415_order_Ostrict__iff__not,axiom,
    ( ord_less_a
    = ( ^ [A2: a,B2: a] :
          ( ( ord_less_eq_a @ A2 @ B2 )
          & ~ ( ord_less_eq_a @ B2 @ A2 ) ) ) ) ).

% order.strict_iff_not
thf(fact_416_order_Ostrict__trans2,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ord_less_nat @ A @ C ) ) ) ).

% order.strict_trans2
thf(fact_417_order_Ostrict__trans2,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_a @ A @ B )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ord_less_a @ A @ C ) ) ) ).

% order.strict_trans2
thf(fact_418_order_Ostrict__trans1,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_nat @ B @ C )
       => ( ord_less_nat @ A @ C ) ) ) ).

% order.strict_trans1
thf(fact_419_order_Ostrict__trans1,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_a @ B @ C )
       => ( ord_less_a @ A @ C ) ) ) ).

% order.strict_trans1
thf(fact_420_order_Ostrict__iff__order,axiom,
    ( ord_less_nat
    = ( ^ [A2: nat,B2: nat] :
          ( ( ord_less_eq_nat @ A2 @ B2 )
          & ( A2 != B2 ) ) ) ) ).

% order.strict_iff_order
thf(fact_421_order_Ostrict__iff__order,axiom,
    ( ord_less_a
    = ( ^ [A2: a,B2: a] :
          ( ( ord_less_eq_a @ A2 @ B2 )
          & ( A2 != B2 ) ) ) ) ).

% order.strict_iff_order
thf(fact_422_order_Oorder__iff__strict,axiom,
    ( ord_less_eq_nat
    = ( ^ [A2: nat,B2: nat] :
          ( ( ord_less_nat @ A2 @ B2 )
          | ( A2 = B2 ) ) ) ) ).

% order.order_iff_strict
thf(fact_423_order_Oorder__iff__strict,axiom,
    ( ord_less_eq_a
    = ( ^ [A2: a,B2: a] :
          ( ( ord_less_a @ A2 @ B2 )
          | ( A2 = B2 ) ) ) ) ).

% order.order_iff_strict
thf(fact_424_not__le__imp__less,axiom,
    ! [Y3: nat,X2: nat] :
      ( ~ ( ord_less_eq_nat @ Y3 @ X2 )
     => ( ord_less_nat @ X2 @ Y3 ) ) ).

% not_le_imp_less
thf(fact_425_not__le__imp__less,axiom,
    ! [Y3: a,X2: a] :
      ( ~ ( ord_less_eq_a @ Y3 @ X2 )
     => ( ord_less_a @ X2 @ Y3 ) ) ).

% not_le_imp_less
thf(fact_426_less__le__not__le,axiom,
    ( ord_less_nat
    = ( ^ [X3: nat,Y: nat] :
          ( ( ord_less_eq_nat @ X3 @ Y )
          & ~ ( ord_less_eq_nat @ Y @ X3 ) ) ) ) ).

% less_le_not_le
thf(fact_427_less__le__not__le,axiom,
    ( ord_less_a
    = ( ^ [X3: a,Y: a] :
          ( ( ord_less_eq_a @ X3 @ Y )
          & ~ ( ord_less_eq_a @ Y @ X3 ) ) ) ) ).

% less_le_not_le
thf(fact_428_antisym__conv2,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ~ ( ord_less_nat @ X2 @ Y3 ) )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv2
thf(fact_429_antisym__conv2,axiom,
    ! [X2: a,Y3: a] :
      ( ( ord_less_eq_a @ X2 @ Y3 )
     => ( ( ~ ( ord_less_a @ X2 @ Y3 ) )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv2
thf(fact_430_antisym__conv1,axiom,
    ! [X2: nat,Y3: nat] :
      ( ~ ( ord_less_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_nat @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv1
thf(fact_431_antisym__conv1,axiom,
    ! [X2: a,Y3: a] :
      ( ~ ( ord_less_a @ X2 @ Y3 )
     => ( ( ord_less_eq_a @ X2 @ Y3 )
        = ( X2 = Y3 ) ) ) ).

% antisym_conv1
thf(fact_432_nless__le,axiom,
    ! [A: nat,B: nat] :
      ( ( ~ ( ord_less_nat @ A @ B ) )
      = ( ~ ( ord_less_eq_nat @ A @ B )
        | ( A = B ) ) ) ).

% nless_le
thf(fact_433_nless__le,axiom,
    ! [A: a,B: a] :
      ( ( ~ ( ord_less_a @ A @ B ) )
      = ( ~ ( ord_less_eq_a @ A @ B )
        | ( A = B ) ) ) ).

% nless_le
thf(fact_434_leI,axiom,
    ! [X2: nat,Y3: nat] :
      ( ~ ( ord_less_nat @ X2 @ Y3 )
     => ( ord_less_eq_nat @ Y3 @ X2 ) ) ).

% leI
thf(fact_435_leI,axiom,
    ! [X2: a,Y3: a] :
      ( ~ ( ord_less_a @ X2 @ Y3 )
     => ( ord_less_eq_a @ Y3 @ X2 ) ) ).

% leI
thf(fact_436_leD,axiom,
    ! [Y3: nat,X2: nat] :
      ( ( ord_less_eq_nat @ Y3 @ X2 )
     => ~ ( ord_less_nat @ X2 @ Y3 ) ) ).

% leD
thf(fact_437_leD,axiom,
    ! [Y3: a,X2: a] :
      ( ( ord_less_eq_a @ Y3 @ X2 )
     => ~ ( ord_less_a @ X2 @ Y3 ) ) ).

% leD
thf(fact_438_length__induct,axiom,
    ! [P: list_a > $o,Xs: list_a] :
      ( ! [Xs3: list_a] :
          ( ! [Ys3: list_a] :
              ( ( ord_less_nat @ ( size_size_list_a @ Ys3 ) @ ( size_size_list_a @ Xs3 ) )
             => ( P @ Ys3 ) )
         => ( P @ Xs3 ) )
     => ( P @ Xs ) ) ).

% length_induct
thf(fact_439_length__induct,axiom,
    ! [P: list_nat > $o,Xs: list_nat] :
      ( ! [Xs3: list_nat] :
          ( ! [Ys3: list_nat] :
              ( ( ord_less_nat @ ( size_size_list_nat @ Ys3 ) @ ( size_size_list_nat @ Xs3 ) )
             => ( P @ Ys3 ) )
         => ( P @ Xs3 ) )
     => ( P @ Xs ) ) ).

% length_induct
thf(fact_440_xs__def,axiom,
    ( xs
    = ( linord814965612141868908iset_a @ m ) ) ).

% xs_def
thf(fact_441_M__xs,axiom,
    ( m
    = ( mset_a @ xs ) ) ).

% M_xs
thf(fact_442__092_060open_062count__le_Ax_AM_A_061_Asize_A_Imset_A_Ifilter_A_I_092_060lambda_062y_O_Ay_A_092_060le_062_Ax_J_Axs_J_J_092_060close_062,axiom,
    ( ( k_count_le_a @ x @ m )
    = ( size_size_multiset_a
      @ ( mset_a
        @ ( filter_a
          @ ^ [Y: a] : ( ord_less_eq_a @ Y @ x )
          @ xs ) ) ) ) ).

% \<open>count_le x M = size (mset (filter (\<lambda>y. y \<le> x) xs))\<close>
thf(fact_443_nat__descend__induct,axiom,
    ! [N: nat,P: nat > $o,M2: nat] :
      ( ! [K2: nat] :
          ( ( ord_less_nat @ N @ K2 )
         => ( P @ K2 ) )
     => ( ! [K2: nat] :
            ( ( ord_less_eq_nat @ K2 @ N )
           => ( ! [I4: nat] :
                  ( ( ord_less_nat @ K2 @ I4 )
                 => ( P @ I4 ) )
             => ( P @ K2 ) ) )
       => ( P @ M2 ) ) ) ).

% nat_descend_induct
thf(fact_444_less__mono__imp__le__mono,axiom,
    ! [F: nat > nat,I: nat,J2: nat] :
      ( ! [I3: nat,J3: nat] :
          ( ( ord_less_nat @ I3 @ J3 )
         => ( ord_less_nat @ ( F @ I3 ) @ ( F @ J3 ) ) )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ord_less_eq_nat @ ( F @ I ) @ ( F @ J2 ) ) ) ) ).

% less_mono_imp_le_mono
thf(fact_445_le__neq__implies__less,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ( M2 != N )
       => ( ord_less_nat @ M2 @ N ) ) ) ).

% le_neq_implies_less
thf(fact_446_less__or__eq__imp__le,axiom,
    ! [M2: nat,N: nat] :
      ( ( ( ord_less_nat @ M2 @ N )
        | ( M2 = N ) )
     => ( ord_less_eq_nat @ M2 @ N ) ) ).

% less_or_eq_imp_le
thf(fact_447_le__eq__less__or__eq,axiom,
    ( ord_less_eq_nat
    = ( ^ [M: nat,N2: nat] :
          ( ( ord_less_nat @ M @ N2 )
          | ( M = N2 ) ) ) ) ).

% le_eq_less_or_eq
thf(fact_448_less__imp__le__nat,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ M2 @ N )
     => ( ord_less_eq_nat @ M2 @ N ) ) ).

% less_imp_le_nat
thf(fact_449_nat__less__le,axiom,
    ( ord_less_nat
    = ( ^ [M: nat,N2: nat] :
          ( ( ord_less_eq_nat @ M @ N2 )
          & ( M != N2 ) ) ) ) ).

% nat_less_le
thf(fact_450_complete__interval,axiom,
    ! [A: nat,B: nat,P: nat > $o] :
      ( ( ord_less_nat @ A @ B )
     => ( ( P @ A )
       => ( ~ ( P @ B )
         => ? [C2: nat] :
              ( ( ord_less_eq_nat @ A @ C2 )
              & ( ord_less_eq_nat @ C2 @ B )
              & ! [X6: nat] :
                  ( ( ( ord_less_eq_nat @ A @ X6 )
                    & ( ord_less_nat @ X6 @ C2 ) )
                 => ( P @ X6 ) )
              & ! [D: nat] :
                  ( ! [X4: nat] :
                      ( ( ( ord_less_eq_nat @ A @ X4 )
                        & ( ord_less_nat @ X4 @ D ) )
                     => ( P @ X4 ) )
                 => ( ord_less_eq_nat @ D @ C2 ) ) ) ) ) ) ).

% complete_interval
thf(fact_451__092_060open_062size_A_Imset_A_Ifilter_A_I_092_060lambda_062y_O_Ay_A_092_060le_062_Ax_J_Axs_J_J_A_061_Alength_A_Ifilter_A_I_092_060lambda_062y_O_Ay_A_092_060le_062_Ax_J_Axs_J_092_060close_062,axiom,
    ( ( size_size_multiset_a
      @ ( mset_a
        @ ( filter_a
          @ ^ [Y: a] : ( ord_less_eq_a @ Y @ x )
          @ xs ) ) )
    = ( size_size_list_a
      @ ( filter_a
        @ ^ [Y: a] : ( ord_less_eq_a @ Y @ x )
        @ xs ) ) ) ).

% \<open>size (mset (filter (\<lambda>y. y \<le> x) xs)) = length (filter (\<lambda>y. y \<le> x) xs)\<close>
thf(fact_452_sorted__wrt__less__idx,axiom,
    ! [Ns: list_nat,I: nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ Ns )
     => ( ( ord_less_nat @ I @ ( size_size_list_nat @ Ns ) )
       => ( ord_less_eq_nat @ I @ ( nth_nat @ Ns @ I ) ) ) ) ).

% sorted_wrt_less_idx
thf(fact_453_nat__neq__iff,axiom,
    ! [M2: nat,N: nat] :
      ( ( M2 != N )
      = ( ( ord_less_nat @ M2 @ N )
        | ( ord_less_nat @ N @ M2 ) ) ) ).

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

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

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

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

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

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

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

% linorder_neqE_nat
thf(fact_461_size__neq__size__imp__neq,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( ( size_size_list_a @ X2 )
       != ( size_size_list_a @ Y3 ) )
     => ( X2 != Y3 ) ) ).

% size_neq_size_imp_neq
thf(fact_462_size__neq__size__imp__neq,axiom,
    ! [X2: multiset_a,Y3: multiset_a] :
      ( ( ( size_size_multiset_a @ X2 )
       != ( size_size_multiset_a @ Y3 ) )
     => ( X2 != Y3 ) ) ).

% size_neq_size_imp_neq
thf(fact_463_size__neq__size__imp__neq,axiom,
    ! [X2: list_nat,Y3: list_nat] :
      ( ( ( size_size_list_nat @ X2 )
       != ( size_size_list_nat @ Y3 ) )
     => ( X2 != Y3 ) ) ).

% size_neq_size_imp_neq
thf(fact_464_le__refl,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ N @ N ) ).

% le_refl
thf(fact_465_le__trans,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J2 )
     => ( ( ord_less_eq_nat @ J2 @ K )
       => ( ord_less_eq_nat @ I @ K ) ) ) ).

% le_trans
thf(fact_466_eq__imp__le,axiom,
    ! [M2: nat,N: nat] :
      ( ( M2 = N )
     => ( ord_less_eq_nat @ M2 @ N ) ) ).

% eq_imp_le
thf(fact_467_le__antisym,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ( ord_less_eq_nat @ N @ M2 )
       => ( M2 = N ) ) ) ).

% le_antisym
thf(fact_468_nat__le__linear,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
      | ( ord_less_eq_nat @ N @ M2 ) ) ).

% nat_le_linear
thf(fact_469_Nat_Oex__has__greatest__nat,axiom,
    ! [P: nat > $o,K: nat,B: nat] :
      ( ( P @ K )
     => ( ! [Y4: nat] :
            ( ( P @ Y4 )
           => ( ord_less_eq_nat @ Y4 @ B ) )
       => ? [X4: nat] :
            ( ( P @ X4 )
            & ! [Y5: nat] :
                ( ( P @ Y5 )
               => ( ord_less_eq_nat @ Y5 @ X4 ) ) ) ) ) ).

% Nat.ex_has_greatest_nat
thf(fact_470_nth__mset__def,axiom,
    ( k_nth_mset_nat
    = ( ^ [K3: nat,M4: multiset_nat] : ( nth_nat @ ( linord3047872887403683810et_nat @ M4 ) @ K3 ) ) ) ).

% nth_mset_def
thf(fact_471_nth__mset__def,axiom,
    ( k_nth_mset_a
    = ( ^ [K3: nat,M4: multiset_a] : ( nth_a @ ( linord814965612141868908iset_a @ M4 ) @ K3 ) ) ) ).

% nth_mset_def
thf(fact_472_nth__mset__bound__left__excl,axiom,
    ! [K: nat,M5: multiset_nat,X2: nat] :
      ( ( ord_less_nat @ K @ ( size_s5917832649809541300et_nat @ M5 ) )
     => ( ( ord_less_eq_nat @ ( k_count_le_nat @ X2 @ M5 ) @ K )
       => ( ord_less_nat @ X2 @ ( k_nth_mset_nat @ K @ M5 ) ) ) ) ).

% nth_mset_bound_left_excl
thf(fact_473_nth__mset__bound__left__excl,axiom,
    ! [K: nat,M5: multiset_a,X2: a] :
      ( ( ord_less_nat @ K @ ( size_size_multiset_a @ M5 ) )
     => ( ( ord_less_eq_nat @ ( k_count_le_a @ X2 @ M5 ) @ K )
       => ( ord_less_a @ X2 @ ( k_nth_mset_a @ K @ M5 ) ) ) ) ).

% nth_mset_bound_left_excl
thf(fact_474_size__mset,axiom,
    ! [Xs: list_nat] :
      ( ( size_s5917832649809541300et_nat @ ( mset_nat @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% size_mset
thf(fact_475_size__mset,axiom,
    ! [Xs: list_a] :
      ( ( size_size_multiset_a @ ( mset_a @ Xs ) )
      = ( size_size_list_a @ Xs ) ) ).

% size_mset
thf(fact_476_nth__mset__bound__left,axiom,
    ! [K: nat,M5: multiset_nat,X2: nat] :
      ( ( ord_less_nat @ K @ ( size_s5917832649809541300et_nat @ M5 ) )
     => ( ( ord_less_eq_nat @ ( k_count_less_nat @ X2 @ M5 ) @ K )
       => ( ord_less_eq_nat @ X2 @ ( k_nth_mset_nat @ K @ M5 ) ) ) ) ).

% nth_mset_bound_left
thf(fact_477_nth__mset__bound__left,axiom,
    ! [K: nat,M5: multiset_a,X2: a] :
      ( ( ord_less_nat @ K @ ( size_size_multiset_a @ M5 ) )
     => ( ( ord_less_eq_nat @ ( k_count_less_a @ X2 @ M5 ) @ K )
       => ( ord_less_eq_a @ X2 @ ( k_nth_mset_a @ K @ M5 ) ) ) ) ).

% nth_mset_bound_left
thf(fact_478_mset__sorted__list__of__multiset,axiom,
    ! [M5: multiset_a] :
      ( ( mset_a @ ( linord814965612141868908iset_a @ M5 ) )
      = M5 ) ).

% mset_sorted_list_of_multiset
thf(fact_479_mset__eq__length__filter,axiom,
    ! [Xs: list_a,Ys: list_a,Z2: a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( size_size_list_a
          @ ( filter_a
            @ ( ^ [Y2: a,Z: a] : ( Y2 = Z )
              @ Z2 )
            @ Xs ) )
        = ( size_size_list_a
          @ ( filter_a
            @ ( ^ [Y2: a,Z: a] : ( Y2 = Z )
              @ Z2 )
            @ Ys ) ) ) ) ).

% mset_eq_length_filter
thf(fact_480_mset__eq__length__filter,axiom,
    ! [Xs: list_nat,Ys: list_nat,Z2: nat] :
      ( ( ( mset_nat @ Xs )
        = ( mset_nat @ Ys ) )
     => ( ( size_size_list_nat
          @ ( filter_nat
            @ ( ^ [Y2: nat,Z: nat] : ( Y2 = Z )
              @ Z2 )
            @ Xs ) )
        = ( size_size_list_nat
          @ ( filter_nat
            @ ( ^ [Y2: nat,Z: nat] : ( Y2 = Z )
              @ Z2 )
            @ Ys ) ) ) ) ).

% mset_eq_length_filter
thf(fact_481_sorted__sorted__list__of__multiset,axiom,
    ! [M5: multiset_nat] : ( sorted_wrt_nat @ ord_less_eq_nat @ ( linord3047872887403683810et_nat @ M5 ) ) ).

% sorted_sorted_list_of_multiset
thf(fact_482_sorted__sorted__list__of__multiset,axiom,
    ! [M5: multiset_a] : ( sorted_wrt_a @ ord_less_eq_a @ ( linord814965612141868908iset_a @ M5 ) ) ).

% sorted_sorted_list_of_multiset
thf(fact_483_list__eq__iff,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( mset_nat @ Xs )
        = ( mset_nat @ Ys ) )
     => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
       => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Ys )
         => ( Xs = Ys ) ) ) ) ).

% list_eq_iff
thf(fact_484_list__eq__iff,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
       => ( ( sorted_wrt_a @ ord_less_eq_a @ Ys )
         => ( Xs = Ys ) ) ) ) ).

% list_eq_iff
thf(fact_485_perm__length,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) ) ) ).

% perm_length
thf(fact_486_perm__length,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( mset_nat @ Xs )
        = ( mset_nat @ Ys ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) ) ) ).

% perm_length
thf(fact_487_verit__comp__simplify1_I3_J,axiom,
    ! [B4: nat,A5: nat] :
      ( ( ~ ( ord_less_eq_nat @ B4 @ A5 ) )
      = ( ord_less_nat @ A5 @ B4 ) ) ).

% verit_comp_simplify1(3)
thf(fact_488_verit__comp__simplify1_I3_J,axiom,
    ! [B4: a,A5: a] :
      ( ( ~ ( ord_less_eq_a @ B4 @ A5 ) )
      = ( ord_less_a @ A5 @ B4 ) ) ).

% verit_comp_simplify1(3)
thf(fact_489_verit__la__disequality,axiom,
    ! [A: nat,B: nat] :
      ( ( A = B )
      | ~ ( ord_less_eq_nat @ A @ B )
      | ~ ( ord_less_eq_nat @ B @ A ) ) ).

% verit_la_disequality
thf(fact_490_verit__la__disequality,axiom,
    ! [A: a,B: a] :
      ( ( A = B )
      | ~ ( ord_less_eq_a @ A @ B )
      | ~ ( ord_less_eq_a @ B @ A ) ) ).

% verit_la_disequality
thf(fact_491_verit__comp__simplify1_I2_J,axiom,
    ! [A: nat] : ( ord_less_eq_nat @ A @ A ) ).

% verit_comp_simplify1(2)
thf(fact_492_verit__comp__simplify1_I2_J,axiom,
    ! [A: a] : ( ord_less_eq_a @ A @ A ) ).

% verit_comp_simplify1(2)
thf(fact_493_verit__comp__simplify1_I1_J,axiom,
    ! [A: nat] :
      ~ ( ord_less_nat @ A @ A ) ).

% verit_comp_simplify1(1)
thf(fact_494_verit__comp__simplify1_I1_J,axiom,
    ! [A: a] :
      ~ ( ord_less_a @ A @ A ) ).

% verit_comp_simplify1(1)
thf(fact_495_ex__mset,axiom,
    ! [X7: multiset_a] :
    ? [Xs3: list_a] :
      ( ( mset_a @ Xs3 )
      = X7 ) ).

% ex_mset
thf(fact_496_perm__sym,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( mset_a @ Ys )
        = ( mset_a @ Xs ) ) ) ).

% perm_sym
thf(fact_497_count__list__card,axiom,
    ( count_list_a
    = ( ^ [Xs2: list_a,X3: a] :
          ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( ord_less_nat @ K3 @ ( size_size_list_a @ Xs2 ) )
                & ( ( nth_a @ Xs2 @ K3 )
                  = X3 ) ) ) ) ) ) ).

% count_list_card
thf(fact_498_count__list__card,axiom,
    ( count_list_nat
    = ( ^ [Xs2: list_nat,X3: nat] :
          ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( ord_less_nat @ K3 @ ( size_size_list_nat @ Xs2 ) )
                & ( ( nth_nat @ Xs2 @ K3 )
                  = X3 ) ) ) ) ) ) ).

% count_list_card
thf(fact_499_sorted__rev__iff__nth__mono,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( rev_nat @ Xs ) )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_eq_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ J ) @ ( nth_nat @ Xs @ I2 ) ) ) ) ) ) ).

% sorted_rev_iff_nth_mono
thf(fact_500_sorted__rev__iff__nth__mono,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( rev_a @ Xs ) )
      = ( ! [I2: nat,J: nat] :
            ( ( ord_less_eq_nat @ I2 @ J )
           => ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs ) )
             => ( ord_less_eq_a @ ( nth_a @ Xs @ J ) @ ( nth_a @ Xs @ I2 ) ) ) ) ) ) ).

% sorted_rev_iff_nth_mono
thf(fact_501_sorted__rev__nth__mono,axiom,
    ! [Xs: list_nat,I: nat,J2: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( rev_nat @ Xs ) )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
         => ( ord_less_eq_nat @ ( nth_nat @ Xs @ J2 ) @ ( nth_nat @ Xs @ I ) ) ) ) ) ).

% sorted_rev_nth_mono
thf(fact_502_sorted__rev__nth__mono,axiom,
    ! [Xs: list_a,I: nat,J2: nat] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( rev_a @ Xs ) )
     => ( ( ord_less_eq_nat @ I @ J2 )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
         => ( ord_less_eq_a @ ( nth_a @ Xs @ J2 ) @ ( nth_a @ Xs @ I ) ) ) ) ) ).

% sorted_rev_nth_mono
thf(fact_503_filter__eq__nths,axiom,
    ( filter_a
    = ( ^ [P2: a > $o,Xs2: list_a] :
          ( nths_a @ Xs2
          @ ( collect_nat
            @ ^ [I2: nat] :
                ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs2 ) )
                & ( P2 @ ( nth_a @ Xs2 @ I2 ) ) ) ) ) ) ) ).

% filter_eq_nths
thf(fact_504_filter__eq__nths,axiom,
    ( filter_nat
    = ( ^ [P2: nat > $o,Xs2: list_nat] :
          ( nths_nat @ Xs2
          @ ( collect_nat
            @ ^ [I2: nat] :
                ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs2 ) )
                & ( P2 @ ( nth_nat @ Xs2 @ I2 ) ) ) ) ) ) ) ).

% filter_eq_nths
thf(fact_505_sorted__iff__nth__Suc,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ ( suc @ I2 ) @ ( size_size_list_nat @ Xs ) )
           => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I2 ) @ ( nth_nat @ Xs @ ( suc @ I2 ) ) ) ) ) ) ).

% sorted_iff_nth_Suc
thf(fact_506_sorted__iff__nth__Suc,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ ( suc @ I2 ) @ ( size_size_list_a @ Xs ) )
           => ( ord_less_eq_a @ ( nth_a @ Xs @ I2 ) @ ( nth_a @ Xs @ ( suc @ I2 ) ) ) ) ) ) ).

% sorted_iff_nth_Suc
thf(fact_507_count__less__def,axiom,
    ( k_count_less_nat
    = ( ^ [X3: nat,M4: multiset_nat] :
          ( size_s5917832649809541300et_nat
          @ ( filter_mset_nat
            @ ^ [Y: nat] : ( ord_less_nat @ Y @ X3 )
            @ M4 ) ) ) ) ).

% count_less_def
thf(fact_508_count__less__def,axiom,
    ( k_count_less_a
    = ( ^ [X3: a,M4: multiset_a] :
          ( size_size_multiset_a
          @ ( filter_mset_a
            @ ^ [Y: a] : ( ord_less_a @ Y @ X3 )
            @ M4 ) ) ) ) ).

% count_less_def
thf(fact_509_list__ex__length,axiom,
    ( list_ex_a
    = ( ^ [P2: a > $o,Xs2: list_a] :
        ? [N2: nat] :
          ( ( ord_less_nat @ N2 @ ( size_size_list_a @ Xs2 ) )
          & ( P2 @ ( nth_a @ Xs2 @ N2 ) ) ) ) ) ).

% list_ex_length
thf(fact_510_list__ex__length,axiom,
    ( list_ex_nat
    = ( ^ [P2: nat > $o,Xs2: list_nat] :
        ? [N2: nat] :
          ( ( ord_less_nat @ N2 @ ( size_size_list_nat @ Xs2 ) )
          & ( P2 @ ( nth_nat @ Xs2 @ N2 ) ) ) ) ) ).

% list_ex_length
thf(fact_511_sorted__insort__insert,axiom,
    ! [Xs: list_nat,X2: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat
        @ ( linord1921536354676448932at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs ) ) ) ).

% sorted_insort_insert
thf(fact_512_sorted__insort__insert,axiom,
    ! [Xs: list_a,X2: a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a
        @ ( linord1239490678762408450ey_a_a
          @ ^ [X3: a] : X3
          @ X2
          @ Xs ) ) ) ).

% sorted_insort_insert
thf(fact_513_nat_Oinject,axiom,
    ! [X22: nat,Y22: nat] :
      ( ( ( suc @ X22 )
        = ( suc @ Y22 ) )
      = ( X22 = Y22 ) ) ).

% nat.inject
thf(fact_514_old_Onat_Oinject,axiom,
    ! [Nat: nat,Nat2: nat] :
      ( ( ( suc @ Nat )
        = ( suc @ Nat2 ) )
      = ( Nat = Nat2 ) ) ).

% old.nat.inject
thf(fact_515_lessI,axiom,
    ! [N: nat] : ( ord_less_nat @ N @ ( suc @ N ) ) ).

% lessI
thf(fact_516_Suc__mono,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ M2 @ N )
     => ( ord_less_nat @ ( suc @ M2 ) @ ( suc @ N ) ) ) ).

% Suc_mono
thf(fact_517_Suc__less__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ ( suc @ M2 ) @ ( suc @ N ) )
      = ( ord_less_nat @ M2 @ N ) ) ).

% Suc_less_eq
thf(fact_518_Suc__le__mono,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( suc @ M2 ) )
      = ( ord_less_eq_nat @ N @ M2 ) ) ).

% Suc_le_mono
thf(fact_519_length__rev,axiom,
    ! [Xs: list_a] :
      ( ( size_size_list_a @ ( rev_a @ Xs ) )
      = ( size_size_list_a @ Xs ) ) ).

% length_rev
thf(fact_520_length__rev,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( rev_nat @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_rev
thf(fact_521_perm__rev,axiom,
    ! [Xs: list_a] :
      ( ( mset_a @ ( rev_a @ Xs ) )
      = ( mset_a @ Xs ) ) ).

% perm_rev
thf(fact_522_card__Collect__le__nat,axiom,
    ! [N: nat] :
      ( ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] : ( ord_less_eq_nat @ I2 @ N ) ) )
      = ( suc @ N ) ) ).

% card_Collect_le_nat
thf(fact_523_mset__filter,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( mset_a @ ( filter_a @ P @ Xs ) )
      = ( filter_mset_a @ P @ ( mset_a @ Xs ) ) ) ).

% mset_filter
thf(fact_524_Suc__inject,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ( suc @ X2 )
        = ( suc @ Y3 ) )
     => ( X2 = Y3 ) ) ).

% Suc_inject
thf(fact_525_n__not__Suc__n,axiom,
    ! [N: nat] :
      ( N
     != ( suc @ N ) ) ).

% n_not_Suc_n
thf(fact_526_rev__filter,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( rev_a @ ( filter_a @ P @ Xs ) )
      = ( filter_a @ P @ ( rev_a @ Xs ) ) ) ).

% rev_filter
thf(fact_527_Nat_OlessE,axiom,
    ! [I: nat,K: nat] :
      ( ( ord_less_nat @ I @ K )
     => ( ( K
         != ( suc @ I ) )
       => ~ ! [J3: nat] :
              ( ( ord_less_nat @ I @ J3 )
             => ( K
               != ( suc @ J3 ) ) ) ) ) ).

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

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

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

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

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

% less_SucI
thf(fact_533_Ex__less__Suc,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( suc @ N ) )
            & ( P @ I2 ) ) )
      = ( ( P @ N )
        | ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ N )
            & ( P @ I2 ) ) ) ) ).

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

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

% not_less_eq
thf(fact_536_All__less__Suc,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( suc @ N ) )
           => ( P @ I2 ) ) )
      = ( ( P @ N )
        & ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ N )
           => ( P @ I2 ) ) ) ) ).

% All_less_Suc
thf(fact_537_Suc__less__eq2,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_nat @ ( suc @ N ) @ M2 )
      = ( ? [M6: nat] :
            ( ( M2
              = ( suc @ M6 ) )
            & ( ord_less_nat @ N @ M6 ) ) ) ) ).

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

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

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

% less_trans_Suc
thf(fact_541_less__Suc__induct,axiom,
    ! [I: nat,J2: nat,P: nat > nat > $o] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ! [I3: nat] : ( P @ I3 @ ( suc @ I3 ) )
       => ( ! [I3: nat,J3: nat,K2: nat] :
              ( ( ord_less_nat @ I3 @ J3 )
             => ( ( ord_less_nat @ J3 @ K2 )
               => ( ( P @ I3 @ J3 )
                 => ( ( P @ J3 @ K2 )
                   => ( P @ I3 @ K2 ) ) ) ) )
         => ( P @ I @ J2 ) ) ) ) ).

% less_Suc_induct
thf(fact_542_strict__inc__induct,axiom,
    ! [I: nat,J2: nat,P: nat > $o] :
      ( ( ord_less_nat @ I @ J2 )
     => ( ! [I3: nat] :
            ( ( J2
              = ( suc @ I3 ) )
           => ( P @ I3 ) )
       => ( ! [I3: nat] :
              ( ( ord_less_nat @ I3 @ J2 )
             => ( ( P @ ( suc @ I3 ) )
               => ( P @ I3 ) ) )
         => ( P @ I ) ) ) ) ).

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

% not_less_less_Suc_eq
thf(fact_544_Suc__leD,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( suc @ M2 ) @ N )
     => ( ord_less_eq_nat @ M2 @ N ) ) ).

% Suc_leD
thf(fact_545_le__SucE,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ ( suc @ N ) )
     => ( ~ ( ord_less_eq_nat @ M2 @ N )
       => ( M2
          = ( suc @ N ) ) ) ) ).

% le_SucE
thf(fact_546_le__SucI,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ord_less_eq_nat @ M2 @ ( suc @ N ) ) ) ).

% le_SucI
thf(fact_547_Suc__le__D,axiom,
    ! [N: nat,M7: nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ M7 )
     => ? [M8: nat] :
          ( M7
          = ( suc @ M8 ) ) ) ).

% Suc_le_D
thf(fact_548_le__Suc__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ ( suc @ N ) )
      = ( ( ord_less_eq_nat @ M2 @ N )
        | ( M2
          = ( suc @ N ) ) ) ) ).

% le_Suc_eq
thf(fact_549_Suc__n__not__le__n,axiom,
    ! [N: nat] :
      ~ ( ord_less_eq_nat @ ( suc @ N ) @ N ) ).

% Suc_n_not_le_n
thf(fact_550_not__less__eq__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ~ ( ord_less_eq_nat @ M2 @ N ) )
      = ( ord_less_eq_nat @ ( suc @ N ) @ M2 ) ) ).

% not_less_eq_eq
thf(fact_551_full__nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N3: nat] :
          ( ! [M3: nat] :
              ( ( ord_less_eq_nat @ ( suc @ M3 ) @ N3 )
             => ( P @ M3 ) )
         => ( P @ N3 ) )
     => ( P @ N ) ) ).

% full_nat_induct
thf(fact_552_nat__induct__at__least,axiom,
    ! [M2: nat,N: nat,P: nat > $o] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ( P @ M2 )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ M2 @ N3 )
             => ( ( P @ N3 )
               => ( P @ ( suc @ N3 ) ) ) )
         => ( P @ N ) ) ) ) ).

% nat_induct_at_least
thf(fact_553_transitive__stepwise__le,axiom,
    ! [M2: nat,N: nat,R: nat > nat > $o] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ! [X4: nat] : ( R @ X4 @ X4 )
       => ( ! [X4: nat,Y4: nat,Z3: nat] :
              ( ( R @ X4 @ Y4 )
             => ( ( R @ Y4 @ Z3 )
               => ( R @ X4 @ Z3 ) ) )
         => ( ! [N3: nat] : ( R @ N3 @ ( suc @ N3 ) )
           => ( R @ M2 @ N ) ) ) ) ) ).

% transitive_stepwise_le
thf(fact_554_sorted__wrt__rev,axiom,
    ! [P: a > a > $o,Xs: list_a] :
      ( ( sorted_wrt_a @ P @ ( rev_a @ Xs ) )
      = ( sorted_wrt_a
        @ ^ [X3: a,Y: a] : ( P @ Y @ X3 )
        @ Xs ) ) ).

% sorted_wrt_rev
thf(fact_555_sorted__wrt__rev,axiom,
    ! [P: nat > nat > $o,Xs: list_nat] :
      ( ( sorted_wrt_nat @ P @ ( rev_nat @ Xs ) )
      = ( sorted_wrt_nat
        @ ^ [X3: nat,Y: nat] : ( P @ Y @ X3 )
        @ Xs ) ) ).

% sorted_wrt_rev
thf(fact_556_lift__Suc__mono__le,axiom,
    ! [F: nat > nat,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_eq_nat @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_eq_nat @ N @ N4 )
       => ( ord_less_eq_nat @ ( F @ N ) @ ( F @ N4 ) ) ) ) ).

% lift_Suc_mono_le
thf(fact_557_lift__Suc__mono__le,axiom,
    ! [F: nat > a,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_eq_a @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_eq_nat @ N @ N4 )
       => ( ord_less_eq_a @ ( F @ N ) @ ( F @ N4 ) ) ) ) ).

% lift_Suc_mono_le
thf(fact_558_lift__Suc__antimono__le,axiom,
    ! [F: nat > nat,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_eq_nat @ ( F @ ( suc @ N3 ) ) @ ( F @ N3 ) )
     => ( ( ord_less_eq_nat @ N @ N4 )
       => ( ord_less_eq_nat @ ( F @ N4 ) @ ( F @ N ) ) ) ) ).

% lift_Suc_antimono_le
thf(fact_559_lift__Suc__antimono__le,axiom,
    ! [F: nat > a,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_eq_a @ ( F @ ( suc @ N3 ) ) @ ( F @ N3 ) )
     => ( ( ord_less_eq_nat @ N @ N4 )
       => ( ord_less_eq_a @ ( F @ N4 ) @ ( F @ N ) ) ) ) ).

% lift_Suc_antimono_le
thf(fact_560_lift__Suc__mono__less,axiom,
    ! [F: nat > nat,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_nat @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_nat @ N @ N4 )
       => ( ord_less_nat @ ( F @ N ) @ ( F @ N4 ) ) ) ) ).

% lift_Suc_mono_less
thf(fact_561_lift__Suc__mono__less,axiom,
    ! [F: nat > a,N: nat,N4: nat] :
      ( ! [N3: nat] : ( ord_less_a @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_nat @ N @ N4 )
       => ( ord_less_a @ ( F @ N ) @ ( F @ N4 ) ) ) ) ).

% lift_Suc_mono_less
thf(fact_562_lift__Suc__mono__less__iff,axiom,
    ! [F: nat > nat,N: nat,M2: nat] :
      ( ! [N3: nat] : ( ord_less_nat @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_nat @ ( F @ N ) @ ( F @ M2 ) )
        = ( ord_less_nat @ N @ M2 ) ) ) ).

% lift_Suc_mono_less_iff
thf(fact_563_lift__Suc__mono__less__iff,axiom,
    ! [F: nat > a,N: nat,M2: nat] :
      ( ! [N3: nat] : ( ord_less_a @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_a @ ( F @ N ) @ ( F @ M2 ) )
        = ( ord_less_nat @ N @ M2 ) ) ) ).

% lift_Suc_mono_less_iff
thf(fact_564_Suc__leI,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ M2 @ N )
     => ( ord_less_eq_nat @ ( suc @ M2 ) @ N ) ) ).

% Suc_leI
thf(fact_565_Suc__le__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( suc @ M2 ) @ N )
      = ( ord_less_nat @ M2 @ N ) ) ).

% Suc_le_eq
thf(fact_566_dec__induct,axiom,
    ! [I: nat,J2: nat,P: nat > $o] :
      ( ( ord_less_eq_nat @ I @ J2 )
     => ( ( P @ I )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ I @ N3 )
             => ( ( ord_less_nat @ N3 @ J2 )
               => ( ( P @ N3 )
                 => ( P @ ( suc @ N3 ) ) ) ) )
         => ( P @ J2 ) ) ) ) ).

% dec_induct
thf(fact_567_inc__induct,axiom,
    ! [I: nat,J2: nat,P: nat > $o] :
      ( ( ord_less_eq_nat @ I @ J2 )
     => ( ( P @ J2 )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ I @ N3 )
             => ( ( ord_less_nat @ N3 @ J2 )
               => ( ( P @ ( suc @ N3 ) )
                 => ( P @ N3 ) ) ) )
         => ( P @ I ) ) ) ) ).

% inc_induct
thf(fact_568_Suc__le__lessD,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( suc @ M2 ) @ N )
     => ( ord_less_nat @ M2 @ N ) ) ).

% Suc_le_lessD
thf(fact_569_le__less__Suc__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ( ord_less_nat @ N @ ( suc @ M2 ) )
        = ( N = M2 ) ) ) ).

% le_less_Suc_eq
thf(fact_570_less__Suc__eq__le,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N ) )
      = ( ord_less_eq_nat @ M2 @ N ) ) ).

% less_Suc_eq_le
thf(fact_571_less__eq__Suc__le,axiom,
    ( ord_less_nat
    = ( ^ [N2: nat] : ( ord_less_eq_nat @ ( suc @ N2 ) ) ) ) ).

% less_eq_Suc_le
thf(fact_572_le__imp__less__Suc,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ord_less_nat @ M2 @ ( suc @ N ) ) ) ).

% le_imp_less_Suc
thf(fact_573_size__filter__mset__lesseq,axiom,
    ! [F: a > $o,M5: multiset_a] : ( ord_less_eq_nat @ ( size_size_multiset_a @ ( filter_mset_a @ F @ M5 ) ) @ ( size_size_multiset_a @ M5 ) ) ).

% size_filter_mset_lesseq
thf(fact_574_sorted__rev__iff__nth__Suc,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( rev_nat @ Xs ) )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ ( suc @ I2 ) @ ( size_size_list_nat @ Xs ) )
           => ( ord_less_eq_nat @ ( nth_nat @ Xs @ ( suc @ I2 ) ) @ ( nth_nat @ Xs @ I2 ) ) ) ) ) ).

% sorted_rev_iff_nth_Suc
thf(fact_575_sorted__rev__iff__nth__Suc,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( rev_a @ Xs ) )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ ( suc @ I2 ) @ ( size_size_list_a @ Xs ) )
           => ( ord_less_eq_a @ ( nth_a @ Xs @ ( suc @ I2 ) ) @ ( nth_a @ Xs @ I2 ) ) ) ) ) ).

% sorted_rev_iff_nth_Suc
thf(fact_576_nths__all,axiom,
    ! [Xs: list_a,I5: set_nat] :
      ( ! [I3: nat] :
          ( ( ord_less_nat @ I3 @ ( size_size_list_a @ Xs ) )
         => ( member_nat @ I3 @ I5 ) )
     => ( ( nths_a @ Xs @ I5 )
        = Xs ) ) ).

% nths_all
thf(fact_577_nths__all,axiom,
    ! [Xs: list_nat,I5: set_nat] :
      ( ! [I3: nat] :
          ( ( ord_less_nat @ I3 @ ( size_size_list_nat @ Xs ) )
         => ( member_nat @ I3 @ I5 ) )
     => ( ( nths_nat @ Xs @ I5 )
        = Xs ) ) ).

% nths_all
thf(fact_578_sorted__nths,axiom,
    ! [Xs: list_nat,I5: set_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( nths_nat @ Xs @ I5 ) ) ) ).

% sorted_nths
thf(fact_579_sorted__nths,axiom,
    ! [Xs: list_a,I5: set_nat] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ ( nths_a @ Xs @ I5 ) ) ) ).

% sorted_nths
thf(fact_580_count__le__length,axiom,
    ! [Xs: list_a,X2: a] : ( ord_less_eq_nat @ ( count_list_a @ Xs @ X2 ) @ ( size_size_list_a @ Xs ) ) ).

% count_le_length
thf(fact_581_count__le__length,axiom,
    ! [Xs: list_nat,X2: nat] : ( ord_less_eq_nat @ ( count_list_nat @ Xs @ X2 ) @ ( size_size_list_nat @ Xs ) ) ).

% count_le_length
thf(fact_582_count__le__def,axiom,
    ( k_count_le_nat
    = ( ^ [X3: nat,M4: multiset_nat] :
          ( size_s5917832649809541300et_nat
          @ ( filter_mset_nat
            @ ^ [Y: nat] : ( ord_less_eq_nat @ Y @ X3 )
            @ M4 ) ) ) ) ).

% count_le_def
thf(fact_583_count__le__def,axiom,
    ( k_count_le_a
    = ( ^ [X3: a,M4: multiset_a] :
          ( size_size_multiset_a
          @ ( filter_mset_a
            @ ^ [Y: a] : ( ord_less_eq_a @ Y @ X3 )
            @ M4 ) ) ) ) ).

% count_le_def
thf(fact_584_length__nths,axiom,
    ! [Xs: list_a,I5: set_nat] :
      ( ( size_size_list_a @ ( nths_a @ Xs @ I5 ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs ) )
              & ( member_nat @ I2 @ I5 ) ) ) ) ) ).

% length_nths
thf(fact_585_length__nths,axiom,
    ! [Xs: list_nat,I5: set_nat] :
      ( ( size_size_list_nat @ ( nths_nat @ Xs @ I5 ) )
      = ( finite_card_nat
        @ ( collect_nat
          @ ^ [I2: nat] :
              ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
              & ( member_nat @ I2 @ I5 ) ) ) ) ) ).

% length_nths
thf(fact_586_rev__nth,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( nth_a @ ( rev_a @ Xs ) @ N )
        = ( nth_a @ Xs @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ ( suc @ N ) ) ) ) ) ).

% rev_nth
thf(fact_587_rev__nth,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_nat @ ( rev_nat @ Xs ) @ N )
        = ( nth_nat @ Xs @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ ( suc @ N ) ) ) ) ) ).

% rev_nth
thf(fact_588_count__list__ge__2__iff,axiom,
    ! [Y3: nat,Z2: nat,Xs: list_a] :
      ( ( ord_less_nat @ Y3 @ Z2 )
     => ( ( ord_less_nat @ Z2 @ ( size_size_list_a @ Xs ) )
       => ( ( ( nth_a @ Xs @ Y3 )
            = ( nth_a @ Xs @ Z2 ) )
         => ( ord_less_nat @ one_one_nat @ ( count_list_a @ Xs @ ( nth_a @ Xs @ Y3 ) ) ) ) ) ) ).

% count_list_ge_2_iff
thf(fact_589_count__list__ge__2__iff,axiom,
    ! [Y3: nat,Z2: nat,Xs: list_nat] :
      ( ( ord_less_nat @ Y3 @ Z2 )
     => ( ( ord_less_nat @ Z2 @ ( size_size_list_nat @ Xs ) )
       => ( ( ( nth_nat @ Xs @ Y3 )
            = ( nth_nat @ Xs @ Z2 ) )
         => ( ord_less_nat @ one_one_nat @ ( count_list_nat @ Xs @ ( nth_nat @ Xs @ Y3 ) ) ) ) ) ) ).

% count_list_ge_2_iff
thf(fact_590_sorted01,axiom,
    ! [Xs: list_nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ Xs ) ) ).

% sorted01
thf(fact_591_sorted01,axiom,
    ! [Xs: list_a] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ one_one_nat )
     => ( sorted_wrt_a @ ord_less_eq_a @ Xs ) ) ).

% sorted01
thf(fact_592_rank__of__def,axiom,
    ( k_rank_of_nat
    = ( ^ [X3: nat,S2: set_nat] :
          ( finite_card_nat
          @ ( collect_nat
            @ ^ [Y: nat] :
                ( ( member_nat @ Y @ S2 )
                & ( ord_less_nat @ Y @ X3 ) ) ) ) ) ) ).

% rank_of_def
thf(fact_593_rank__of__def,axiom,
    ( k_rank_of_a
    = ( ^ [X3: a,S2: set_a] :
          ( finite_card_a
          @ ( collect_a
            @ ^ [Y: a] :
                ( ( member_a @ Y @ S2 )
                & ( ord_less_a @ Y @ X3 ) ) ) ) ) ) ).

% rank_of_def
thf(fact_594_mset__swap,axiom,
    ! [I: nat,Ls: list_a,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Ls ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Ls ) )
       => ( ( mset_a @ ( list_update_a @ ( list_update_a @ Ls @ J2 @ ( nth_a @ Ls @ I ) ) @ I @ ( nth_a @ Ls @ J2 ) ) )
          = ( mset_a @ Ls ) ) ) ) ).

% mset_swap
thf(fact_595_mset__swap,axiom,
    ! [I: nat,Ls: list_nat,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Ls ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Ls ) )
       => ( ( mset_nat @ ( list_update_nat @ ( list_update_nat @ Ls @ J2 @ ( nth_nat @ Ls @ I ) ) @ I @ ( nth_nat @ Ls @ J2 ) ) )
          = ( mset_nat @ Ls ) ) ) ) ).

% mset_swap
thf(fact_596_perm__swap,axiom,
    ! [I: nat,Xs: list_a,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
       => ( ( mset_a @ ( list_update_a @ ( list_update_a @ Xs @ I @ ( nth_a @ Xs @ J2 ) ) @ J2 @ ( nth_a @ Xs @ I ) ) )
          = ( mset_a @ Xs ) ) ) ) ).

% perm_swap
thf(fact_597_perm__swap,axiom,
    ! [I: nat,Xs: list_nat,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
       => ( ( mset_nat @ ( list_update_nat @ ( list_update_nat @ Xs @ I @ ( nth_nat @ Xs @ J2 ) ) @ J2 @ ( nth_nat @ Xs @ I ) ) )
          = ( mset_nat @ Xs ) ) ) ) ).

% perm_swap
thf(fact_598_remdups__adj__adjacent,axiom,
    ! [I: nat,Xs: list_a] :
      ( ( ord_less_nat @ ( suc @ I ) @ ( size_size_list_a @ ( remdups_adj_a @ Xs ) ) )
     => ( ( nth_a @ ( remdups_adj_a @ Xs ) @ I )
       != ( nth_a @ ( remdups_adj_a @ Xs ) @ ( suc @ I ) ) ) ) ).

% remdups_adj_adjacent
thf(fact_599_remdups__adj__adjacent,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( ord_less_nat @ ( suc @ I ) @ ( size_size_list_nat @ ( remdups_adj_nat @ Xs ) ) )
     => ( ( nth_nat @ ( remdups_adj_nat @ Xs ) @ I )
       != ( nth_nat @ ( remdups_adj_nat @ Xs ) @ ( suc @ I ) ) ) ) ).

% remdups_adj_adjacent
thf(fact_600_nth__mem__mset,axiom,
    ! [I: nat,Ls: list_a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Ls ) )
     => ( member_a @ ( nth_a @ Ls @ I ) @ ( set_mset_a @ ( mset_a @ Ls ) ) ) ) ).

% nth_mem_mset
thf(fact_601_nth__mem__mset,axiom,
    ! [I: nat,Ls: list_nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Ls ) )
     => ( member_nat @ ( nth_nat @ Ls @ I ) @ ( set_mset_nat @ ( mset_nat @ Ls ) ) ) ) ).

% nth_mem_mset
thf(fact_602_Suc__diff__diff,axiom,
    ! [M2: nat,N: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ ( suc @ M2 ) @ N ) @ ( suc @ K ) )
      = ( minus_minus_nat @ ( minus_minus_nat @ M2 @ N ) @ K ) ) ).

% Suc_diff_diff
thf(fact_603_diff__Suc__Suc,axiom,
    ! [M2: nat,N: nat] :
      ( ( minus_minus_nat @ ( suc @ M2 ) @ ( suc @ N ) )
      = ( minus_minus_nat @ M2 @ N ) ) ).

% diff_Suc_Suc
thf(fact_604_diff__diff__cancel,axiom,
    ! [I: nat,N: nat] :
      ( ( ord_less_eq_nat @ I @ N )
     => ( ( minus_minus_nat @ N @ ( minus_minus_nat @ N @ I ) )
        = I ) ) ).

% diff_diff_cancel
thf(fact_605_length__list__update,axiom,
    ! [Xs: list_a,I: nat,X2: a] :
      ( ( size_size_list_a @ ( list_update_a @ Xs @ I @ X2 ) )
      = ( size_size_list_a @ Xs ) ) ).

% length_list_update
thf(fact_606_length__list__update,axiom,
    ! [Xs: list_nat,I: nat,X2: nat] :
      ( ( size_size_list_nat @ ( list_update_nat @ Xs @ I @ X2 ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_list_update
thf(fact_607_nth__list__update__neq,axiom,
    ! [I: nat,J2: nat,Xs: list_a,X2: a] :
      ( ( I != J2 )
     => ( ( nth_a @ ( list_update_a @ Xs @ I @ X2 ) @ J2 )
        = ( nth_a @ Xs @ J2 ) ) ) ).

% nth_list_update_neq
thf(fact_608_nth__list__update__neq,axiom,
    ! [I: nat,J2: nat,Xs: list_nat,X2: nat] :
      ( ( I != J2 )
     => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X2 ) @ J2 )
        = ( nth_nat @ Xs @ J2 ) ) ) ).

% nth_list_update_neq
thf(fact_609_list__update__id,axiom,
    ! [Xs: list_a,I: nat] :
      ( ( list_update_a @ Xs @ I @ ( nth_a @ Xs @ I ) )
      = Xs ) ).

% list_update_id
thf(fact_610_list__update__id,axiom,
    ! [Xs: list_nat,I: nat] :
      ( ( list_update_nat @ Xs @ I @ ( nth_nat @ Xs @ I ) )
      = Xs ) ).

% list_update_id
thf(fact_611_set__mset__filter,axiom,
    ! [P: nat > $o,M5: multiset_nat] :
      ( ( set_mset_nat @ ( filter_mset_nat @ P @ M5 ) )
      = ( collect_nat
        @ ^ [A2: nat] :
            ( ( member_nat @ A2 @ ( set_mset_nat @ M5 ) )
            & ( P @ A2 ) ) ) ) ).

% set_mset_filter
thf(fact_612_diff__Suc__1,axiom,
    ! [N: nat] :
      ( ( minus_minus_nat @ ( suc @ N ) @ one_one_nat )
      = N ) ).

% diff_Suc_1
thf(fact_613_list__update__beyond,axiom,
    ! [Xs: list_a,I: nat,X2: a] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ I )
     => ( ( list_update_a @ Xs @ I @ X2 )
        = Xs ) ) ).

% list_update_beyond
thf(fact_614_list__update__beyond,axiom,
    ! [Xs: list_nat,I: nat,X2: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ I )
     => ( ( list_update_nat @ Xs @ I @ X2 )
        = Xs ) ) ).

% list_update_beyond
thf(fact_615_nth__list__update__eq,axiom,
    ! [I: nat,Xs: list_a,X2: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( nth_a @ ( list_update_a @ Xs @ I @ X2 ) @ I )
        = X2 ) ) ).

% nth_list_update_eq
thf(fact_616_nth__list__update__eq,axiom,
    ! [I: nat,Xs: list_nat,X2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X2 ) @ I )
        = X2 ) ) ).

% nth_list_update_eq
thf(fact_617_diff__Suc__eq__diff__pred,axiom,
    ! [M2: nat,N: nat] :
      ( ( minus_minus_nat @ M2 @ ( suc @ N ) )
      = ( minus_minus_nat @ ( minus_minus_nat @ M2 @ one_one_nat ) @ N ) ) ).

% diff_Suc_eq_diff_pred
thf(fact_618_diff__commute,axiom,
    ! [I: nat,J2: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ I @ J2 ) @ K )
      = ( minus_minus_nat @ ( minus_minus_nat @ I @ K ) @ J2 ) ) ).

% diff_commute
thf(fact_619_rev__update,axiom,
    ! [K: nat,Xs: list_a,Y3: a] :
      ( ( ord_less_nat @ K @ ( size_size_list_a @ Xs ) )
     => ( ( rev_a @ ( list_update_a @ Xs @ K @ Y3 ) )
        = ( list_update_a @ ( rev_a @ Xs ) @ ( minus_minus_nat @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ K ) @ one_one_nat ) @ Y3 ) ) ) ).

% rev_update
thf(fact_620_rev__update,axiom,
    ! [K: nat,Xs: list_nat,Y3: nat] :
      ( ( ord_less_nat @ K @ ( size_size_list_nat @ Xs ) )
     => ( ( rev_nat @ ( list_update_nat @ Xs @ K @ Y3 ) )
        = ( list_update_nat @ ( rev_nat @ Xs ) @ ( minus_minus_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ K ) @ one_one_nat ) @ Y3 ) ) ) ).

% rev_update
thf(fact_621_zero__induct__lemma,axiom,
    ! [P: nat > $o,K: nat,I: nat] :
      ( ( P @ K )
     => ( ! [N3: nat] :
            ( ( P @ ( suc @ N3 ) )
           => ( P @ N3 ) )
       => ( P @ ( minus_minus_nat @ K @ I ) ) ) ) ).

% zero_induct_lemma
thf(fact_622_less__imp__diff__less,axiom,
    ! [J2: nat,K: nat,N: nat] :
      ( ( ord_less_nat @ J2 @ K )
     => ( ord_less_nat @ ( minus_minus_nat @ J2 @ N ) @ K ) ) ).

% less_imp_diff_less
thf(fact_623_diff__less__mono2,axiom,
    ! [M2: nat,N: nat,L: nat] :
      ( ( ord_less_nat @ M2 @ N )
     => ( ( ord_less_nat @ M2 @ L )
       => ( ord_less_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M2 ) ) ) ) ).

% diff_less_mono2
thf(fact_624_diff__le__mono2,axiom,
    ! [M2: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M2 ) ) ) ).

% diff_le_mono2
thf(fact_625_le__diff__iff_H,axiom,
    ! [A: nat,C: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ C )
     => ( ( ord_less_eq_nat @ B @ C )
       => ( ( ord_less_eq_nat @ ( minus_minus_nat @ C @ A ) @ ( minus_minus_nat @ C @ B ) )
          = ( ord_less_eq_nat @ B @ A ) ) ) ) ).

% le_diff_iff'
thf(fact_626_diff__le__self,axiom,
    ! [M2: nat,N: nat] : ( ord_less_eq_nat @ ( minus_minus_nat @ M2 @ N ) @ M2 ) ).

% diff_le_self
thf(fact_627_diff__le__mono,axiom,
    ! [M2: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ M2 @ L ) @ ( minus_minus_nat @ N @ L ) ) ) ).

% diff_le_mono
thf(fact_628_Nat_Odiff__diff__eq,axiom,
    ! [K: nat,M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M2 )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( minus_minus_nat @ ( minus_minus_nat @ M2 @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( minus_minus_nat @ M2 @ N ) ) ) ) ).

% Nat.diff_diff_eq
thf(fact_629_le__diff__iff,axiom,
    ! [K: nat,M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M2 )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ord_less_eq_nat @ ( minus_minus_nat @ M2 @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( ord_less_eq_nat @ M2 @ N ) ) ) ) ).

% le_diff_iff
thf(fact_630_eq__diff__iff,axiom,
    ! [K: nat,M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M2 )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ( minus_minus_nat @ M2 @ K )
            = ( minus_minus_nat @ N @ K ) )
          = ( M2 = N ) ) ) ) ).

% eq_diff_iff
thf(fact_631_filter__mset__cong0,axiom,
    ! [M5: multiset_nat,F: nat > $o,G: nat > $o] :
      ( ! [X4: nat] :
          ( ( member_nat @ X4 @ ( set_mset_nat @ M5 ) )
         => ( ( F @ X4 )
            = ( G @ X4 ) ) )
     => ( ( filter_mset_nat @ F @ M5 )
        = ( filter_mset_nat @ G @ M5 ) ) ) ).

% filter_mset_cong0
thf(fact_632_filter__mset__cong,axiom,
    ! [M5: multiset_nat,M9: multiset_nat,F: nat > $o,G: nat > $o] :
      ( ( M5 = M9 )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_mset_nat @ M9 ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( filter_mset_nat @ F @ M5 )
          = ( filter_mset_nat @ G @ M9 ) ) ) ) ).

% filter_mset_cong
thf(fact_633_remdups__adj__length,axiom,
    ! [Xs: list_a] : ( ord_less_eq_nat @ ( size_size_list_a @ ( remdups_adj_a @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ).

% remdups_adj_length
thf(fact_634_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_635_size__eq__Suc__imp__elem,axiom,
    ! [M5: multiset_nat,N: nat] :
      ( ( ( size_s5917832649809541300et_nat @ M5 )
        = ( suc @ N ) )
     => ? [A3: nat] : ( member_nat @ A3 @ ( set_mset_nat @ M5 ) ) ) ).

% size_eq_Suc_imp_elem
thf(fact_636_size__eq__Suc__imp__elem,axiom,
    ! [M5: multiset_a,N: nat] :
      ( ( ( size_size_multiset_a @ M5 )
        = ( suc @ N ) )
     => ? [A3: a] : ( member_a @ A3 @ ( set_mset_a @ M5 ) ) ) ).

% size_eq_Suc_imp_elem
thf(fact_637_diff__less__Suc,axiom,
    ! [M2: nat,N: nat] : ( ord_less_nat @ ( minus_minus_nat @ M2 @ N ) @ ( suc @ M2 ) ) ).

% diff_less_Suc
thf(fact_638_Suc__diff__Suc,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_nat @ N @ M2 )
     => ( ( suc @ ( minus_minus_nat @ M2 @ ( suc @ N ) ) )
        = ( minus_minus_nat @ M2 @ N ) ) ) ).

% Suc_diff_Suc
thf(fact_639_sorted__remdups__adj,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( remdups_adj_nat @ Xs ) ) ) ).

% sorted_remdups_adj
thf(fact_640_sorted__remdups__adj,axiom,
    ! [Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ ( remdups_adj_a @ Xs ) ) ) ).

% sorted_remdups_adj
thf(fact_641_Suc__diff__le,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_eq_nat @ N @ M2 )
     => ( ( minus_minus_nat @ ( suc @ M2 ) @ N )
        = ( suc @ ( minus_minus_nat @ M2 @ N ) ) ) ) ).

% Suc_diff_le
thf(fact_642_diff__less__mono,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( ord_less_eq_nat @ C @ A )
       => ( ord_less_nat @ ( minus_minus_nat @ A @ C ) @ ( minus_minus_nat @ B @ C ) ) ) ) ).

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

% less_diff_iff
thf(fact_644_list__update__same__conv,axiom,
    ! [I: nat,Xs: list_a,X2: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( ( list_update_a @ Xs @ I @ X2 )
          = Xs )
        = ( ( nth_a @ Xs @ I )
          = X2 ) ) ) ).

% list_update_same_conv
thf(fact_645_list__update__same__conv,axiom,
    ! [I: nat,Xs: list_nat,X2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ( list_update_nat @ Xs @ I @ X2 )
          = Xs )
        = ( ( nth_nat @ Xs @ I )
          = X2 ) ) ) ).

% list_update_same_conv
thf(fact_646_nth__list__update,axiom,
    ! [I: nat,Xs: list_a,J2: nat,X2: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( ( I = J2 )
         => ( ( nth_a @ ( list_update_a @ Xs @ I @ X2 ) @ J2 )
            = X2 ) )
        & ( ( I != J2 )
         => ( ( nth_a @ ( list_update_a @ Xs @ I @ X2 ) @ J2 )
            = ( nth_a @ Xs @ J2 ) ) ) ) ) ).

% nth_list_update
thf(fact_647_nth__list__update,axiom,
    ! [I: nat,Xs: list_nat,J2: nat,X2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ( I = J2 )
         => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X2 ) @ J2 )
            = X2 ) )
        & ( ( I != J2 )
         => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X2 ) @ J2 )
            = ( nth_nat @ Xs @ J2 ) ) ) ) ) ).

% nth_list_update
thf(fact_648_sorted__wrt01,axiom,
    ! [Xs: list_a,P: a > a > $o] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ one_one_nat )
     => ( sorted_wrt_a @ P @ Xs ) ) ).

% sorted_wrt01
thf(fact_649_sorted__wrt01,axiom,
    ! [Xs: list_nat,P: nat > nat > $o] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat )
     => ( sorted_wrt_nat @ P @ Xs ) ) ).

% sorted_wrt01
thf(fact_650_in__diffD,axiom,
    ! [A: nat,M5: multiset_nat,N5: multiset_nat] :
      ( ( member_nat @ A @ ( set_mset_nat @ ( minus_8522176038001411705et_nat @ M5 @ N5 ) ) )
     => ( member_nat @ A @ ( set_mset_nat @ M5 ) ) ) ).

% in_diffD
thf(fact_651_one__reorient,axiom,
    ! [X2: nat] :
      ( ( one_one_nat = X2 )
      = ( X2 = one_one_nat ) ) ).

% one_reorient
thf(fact_652_cancel__ab__semigroup__add__class_Odiff__right__commute,axiom,
    ! [A: nat,C: nat,B: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ A @ C ) @ B )
      = ( minus_minus_nat @ ( minus_minus_nat @ A @ B ) @ C ) ) ).

% cancel_ab_semigroup_add_class.diff_right_commute
thf(fact_653_diff__size__le__size__Diff,axiom,
    ! [M5: multiset_a,M9: multiset_a] : ( ord_less_eq_nat @ ( minus_minus_nat @ ( size_size_multiset_a @ M5 ) @ ( size_size_multiset_a @ M9 ) ) @ ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ M5 @ M9 ) ) ) ).

% diff_size_le_size_Diff
thf(fact_654_less__numeral__extra_I4_J,axiom,
    ~ ( ord_less_nat @ one_one_nat @ one_one_nat ) ).

% less_numeral_extra(4)
thf(fact_655_le__numeral__extra_I4_J,axiom,
    ord_less_eq_nat @ one_one_nat @ one_one_nat ).

% le_numeral_extra(4)
thf(fact_656_Suc__diff__1,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( suc @ ( minus_minus_nat @ N @ one_one_nat ) )
        = N ) ) ).

% Suc_diff_1
thf(fact_657_rotate1__length01,axiom,
    ! [Xs: list_a] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ one_one_nat )
     => ( ( rotate1_a @ Xs )
        = Xs ) ) ).

% rotate1_length01
thf(fact_658_rotate1__length01,axiom,
    ! [Xs: list_nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat )
     => ( ( rotate1_nat @ Xs )
        = Xs ) ) ).

% rotate1_length01
thf(fact_659_K__Smallest_Oleast__def,axiom,
    ( k_least_nat
    = ( ^ [K3: nat,S2: set_nat] :
          ( collect_nat
          @ ^ [Y: nat] :
              ( ( member_nat @ Y @ S2 )
              & ( ord_less_nat @ ( k_rank_of_nat @ Y @ S2 ) @ K3 ) ) ) ) ) ).

% K_Smallest.least_def
thf(fact_660_set__swap,axiom,
    ! [I: nat,Xs: list_a,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
       => ( ( set_a2 @ ( list_update_a @ ( list_update_a @ Xs @ I @ ( nth_a @ Xs @ J2 ) ) @ J2 @ ( nth_a @ Xs @ I ) ) )
          = ( set_a2 @ Xs ) ) ) ) ).

% set_swap
thf(fact_661_set__swap,axiom,
    ! [I: nat,Xs: list_nat,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
       => ( ( set_nat2 @ ( list_update_nat @ ( list_update_nat @ Xs @ I @ ( nth_nat @ Xs @ J2 ) ) @ J2 @ ( nth_nat @ Xs @ I ) ) )
          = ( set_nat2 @ Xs ) ) ) ) ).

% set_swap
thf(fact_662_le__zero__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq_nat @ N @ zero_zero_nat )
      = ( N = zero_zero_nat ) ) ).

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

% not_gr_zero
thf(fact_664_cancel__comm__monoid__add__class_Odiff__cancel,axiom,
    ! [A: nat] :
      ( ( minus_minus_nat @ A @ A )
      = zero_zero_nat ) ).

% cancel_comm_monoid_add_class.diff_cancel
thf(fact_665_diff__zero,axiom,
    ! [A: nat] :
      ( ( minus_minus_nat @ A @ zero_zero_nat )
      = A ) ).

% diff_zero
thf(fact_666_zero__diff,axiom,
    ! [A: nat] :
      ( ( minus_minus_nat @ zero_zero_nat @ A )
      = zero_zero_nat ) ).

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

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

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

% bot_nat_0.not_eq_extremum
thf(fact_670_le0,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ zero_zero_nat @ N ) ).

% le0
thf(fact_671_bot__nat__0_Oextremum,axiom,
    ! [A: nat] : ( ord_less_eq_nat @ zero_zero_nat @ A ) ).

% bot_nat_0.extremum
thf(fact_672_diff__self__eq__0,axiom,
    ! [M2: nat] :
      ( ( minus_minus_nat @ M2 @ M2 )
      = zero_zero_nat ) ).

% diff_self_eq_0
thf(fact_673_diff__0__eq__0,axiom,
    ! [N: nat] :
      ( ( minus_minus_nat @ zero_zero_nat @ N )
      = zero_zero_nat ) ).

% diff_0_eq_0
thf(fact_674_filter__True,axiom,
    ! [Xs: list_a,P: a > $o] :
      ( ! [X4: a] :
          ( ( member_a @ X4 @ ( set_a2 @ Xs ) )
         => ( P @ X4 ) )
     => ( ( filter_a @ P @ Xs )
        = Xs ) ) ).

% filter_True
thf(fact_675_length__rotate1,axiom,
    ! [Xs: list_a] :
      ( ( size_size_list_a @ ( rotate1_a @ Xs ) )
      = ( size_size_list_a @ Xs ) ) ).

% length_rotate1
thf(fact_676_length__rotate1,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( rotate1_nat @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_rotate1
thf(fact_677_set__filter,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( set_a2 @ ( filter_a @ P @ Xs ) )
      = ( collect_a
        @ ^ [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
            & ( P @ X3 ) ) ) ) ).

% set_filter
thf(fact_678_set__filter,axiom,
    ! [P: nat > $o,Xs: list_nat] :
      ( ( set_nat2 @ ( filter_nat @ P @ Xs ) )
      = ( collect_nat
        @ ^ [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs ) )
            & ( P @ X3 ) ) ) ) ).

% set_filter
thf(fact_679_zero__less__Suc,axiom,
    ! [N: nat] : ( ord_less_nat @ zero_zero_nat @ ( suc @ N ) ) ).

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

% less_Suc0
thf(fact_681_less__one,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ N @ one_one_nat )
      = ( N = zero_zero_nat ) ) ).

% less_one
thf(fact_682_zero__less__diff,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( minus_minus_nat @ N @ M2 ) )
      = ( ord_less_nat @ M2 @ N ) ) ).

% zero_less_diff
thf(fact_683_diff__is__0__eq,axiom,
    ! [M2: nat,N: nat] :
      ( ( ( minus_minus_nat @ M2 @ N )
        = zero_zero_nat )
      = ( ord_less_eq_nat @ M2 @ N ) ) ).

% diff_is_0_eq
thf(fact_684_diff__is__0__eq_H,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_eq_nat @ M2 @ N )
     => ( ( minus_minus_nat @ M2 @ N )
        = zero_zero_nat ) ) ).

% diff_is_0_eq'
thf(fact_685_set__mset__mset,axiom,
    ! [Xs: list_a] :
      ( ( set_mset_a @ ( mset_a @ Xs ) )
      = ( set_a2 @ Xs ) ) ).

% set_mset_mset
thf(fact_686_count__notin,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( count_list_nat @ Xs @ X2 )
        = zero_zero_nat ) ) ).

% count_notin
thf(fact_687_set__sorted__list__of__multiset,axiom,
    ! [M5: multiset_a] :
      ( ( set_a2 @ ( linord814965612141868908iset_a @ M5 ) )
      = ( set_mset_a @ M5 ) ) ).

% set_sorted_list_of_multiset
thf(fact_688_Suc__pred,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( suc @ ( minus_minus_nat @ N @ ( suc @ zero_zero_nat ) ) )
        = N ) ) ).

% Suc_pred
thf(fact_689_count__list__0__iff,axiom,
    ! [Xs: list_nat,X2: nat] :
      ( ( ( count_list_nat @ Xs @ X2 )
        = zero_zero_nat )
      = ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ) ).

% count_list_0_iff
thf(fact_690_subset__code_I1_J,axiom,
    ! [Xs: list_nat,B5: set_nat] :
      ( ( ord_less_eq_set_nat @ ( set_nat2 @ Xs ) @ B5 )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs ) )
           => ( member_nat @ X3 @ B5 ) ) ) ) ).

% subset_code(1)
thf(fact_691_le__numeral__extra_I3_J,axiom,
    ord_less_eq_nat @ zero_zero_nat @ zero_zero_nat ).

% le_numeral_extra(3)
thf(fact_692_less__numeral__extra_I3_J,axiom,
    ~ ( ord_less_nat @ zero_zero_nat @ zero_zero_nat ) ).

% less_numeral_extra(3)
thf(fact_693_length__pos__if__in__set,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
     => ( ord_less_nat @ zero_zero_nat @ ( size_size_list_a @ Xs ) ) ) ).

% length_pos_if_in_set
thf(fact_694_length__pos__if__in__set,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ord_less_nat @ zero_zero_nat @ ( size_size_list_nat @ Xs ) ) ) ).

% length_pos_if_in_set
thf(fact_695_zero__le,axiom,
    ! [X2: nat] : ( ord_less_eq_nat @ zero_zero_nat @ X2 ) ).

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

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

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

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

% gr_zeroI
thf(fact_700_perm__set__eq,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( set_a2 @ Xs )
        = ( set_a2 @ Ys ) ) ) ).

% perm_set_eq
thf(fact_701_sorted__wrt__mono__rel,axiom,
    ! [Xs: list_a,P: a > a > $o,Q: a > a > $o] :
      ( ! [X4: a,Y4: a] :
          ( ( member_a @ X4 @ ( set_a2 @ Xs ) )
         => ( ( member_a @ Y4 @ ( set_a2 @ Xs ) )
           => ( ( P @ X4 @ Y4 )
             => ( Q @ X4 @ Y4 ) ) ) )
     => ( ( sorted_wrt_a @ P @ Xs )
       => ( sorted_wrt_a @ Q @ Xs ) ) ) ).

% sorted_wrt_mono_rel
thf(fact_702_sorted__wrt__mono__rel,axiom,
    ! [Xs: list_nat,P: nat > nat > $o,Q: nat > nat > $o] :
      ( ! [X4: nat,Y4: nat] :
          ( ( member_nat @ X4 @ ( set_nat2 @ Xs ) )
         => ( ( member_nat @ Y4 @ ( set_nat2 @ Xs ) )
           => ( ( P @ X4 @ Y4 )
             => ( Q @ X4 @ Y4 ) ) ) )
     => ( ( sorted_wrt_nat @ P @ Xs )
       => ( sorted_wrt_nat @ Q @ Xs ) ) ) ).

% sorted_wrt_mono_rel
thf(fact_703_filter__cong,axiom,
    ! [Xs: list_nat,Ys: list_nat,P: nat > $o,Q: nat > $o] :
      ( ( Xs = Ys )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys ) )
           => ( ( P @ X4 )
              = ( Q @ X4 ) ) )
       => ( ( filter_nat @ P @ Xs )
          = ( filter_nat @ Q @ Ys ) ) ) ) ).

% filter_cong
thf(fact_704_filter__cong,axiom,
    ! [Xs: list_a,Ys: list_a,P: a > $o,Q: a > $o] :
      ( ( Xs = Ys )
     => ( ! [X4: a] :
            ( ( member_a @ X4 @ ( set_a2 @ Ys ) )
           => ( ( P @ X4 )
              = ( Q @ X4 ) ) )
       => ( ( filter_a @ P @ Xs )
          = ( filter_a @ Q @ Ys ) ) ) ) ).

% filter_cong
thf(fact_705_filter__id__conv,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( ( filter_a @ P @ Xs )
        = Xs )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ( P @ X3 ) ) ) ) ).

% filter_id_conv
thf(fact_706_filter__is__subset,axiom,
    ! [P: a > $o,Xs: list_a] : ( ord_less_eq_set_a @ ( set_a2 @ ( filter_a @ P @ Xs ) ) @ ( set_a2 @ Xs ) ) ).

% filter_is_subset
thf(fact_707_not0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
     => ? [M8: nat] :
          ( N
          = ( suc @ M8 ) ) ) ).

% not0_implies_Suc
thf(fact_708_Zero__not__Suc,axiom,
    ! [M2: nat] :
      ( zero_zero_nat
     != ( suc @ M2 ) ) ).

% Zero_not_Suc
thf(fact_709_Zero__neq__Suc,axiom,
    ! [M2: nat] :
      ( zero_zero_nat
     != ( suc @ M2 ) ) ).

% Zero_neq_Suc
thf(fact_710_Suc__neq__Zero,axiom,
    ! [M2: nat] :
      ( ( suc @ M2 )
     != zero_zero_nat ) ).

% Suc_neq_Zero
thf(fact_711_zero__induct,axiom,
    ! [P: nat > $o,K: nat] :
      ( ( P @ K )
     => ( ! [N3: nat] :
            ( ( P @ ( suc @ N3 ) )
           => ( P @ N3 ) )
       => ( P @ zero_zero_nat ) ) ) ).

% zero_induct
thf(fact_712_diff__induct,axiom,
    ! [P: nat > nat > $o,M2: nat,N: nat] :
      ( ! [X4: nat] : ( P @ X4 @ zero_zero_nat )
     => ( ! [Y4: nat] : ( P @ zero_zero_nat @ ( suc @ Y4 ) )
       => ( ! [X4: nat,Y4: nat] :
              ( ( P @ X4 @ Y4 )
             => ( P @ ( suc @ X4 ) @ ( suc @ Y4 ) ) )
         => ( P @ M2 @ N ) ) ) ) ).

% diff_induct
thf(fact_713_nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ zero_zero_nat )
     => ( ! [N3: nat] :
            ( ( P @ N3 )
           => ( P @ ( suc @ N3 ) ) )
       => ( P @ N ) ) ) ).

% nat_induct
thf(fact_714_old_Onat_Oexhaust,axiom,
    ! [Y3: nat] :
      ( ( Y3 != zero_zero_nat )
     => ~ ! [Nat3: nat] :
            ( Y3
           != ( suc @ Nat3 ) ) ) ).

% old.nat.exhaust
thf(fact_715_nat_OdiscI,axiom,
    ! [Nat: nat,X22: nat] :
      ( ( Nat
        = ( suc @ X22 ) )
     => ( Nat != zero_zero_nat ) ) ).

% nat.discI
thf(fact_716_old_Onat_Odistinct_I1_J,axiom,
    ! [Nat2: nat] :
      ( zero_zero_nat
     != ( suc @ Nat2 ) ) ).

% old.nat.distinct(1)
thf(fact_717_old_Onat_Odistinct_I2_J,axiom,
    ! [Nat2: nat] :
      ( ( suc @ Nat2 )
     != zero_zero_nat ) ).

% old.nat.distinct(2)
thf(fact_718_nat_Odistinct_I1_J,axiom,
    ! [X22: nat] :
      ( zero_zero_nat
     != ( suc @ X22 ) ) ).

% nat.distinct(1)
thf(fact_719_list__decode_Ocases,axiom,
    ! [X2: nat] :
      ( ( X2 != zero_zero_nat )
     => ~ ! [N3: nat] :
            ( X2
           != ( suc @ N3 ) ) ) ).

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

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

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

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

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

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

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

% bot_nat_0.extremum_strict
thf(fact_727_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq_nat @ N @ zero_zero_nat )
      = ( N = zero_zero_nat ) ) ).

% le_0_eq
thf(fact_728_bot__nat__0_Oextremum__uniqueI,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ zero_zero_nat )
     => ( A = zero_zero_nat ) ) ).

% bot_nat_0.extremum_uniqueI
thf(fact_729_bot__nat__0_Oextremum__unique,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ zero_zero_nat )
      = ( A = zero_zero_nat ) ) ).

% bot_nat_0.extremum_unique
thf(fact_730_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ zero_zero_nat @ N ) ).

% less_eq_nat.simps(1)
thf(fact_731_set__update__subsetI,axiom,
    ! [Xs: list_nat,A4: set_nat,X2: nat,I: nat] :
      ( ( ord_less_eq_set_nat @ ( set_nat2 @ Xs ) @ A4 )
     => ( ( member_nat @ X2 @ A4 )
       => ( ord_less_eq_set_nat @ ( set_nat2 @ ( list_update_nat @ Xs @ I @ X2 ) ) @ A4 ) ) ) ).

% set_update_subsetI
thf(fact_732_diffs0__imp__equal,axiom,
    ! [M2: nat,N: nat] :
      ( ( ( minus_minus_nat @ M2 @ N )
        = zero_zero_nat )
     => ( ( ( minus_minus_nat @ N @ M2 )
          = zero_zero_nat )
       => ( M2 = N ) ) ) ).

% diffs0_imp_equal
thf(fact_733_minus__nat_Odiff__0,axiom,
    ! [M2: nat] :
      ( ( minus_minus_nat @ M2 @ zero_zero_nat )
      = M2 ) ).

% minus_nat.diff_0
thf(fact_734_less__numeral__extra_I1_J,axiom,
    ord_less_nat @ zero_zero_nat @ one_one_nat ).

% less_numeral_extra(1)
thf(fact_735_notin__set__nthsI,axiom,
    ! [X2: nat,Xs: list_nat,I5: set_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ~ ( member_nat @ X2 @ ( set_nat2 @ ( nths_nat @ Xs @ I5 ) ) ) ) ).

% notin_set_nthsI
thf(fact_736_in__set__nthsD,axiom,
    ! [X2: nat,Xs: list_nat,I5: set_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ( nths_nat @ Xs @ I5 ) ) )
     => ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% in_set_nthsD
thf(fact_737_list__ex__cong,axiom,
    ! [Xs: list_nat,Ys: list_nat,F: nat > $o,G: nat > $o] :
      ( ( Xs = Ys )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Ys ) )
           => ( ( F @ X4 )
              = ( G @ X4 ) ) )
       => ( ( list_ex_nat @ F @ Xs )
          = ( list_ex_nat @ G @ Ys ) ) ) ) ).

% list_ex_cong
thf(fact_738_insort__insert__triv,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( linord1921536354676448932at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs )
        = Xs ) ) ).

% insort_insert_triv
thf(fact_739_strict__sorted__equal,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ Xs )
     => ( ( sorted_wrt_nat @ ord_less_nat @ Ys )
       => ( ( ( set_nat2 @ Ys )
            = ( set_nat2 @ Xs ) )
         => ( Ys = Xs ) ) ) ) ).

% strict_sorted_equal
thf(fact_740_strict__sorted__equal,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( sorted_wrt_a @ ord_less_a @ Xs )
     => ( ( sorted_wrt_a @ ord_less_a @ Ys )
       => ( ( ( set_a2 @ Ys )
            = ( set_a2 @ Xs ) )
         => ( Ys = Xs ) ) ) ) ).

% strict_sorted_equal
thf(fact_741_in__multiset__in__set,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ ( mset_nat @ Xs ) ) )
      = ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% in_multiset_in_set
thf(fact_742_in__multiset__in__set,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( member_a @ X2 @ ( set_mset_a @ ( mset_a @ Xs ) ) )
      = ( member_a @ X2 @ ( set_a2 @ Xs ) ) ) ).

% in_multiset_in_set
thf(fact_743_less__Suc__eq__0__disj,axiom,
    ! [M2: nat,N: nat] :
      ( ( ord_less_nat @ M2 @ ( suc @ N ) )
      = ( ( M2 = zero_zero_nat )
        | ? [J: nat] :
            ( ( M2
              = ( suc @ J ) )
            & ( ord_less_nat @ J @ N ) ) ) ) ).

% less_Suc_eq_0_disj
thf(fact_744_gr0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ? [M8: nat] :
          ( N
          = ( suc @ M8 ) ) ) ).

% gr0_implies_Suc
thf(fact_745_All__less__Suc2,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( suc @ N ) )
           => ( P @ I2 ) ) )
      = ( ( P @ zero_zero_nat )
        & ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ N )
           => ( P @ ( suc @ I2 ) ) ) ) ) ).

% All_less_Suc2
thf(fact_746_gr0__conv__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
      = ( ? [M: nat] :
            ( N
            = ( suc @ M ) ) ) ) ).

% gr0_conv_Suc
thf(fact_747_Ex__less__Suc2,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( suc @ N ) )
            & ( P @ I2 ) ) )
      = ( ( P @ zero_zero_nat )
        | ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ N )
            & ( P @ ( suc @ I2 ) ) ) ) ) ).

% Ex_less_Suc2
thf(fact_748_One__nat__def,axiom,
    ( one_one_nat
    = ( suc @ zero_zero_nat ) ) ).

% One_nat_def
thf(fact_749_ex__least__nat__le,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ N )
     => ( ~ ( P @ zero_zero_nat )
       => ? [K2: nat] :
            ( ( ord_less_eq_nat @ K2 @ N )
            & ! [I4: nat] :
                ( ( ord_less_nat @ I4 @ K2 )
               => ~ ( P @ I4 ) )
            & ( P @ K2 ) ) ) ) ).

% ex_least_nat_le
thf(fact_750_diff__less,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_nat @ zero_zero_nat @ M2 )
       => ( ord_less_nat @ ( minus_minus_nat @ M2 @ N ) @ M2 ) ) ) ).

% diff_less
thf(fact_751_card__length,axiom,
    ! [Xs: list_a] : ( ord_less_eq_nat @ ( finite_card_a @ ( set_a2 @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ).

% card_length
thf(fact_752_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_753_all__set__conv__all__nth,axiom,
    ! [Xs: list_a,P: a > $o] :
      ( ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ( P @ X3 ) ) )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs ) )
           => ( P @ ( nth_a @ Xs @ I2 ) ) ) ) ) ).

% all_set_conv_all_nth
thf(fact_754_all__set__conv__all__nth,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs ) )
           => ( P @ X3 ) ) )
      = ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
           => ( P @ ( nth_nat @ Xs @ I2 ) ) ) ) ) ).

% all_set_conv_all_nth
thf(fact_755_all__nth__imp__all__set,axiom,
    ! [Xs: list_a,P: a > $o,X2: a] :
      ( ! [I3: nat] :
          ( ( ord_less_nat @ I3 @ ( size_size_list_a @ Xs ) )
         => ( P @ ( nth_a @ Xs @ I3 ) ) )
     => ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
       => ( P @ X2 ) ) ) ).

% all_nth_imp_all_set
thf(fact_756_all__nth__imp__all__set,axiom,
    ! [Xs: list_nat,P: nat > $o,X2: nat] :
      ( ! [I3: nat] :
          ( ( ord_less_nat @ I3 @ ( size_size_list_nat @ Xs ) )
         => ( P @ ( nth_nat @ Xs @ I3 ) ) )
     => ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ( P @ X2 ) ) ) ).

% all_nth_imp_all_set
thf(fact_757_in__set__conv__nth,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
      = ( ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs ) )
            & ( ( nth_a @ Xs @ I2 )
              = X2 ) ) ) ) ).

% in_set_conv_nth
thf(fact_758_in__set__conv__nth,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
      = ( ? [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
            & ( ( nth_nat @ Xs @ I2 )
              = X2 ) ) ) ) ).

% in_set_conv_nth
thf(fact_759_list__ball__nth,axiom,
    ! [N: nat,Xs: list_a,P: a > $o] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ! [X4: a] :
            ( ( member_a @ X4 @ ( set_a2 @ Xs ) )
           => ( P @ X4 ) )
       => ( P @ ( nth_a @ Xs @ N ) ) ) ) ).

% list_ball_nth
thf(fact_760_list__ball__nth,axiom,
    ! [N: nat,Xs: list_nat,P: nat > $o] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Xs ) )
           => ( P @ X4 ) )
       => ( P @ ( nth_nat @ Xs @ N ) ) ) ) ).

% list_ball_nth
thf(fact_761_nth__mem,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( member_a @ ( nth_a @ Xs @ N ) @ ( set_a2 @ Xs ) ) ) ).

% nth_mem
thf(fact_762_nth__mem,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( member_nat @ ( nth_nat @ Xs @ N ) @ ( set_nat2 @ Xs ) ) ) ).

% nth_mem
thf(fact_763_length__filter__less,axiom,
    ! [X2: a,Xs: list_a,P: a > $o] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
     => ( ~ ( P @ X2 )
       => ( ord_less_nat @ ( size_size_list_a @ ( filter_a @ P @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ) ) ).

% length_filter_less
thf(fact_764_length__filter__less,axiom,
    ! [X2: nat,Xs: list_nat,P: nat > $o] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ~ ( P @ X2 )
       => ( ord_less_nat @ ( size_size_list_nat @ ( filter_nat @ P @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ) ) ).

% length_filter_less
thf(fact_765_set__update__memI,axiom,
    ! [N: nat,Xs: list_a,X2: a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( member_a @ X2 @ ( set_a2 @ ( list_update_a @ Xs @ N @ X2 ) ) ) ) ).

% set_update_memI
thf(fact_766_set__update__memI,axiom,
    ! [N: nat,Xs: list_nat,X2: nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( member_nat @ X2 @ ( set_nat2 @ ( list_update_nat @ Xs @ N @ X2 ) ) ) ) ).

% set_update_memI
thf(fact_767_count__list__gr__1,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
      = ( ord_less_eq_nat @ one_one_nat @ ( count_list_nat @ Xs @ X2 ) ) ) ).

% count_list_gr_1
thf(fact_768_nat__induct__non__zero,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( P @ one_one_nat )
       => ( ! [N3: nat] :
              ( ( ord_less_nat @ zero_zero_nat @ N3 )
             => ( ( P @ N3 )
               => ( P @ ( suc @ N3 ) ) ) )
         => ( P @ N ) ) ) ) ).

% nat_induct_non_zero
thf(fact_769_ex__least__nat__less,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ N )
     => ( ~ ( P @ zero_zero_nat )
       => ? [K2: nat] :
            ( ( ord_less_nat @ K2 @ N )
            & ! [I4: nat] :
                ( ( ord_less_eq_nat @ I4 @ K2 )
               => ~ ( P @ I4 ) )
            & ( P @ ( suc @ K2 ) ) ) ) ) ).

% ex_least_nat_less
thf(fact_770_diff__Suc__less,axiom,
    ! [N: nat,I: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ord_less_nat @ ( minus_minus_nat @ N @ ( suc @ I ) ) @ N ) ) ).

% diff_Suc_less
thf(fact_771_Suc__pred_H,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( N
        = ( suc @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% Suc_pred'
thf(fact_772_Suc__diff__eq__diff__pred,axiom,
    ! [N: nat,M2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( minus_minus_nat @ ( suc @ M2 ) @ N )
        = ( minus_minus_nat @ M2 @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% Suc_diff_eq_diff_pred
thf(fact_773_finite__number__segment,axiom,
    ! [N: nat] :
      ( ( finite_card_nat
        @ ( collect_nat
          @ ^ [M: nat] :
              ( ( ord_less_nat @ zero_zero_nat @ M )
              & ( ord_less_nat @ M @ N ) ) ) )
      = ( minus_minus_nat @ N @ one_one_nat ) ) ).

% finite_number_segment
thf(fact_774_card__less__Suc2,axiom,
    ! [M5: set_nat,I: nat] :
      ( ~ ( member_nat @ zero_zero_nat @ M5 )
     => ( ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( member_nat @ ( suc @ K3 ) @ M5 )
                & ( ord_less_nat @ K3 @ I ) ) ) )
        = ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( member_nat @ K3 @ M5 )
                & ( ord_less_nat @ K3 @ ( suc @ I ) ) ) ) ) ) ) ).

% card_less_Suc2
thf(fact_775_card__less__Suc,axiom,
    ! [M5: set_nat,I: nat] :
      ( ( member_nat @ zero_zero_nat @ M5 )
     => ( ( suc
          @ ( finite_card_nat
            @ ( collect_nat
              @ ^ [K3: nat] :
                  ( ( member_nat @ ( suc @ K3 ) @ M5 )
                  & ( ord_less_nat @ K3 @ I ) ) ) ) )
        = ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( member_nat @ K3 @ M5 )
                & ( ord_less_nat @ K3 @ ( suc @ I ) ) ) ) ) ) ) ).

% card_less_Suc
thf(fact_776_card__less,axiom,
    ! [M5: set_nat,I: nat] :
      ( ( member_nat @ zero_zero_nat @ M5 )
     => ( ( finite_card_nat
          @ ( collect_nat
            @ ^ [K3: nat] :
                ( ( member_nat @ K3 @ M5 )
                & ( ord_less_nat @ K3 @ ( suc @ I ) ) ) ) )
       != zero_zero_nat ) ) ).

% card_less
thf(fact_777_not__one__less__zero,axiom,
    ~ ( ord_less_nat @ one_one_nat @ zero_zero_nat ) ).

% not_one_less_zero
thf(fact_778_size__empty,axiom,
    ( ( size_size_multiset_a @ zero_zero_multiset_a )
    = zero_zero_nat ) ).

% size_empty
thf(fact_779_size__eq__0__iff__empty,axiom,
    ! [M5: multiset_a] :
      ( ( ( size_size_multiset_a @ M5 )
        = zero_zero_nat )
      = ( M5 = zero_zero_multiset_a ) ) ).

% size_eq_0_iff_empty
thf(fact_780_multiset__nonemptyE,axiom,
    ! [A4: multiset_nat] :
      ( ( A4 != zero_z7348594199698428585et_nat )
     => ~ ! [X4: nat] :
            ~ ( member_nat @ X4 @ ( set_mset_nat @ A4 ) ) ) ).

% multiset_nonemptyE
thf(fact_781_nat__exists__least__iff,axiom,
    ( ( ^ [P4: nat > $o] :
        ? [X5: nat] : ( P4 @ X5 ) )
    = ( ^ [P2: nat > $o] :
        ? [N2: nat] :
          ( ( P2 @ N2 )
          & ! [M: nat] :
              ( ( ord_less_nat @ M @ N2 )
             => ~ ( P2 @ M ) ) ) ) ) ).

% nat_exists_least_iff
thf(fact_782_bounded__Max__nat,axiom,
    ! [P: nat > $o,X2: nat,M5: nat] :
      ( ( P @ X2 )
     => ( ! [X4: nat] :
            ( ( P @ X4 )
           => ( ord_less_eq_nat @ X4 @ M5 ) )
       => ~ ! [M8: nat] :
              ( ( P @ M8 )
             => ~ ! [X6: nat] :
                    ( ( P @ X6 )
                   => ( ord_less_eq_nat @ X6 @ M8 ) ) ) ) ) ).

% bounded_Max_nat
thf(fact_783_nonempty__has__size,axiom,
    ! [S3: multiset_a] :
      ( ( S3 != zero_zero_multiset_a )
      = ( ord_less_nat @ zero_zero_nat @ ( size_size_multiset_a @ S3 ) ) ) ).

% nonempty_has_size
thf(fact_784_zero__neq__one,axiom,
    zero_zero_nat != one_one_nat ).

% zero_neq_one
thf(fact_785_not__one__le__zero,axiom,
    ~ ( ord_less_eq_nat @ one_one_nat @ zero_zero_nat ) ).

% not_one_le_zero
thf(fact_786_linordered__nonzero__semiring__class_Ozero__le__one,axiom,
    ord_less_eq_nat @ zero_zero_nat @ one_one_nat ).

% linordered_nonzero_semiring_class.zero_le_one
thf(fact_787_zero__less__one__class_Ozero__le__one,axiom,
    ord_less_eq_nat @ zero_zero_nat @ one_one_nat ).

% zero_less_one_class.zero_le_one
thf(fact_788_zero__less__one,axiom,
    ord_less_nat @ zero_zero_nat @ one_one_nat ).

% zero_less_one
thf(fact_789_perm__setP,axiom,
    ! [As: list_a,Bs: list_a,P: set_a > $o] :
      ( ( ( mset_a @ As )
        = ( mset_a @ Bs ) )
     => ( ( P @ ( set_a2 @ As ) )
       => ( P @ ( set_a2 @ Bs ) ) ) ) ).

% perm_setP
thf(fact_790_fib_Ocases,axiom,
    ! [X2: nat] :
      ( ( X2 != zero_zero_nat )
     => ( ( X2
         != ( suc @ zero_zero_nat ) )
       => ~ ! [N3: nat] :
              ( X2
             != ( suc @ ( suc @ N3 ) ) ) ) ) ).

% fib.cases
thf(fact_791_mset__update,axiom,
    ! [I: nat,Ls: list_a,V: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Ls ) )
     => ( ( mset_a @ ( list_update_a @ Ls @ I @ V ) )
        = ( add_mset_a @ V @ ( minus_3765977307040488491iset_a @ ( mset_a @ Ls ) @ ( add_mset_a @ ( nth_a @ Ls @ I ) @ zero_zero_multiset_a ) ) ) ) ) ).

% mset_update
thf(fact_792_mset__update,axiom,
    ! [I: nat,Ls: list_nat,V: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Ls ) )
     => ( ( mset_nat @ ( list_update_nat @ Ls @ I @ V ) )
        = ( add_mset_nat @ V @ ( minus_8522176038001411705et_nat @ ( mset_nat @ Ls ) @ ( add_mset_nat @ ( nth_nat @ Ls @ I ) @ zero_z7348594199698428585et_nat ) ) ) ) ) ).

% mset_update
thf(fact_793_exists__least__lemma,axiom,
    ! [P: nat > $o] :
      ( ~ ( P @ zero_zero_nat )
     => ( ? [X_12: nat] : ( P @ X_12 )
       => ? [N3: nat] :
            ( ~ ( P @ N3 )
            & ( P @ ( suc @ N3 ) ) ) ) ) ).

% exists_least_lemma
thf(fact_794_size__add__mset,axiom,
    ! [A: a,A4: multiset_a] :
      ( ( size_size_multiset_a @ ( add_mset_a @ A @ A4 ) )
      = ( suc @ ( size_size_multiset_a @ A4 ) ) ) ).

% size_add_mset
thf(fact_795_diff__add__mset__swap,axiom,
    ! [B: nat,A4: multiset_nat,M5: multiset_nat] :
      ( ~ ( member_nat @ B @ ( set_mset_nat @ A4 ) )
     => ( ( minus_8522176038001411705et_nat @ ( add_mset_nat @ B @ M5 ) @ A4 )
        = ( add_mset_nat @ B @ ( minus_8522176038001411705et_nat @ M5 @ A4 ) ) ) ) ).

% diff_add_mset_swap
thf(fact_796_insert__DiffM,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( add_mset_nat @ X2 @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) )
        = M5 ) ) ).

% insert_DiffM
thf(fact_797_diff__union__swap2,axiom,
    ! [Y3: nat,M5: multiset_nat,X2: nat] :
      ( ( member_nat @ Y3 @ ( set_mset_nat @ M5 ) )
     => ( ( minus_8522176038001411705et_nat @ ( add_mset_nat @ X2 @ M5 ) @ ( add_mset_nat @ Y3 @ zero_z7348594199698428585et_nat ) )
        = ( add_mset_nat @ X2 @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ Y3 @ zero_z7348594199698428585et_nat ) ) ) ) ) ).

% diff_union_swap2
thf(fact_798_union__single__eq__member,axiom,
    ! [X2: nat,M5: multiset_nat,N5: multiset_nat] :
      ( ( ( add_mset_nat @ X2 @ M5 )
        = N5 )
     => ( member_nat @ X2 @ ( set_mset_nat @ N5 ) ) ) ).

% union_single_eq_member
thf(fact_799_insert__noteq__member,axiom,
    ! [B: nat,B5: multiset_nat,C: nat,C3: multiset_nat] :
      ( ( ( add_mset_nat @ B @ B5 )
        = ( add_mset_nat @ C @ C3 ) )
     => ( ( B != C )
       => ( member_nat @ C @ ( set_mset_nat @ B5 ) ) ) ) ).

% insert_noteq_member
thf(fact_800_multi__member__split,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ? [A6: multiset_nat] :
          ( M5
          = ( add_mset_nat @ X2 @ A6 ) ) ) ).

% multi_member_split
thf(fact_801_mset__add,axiom,
    ! [A: nat,A4: multiset_nat] :
      ( ( member_nat @ A @ ( set_mset_nat @ A4 ) )
     => ~ ! [B6: multiset_nat] :
            ( A4
           != ( add_mset_nat @ A @ B6 ) ) ) ).

% mset_add
thf(fact_802_multi__member__last,axiom,
    ! [X2: nat] : ( member_nat @ X2 @ ( set_mset_nat @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) ) ).

% multi_member_last
thf(fact_803_size__eq__Suc__imp__eq__union,axiom,
    ! [M5: multiset_a,N: nat] :
      ( ( ( size_size_multiset_a @ M5 )
        = ( suc @ N ) )
     => ? [A3: a,N6: multiset_a] :
          ( M5
          = ( add_mset_a @ A3 @ N6 ) ) ) ).

% size_eq_Suc_imp_eq_union
thf(fact_804_multiset__induct__min,axiom,
    ! [P: multiset_nat > $o,M5: multiset_nat] :
      ( ( P @ zero_z7348594199698428585et_nat )
     => ( ! [X4: nat,M10: multiset_nat] :
            ( ( P @ M10 )
           => ( ! [Xa: nat] :
                  ( ( member_nat @ Xa @ ( set_mset_nat @ M10 ) )
                 => ( ord_less_eq_nat @ X4 @ Xa ) )
             => ( P @ ( add_mset_nat @ X4 @ M10 ) ) ) )
       => ( P @ M5 ) ) ) ).

% multiset_induct_min
thf(fact_805_multiset__induct__min,axiom,
    ! [P: multiset_a > $o,M5: multiset_a] :
      ( ( P @ zero_zero_multiset_a )
     => ( ! [X4: a,M10: multiset_a] :
            ( ( P @ M10 )
           => ( ! [Xa: a] :
                  ( ( member_a @ Xa @ ( set_mset_a @ M10 ) )
                 => ( ord_less_eq_a @ X4 @ Xa ) )
             => ( P @ ( add_mset_a @ X4 @ M10 ) ) ) )
       => ( P @ M5 ) ) ) ).

% multiset_induct_min
thf(fact_806_multiset__induct__max,axiom,
    ! [P: multiset_nat > $o,M5: multiset_nat] :
      ( ( P @ zero_z7348594199698428585et_nat )
     => ( ! [X4: nat,M10: multiset_nat] :
            ( ( P @ M10 )
           => ( ! [Xa: nat] :
                  ( ( member_nat @ Xa @ ( set_mset_nat @ M10 ) )
                 => ( ord_less_eq_nat @ Xa @ X4 ) )
             => ( P @ ( add_mset_nat @ X4 @ M10 ) ) ) )
       => ( P @ M5 ) ) ) ).

% multiset_induct_max
thf(fact_807_multiset__induct__max,axiom,
    ! [P: multiset_a > $o,M5: multiset_a] :
      ( ( P @ zero_zero_multiset_a )
     => ( ! [X4: a,M10: multiset_a] :
            ( ( P @ M10 )
           => ( ! [Xa: a] :
                  ( ( member_a @ Xa @ ( set_mset_a @ M10 ) )
                 => ( ord_less_eq_a @ Xa @ X4 ) )
             => ( P @ ( add_mset_a @ X4 @ M10 ) ) ) )
       => ( P @ M5 ) ) ) ).

% multiset_induct_max
thf(fact_808_size__single,axiom,
    ! [B: a] :
      ( ( size_size_multiset_a @ ( add_mset_a @ B @ zero_zero_multiset_a ) )
      = one_one_nat ) ).

% size_single
thf(fact_809_size__1__singleton__mset,axiom,
    ! [M5: multiset_a] :
      ( ( ( size_size_multiset_a @ M5 )
        = one_one_nat )
     => ? [A3: a] :
          ( M5
          = ( add_mset_a @ A3 @ zero_zero_multiset_a ) ) ) ).

% size_1_singleton_mset
thf(fact_810_diff__single__trivial,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ~ ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) )
        = M5 ) ) ).

% diff_single_trivial
thf(fact_811_diff__single__eq__union,axiom,
    ! [X2: nat,M5: multiset_nat,N5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) )
          = N5 )
        = ( M5
          = ( add_mset_nat @ X2 @ N5 ) ) ) ) ).

% diff_single_eq_union
thf(fact_812_multi__drop__mem__not__eq,axiom,
    ! [C: nat,B5: multiset_nat] :
      ( ( member_nat @ C @ ( set_mset_nat @ B5 ) )
     => ( ( minus_8522176038001411705et_nat @ B5 @ ( add_mset_nat @ C @ zero_z7348594199698428585et_nat ) )
       != B5 ) ) ).

% multi_drop_mem_not_eq
thf(fact_813_add__mset__remove__trivial__If,axiom,
    ! [A: nat,N5: multiset_nat] :
      ( ( ( member_nat @ A @ ( set_mset_nat @ N5 ) )
       => ( ( add_mset_nat @ A @ ( minus_8522176038001411705et_nat @ N5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) )
          = N5 ) )
      & ( ~ ( member_nat @ A @ ( set_mset_nat @ N5 ) )
       => ( ( add_mset_nat @ A @ ( minus_8522176038001411705et_nat @ N5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) )
          = ( add_mset_nat @ A @ N5 ) ) ) ) ).

% add_mset_remove_trivial_If
thf(fact_814_add__mset__remove__trivial__eq,axiom,
    ! [N5: multiset_nat,A: nat] :
      ( ( N5
        = ( add_mset_nat @ A @ ( minus_8522176038001411705et_nat @ N5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) ) )
      = ( member_nat @ A @ ( set_mset_nat @ N5 ) ) ) ).

% add_mset_remove_trivial_eq
thf(fact_815_multiset__add__sub__el__shuffle,axiom,
    ! [C: nat,B5: multiset_nat,B: nat] :
      ( ( member_nat @ C @ ( set_mset_nat @ B5 ) )
     => ( ( B != C )
       => ( ( add_mset_nat @ B @ ( minus_8522176038001411705et_nat @ B5 @ ( add_mset_nat @ C @ zero_z7348594199698428585et_nat ) ) )
          = ( minus_8522176038001411705et_nat @ ( add_mset_nat @ B @ B5 ) @ ( add_mset_nat @ C @ zero_z7348594199698428585et_nat ) ) ) ) ) ).

% multiset_add_sub_el_shuffle
thf(fact_816_more__than__one__mset__mset__diff,axiom,
    ! [A: nat,M5: multiset_nat] :
      ( ( member_nat @ A @ ( set_mset_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) ) )
     => ( ( set_mset_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) )
        = ( set_mset_nat @ M5 ) ) ) ).

% more_than_one_mset_mset_diff
thf(fact_817_size__Diff1__le,axiom,
    ! [M5: multiset_a,X2: a] : ( ord_less_eq_nat @ ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ M5 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) ) @ ( size_size_multiset_a @ M5 ) ) ).

% size_Diff1_le
thf(fact_818_size__Suc__Diff1,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( suc @ ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) ) )
        = ( size_s5917832649809541300et_nat @ M5 ) ) ) ).

% size_Suc_Diff1
thf(fact_819_size__Suc__Diff1,axiom,
    ! [X2: a,M5: multiset_a] :
      ( ( member_a @ X2 @ ( set_mset_a @ M5 ) )
     => ( ( suc @ ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ M5 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) ) )
        = ( size_size_multiset_a @ M5 ) ) ) ).

% size_Suc_Diff1
thf(fact_820_size__Diff1__less,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ord_less_nat @ ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) ) @ ( size_s5917832649809541300et_nat @ M5 ) ) ) ).

% size_Diff1_less
thf(fact_821_size__Diff1__less,axiom,
    ! [X2: a,M5: multiset_a] :
      ( ( member_a @ X2 @ ( set_mset_a @ M5 ) )
     => ( ord_less_nat @ ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ M5 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) ) @ ( size_size_multiset_a @ M5 ) ) ) ).

% size_Diff1_less
thf(fact_822_size__Diff2__less,axiom,
    ! [X2: nat,M5: multiset_nat,Y3: nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( member_nat @ Y3 @ ( set_mset_nat @ M5 ) )
       => ( ord_less_nat @ ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) @ ( add_mset_nat @ Y3 @ zero_z7348594199698428585et_nat ) ) ) @ ( size_s5917832649809541300et_nat @ M5 ) ) ) ) ).

% size_Diff2_less
thf(fact_823_size__Diff2__less,axiom,
    ! [X2: a,M5: multiset_a,Y3: a] :
      ( ( member_a @ X2 @ ( set_mset_a @ M5 ) )
     => ( ( member_a @ Y3 @ ( set_mset_a @ M5 ) )
       => ( ord_less_nat @ ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ ( minus_3765977307040488491iset_a @ M5 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) @ ( add_mset_a @ Y3 @ zero_zero_multiset_a ) ) ) @ ( size_size_multiset_a @ M5 ) ) ) ) ).

% size_Diff2_less
thf(fact_824_size__Diff__singleton,axiom,
    ! [X2: nat,M5: multiset_nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ M5 ) )
     => ( ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) )
        = ( minus_minus_nat @ ( size_s5917832649809541300et_nat @ M5 ) @ one_one_nat ) ) ) ).

% size_Diff_singleton
thf(fact_825_size__Diff__singleton,axiom,
    ! [X2: a,M5: multiset_a] :
      ( ( member_a @ X2 @ ( set_mset_a @ M5 ) )
     => ( ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ M5 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) )
        = ( minus_minus_nat @ ( size_size_multiset_a @ M5 ) @ one_one_nat ) ) ) ).

% size_Diff_singleton
thf(fact_826_size__Diff__singleton__if,axiom,
    ! [X2: nat,A4: multiset_nat] :
      ( ( ( member_nat @ X2 @ ( set_mset_nat @ A4 ) )
       => ( ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ A4 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) )
          = ( minus_minus_nat @ ( size_s5917832649809541300et_nat @ A4 ) @ one_one_nat ) ) )
      & ( ~ ( member_nat @ X2 @ ( set_mset_nat @ A4 ) )
       => ( ( size_s5917832649809541300et_nat @ ( minus_8522176038001411705et_nat @ A4 @ ( add_mset_nat @ X2 @ zero_z7348594199698428585et_nat ) ) )
          = ( size_s5917832649809541300et_nat @ A4 ) ) ) ) ).

% size_Diff_singleton_if
thf(fact_827_size__Diff__singleton__if,axiom,
    ! [X2: a,A4: multiset_a] :
      ( ( ( member_a @ X2 @ ( set_mset_a @ A4 ) )
       => ( ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ A4 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) )
          = ( minus_minus_nat @ ( size_size_multiset_a @ A4 ) @ one_one_nat ) ) )
      & ( ~ ( member_a @ X2 @ ( set_mset_a @ A4 ) )
       => ( ( size_size_multiset_a @ ( minus_3765977307040488491iset_a @ A4 @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) ) )
          = ( size_size_multiset_a @ A4 ) ) ) ) ).

% size_Diff_singleton_if
thf(fact_828_encode__unary__nat_Ocases,axiom,
    ! [X2: nat] :
      ( ! [L2: nat] :
          ( X2
         != ( suc @ L2 ) )
     => ( X2 = zero_zero_nat ) ) ).

% encode_unary_nat.cases
thf(fact_829_set__n__lists,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( set_list_a2 @ ( n_lists_a @ N @ Xs ) )
      = ( collect_list_a
        @ ^ [Ys2: list_a] :
            ( ( ( size_size_list_a @ Ys2 )
              = N )
            & ( ord_less_eq_set_a @ ( set_a2 @ Ys2 ) @ ( set_a2 @ Xs ) ) ) ) ) ).

% set_n_lists
thf(fact_830_set__n__lists,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( set_list_nat2 @ ( n_lists_nat @ N @ Xs ) )
      = ( collect_list_nat
        @ ^ [Ys2: list_nat] :
            ( ( ( size_size_list_nat @ Ys2 )
              = N )
            & ( ord_less_eq_set_nat @ ( set_nat2 @ Ys2 ) @ ( set_nat2 @ Xs ) ) ) ) ) ).

% set_n_lists
thf(fact_831_ord__1,axiom,
    ! [N: nat] :
      ( ( ord_nat @ one_one_nat @ N )
      = one_one_nat ) ).

% ord_1
thf(fact_832_ord__1__right,axiom,
    ! [N: nat] :
      ( ( ord_nat @ N @ one_one_nat )
      = one_one_nat ) ).

% ord_1_right
thf(fact_833_ord__0__nat,axiom,
    ! [N: nat] :
      ( ( ( N = one_one_nat )
       => ( ( ord_nat @ zero_zero_nat @ N )
          = one_one_nat ) )
      & ( ( N != one_one_nat )
       => ( ( ord_nat @ zero_zero_nat @ N )
          = zero_zero_nat ) ) ) ).

% ord_0_nat
thf(fact_834_ord__0__right__nat,axiom,
    ! [N: nat] :
      ( ( ( N = one_one_nat )
       => ( ( ord_nat @ N @ zero_zero_nat )
          = one_one_nat ) )
      & ( ( N != one_one_nat )
       => ( ( ord_nat @ N @ zero_zero_nat )
          = zero_zero_nat ) ) ) ).

% ord_0_right_nat
thf(fact_835_ord__Suc__0__right,axiom,
    ! [N: nat] :
      ( ( ord_nat @ N @ ( suc @ zero_zero_nat ) )
      = one_one_nat ) ).

% ord_Suc_0_right
thf(fact_836_ord__Suc__0,axiom,
    ! [N: nat] :
      ( ( ord_nat @ ( suc @ zero_zero_nat ) @ N )
      = one_one_nat ) ).

% ord_Suc_0
thf(fact_837_length__n__lists__elem,axiom,
    ! [Ys: list_a,N: nat,Xs: list_a] :
      ( ( member_list_a @ Ys @ ( set_list_a2 @ ( n_lists_a @ N @ Xs ) ) )
     => ( ( size_size_list_a @ Ys )
        = N ) ) ).

% length_n_lists_elem
thf(fact_838_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_839_nth__Cons__pos,axiom,
    ! [N: nat,X2: a,Xs: list_a] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ N )
        = ( nth_a @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% nth_Cons_pos
thf(fact_840_nth__Cons__pos,axiom,
    ! [N: nat,X2: nat,Xs: list_nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ N )
        = ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% nth_Cons_pos
thf(fact_841_card__insert__le__m1,axiom,
    ! [N: nat,Y3: set_nat,X2: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_eq_nat @ ( finite_card_nat @ Y3 ) @ ( minus_minus_nat @ N @ one_one_nat ) )
       => ( ord_less_eq_nat @ ( finite_card_nat @ ( insert_nat @ X2 @ Y3 ) ) @ N ) ) ) ).

% card_insert_le_m1
thf(fact_842_mset__remove1,axiom,
    ! [A: a,Xs: list_a] :
      ( ( mset_a @ ( remove1_a @ A @ Xs ) )
      = ( minus_3765977307040488491iset_a @ ( mset_a @ Xs ) @ ( add_mset_a @ A @ zero_zero_multiset_a ) ) ) ).

% mset_remove1
thf(fact_843_cons__perm__eq,axiom,
    ! [Z2: a,Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ ( cons_a @ Z2 @ Xs ) )
        = ( mset_a @ ( cons_a @ Z2 @ Ys ) ) )
      = ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) ) ) ).

% cons_perm_eq
thf(fact_844_in__set__remove1,axiom,
    ! [A: nat,B: nat,Xs: list_nat] :
      ( ( A != B )
     => ( ( member_nat @ A @ ( set_nat2 @ ( remove1_nat @ B @ Xs ) ) )
        = ( member_nat @ A @ ( set_nat2 @ Xs ) ) ) ) ).

% in_set_remove1
thf(fact_845_remove1__filter__not,axiom,
    ! [P: a > $o,X2: a,Xs: list_a] :
      ( ~ ( P @ X2 )
     => ( ( remove1_a @ X2 @ ( filter_a @ P @ Xs ) )
        = ( filter_a @ P @ Xs ) ) ) ).

% remove1_filter_not
thf(fact_846_list_Osimps_I15_J,axiom,
    ! [X21: nat,X222: list_nat] :
      ( ( set_nat2 @ ( cons_nat @ X21 @ X222 ) )
      = ( insert_nat @ X21 @ ( set_nat2 @ X222 ) ) ) ).

% list.simps(15)
thf(fact_847_nth__Cons__0,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_848_nth__Cons__0,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ zero_zero_nat )
      = X2 ) ).

% nth_Cons_0
thf(fact_849_nth__Cons__Suc,axiom,
    ! [X2: a,Xs: list_a,N: nat] :
      ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ ( suc @ N ) )
      = ( nth_a @ Xs @ N ) ) ).

% nth_Cons_Suc
thf(fact_850_nth__Cons__Suc,axiom,
    ! [X2: nat,Xs: list_nat,N: nat] :
      ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ ( suc @ N ) )
      = ( nth_nat @ Xs @ N ) ) ).

% nth_Cons_Suc
thf(fact_851_set__mset__add__mset__insert,axiom,
    ! [A: nat,A4: multiset_nat] :
      ( ( set_mset_nat @ ( add_mset_nat @ A @ A4 ) )
      = ( insert_nat @ A @ ( set_mset_nat @ A4 ) ) ) ).

% set_mset_add_mset_insert
thf(fact_852_card__Diff__insert,axiom,
    ! [A: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ A @ A4 )
     => ( ~ ( member_nat @ A @ B5 )
       => ( ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ B5 ) ) )
          = ( minus_minus_nat @ ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ B5 ) ) @ one_one_nat ) ) ) ) ).

% card_Diff_insert
thf(fact_853_perm__remove,axiom,
    ! [X2: nat,Ys: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Ys ) )
     => ( ( mset_nat @ Ys )
        = ( mset_nat @ ( cons_nat @ X2 @ ( remove1_nat @ X2 @ Ys ) ) ) ) ) ).

% perm_remove
thf(fact_854_perm__remove,axiom,
    ! [X2: a,Ys: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Ys ) )
     => ( ( mset_a @ Ys )
        = ( mset_a @ ( cons_a @ X2 @ ( remove1_a @ X2 @ Ys ) ) ) ) ) ).

% perm_remove
thf(fact_855_list_Oset__intros_I2_J,axiom,
    ! [Y3: nat,X222: list_nat,X21: nat] :
      ( ( member_nat @ Y3 @ ( set_nat2 @ X222 ) )
     => ( member_nat @ Y3 @ ( set_nat2 @ ( cons_nat @ X21 @ X222 ) ) ) ) ).

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

% list.set_intros(1)
thf(fact_857_list_Oset__cases,axiom,
    ! [E: nat,A: list_nat] :
      ( ( member_nat @ E @ ( set_nat2 @ A ) )
     => ( ! [Z22: list_nat] :
            ( A
           != ( cons_nat @ E @ Z22 ) )
       => ~ ! [Z1: nat,Z22: list_nat] :
              ( ( A
                = ( cons_nat @ Z1 @ Z22 ) )
             => ~ ( member_nat @ E @ ( set_nat2 @ Z22 ) ) ) ) ) ).

% list.set_cases
thf(fact_858_set__ConsD,axiom,
    ! [Y3: nat,X2: nat,Xs: list_nat] :
      ( ( member_nat @ Y3 @ ( set_nat2 @ ( cons_nat @ X2 @ Xs ) ) )
     => ( ( Y3 = X2 )
        | ( member_nat @ Y3 @ ( set_nat2 @ Xs ) ) ) ) ).

% set_ConsD
thf(fact_859_remove1__idem,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( remove1_nat @ X2 @ Xs )
        = Xs ) ) ).

% remove1_idem
thf(fact_860_notin__set__remove1,axiom,
    ! [X2: nat,Xs: list_nat,Y3: nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ~ ( member_nat @ X2 @ ( set_nat2 @ ( remove1_nat @ Y3 @ Xs ) ) ) ) ).

% notin_set_remove1
thf(fact_861_perm__remove__perm,axiom,
    ! [Xs: list_a,Ys: list_a,Z2: a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( mset_a @ ( remove1_a @ Z2 @ Xs ) )
        = ( mset_a @ ( remove1_a @ Z2 @ Ys ) ) ) ) ).

% perm_remove_perm
thf(fact_862_filter__remove1,axiom,
    ! [Q: a > $o,X2: a,Xs: list_a] :
      ( ( filter_a @ Q @ ( remove1_a @ X2 @ Xs ) )
      = ( remove1_a @ X2 @ ( filter_a @ Q @ Xs ) ) ) ).

% filter_remove1
thf(fact_863_filter_Osimps_I2_J,axiom,
    ! [P: a > $o,X2: a,Xs: list_a] :
      ( ( ( P @ X2 )
       => ( ( filter_a @ P @ ( cons_a @ X2 @ Xs ) )
          = ( cons_a @ X2 @ ( filter_a @ P @ Xs ) ) ) )
      & ( ~ ( P @ X2 )
       => ( ( filter_a @ P @ ( cons_a @ X2 @ Xs ) )
          = ( filter_a @ P @ Xs ) ) ) ) ).

% filter.simps(2)
thf(fact_864_cons__perm__imp__perm,axiom,
    ! [Z2: a,Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ ( cons_a @ Z2 @ Xs ) )
        = ( mset_a @ ( cons_a @ Z2 @ Ys ) ) )
     => ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) ) ) ).

% cons_perm_imp_perm
thf(fact_865_length__Suc__conv,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( suc @ N ) )
      = ( ? [Y: a,Ys2: list_a] :
            ( ( Xs
              = ( cons_a @ Y @ Ys2 ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_866_length__Suc__conv,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y @ Ys2 ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_867_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ( suc @ N )
        = ( size_size_list_a @ Xs ) )
      = ( ? [Y: a,Ys2: list_a] :
            ( ( Xs
              = ( cons_a @ Y @ Ys2 ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_868_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ( suc @ N )
        = ( size_size_list_nat @ Xs ) )
      = ( ? [Y: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y @ Ys2 ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_869_impossible__Cons,axiom,
    ! [Xs: list_a,Ys: list_a,X2: a] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ ( size_size_list_a @ Ys ) )
     => ( Xs
       != ( cons_a @ X2 @ Ys ) ) ) ).

% impossible_Cons
thf(fact_870_impossible__Cons,axiom,
    ! [Xs: list_nat,Ys: list_nat,X2: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) )
     => ( Xs
       != ( cons_nat @ X2 @ Ys ) ) ) ).

% impossible_Cons
thf(fact_871_card__insert__le,axiom,
    ! [A4: set_nat,X2: nat] : ( ord_less_eq_nat @ ( finite_card_nat @ A4 ) @ ( finite_card_nat @ ( insert_nat @ X2 @ A4 ) ) ) ).

% card_insert_le
thf(fact_872_sorted2,axiom,
    ! [X2: nat,Y3: nat,Zs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ X2 @ ( cons_nat @ Y3 @ Zs ) ) )
      = ( ( ord_less_eq_nat @ X2 @ Y3 )
        & ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ Y3 @ Zs ) ) ) ) ).

% sorted2
thf(fact_873_sorted2,axiom,
    ! [X2: a,Y3: a,Zs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( cons_a @ X2 @ ( cons_a @ Y3 @ Zs ) ) )
      = ( ( ord_less_eq_a @ X2 @ Y3 )
        & ( sorted_wrt_a @ ord_less_eq_a @ ( cons_a @ Y3 @ Zs ) ) ) ) ).

% sorted2
thf(fact_874_mset_Osimps_I2_J,axiom,
    ! [A: a,X2: list_a] :
      ( ( mset_a @ ( cons_a @ A @ X2 ) )
      = ( add_mset_a @ A @ ( mset_a @ X2 ) ) ) ).

% mset.simps(2)
thf(fact_875_sorted__remove1,axiom,
    ! [Xs: list_nat,A: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( remove1_nat @ A @ Xs ) ) ) ).

% sorted_remove1
thf(fact_876_sorted__remove1,axiom,
    ! [Xs: list_a,A: a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ ( remove1_a @ A @ Xs ) ) ) ).

% sorted_remove1
thf(fact_877_set__insort__insert,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( set_nat2
        @ ( linord1921536354676448932at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs ) )
      = ( insert_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% set_insort_insert
thf(fact_878_Suc__le__length__iff,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( size_size_list_a @ Xs ) )
      = ( ? [X3: a,Ys2: list_a] :
            ( ( Xs
              = ( cons_a @ X3 @ Ys2 ) )
            & ( ord_less_eq_nat @ N @ ( size_size_list_a @ Ys2 ) ) ) ) ) ).

% Suc_le_length_iff
thf(fact_879_Suc__le__length__iff,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( size_size_list_nat @ Xs ) )
      = ( ? [X3: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ X3 @ Ys2 ) )
            & ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Ys2 ) ) ) ) ) ).

% Suc_le_length_iff
thf(fact_880_sorted__simps_I2_J,axiom,
    ! [X2: nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ X2 @ Ys ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Ys ) )
           => ( ord_less_eq_nat @ X2 @ X3 ) )
        & ( sorted_wrt_nat @ ord_less_eq_nat @ Ys ) ) ) ).

% sorted_simps(2)
thf(fact_881_sorted__simps_I2_J,axiom,
    ! [X2: a,Ys: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( cons_a @ X2 @ Ys ) )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Ys ) )
           => ( ord_less_eq_a @ X2 @ X3 ) )
        & ( sorted_wrt_a @ ord_less_eq_a @ Ys ) ) ) ).

% sorted_simps(2)
thf(fact_882_strict__sorted__simps_I2_J,axiom,
    ! [X2: nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ ( cons_nat @ X2 @ Ys ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Ys ) )
           => ( ord_less_nat @ X2 @ X3 ) )
        & ( sorted_wrt_nat @ ord_less_nat @ Ys ) ) ) ).

% strict_sorted_simps(2)
thf(fact_883_strict__sorted__simps_I2_J,axiom,
    ! [X2: a,Ys: list_a] :
      ( ( sorted_wrt_a @ ord_less_a @ ( cons_a @ X2 @ Ys ) )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Ys ) )
           => ( ord_less_a @ X2 @ X3 ) )
        & ( sorted_wrt_a @ ord_less_a @ Ys ) ) ) ).

% strict_sorted_simps(2)
thf(fact_884_set__update__subset__insert,axiom,
    ! [Xs: list_nat,I: nat,X2: nat] : ( ord_less_eq_set_nat @ ( set_nat2 @ ( list_update_nat @ Xs @ I @ X2 ) ) @ ( insert_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% set_update_subset_insert
thf(fact_885_nth__Cons_H,axiom,
    ! [N: nat,X2: a,Xs: list_a] :
      ( ( ( N = zero_zero_nat )
       => ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ N )
          = X2 ) )
      & ( ( N != zero_zero_nat )
       => ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ N )
          = ( nth_a @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ) ).

% nth_Cons'
thf(fact_886_nth__Cons_H,axiom,
    ! [N: nat,X2: nat,Xs: list_nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ N )
          = X2 ) )
      & ( ( N != zero_zero_nat )
       => ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ N )
          = ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ) ).

% nth_Cons'
thf(fact_887_length__remove1,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
       => ( ( size_size_list_a @ ( remove1_a @ X2 @ Xs ) )
          = ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) ) )
      & ( ~ ( member_a @ X2 @ ( set_a2 @ Xs ) )
       => ( ( size_size_list_a @ ( remove1_a @ X2 @ Xs ) )
          = ( size_size_list_a @ Xs ) ) ) ) ).

% length_remove1
thf(fact_888_length__remove1,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ( ( size_size_list_nat @ ( remove1_nat @ X2 @ Xs ) )
          = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) ) )
      & ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ( ( size_size_list_nat @ ( remove1_nat @ X2 @ Xs ) )
          = ( size_size_list_nat @ Xs ) ) ) ) ).

% length_remove1
thf(fact_889_nth__equal__first__eq,axiom,
    ! [X2: a,Xs: list_a,N: nat] :
      ( ~ ( member_a @ X2 @ ( set_a2 @ Xs ) )
     => ( ( ord_less_eq_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ N )
            = X2 )
          = ( N = zero_zero_nat ) ) ) ) ).

% nth_equal_first_eq
thf(fact_890_nth__equal__first__eq,axiom,
    ! [X2: nat,Xs: list_nat,N: nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ N )
            = X2 )
          = ( N = zero_zero_nat ) ) ) ) ).

% nth_equal_first_eq
thf(fact_891_nth__non__equal__first__eq,axiom,
    ! [X2: a,Y3: a,Xs: list_a,N: nat] :
      ( ( X2 != Y3 )
     => ( ( ( nth_a @ ( cons_a @ X2 @ Xs ) @ N )
          = Y3 )
        = ( ( ( nth_a @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) )
            = Y3 )
          & ( ord_less_nat @ zero_zero_nat @ N ) ) ) ) ).

% nth_non_equal_first_eq
thf(fact_892_nth__non__equal__first__eq,axiom,
    ! [X2: nat,Y3: nat,Xs: list_nat,N: nat] :
      ( ( X2 != Y3 )
     => ( ( ( nth_nat @ ( cons_nat @ X2 @ Xs ) @ N )
          = Y3 )
        = ( ( ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) )
            = Y3 )
          & ( ord_less_nat @ zero_zero_nat @ N ) ) ) ) ).

% nth_non_equal_first_eq
thf(fact_893_Cons__less__Cons,axiom,
    ! [A: nat,X2: list_nat,B: nat,Y3: list_nat] :
      ( ( ord_less_list_nat @ ( cons_nat @ A @ X2 ) @ ( cons_nat @ B @ Y3 ) )
      = ( ( ord_less_nat @ A @ B )
        | ( ( A = B )
          & ( ord_less_list_nat @ X2 @ Y3 ) ) ) ) ).

% Cons_less_Cons
thf(fact_894_Cons__less__Cons,axiom,
    ! [A: a,X2: list_a,B: a,Y3: list_a] :
      ( ( ord_less_list_a @ ( cons_a @ A @ X2 ) @ ( cons_a @ B @ Y3 ) )
      = ( ( ord_less_a @ A @ B )
        | ( ( A = B )
          & ( ord_less_list_a @ X2 @ Y3 ) ) ) ) ).

% Cons_less_Cons
thf(fact_895_Cons__le__Cons,axiom,
    ! [A: nat,X2: list_nat,B: nat,Y3: list_nat] :
      ( ( ord_less_eq_list_nat @ ( cons_nat @ A @ X2 ) @ ( cons_nat @ B @ Y3 ) )
      = ( ( ord_less_nat @ A @ B )
        | ( ( A = B )
          & ( ord_less_eq_list_nat @ X2 @ Y3 ) ) ) ) ).

% Cons_le_Cons
thf(fact_896_Cons__le__Cons,axiom,
    ! [A: a,X2: list_a,B: a,Y3: list_a] :
      ( ( ord_less_eq_list_a @ ( cons_a @ A @ X2 ) @ ( cons_a @ B @ Y3 ) )
      = ( ( ord_less_a @ A @ B )
        | ( ( A = B )
          & ( ord_less_eq_list_a @ X2 @ Y3 ) ) ) ) ).

% Cons_le_Cons
thf(fact_897_length__Cons,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( size_size_list_a @ ( cons_a @ X2 @ Xs ) )
      = ( suc @ ( size_size_list_a @ Xs ) ) ) ).

% length_Cons
thf(fact_898_length__Cons,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( cons_nat @ X2 @ Xs ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_899_Diff__insert0,axiom,
    ! [X2: nat,A4: set_nat,B5: set_nat] :
      ( ~ ( member_nat @ X2 @ A4 )
     => ( ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ B5 ) )
        = ( minus_minus_set_nat @ A4 @ B5 ) ) ) ).

% Diff_insert0
thf(fact_900_Diff__iff,axiom,
    ! [C: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ C @ ( minus_minus_set_nat @ A4 @ B5 ) )
      = ( ( member_nat @ C @ A4 )
        & ~ ( member_nat @ C @ B5 ) ) ) ).

% Diff_iff
thf(fact_901_DiffI,axiom,
    ! [C: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ C @ A4 )
     => ( ~ ( member_nat @ C @ B5 )
       => ( member_nat @ C @ ( minus_minus_set_nat @ A4 @ B5 ) ) ) ) ).

% DiffI
thf(fact_902_insert__Diff1,axiom,
    ! [X2: nat,B5: set_nat,A4: set_nat] :
      ( ( member_nat @ X2 @ B5 )
     => ( ( minus_minus_set_nat @ ( insert_nat @ X2 @ A4 ) @ B5 )
        = ( minus_minus_set_nat @ A4 @ B5 ) ) ) ).

% insert_Diff1
thf(fact_903_psubset__imp__ex__mem,axiom,
    ! [A4: set_nat,B5: set_nat] :
      ( ( ord_less_set_nat @ A4 @ B5 )
     => ? [B3: nat] : ( member_nat @ B3 @ ( minus_minus_set_nat @ B5 @ A4 ) ) ) ).

% psubset_imp_ex_mem
thf(fact_904_minus__set__def,axiom,
    ( minus_minus_set_nat
    = ( ^ [A7: set_nat,B7: set_nat] :
          ( collect_nat
          @ ( minus_minus_nat_o
            @ ^ [X3: nat] : ( member_nat @ X3 @ A7 )
            @ ^ [X3: nat] : ( member_nat @ X3 @ B7 ) ) ) ) ) ).

% minus_set_def
thf(fact_905_set__diff__eq,axiom,
    ( minus_minus_set_nat
    = ( ^ [A7: set_nat,B7: set_nat] :
          ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A7 )
              & ~ ( member_nat @ X3 @ B7 ) ) ) ) ) ).

% set_diff_eq
thf(fact_906_DiffD2,axiom,
    ! [C: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ C @ ( minus_minus_set_nat @ A4 @ B5 ) )
     => ~ ( member_nat @ C @ B5 ) ) ).

% DiffD2
thf(fact_907_DiffD1,axiom,
    ! [C: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ C @ ( minus_minus_set_nat @ A4 @ B5 ) )
     => ( member_nat @ C @ A4 ) ) ).

% DiffD1
thf(fact_908_DiffE,axiom,
    ! [C: nat,A4: set_nat,B5: set_nat] :
      ( ( member_nat @ C @ ( minus_minus_set_nat @ A4 @ B5 ) )
     => ~ ( ( member_nat @ C @ A4 )
         => ( member_nat @ C @ B5 ) ) ) ).

% DiffE
thf(fact_909_insert__Diff__if,axiom,
    ! [X2: nat,B5: set_nat,A4: set_nat] :
      ( ( ( member_nat @ X2 @ B5 )
       => ( ( minus_minus_set_nat @ ( insert_nat @ X2 @ A4 ) @ B5 )
          = ( minus_minus_set_nat @ A4 @ B5 ) ) )
      & ( ~ ( member_nat @ X2 @ B5 )
       => ( ( minus_minus_set_nat @ ( insert_nat @ X2 @ A4 ) @ B5 )
          = ( insert_nat @ X2 @ ( minus_minus_set_nat @ A4 @ B5 ) ) ) ) ) ).

% insert_Diff_if
thf(fact_910_insert__compr,axiom,
    ( insert_nat
    = ( ^ [A2: nat,B7: set_nat] :
          ( collect_nat
          @ ^ [X3: nat] :
              ( ( X3 = A2 )
              | ( member_nat @ X3 @ B7 ) ) ) ) ) ).

% insert_compr
thf(fact_911_insert__Collect,axiom,
    ! [A: nat,P: nat > $o] :
      ( ( insert_nat @ A @ ( collect_nat @ P ) )
      = ( collect_nat
        @ ^ [U: nat] :
            ( ( U != A )
           => ( P @ U ) ) ) ) ).

% insert_Collect
thf(fact_912_less__eq__list__code_I3_J,axiom,
    ! [X2: nat,Xs: list_nat,Y3: nat,Ys: list_nat] :
      ( ( ord_less_eq_list_nat @ ( cons_nat @ X2 @ Xs ) @ ( cons_nat @ Y3 @ Ys ) )
      = ( ( ord_less_nat @ X2 @ Y3 )
        | ( ( X2 = Y3 )
          & ( ord_less_eq_list_nat @ Xs @ Ys ) ) ) ) ).

% less_eq_list_code(3)
thf(fact_913_less__list__code_I3_J,axiom,
    ! [X2: nat,Xs: list_nat,Y3: nat,Ys: list_nat] :
      ( ( ord_less_list_nat @ ( cons_nat @ X2 @ Xs ) @ ( cons_nat @ Y3 @ Ys ) )
      = ( ( ord_less_nat @ X2 @ Y3 )
        | ( ( X2 = Y3 )
          & ( ord_less_list_nat @ Xs @ Ys ) ) ) ) ).

% less_list_code(3)
thf(fact_914_subset__Diff__insert,axiom,
    ! [A4: set_nat,B5: set_nat,X2: nat,C3: set_nat] :
      ( ( ord_less_eq_set_nat @ A4 @ ( minus_minus_set_nat @ B5 @ ( insert_nat @ X2 @ C3 ) ) )
      = ( ( ord_less_eq_set_nat @ A4 @ ( minus_minus_set_nat @ B5 @ C3 ) )
        & ~ ( member_nat @ X2 @ A4 ) ) ) ).

% subset_Diff_insert
thf(fact_915_at__most__one__mset__mset__diff,axiom,
    ! [A: nat,M5: multiset_nat] :
      ( ~ ( member_nat @ A @ ( set_mset_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) ) )
     => ( ( set_mset_nat @ ( minus_8522176038001411705et_nat @ M5 @ ( add_mset_nat @ A @ zero_z7348594199698428585et_nat ) ) )
        = ( minus_minus_set_nat @ ( set_mset_nat @ M5 ) @ ( insert_nat @ A @ bot_bot_set_nat ) ) ) ) ).

% at_most_one_mset_mset_diff
thf(fact_916_sorted__list__of__multiset__singleton,axiom,
    ! [X2: a] :
      ( ( linord814965612141868908iset_a @ ( add_mset_a @ X2 @ zero_zero_multiset_a ) )
      = ( cons_a @ X2 @ nil_a ) ) ).

% sorted_list_of_multiset_singleton
thf(fact_917_Diff__cancel,axiom,
    ! [A4: set_nat] :
      ( ( minus_minus_set_nat @ A4 @ A4 )
      = bot_bot_set_nat ) ).

% Diff_cancel
thf(fact_918_empty__Diff,axiom,
    ! [A4: set_nat] :
      ( ( minus_minus_set_nat @ bot_bot_set_nat @ A4 )
      = bot_bot_set_nat ) ).

% empty_Diff
thf(fact_919_Diff__empty,axiom,
    ! [A4: set_nat] :
      ( ( minus_minus_set_nat @ A4 @ bot_bot_set_nat )
      = A4 ) ).

% Diff_empty
thf(fact_920_perm__empty,axiom,
    ! [Xs: list_a] :
      ( ( ( mset_a @ nil_a )
        = ( mset_a @ Xs ) )
      = ( Xs = nil_a ) ) ).

% perm_empty
thf(fact_921_perm__empty2,axiom,
    ! [Xs: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ nil_a ) )
      = ( Xs = nil_a ) ) ).

% perm_empty2
thf(fact_922_singleton__conv,axiom,
    ! [A: nat] :
      ( ( collect_nat
        @ ^ [X3: nat] : ( X3 = A ) )
      = ( insert_nat @ A @ bot_bot_set_nat ) ) ).

% singleton_conv
thf(fact_923_singleton__conv2,axiom,
    ! [A: nat] :
      ( ( collect_nat
        @ ( ^ [Y2: nat,Z: nat] : ( Y2 = Z )
          @ A ) )
      = ( insert_nat @ A @ bot_bot_set_nat ) ) ).

% singleton_conv2
thf(fact_924_set__empty,axiom,
    ! [Xs: list_nat] :
      ( ( ( set_nat2 @ Xs )
        = bot_bot_set_nat )
      = ( Xs = nil_nat ) ) ).

% set_empty
thf(fact_925_set__empty2,axiom,
    ! [Xs: list_nat] :
      ( ( bot_bot_set_nat
        = ( set_nat2 @ Xs ) )
      = ( Xs = nil_nat ) ) ).

% set_empty2
thf(fact_926_length__0__conv,axiom,
    ! [Xs: list_a] :
      ( ( ( size_size_list_a @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_a ) ) ).

% length_0_conv
thf(fact_927_length__0__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_nat ) ) ).

% length_0_conv
thf(fact_928_Diff__eq__empty__iff,axiom,
    ! [A4: set_nat,B5: set_nat] :
      ( ( ( minus_minus_set_nat @ A4 @ B5 )
        = bot_bot_set_nat )
      = ( ord_less_eq_set_nat @ A4 @ B5 ) ) ).

% Diff_eq_empty_iff
thf(fact_929_card_Oempty,axiom,
    ( ( finite_card_nat @ bot_bot_set_nat )
    = zero_zero_nat ) ).

% card.empty
thf(fact_930_insert__Diff__single,axiom,
    ! [A: nat,A4: set_nat] :
      ( ( insert_nat @ A @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ bot_bot_set_nat ) ) )
      = ( insert_nat @ A @ A4 ) ) ).

% insert_Diff_single
thf(fact_931_perm__sing__eq2,axiom,
    ! [Y3: a,Ys: list_a] :
      ( ( ( mset_a @ ( cons_a @ Y3 @ nil_a ) )
        = ( mset_a @ Ys ) )
      = ( Ys
        = ( cons_a @ Y3 @ nil_a ) ) ) ).

% perm_sing_eq2
thf(fact_932_perm__sing__eq,axiom,
    ! [Ys: list_a,Y3: a] :
      ( ( ( mset_a @ Ys )
        = ( mset_a @ ( cons_a @ Y3 @ nil_a ) ) )
      = ( Ys
        = ( cons_a @ Y3 @ nil_a ) ) ) ).

% perm_sing_eq
thf(fact_933_set__mset__empty,axiom,
    ( ( set_mset_nat @ zero_z7348594199698428585et_nat )
    = bot_bot_set_nat ) ).

% set_mset_empty
thf(fact_934_set__mset__eq__empty__iff,axiom,
    ! [M5: multiset_nat] :
      ( ( ( set_mset_nat @ M5 )
        = bot_bot_set_nat )
      = ( M5 = zero_z7348594199698428585et_nat ) ) ).

% set_mset_eq_empty_iff
thf(fact_935_filter__False,axiom,
    ! [Xs: list_a,P: a > $o] :
      ( ! [X4: a] :
          ( ( member_a @ X4 @ ( set_a2 @ Xs ) )
         => ~ ( P @ X4 ) )
     => ( ( filter_a @ P @ Xs )
        = nil_a ) ) ).

% filter_False
thf(fact_936_mset__zero__iff,axiom,
    ! [X2: list_a] :
      ( ( ( mset_a @ X2 )
        = zero_zero_multiset_a )
      = ( X2 = nil_a ) ) ).

% mset_zero_iff
thf(fact_937_mset__zero__iff__right,axiom,
    ! [X2: list_a] :
      ( ( zero_zero_multiset_a
        = ( mset_a @ X2 ) )
      = ( X2 = nil_a ) ) ).

% mset_zero_iff_right
thf(fact_938_sorted__list__of__multiset__empty,axiom,
    ( ( linord814965612141868908iset_a @ zero_zero_multiset_a )
    = nil_a ) ).

% sorted_list_of_multiset_empty
thf(fact_939_length__greater__0__conv,axiom,
    ! [Xs: list_a] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_list_a @ Xs ) )
      = ( Xs != nil_a ) ) ).

% length_greater_0_conv
thf(fact_940_length__greater__0__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_list_nat @ Xs ) )
      = ( Xs != nil_nat ) ) ).

% length_greater_0_conv
thf(fact_941_mset__single__iff,axiom,
    ! [Xs: list_a,X2: a] :
      ( ( ( mset_a @ Xs )
        = ( add_mset_a @ X2 @ zero_zero_multiset_a ) )
      = ( Xs
        = ( cons_a @ X2 @ nil_a ) ) ) ).

% mset_single_iff
thf(fact_942_mset__single__iff__right,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( ( add_mset_a @ X2 @ zero_zero_multiset_a )
        = ( mset_a @ Xs ) )
      = ( Xs
        = ( cons_a @ X2 @ nil_a ) ) ) ).

% mset_single_iff_right
thf(fact_943_Collect__conv__if2,axiom,
    ! [P: nat > $o,A: nat] :
      ( ( ( P @ A )
       => ( ( collect_nat
            @ ^ [X3: nat] :
                ( ( A = X3 )
                & ( P @ X3 ) ) )
          = ( insert_nat @ A @ bot_bot_set_nat ) ) )
      & ( ~ ( P @ A )
       => ( ( collect_nat
            @ ^ [X3: nat] :
                ( ( A = X3 )
                & ( P @ X3 ) ) )
          = bot_bot_set_nat ) ) ) ).

% Collect_conv_if2
thf(fact_944_Collect__conv__if,axiom,
    ! [P: nat > $o,A: nat] :
      ( ( ( P @ A )
       => ( ( collect_nat
            @ ^ [X3: nat] :
                ( ( X3 = A )
                & ( P @ X3 ) ) )
          = ( insert_nat @ A @ bot_bot_set_nat ) ) )
      & ( ~ ( P @ A )
       => ( ( collect_nat
            @ ^ [X3: nat] :
                ( ( X3 = A )
                & ( P @ X3 ) ) )
          = bot_bot_set_nat ) ) ) ).

% Collect_conv_if
thf(fact_945_bot_Oextremum,axiom,
    ! [A: set_nat] : ( ord_less_eq_set_nat @ bot_bot_set_nat @ A ) ).

% bot.extremum
thf(fact_946_bot_Oextremum,axiom,
    ! [A: nat] : ( ord_less_eq_nat @ bot_bot_nat @ A ) ).

% bot.extremum
thf(fact_947_bot_Oextremum__unique,axiom,
    ! [A: set_nat] :
      ( ( ord_less_eq_set_nat @ A @ bot_bot_set_nat )
      = ( A = bot_bot_set_nat ) ) ).

% bot.extremum_unique
thf(fact_948_bot_Oextremum__unique,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ bot_bot_nat )
      = ( A = bot_bot_nat ) ) ).

% bot.extremum_unique
thf(fact_949_bot_Oextremum__uniqueI,axiom,
    ! [A: set_nat] :
      ( ( ord_less_eq_set_nat @ A @ bot_bot_set_nat )
     => ( A = bot_bot_set_nat ) ) ).

% bot.extremum_uniqueI
thf(fact_950_bot_Oextremum__uniqueI,axiom,
    ! [A: nat] :
      ( ( ord_less_eq_nat @ A @ bot_bot_nat )
     => ( A = bot_bot_nat ) ) ).

% bot.extremum_uniqueI
thf(fact_951_bot_Oextremum__strict,axiom,
    ! [A: set_nat] :
      ~ ( ord_less_set_nat @ A @ bot_bot_set_nat ) ).

% bot.extremum_strict
thf(fact_952_bot_Oextremum__strict,axiom,
    ! [A: nat] :
      ~ ( ord_less_nat @ A @ bot_bot_nat ) ).

% bot.extremum_strict
thf(fact_953_bot_Onot__eq__extremum,axiom,
    ! [A: set_nat] :
      ( ( A != bot_bot_set_nat )
      = ( ord_less_set_nat @ bot_bot_set_nat @ A ) ) ).

% bot.not_eq_extremum
thf(fact_954_bot_Onot__eq__extremum,axiom,
    ! [A: nat] :
      ( ( A != bot_bot_nat )
      = ( ord_less_nat @ bot_bot_nat @ A ) ) ).

% bot.not_eq_extremum
thf(fact_955_empty__def,axiom,
    ( bot_bot_set_nat
    = ( collect_nat
      @ ^ [X3: nat] : $false ) ) ).

% empty_def
thf(fact_956_empty__set,axiom,
    ( bot_bot_set_nat
    = ( set_nat2 @ nil_nat ) ) ).

% empty_set
thf(fact_957_perm__empty__imp,axiom,
    ! [Ys: list_a] :
      ( ( ( mset_a @ nil_a )
        = ( mset_a @ Ys ) )
     => ( Ys = nil_a ) ) ).

% perm_empty_imp
thf(fact_958_sorted__wrt_Osimps_I1_J,axiom,
    ! [P: a > a > $o] : ( sorted_wrt_a @ P @ nil_a ) ).

% sorted_wrt.simps(1)
thf(fact_959_sorted__wrt_Osimps_I1_J,axiom,
    ! [P: nat > nat > $o] : ( sorted_wrt_nat @ P @ nil_nat ) ).

% sorted_wrt.simps(1)
thf(fact_960_filter_Osimps_I1_J,axiom,
    ! [P: a > $o] :
      ( ( filter_a @ P @ nil_a )
      = nil_a ) ).

% filter.simps(1)
thf(fact_961_list_Osize_I3_J,axiom,
    ( ( size_size_list_a @ nil_a )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_962_list_Osize_I3_J,axiom,
    ( ( size_size_list_nat @ nil_nat )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_963_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a,Ws: list_a,P: list_a > list_a > list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_a @ nil_a @ nil_a @ nil_a )
           => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_964_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a,Ws: list_nat,P: list_a > list_a > list_a > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_a @ nil_a @ nil_a @ nil_nat )
           => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_965_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_nat,Ws: list_a,P: list_a > list_a > list_nat > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( ( size_size_list_nat @ Zs )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_a @ nil_a @ nil_nat @ nil_a )
           => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: nat,Zs2: list_nat,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_966_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_nat,Ws: list_nat,P: list_a > list_a > list_nat > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( ( size_size_list_nat @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_a @ nil_a @ nil_nat @ nil_nat )
           => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: nat,Zs2: list_nat,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_967_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_a,Ws: list_a,P: list_a > list_nat > list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_a @ nil_nat @ nil_a @ nil_a )
           => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: a,Zs2: list_a,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_nat @ Ys4 ) )
                 => ( ( ( size_size_list_nat @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_968_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_a,Ws: list_nat,P: list_a > list_nat > list_a > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_a @ nil_nat @ nil_a @ nil_nat )
           => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: a,Zs2: list_a,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_nat @ Ys4 ) )
                 => ( ( ( size_size_list_nat @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_969_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_nat,Ws: list_a,P: list_a > list_nat > list_nat > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( ( size_size_list_nat @ Zs )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_a @ nil_nat @ nil_nat @ nil_a )
           => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_nat @ Ys4 ) )
                 => ( ( ( size_size_list_nat @ Ys4 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_970_list__induct4,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_nat,Ws: list_nat,P: list_a > list_nat > list_nat > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( ( size_size_list_nat @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_a @ nil_nat @ nil_nat @ nil_nat )
           => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_a @ Xs3 )
                    = ( size_size_list_nat @ Ys4 ) )
                 => ( ( ( size_size_list_nat @ Ys4 )
                      = ( size_size_list_nat @ Zs2 ) )
                   => ( ( ( size_size_list_nat @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_971_list__induct4,axiom,
    ! [Xs: list_nat,Ys: list_a,Zs: list_a,Ws: list_a,P: list_nat > list_a > list_a > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_a @ Ws ) )
         => ( ( P @ nil_nat @ nil_a @ nil_a @ nil_a )
           => ( ! [X4: nat,Xs3: list_nat,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a,W: a,Ws2: list_a] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_a @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_a @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_972_list__induct4,axiom,
    ! [Xs: list_nat,Ys: list_a,Zs: list_a,Ws: list_nat,P: list_nat > list_a > list_a > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( ( size_size_list_a @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_nat @ nil_a @ nil_a @ nil_nat )
           => ( ! [X4: nat,Xs3: list_nat,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a,W: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs3 )
                    = ( size_size_list_a @ Ys4 ) )
                 => ( ( ( size_size_list_a @ Ys4 )
                      = ( size_size_list_a @ Zs2 ) )
                   => ( ( ( size_size_list_a @ Zs2 )
                        = ( size_size_list_nat @ Ws2 ) )
                     => ( ( P @ Xs3 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) @ ( cons_nat @ W @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_973_list__induct3,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a,P: list_a > list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( P @ nil_a @ nil_a @ nil_a )
         => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a] :
                ( ( ( size_size_list_a @ Xs3 )
                  = ( size_size_list_a @ Ys4 ) )
               => ( ( ( size_size_list_a @ Ys4 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_974_list__induct3,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_nat,P: list_a > list_a > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_a @ nil_a @ nil_nat )
         => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_a @ Xs3 )
                  = ( size_size_list_a @ Ys4 ) )
               => ( ( ( size_size_list_a @ Ys4 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_975_list__induct3,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_a,P: list_a > list_nat > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( P @ nil_a @ nil_nat @ nil_a )
         => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: a,Zs2: list_a] :
                ( ( ( size_size_list_a @ Xs3 )
                  = ( size_size_list_nat @ Ys4 ) )
               => ( ( ( size_size_list_nat @ Ys4 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_976_list__induct3,axiom,
    ! [Xs: list_a,Ys: list_nat,Zs: list_nat,P: list_a > list_nat > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_a @ nil_nat @ nil_nat )
         => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_a @ Xs3 )
                  = ( size_size_list_nat @ Ys4 ) )
               => ( ( ( size_size_list_nat @ Ys4 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_977_list__induct3,axiom,
    ! [Xs: list_nat,Ys: list_a,Zs: list_a,P: list_nat > list_a > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( P @ nil_nat @ nil_a @ nil_a )
         => ( ! [X4: nat,Xs3: list_nat,Y4: a,Ys4: list_a,Z3: a,Zs2: list_a] :
                ( ( ( size_size_list_nat @ Xs3 )
                  = ( size_size_list_a @ Ys4 ) )
               => ( ( ( size_size_list_a @ Ys4 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_978_list__induct3,axiom,
    ! [Xs: list_nat,Ys: list_a,Zs: list_nat,P: list_nat > list_a > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( ( size_size_list_a @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_nat @ nil_a @ nil_nat )
         => ( ! [X4: nat,Xs3: list_nat,Y4: a,Ys4: list_a,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_nat @ Xs3 )
                  = ( size_size_list_a @ Ys4 ) )
               => ( ( ( size_size_list_a @ Ys4 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_979_list__induct3,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_a,P: list_nat > list_nat > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_a @ Zs ) )
       => ( ( P @ nil_nat @ nil_nat @ nil_a )
         => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys4: list_nat,Z3: a,Zs2: list_a] :
                ( ( ( size_size_list_nat @ Xs3 )
                  = ( size_size_list_nat @ Ys4 ) )
               => ( ( ( size_size_list_nat @ Ys4 )
                    = ( size_size_list_a @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_a @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_980_list__induct3,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat,P: list_nat > list_nat > list_nat > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( ( size_size_list_nat @ Ys )
          = ( size_size_list_nat @ Zs ) )
       => ( ( P @ nil_nat @ nil_nat @ nil_nat )
         => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_nat @ Xs3 )
                  = ( size_size_list_nat @ Ys4 ) )
               => ( ( ( size_size_list_nat @ Ys4 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs3 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_981_list__induct2,axiom,
    ! [Xs: list_a,Ys: list_a,P: list_a > list_a > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( P @ nil_a @ nil_a )
       => ( ! [X4: a,Xs3: list_a,Y4: a,Ys4: list_a] :
              ( ( ( size_size_list_a @ Xs3 )
                = ( size_size_list_a @ Ys4 ) )
             => ( ( P @ Xs3 @ Ys4 )
               => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_982_list__induct2,axiom,
    ! [Xs: list_a,Ys: list_nat,P: list_a > list_nat > $o] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( P @ nil_a @ nil_nat )
       => ( ! [X4: a,Xs3: list_a,Y4: nat,Ys4: list_nat] :
              ( ( ( size_size_list_a @ Xs3 )
                = ( size_size_list_nat @ Ys4 ) )
             => ( ( P @ Xs3 @ Ys4 )
               => ( P @ ( cons_a @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_983_list__induct2,axiom,
    ! [Xs: list_nat,Ys: list_a,P: list_nat > list_a > $o] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( P @ nil_nat @ nil_a )
       => ( ! [X4: nat,Xs3: list_nat,Y4: a,Ys4: list_a] :
              ( ( ( size_size_list_nat @ Xs3 )
                = ( size_size_list_a @ Ys4 ) )
             => ( ( P @ Xs3 @ Ys4 )
               => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_a @ Y4 @ Ys4 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_984_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 )
       => ( ! [X4: nat,Xs3: list_nat,Y4: nat,Ys4: list_nat] :
              ( ( ( size_size_list_nat @ Xs3 )
                = ( size_size_list_nat @ Ys4 ) )
             => ( ( P @ Xs3 @ Ys4 )
               => ( P @ ( cons_nat @ X4 @ Xs3 ) @ ( cons_nat @ Y4 @ Ys4 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_985_sorted0,axiom,
    sorted_wrt_nat @ ord_less_eq_nat @ nil_nat ).

% sorted0
thf(fact_986_sorted0,axiom,
    sorted_wrt_a @ ord_less_eq_a @ nil_a ).

% sorted0
thf(fact_987_strict__sorted__simps_I1_J,axiom,
    sorted_wrt_nat @ ord_less_nat @ nil_nat ).

% strict_sorted_simps(1)
thf(fact_988_strict__sorted__simps_I1_J,axiom,
    sorted_wrt_a @ ord_less_a @ nil_a ).

% strict_sorted_simps(1)
thf(fact_989_perm__sing__imp,axiom,
    ! [Ys: list_a,Xs: list_a,Y3: a] :
      ( ( ( mset_a @ Ys )
        = ( mset_a @ Xs ) )
     => ( ( Xs
          = ( cons_a @ Y3 @ nil_a ) )
       => ( Ys
          = ( cons_a @ Y3 @ nil_a ) ) ) ) ).

% perm_sing_imp
thf(fact_990_Diff__insert__absorb,axiom,
    ! [X2: nat,A4: set_nat] :
      ( ~ ( member_nat @ X2 @ A4 )
     => ( ( minus_minus_set_nat @ ( insert_nat @ X2 @ A4 ) @ ( insert_nat @ X2 @ bot_bot_set_nat ) )
        = A4 ) ) ).

% Diff_insert_absorb
thf(fact_991_Diff__insert2,axiom,
    ! [A4: set_nat,A: nat,B5: set_nat] :
      ( ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ B5 ) )
      = ( minus_minus_set_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ bot_bot_set_nat ) ) @ B5 ) ) ).

% Diff_insert2
thf(fact_992_insert__Diff,axiom,
    ! [A: nat,A4: set_nat] :
      ( ( member_nat @ A @ A4 )
     => ( ( insert_nat @ A @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ bot_bot_set_nat ) ) )
        = A4 ) ) ).

% insert_Diff
thf(fact_993_Diff__insert,axiom,
    ! [A4: set_nat,A: nat,B5: set_nat] :
      ( ( minus_minus_set_nat @ A4 @ ( insert_nat @ A @ B5 ) )
      = ( minus_minus_set_nat @ ( minus_minus_set_nat @ A4 @ B5 ) @ ( insert_nat @ A @ bot_bot_set_nat ) ) ) ).

% Diff_insert
thf(fact_994_sorted__wrt1,axiom,
    ! [P: a > a > $o,X2: a] : ( sorted_wrt_a @ P @ ( cons_a @ X2 @ nil_a ) ) ).

% sorted_wrt1
thf(fact_995_sorted__wrt1,axiom,
    ! [P: nat > nat > $o,X2: nat] : ( sorted_wrt_nat @ P @ ( cons_nat @ X2 @ nil_nat ) ) ).

% sorted_wrt1
thf(fact_996_empty__filter__conv,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( nil_a
        = ( filter_a @ P @ Xs ) )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ~ ( P @ X3 ) ) ) ) ).

% empty_filter_conv
thf(fact_997_filter__empty__conv,axiom,
    ! [P: a > $o,Xs: list_a] :
      ( ( ( filter_a @ P @ Xs )
        = nil_a )
      = ( ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ~ ( P @ X3 ) ) ) ) ).

% filter_empty_conv
thf(fact_998_mset_Osimps_I1_J,axiom,
    ( ( mset_a @ nil_a )
    = zero_zero_multiset_a ) ).

% mset.simps(1)
thf(fact_999_sorted1,axiom,
    ! [X2: nat] : ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ X2 @ nil_nat ) ) ).

% sorted1
thf(fact_1000_sorted1,axiom,
    ! [X2: a] : ( sorted_wrt_a @ ord_less_eq_a @ ( cons_a @ X2 @ nil_a ) ) ).

% sorted1
thf(fact_1001_subset__insert__iff,axiom,
    ! [A4: set_nat,X2: nat,B5: set_nat] :
      ( ( ord_less_eq_set_nat @ A4 @ ( insert_nat @ X2 @ B5 ) )
      = ( ( ( member_nat @ X2 @ A4 )
         => ( ord_less_eq_set_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) @ B5 ) )
        & ( ~ ( member_nat @ X2 @ A4 )
         => ( ord_less_eq_set_nat @ A4 @ B5 ) ) ) ) ).

% subset_insert_iff
thf(fact_1002_Diff__single__insert,axiom,
    ! [A4: set_nat,X2: nat,B5: set_nat] :
      ( ( ord_less_eq_set_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) @ B5 )
     => ( ord_less_eq_set_nat @ A4 @ ( insert_nat @ X2 @ B5 ) ) ) ).

% Diff_single_insert
thf(fact_1003_psubset__insert__iff,axiom,
    ! [A4: set_nat,X2: nat,B5: set_nat] :
      ( ( ord_less_set_nat @ A4 @ ( insert_nat @ X2 @ B5 ) )
      = ( ( ( member_nat @ X2 @ B5 )
         => ( ord_less_set_nat @ A4 @ B5 ) )
        & ( ~ ( member_nat @ X2 @ B5 )
         => ( ( ( member_nat @ X2 @ A4 )
             => ( ord_less_set_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) @ B5 ) )
            & ( ~ ( member_nat @ X2 @ A4 )
             => ( ord_less_eq_set_nat @ A4 @ B5 ) ) ) ) ) ) ).

% psubset_insert_iff
thf(fact_1004_card__1__singletonE,axiom,
    ! [A4: set_nat] :
      ( ( ( finite_card_nat @ A4 )
        = one_one_nat )
     => ~ ! [X4: nat] :
            ( A4
           != ( insert_nat @ X4 @ bot_bot_set_nat ) ) ) ).

% card_1_singletonE
thf(fact_1005_card__Suc__eq,axiom,
    ! [A4: set_nat,K: nat] :
      ( ( ( finite_card_nat @ A4 )
        = ( suc @ K ) )
      = ( ? [B2: nat,B7: set_nat] :
            ( ( A4
              = ( insert_nat @ B2 @ B7 ) )
            & ~ ( member_nat @ B2 @ B7 )
            & ( ( finite_card_nat @ B7 )
              = K )
            & ( ( K = zero_zero_nat )
             => ( B7 = bot_bot_set_nat ) ) ) ) ) ).

% card_Suc_eq
thf(fact_1006_card__eq__SucD,axiom,
    ! [A4: set_nat,K: nat] :
      ( ( ( finite_card_nat @ A4 )
        = ( suc @ K ) )
     => ? [B3: nat,B6: set_nat] :
          ( ( A4
            = ( insert_nat @ B3 @ B6 ) )
          & ~ ( member_nat @ B3 @ B6 )
          & ( ( finite_card_nat @ B6 )
            = K )
          & ( ( K = zero_zero_nat )
           => ( B6 = bot_bot_set_nat ) ) ) ) ).

% card_eq_SucD
thf(fact_1007_card__1__singleton__iff,axiom,
    ! [A4: set_nat] :
      ( ( ( finite_card_nat @ A4 )
        = ( suc @ zero_zero_nat ) )
      = ( ? [X3: nat] :
            ( A4
            = ( insert_nat @ X3 @ bot_bot_set_nat ) ) ) ) ).

% card_1_singleton_iff
thf(fact_1008_card__Diff1__le,axiom,
    ! [A4: set_nat,X2: nat] : ( ord_less_eq_nat @ ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) ) @ ( finite_card_nat @ A4 ) ) ).

% card_Diff1_le
thf(fact_1009_set__mset__single,axiom,
    ! [B: nat] :
      ( ( set_mset_nat @ ( add_mset_nat @ B @ zero_z7348594199698428585et_nat ) )
      = ( insert_nat @ B @ bot_bot_set_nat ) ) ).

% set_mset_single
thf(fact_1010_rotate1__fixpoint__card,axiom,
    ! [Xs: list_nat] :
      ( ( ( rotate1_nat @ Xs )
        = Xs )
     => ( ( Xs = nil_nat )
        | ( ( finite_card_nat @ ( set_nat2 @ Xs ) )
          = one_one_nat ) ) ) ).

% rotate1_fixpoint_card
thf(fact_1011_set__minus__filter__out,axiom,
    ! [Xs: list_a,Y3: a] :
      ( ( minus_minus_set_a @ ( set_a2 @ Xs ) @ ( insert_a @ Y3 @ bot_bot_set_a ) )
      = ( set_a2
        @ ( filter_a
          @ ^ [X3: a] : ( X3 != Y3 )
          @ Xs ) ) ) ).

% set_minus_filter_out
thf(fact_1012_set__minus__filter__out,axiom,
    ! [Xs: list_nat,Y3: nat] :
      ( ( minus_minus_set_nat @ ( set_nat2 @ Xs ) @ ( insert_nat @ Y3 @ bot_bot_set_nat ) )
      = ( set_nat2
        @ ( filter_nat
          @ ^ [X3: nat] : ( X3 != Y3 )
          @ Xs ) ) ) ).

% set_minus_filter_out
thf(fact_1013_remdups__adj__length__ge1,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_a @ ( remdups_adj_a @ Xs ) ) ) ) ).

% remdups_adj_length_ge1
thf(fact_1014_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_1015_card__Diff__singleton,axiom,
    ! [X2: nat,A4: set_nat] :
      ( ( member_nat @ X2 @ A4 )
     => ( ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) )
        = ( minus_minus_nat @ ( finite_card_nat @ A4 ) @ one_one_nat ) ) ) ).

% card_Diff_singleton
thf(fact_1016_card__Diff__singleton__if,axiom,
    ! [X2: nat,A4: set_nat] :
      ( ( ( member_nat @ X2 @ A4 )
       => ( ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) )
          = ( minus_minus_nat @ ( finite_card_nat @ A4 ) @ one_one_nat ) ) )
      & ( ~ ( member_nat @ X2 @ A4 )
       => ( ( finite_card_nat @ ( minus_minus_set_nat @ A4 @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) )
          = ( finite_card_nat @ A4 ) ) ) ) ).

% card_Diff_singleton_if
thf(fact_1017_set__one,axiom,
    ( one_one_set_nat
    = ( insert_nat @ one_one_nat @ bot_bot_set_nat ) ) ).

% set_one
thf(fact_1018_diff__shunt__var,axiom,
    ! [X2: set_nat,Y3: set_nat] :
      ( ( ( minus_minus_set_nat @ X2 @ Y3 )
        = bot_bot_set_nat )
      = ( ord_less_eq_set_nat @ X2 @ Y3 ) ) ).

% diff_shunt_var
thf(fact_1019_bot__nat__def,axiom,
    bot_bot_nat = zero_zero_nat ).

% bot_nat_def
thf(fact_1020_set__update__distinct,axiom,
    ! [Xs: list_a,N: nat,X2: a] :
      ( ( distinct_a @ Xs )
     => ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( set_a2 @ ( list_update_a @ Xs @ N @ X2 ) )
          = ( insert_a @ X2 @ ( minus_minus_set_a @ ( set_a2 @ Xs ) @ ( insert_a @ ( nth_a @ Xs @ N ) @ bot_bot_set_a ) ) ) ) ) ) ).

% set_update_distinct
thf(fact_1021_set__update__distinct,axiom,
    ! [Xs: list_nat,N: nat,X2: nat] :
      ( ( distinct_nat @ Xs )
     => ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( set_nat2 @ ( list_update_nat @ Xs @ N @ X2 ) )
          = ( insert_nat @ X2 @ ( minus_minus_set_nat @ ( set_nat2 @ Xs ) @ ( insert_nat @ ( nth_nat @ Xs @ N ) @ bot_bot_set_nat ) ) ) ) ) ) ).

% set_update_distinct
thf(fact_1022_elements__with__ord__1,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ ( totatives @ N ) )
              & ( ( ord_nat @ N @ X3 )
                = ( suc @ zero_zero_nat ) ) ) )
        = ( insert_nat @ one_one_nat @ bot_bot_set_nat ) ) ) ).

% elements_with_ord_1
thf(fact_1023_set__removeAll,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( set_nat2 @ ( removeAll_nat @ X2 @ Xs ) )
      = ( minus_minus_set_nat @ ( set_nat2 @ Xs ) @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) ) ).

% set_removeAll
thf(fact_1024_removeAll__id,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( removeAll_nat @ X2 @ Xs )
        = Xs ) ) ).

% removeAll_id
thf(fact_1025_removeAll__filter__not,axiom,
    ! [P: a > $o,X2: a,Xs: list_a] :
      ( ~ ( P @ X2 )
     => ( ( removeAll_a @ X2 @ ( filter_a @ P @ Xs ) )
        = ( filter_a @ P @ Xs ) ) ) ).

% removeAll_filter_not
thf(fact_1026_distinct__swap,axiom,
    ! [I: nat,Xs: list_a,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
       => ( ( distinct_a @ ( list_update_a @ ( list_update_a @ Xs @ I @ ( nth_a @ Xs @ J2 ) ) @ J2 @ ( nth_a @ Xs @ I ) ) )
          = ( distinct_a @ Xs ) ) ) ) ).

% distinct_swap
thf(fact_1027_distinct__swap,axiom,
    ! [I: nat,Xs: list_nat,J2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
       => ( ( distinct_nat @ ( list_update_nat @ ( list_update_nat @ Xs @ I @ ( nth_nat @ Xs @ J2 ) ) @ J2 @ ( nth_nat @ Xs @ I ) ) )
          = ( distinct_nat @ Xs ) ) ) ) ).

% distinct_swap
thf(fact_1028_set__remove1__eq,axiom,
    ! [Xs: list_nat,X2: nat] :
      ( ( distinct_nat @ Xs )
     => ( ( set_nat2 @ ( remove1_nat @ X2 @ Xs ) )
        = ( minus_minus_set_nat @ ( set_nat2 @ Xs ) @ ( insert_nat @ X2 @ bot_bot_set_nat ) ) ) ) ).

% set_remove1_eq
thf(fact_1029_distinct_Osimps_I2_J,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( distinct_nat @ ( cons_nat @ X2 @ Xs ) )
      = ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
        & ( distinct_nat @ Xs ) ) ) ).

% distinct.simps(2)
thf(fact_1030_set__eq__iff__mset__eq__distinct,axiom,
    ! [X2: list_a,Y3: list_a] :
      ( ( distinct_a @ X2 )
     => ( ( distinct_a @ Y3 )
       => ( ( ( set_a2 @ X2 )
            = ( set_a2 @ Y3 ) )
          = ( ( mset_a @ X2 )
            = ( mset_a @ Y3 ) ) ) ) ) ).

% set_eq_iff_mset_eq_distinct
thf(fact_1031_distinct__filter,axiom,
    ! [Xs: list_a,P: a > $o] :
      ( ( distinct_a @ Xs )
     => ( distinct_a @ ( filter_a @ P @ Xs ) ) ) ).

% distinct_filter
thf(fact_1032_perm__distinct__iff,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( distinct_a @ Xs )
        = ( distinct_a @ Ys ) ) ) ).

% perm_distinct_iff
thf(fact_1033_removeAll__filter__not__eq,axiom,
    ( removeAll_a
    = ( ^ [X3: a] :
          ( filter_a
          @ ^ [Y: a] : ( X3 != Y ) ) ) ) ).

% removeAll_filter_not_eq
thf(fact_1034_length__removeAll__less__eq,axiom,
    ! [X2: a,Xs: list_a] : ( ord_less_eq_nat @ ( size_size_list_a @ ( removeAll_a @ X2 @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ).

% length_removeAll_less_eq
thf(fact_1035_length__removeAll__less__eq,axiom,
    ! [X2: nat,Xs: list_nat] : ( ord_less_eq_nat @ ( size_size_list_nat @ ( removeAll_nat @ X2 @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ).

% length_removeAll_less_eq
thf(fact_1036_strict__sorted__iff,axiom,
    ! [L: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_nat @ L )
      = ( ( sorted_wrt_nat @ ord_less_eq_nat @ L )
        & ( distinct_nat @ L ) ) ) ).

% strict_sorted_iff
thf(fact_1037_strict__sorted__iff,axiom,
    ! [L: list_a] :
      ( ( sorted_wrt_a @ ord_less_a @ L )
      = ( ( sorted_wrt_a @ ord_less_eq_a @ L )
        & ( distinct_a @ L ) ) ) ).

% strict_sorted_iff
thf(fact_1038_distinct__card,axiom,
    ! [Xs: list_a] :
      ( ( distinct_a @ Xs )
     => ( ( finite_card_a @ ( set_a2 @ Xs ) )
        = ( size_size_list_a @ Xs ) ) ) ).

% distinct_card
thf(fact_1039_distinct__card,axiom,
    ! [Xs: list_nat] :
      ( ( distinct_nat @ Xs )
     => ( ( finite_card_nat @ ( set_nat2 @ Xs ) )
        = ( size_size_list_nat @ Xs ) ) ) ).

% distinct_card
thf(fact_1040_card__distinct,axiom,
    ! [Xs: list_a] :
      ( ( ( finite_card_a @ ( set_a2 @ Xs ) )
        = ( size_size_list_a @ Xs ) )
     => ( distinct_a @ Xs ) ) ).

% card_distinct
thf(fact_1041_card__distinct,axiom,
    ! [Xs: list_nat] :
      ( ( ( finite_card_nat @ ( set_nat2 @ Xs ) )
        = ( size_size_list_nat @ Xs ) )
     => ( distinct_nat @ Xs ) ) ).

% card_distinct
thf(fact_1042_sorted__distinct__set__unique,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( ( distinct_nat @ Xs )
       => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Ys )
         => ( ( distinct_nat @ Ys )
           => ( ( ( set_nat2 @ Xs )
                = ( set_nat2 @ Ys ) )
             => ( Xs = Ys ) ) ) ) ) ) ).

% sorted_distinct_set_unique
thf(fact_1043_sorted__distinct__set__unique,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( ( distinct_a @ Xs )
       => ( ( sorted_wrt_a @ ord_less_eq_a @ Ys )
         => ( ( distinct_a @ Ys )
           => ( ( ( set_a2 @ Xs )
                = ( set_a2 @ Ys ) )
             => ( Xs = Ys ) ) ) ) ) ) ).

% sorted_distinct_set_unique
thf(fact_1044_distinct__conv__nth,axiom,
    ( distinct_a
    = ( ^ [Xs2: list_a] :
        ! [I2: nat] :
          ( ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs2 ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_size_list_a @ Xs2 ) )
             => ( ( I2 != J )
               => ( ( nth_a @ Xs2 @ I2 )
                 != ( nth_a @ Xs2 @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_1045_distinct__conv__nth,axiom,
    ( distinct_nat
    = ( ^ [Xs2: list_nat] :
        ! [I2: nat] :
          ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs2 ) )
         => ! [J: nat] :
              ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs2 ) )
             => ( ( I2 != J )
               => ( ( nth_nat @ Xs2 @ I2 )
                 != ( nth_nat @ Xs2 @ J ) ) ) ) ) ) ) ).

% distinct_conv_nth
thf(fact_1046_nth__eq__iff__index__eq,axiom,
    ! [Xs: list_a,I: nat,J2: nat] :
      ( ( distinct_a @ Xs )
     => ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_a @ Xs ) )
         => ( ( ( nth_a @ Xs @ I )
              = ( nth_a @ Xs @ J2 ) )
            = ( I = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_1047_nth__eq__iff__index__eq,axiom,
    ! [Xs: list_nat,I: nat,J2: nat] :
      ( ( distinct_nat @ Xs )
     => ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
       => ( ( ord_less_nat @ J2 @ ( size_size_list_nat @ Xs ) )
         => ( ( ( nth_nat @ Xs @ I )
              = ( nth_nat @ Xs @ J2 ) )
            = ( I = J2 ) ) ) ) ) ).

% nth_eq_iff_index_eq
thf(fact_1048_filter__in__nths,axiom,
    ! [Xs: list_nat,S: set_nat] :
      ( ( distinct_nat @ Xs )
     => ( ( filter_nat
          @ ^ [X3: nat] : ( member_nat @ X3 @ ( set_nat2 @ ( nths_nat @ Xs @ S ) ) )
          @ Xs )
        = ( nths_nat @ Xs @ S ) ) ) ).

% filter_in_nths
thf(fact_1049_filter__in__nths,axiom,
    ! [Xs: list_a,S: set_nat] :
      ( ( distinct_a @ Xs )
     => ( ( filter_a
          @ ^ [X3: a] : ( member_a @ X3 @ ( set_a2 @ ( nths_a @ Xs @ S ) ) )
          @ Xs )
        = ( nths_a @ Xs @ S ) ) ) ).

% filter_in_nths
thf(fact_1050_distinct__Ex1,axiom,
    ! [Xs: list_a,X2: a] :
      ( ( distinct_a @ Xs )
     => ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
       => ? [X4: nat] :
            ( ( ord_less_nat @ X4 @ ( size_size_list_a @ Xs ) )
            & ( ( nth_a @ Xs @ X4 )
              = X2 )
            & ! [Y5: nat] :
                ( ( ( ord_less_nat @ Y5 @ ( size_size_list_a @ Xs ) )
                  & ( ( nth_a @ Xs @ Y5 )
                    = X2 ) )
               => ( Y5 = X4 ) ) ) ) ) ).

% distinct_Ex1
thf(fact_1051_distinct__Ex1,axiom,
    ! [Xs: list_nat,X2: nat] :
      ( ( distinct_nat @ Xs )
     => ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ? [X4: nat] :
            ( ( ord_less_nat @ X4 @ ( size_size_list_nat @ Xs ) )
            & ( ( nth_nat @ Xs @ X4 )
              = X2 )
            & ! [Y5: nat] :
                ( ( ( ord_less_nat @ Y5 @ ( size_size_list_nat @ Xs ) )
                  & ( ( nth_nat @ Xs @ Y5 )
                    = X2 ) )
               => ( Y5 = X4 ) ) ) ) ) ).

% distinct_Ex1
thf(fact_1052_length__removeAll__less,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( member_a @ X2 @ ( set_a2 @ Xs ) )
     => ( ord_less_nat @ ( size_size_list_a @ ( removeAll_a @ X2 @ Xs ) ) @ ( size_size_list_a @ Xs ) ) ) ).

% length_removeAll_less
thf(fact_1053_length__removeAll__less,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ord_less_nat @ ( size_size_list_nat @ ( removeAll_nat @ X2 @ Xs ) ) @ ( size_size_list_nat @ Xs ) ) ) ).

% length_removeAll_less
thf(fact_1054_distinct__list__update,axiom,
    ! [Xs: list_a,A: a,I: nat] :
      ( ( distinct_a @ Xs )
     => ( ~ ( member_a @ A @ ( minus_minus_set_a @ ( set_a2 @ Xs ) @ ( insert_a @ ( nth_a @ Xs @ I ) @ bot_bot_set_a ) ) )
       => ( distinct_a @ ( list_update_a @ Xs @ I @ A ) ) ) ) ).

% distinct_list_update
thf(fact_1055_distinct__list__update,axiom,
    ! [Xs: list_nat,A: nat,I: nat] :
      ( ( distinct_nat @ Xs )
     => ( ~ ( member_nat @ A @ ( minus_minus_set_nat @ ( set_nat2 @ Xs ) @ ( insert_nat @ ( nth_nat @ Xs @ I ) @ bot_bot_set_nat ) ) )
       => ( distinct_nat @ ( list_update_nat @ Xs @ I @ A ) ) ) ) ).

% distinct_list_update
thf(fact_1056_totatives__1,axiom,
    ( ( totatives @ one_one_nat )
    = ( insert_nat @ ( suc @ zero_zero_nat ) @ bot_bot_set_nat ) ) ).

% totatives_1
thf(fact_1057_totatives__Suc__0,axiom,
    ( ( totatives @ ( suc @ zero_zero_nat ) )
    = ( insert_nat @ ( suc @ zero_zero_nat ) @ bot_bot_set_nat ) ) ).

% totatives_Suc_0
thf(fact_1058_one__in__totatives,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( member_nat @ ( suc @ zero_zero_nat ) @ ( totatives @ N ) ) ) ).

% one_in_totatives
thf(fact_1059_totatives__le,axiom,
    ! [X2: nat,N: nat] :
      ( ( member_nat @ X2 @ ( totatives @ N ) )
     => ( ord_less_eq_nat @ X2 @ N ) ) ).

% totatives_le
thf(fact_1060_totatives__less,axiom,
    ! [X2: nat,N: nat] :
      ( ( member_nat @ X2 @ ( totatives @ N ) )
     => ( ( ord_less_nat @ one_one_nat @ N )
       => ( ord_less_nat @ X2 @ N ) ) ) ).

% totatives_less
thf(fact_1061_set__mset__replicate__mset__subset,axiom,
    ! [N: nat,X2: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( set_mset_nat @ ( replicate_mset_nat @ N @ X2 ) )
          = bot_bot_set_nat ) )
      & ( ( N != zero_zero_nat )
       => ( ( set_mset_nat @ ( replicate_mset_nat @ N @ X2 ) )
          = ( insert_nat @ X2 @ bot_bot_set_nat ) ) ) ) ).

% set_mset_replicate_mset_subset
thf(fact_1062_remove__def,axiom,
    ( remove_nat
    = ( ^ [X3: nat,A7: set_nat] : ( minus_minus_set_nat @ A7 @ ( insert_nat @ X3 @ bot_bot_set_nat ) ) ) ) ).

% remove_def
thf(fact_1063_size__replicate__mset,axiom,
    ! [N: nat,M5: a] :
      ( ( size_size_multiset_a @ ( replicate_mset_a @ N @ M5 ) )
      = N ) ).

% size_replicate_mset
thf(fact_1064_in__replicate__mset,axiom,
    ! [X2: nat,N: nat,Y3: nat] :
      ( ( member_nat @ X2 @ ( set_mset_nat @ ( replicate_mset_nat @ N @ Y3 ) ) )
      = ( ( ord_less_nat @ zero_zero_nat @ N )
        & ( X2 = Y3 ) ) ) ).

% in_replicate_mset
thf(fact_1065_set__rec,axiom,
    ( set_nat2
    = ( rec_list_set_nat_nat @ bot_bot_set_nat
      @ ^ [X3: nat,Uu: list_nat] : ( insert_nat @ X3 ) ) ) ).

% set_rec
thf(fact_1066_in__set__product__lists__length,axiom,
    ! [Xs: list_a,Xss: list_list_a] :
      ( ( member_list_a @ Xs @ ( set_list_a2 @ ( product_lists_a @ Xss ) ) )
     => ( ( size_size_list_a @ Xs )
        = ( size_s349497388124573686list_a @ Xss ) ) ) ).

% in_set_product_lists_length
thf(fact_1067_in__set__product__lists__length,axiom,
    ! [Xs: list_nat,Xss: list_list_nat] :
      ( ( member_list_nat @ Xs @ ( set_list_nat2 @ ( product_lists_nat @ Xss ) ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_s3023201423986296836st_nat @ Xss ) ) ) ).

% in_set_product_lists_length
thf(fact_1068_minus__coset__filter,axiom,
    ! [A4: set_nat,Xs: list_nat] :
      ( ( minus_minus_set_nat @ A4 @ ( coset_nat @ Xs ) )
      = ( set_nat2
        @ ( filter_nat
          @ ^ [X3: nat] : ( member_nat @ X3 @ A4 )
          @ Xs ) ) ) ).

% minus_coset_filter
thf(fact_1069_minus__coset__filter,axiom,
    ! [A4: set_a,Xs: list_a] :
      ( ( minus_minus_set_a @ A4 @ ( coset_a @ Xs ) )
      = ( set_a2
        @ ( filter_a
          @ ^ [X3: a] : ( member_a @ X3 @ A4 )
          @ Xs ) ) ) ).

% minus_coset_filter
thf(fact_1070_last__list__update,axiom,
    ! [Xs: list_a,K: nat,X2: a] :
      ( ( Xs != nil_a )
     => ( ( ( K
            = ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) )
         => ( ( last_a @ ( list_update_a @ Xs @ K @ X2 ) )
            = X2 ) )
        & ( ( K
           != ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) )
         => ( ( last_a @ ( list_update_a @ Xs @ K @ X2 ) )
            = ( last_a @ Xs ) ) ) ) ) ).

% last_list_update
thf(fact_1071_last__list__update,axiom,
    ! [Xs: list_nat,K: nat,X2: nat] :
      ( ( Xs != nil_nat )
     => ( ( ( K
            = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
         => ( ( last_nat @ ( list_update_nat @ Xs @ K @ X2 ) )
            = X2 ) )
        & ( ( K
           != ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
         => ( ( last_nat @ ( list_update_nat @ Xs @ K @ X2 ) )
            = ( last_nat @ Xs ) ) ) ) ) ).

% last_list_update
thf(fact_1072_last__in__set,axiom,
    ! [As: list_nat] :
      ( ( As != nil_nat )
     => ( member_nat @ ( last_nat @ As ) @ ( set_nat2 @ As ) ) ) ).

% last_in_set
thf(fact_1073_subset__code_I2_J,axiom,
    ! [A4: set_nat,Ys: list_nat] :
      ( ( ord_less_eq_set_nat @ A4 @ ( coset_nat @ Ys ) )
      = ( ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Ys ) )
           => ~ ( member_nat @ X3 @ A4 ) ) ) ) ).

% subset_code(2)
thf(fact_1074_insert__code_I2_J,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( insert_nat @ X2 @ ( coset_nat @ Xs ) )
      = ( coset_nat @ ( removeAll_nat @ X2 @ Xs ) ) ) ).

% insert_code(2)
thf(fact_1075_last__conv__nth,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( last_a @ Xs )
        = ( nth_a @ Xs @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) ) ) ) ).

% last_conv_nth
thf(fact_1076_last__conv__nth,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( last_nat @ Xs )
        = ( nth_nat @ Xs @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) ) ) ) ).

% last_conv_nth
thf(fact_1077_distinct__length__filter,axiom,
    ! [Xs: list_a,P: a > $o] :
      ( ( distinct_a @ Xs )
     => ( ( size_size_list_a @ ( filter_a @ P @ Xs ) )
        = ( finite_card_a @ ( inf_inf_set_a @ ( collect_a @ P ) @ ( set_a2 @ Xs ) ) ) ) ) ).

% distinct_length_filter
thf(fact_1078_distinct__length__filter,axiom,
    ! [Xs: list_nat,P: nat > $o] :
      ( ( distinct_nat @ Xs )
     => ( ( size_size_list_nat @ ( filter_nat @ P @ Xs ) )
        = ( finite_card_nat @ ( inf_inf_set_nat @ ( collect_nat @ P ) @ ( set_nat2 @ Xs ) ) ) ) ) ).

% distinct_length_filter
thf(fact_1079_bot_Oordering__top__axioms,axiom,
    ( ordering_top_set_nat
    @ ^ [X3: set_nat,Y: set_nat] : ( ord_less_eq_set_nat @ Y @ X3 )
    @ ^ [X3: set_nat,Y: set_nat] : ( ord_less_set_nat @ Y @ X3 )
    @ bot_bot_set_nat ) ).

% bot.ordering_top_axioms
thf(fact_1080_bot_Oordering__top__axioms,axiom,
    ( ordering_top_nat
    @ ^ [X3: nat,Y: nat] : ( ord_less_eq_nat @ Y @ X3 )
    @ ^ [X3: nat,Y: nat] : ( ord_less_nat @ Y @ X3 )
    @ bot_bot_nat ) ).

% bot.ordering_top_axioms
thf(fact_1081_inf_Obounded__iff,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ ( inf_inf_nat @ B @ C ) )
      = ( ( ord_less_eq_nat @ A @ B )
        & ( ord_less_eq_nat @ A @ C ) ) ) ).

% inf.bounded_iff
thf(fact_1082_le__inf__iff,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_eq_nat @ X2 @ ( inf_inf_nat @ Y3 @ Z2 ) )
      = ( ( ord_less_eq_nat @ X2 @ Y3 )
        & ( ord_less_eq_nat @ X2 @ Z2 ) ) ) ).

% le_inf_iff
thf(fact_1083_Diff__disjoint,axiom,
    ! [A4: set_nat,B5: set_nat] :
      ( ( inf_inf_set_nat @ A4 @ ( minus_minus_set_nat @ B5 @ A4 ) )
      = bot_bot_set_nat ) ).

% Diff_disjoint
thf(fact_1084_inf_OcoboundedI2,axiom,
    ! [B: nat,C: nat,A: nat] :
      ( ( ord_less_eq_nat @ B @ C )
     => ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ C ) ) ).

% inf.coboundedI2
thf(fact_1085_inf_OcoboundedI1,axiom,
    ! [A: nat,C: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ C )
     => ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ C ) ) ).

% inf.coboundedI1
thf(fact_1086_inf_Oabsorb__iff2,axiom,
    ( ord_less_eq_nat
    = ( ^ [B2: nat,A2: nat] :
          ( ( inf_inf_nat @ A2 @ B2 )
          = B2 ) ) ) ).

% inf.absorb_iff2
thf(fact_1087_inf_Oabsorb__iff1,axiom,
    ( ord_less_eq_nat
    = ( ^ [A2: nat,B2: nat] :
          ( ( inf_inf_nat @ A2 @ B2 )
          = A2 ) ) ) ).

% inf.absorb_iff1
thf(fact_1088_inf_Ocobounded2,axiom,
    ! [A: nat,B: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ B ) ).

% inf.cobounded2
thf(fact_1089_inf_Ocobounded1,axiom,
    ! [A: nat,B: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ A ) ).

% inf.cobounded1
thf(fact_1090_inf_Oorder__iff,axiom,
    ( ord_less_eq_nat
    = ( ^ [A2: nat,B2: nat] :
          ( A2
          = ( inf_inf_nat @ A2 @ B2 ) ) ) ) ).

% inf.order_iff
thf(fact_1091_inf__greatest,axiom,
    ! [X2: nat,Y3: nat,Z2: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( ord_less_eq_nat @ X2 @ Z2 )
       => ( ord_less_eq_nat @ X2 @ ( inf_inf_nat @ Y3 @ Z2 ) ) ) ) ).

% inf_greatest
thf(fact_1092_inf_OboundedI,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( ord_less_eq_nat @ A @ C )
       => ( ord_less_eq_nat @ A @ ( inf_inf_nat @ B @ C ) ) ) ) ).

% inf.boundedI
thf(fact_1093_inf_OboundedE,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_eq_nat @ A @ ( inf_inf_nat @ B @ C ) )
     => ~ ( ( ord_less_eq_nat @ A @ B )
         => ~ ( ord_less_eq_nat @ A @ C ) ) ) ).

% inf.boundedE
thf(fact_1094_inf__absorb2,axiom,
    ! [Y3: nat,X2: nat] :
      ( ( ord_less_eq_nat @ Y3 @ X2 )
     => ( ( inf_inf_nat @ X2 @ Y3 )
        = Y3 ) ) ).

% inf_absorb2
thf(fact_1095_inf__absorb1,axiom,
    ! [X2: nat,Y3: nat] :
      ( ( ord_less_eq_nat @ X2 @ Y3 )
     => ( ( inf_inf_nat @ X2 @ Y3 )
        = X2 ) ) ).

% inf_absorb1
thf(fact_1096_inf_Oabsorb2,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_eq_nat @ B @ A )
     => ( ( inf_inf_nat @ A @ B )
        = B ) ) ).

% inf.absorb2
thf(fact_1097_inf_Oabsorb1,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( ( inf_inf_nat @ A @ B )
        = A ) ) ).

% inf.absorb1
thf(fact_1098_le__iff__inf,axiom,
    ( ord_less_eq_nat
    = ( ^ [X3: nat,Y: nat] :
          ( ( inf_inf_nat @ X3 @ Y )
          = X3 ) ) ) ).

% le_iff_inf
thf(fact_1099_inf__unique,axiom,
    ! [F: nat > nat > nat,X2: nat,Y3: nat] :
      ( ! [X4: nat,Y4: nat] : ( ord_less_eq_nat @ ( F @ X4 @ Y4 ) @ X4 )
     => ( ! [X4: nat,Y4: nat] : ( ord_less_eq_nat @ ( F @ X4 @ Y4 ) @ Y4 )
       => ( ! [X4: nat,Y4: nat,Z3: nat] :
              ( ( ord_less_eq_nat @ X4 @ Y4 )
             => ( ( ord_less_eq_nat @ X4 @ Z3 )
               => ( ord_less_eq_nat @ X4 @ ( F @ Y4 @ Z3 ) ) ) )
         => ( ( inf_inf_nat @ X2 @ Y3 )
            = ( F @ X2 @ Y3 ) ) ) ) ) ).

% inf_unique
thf(fact_1100_inf_OorderI,axiom,
    ! [A: nat,B: nat] :
      ( ( A
        = ( inf_inf_nat @ A @ B ) )
     => ( ord_less_eq_nat @ A @ B ) ) ).

% inf.orderI
thf(fact_1101_inf_OorderE,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ B )
     => ( A
        = ( inf_inf_nat @ A @ B ) ) ) ).

% inf.orderE
thf(fact_1102_le__infI2,axiom,
    ! [B: nat,X2: nat,A: nat] :
      ( ( ord_less_eq_nat @ B @ X2 )
     => ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ X2 ) ) ).

% le_infI2
thf(fact_1103_le__infI1,axiom,
    ! [A: nat,X2: nat,B: nat] :
      ( ( ord_less_eq_nat @ A @ X2 )
     => ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ X2 ) ) ).

% le_infI1
thf(fact_1104_inf__mono,axiom,
    ! [A: nat,C: nat,B: nat,D2: nat] :
      ( ( ord_less_eq_nat @ A @ C )
     => ( ( ord_less_eq_nat @ B @ D2 )
       => ( ord_less_eq_nat @ ( inf_inf_nat @ A @ B ) @ ( inf_inf_nat @ C @ D2 ) ) ) ) ).

% inf_mono
thf(fact_1105_le__infI,axiom,
    ! [X2: nat,A: nat,B: nat] :
      ( ( ord_less_eq_nat @ X2 @ A )
     => ( ( ord_less_eq_nat @ X2 @ B )
       => ( ord_less_eq_nat @ X2 @ ( inf_inf_nat @ A @ B ) ) ) ) ).

% le_infI
thf(fact_1106_le__infE,axiom,
    ! [X2: nat,A: nat,B: nat] :
      ( ( ord_less_eq_nat @ X2 @ ( inf_inf_nat @ A @ B ) )
     => ~ ( ( ord_less_eq_nat @ X2 @ A )
         => ~ ( ord_less_eq_nat @ X2 @ B ) ) ) ).

% le_infE
thf(fact_1107_inf__le2,axiom,
    ! [X2: nat,Y3: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ X2 @ Y3 ) @ Y3 ) ).

% inf_le2
thf(fact_1108_inf__le1,axiom,
    ! [X2: nat,Y3: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ X2 @ Y3 ) @ X2 ) ).

% inf_le1
thf(fact_1109_inf__sup__ord_I1_J,axiom,
    ! [X2: nat,Y3: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ X2 @ Y3 ) @ X2 ) ).

% inf_sup_ord(1)
thf(fact_1110_inf__sup__ord_I2_J,axiom,
    ! [X2: nat,Y3: nat] : ( ord_less_eq_nat @ ( inf_inf_nat @ X2 @ Y3 ) @ Y3 ) ).

% inf_sup_ord(2)
thf(fact_1111_Int__def,axiom,
    ( inf_inf_set_nat
    = ( ^ [A7: set_nat,B7: set_nat] :
          ( collect_nat
          @ ^ [X3: nat] :
              ( ( member_nat @ X3 @ A7 )
              & ( member_nat @ X3 @ B7 ) ) ) ) ) ).

% Int_def
thf(fact_1112_Int__Collect,axiom,
    ! [X2: nat,A4: set_nat,P: nat > $o] :
      ( ( member_nat @ X2 @ ( inf_inf_set_nat @ A4 @ ( collect_nat @ P ) ) )
      = ( ( member_nat @ X2 @ A4 )
        & ( P @ X2 ) ) ) ).

% Int_Collect
thf(fact_1113_Collect__conj__eq,axiom,
    ! [P: nat > $o,Q: nat > $o] :
      ( ( collect_nat
        @ ^ [X3: nat] :
            ( ( P @ X3 )
            & ( Q @ X3 ) ) )
      = ( inf_inf_set_nat @ ( collect_nat @ P ) @ ( collect_nat @ Q ) ) ) ).

% Collect_conj_eq
thf(fact_1114_ordering__top_Oextremum,axiom,
    ! [Less_eq: nat > nat > $o,Less: nat > nat > $o,Top: nat,A: nat] :
      ( ( ordering_top_nat @ Less_eq @ Less @ Top )
     => ( Less_eq @ A @ Top ) ) ).

% ordering_top.extremum
thf(fact_1115_ordering__top_Oextremum__strict,axiom,
    ! [Less_eq: nat > nat > $o,Less: nat > nat > $o,Top: nat,A: nat] :
      ( ( ordering_top_nat @ Less_eq @ Less @ Top )
     => ~ ( Less @ Top @ A ) ) ).

% ordering_top.extremum_strict
thf(fact_1116_ordering__top_Oextremum__unique,axiom,
    ! [Less_eq: nat > nat > $o,Less: nat > nat > $o,Top: nat,A: nat] :
      ( ( ordering_top_nat @ Less_eq @ Less @ Top )
     => ( ( Less_eq @ Top @ A )
        = ( A = Top ) ) ) ).

% ordering_top.extremum_unique
thf(fact_1117_ordering__top_Onot__eq__extremum,axiom,
    ! [Less_eq: nat > nat > $o,Less: nat > nat > $o,Top: nat,A: nat] :
      ( ( ordering_top_nat @ Less_eq @ Less @ Top )
     => ( ( A != Top )
        = ( Less @ A @ Top ) ) ) ).

% ordering_top.not_eq_extremum
thf(fact_1118_ordering__top_Oextremum__uniqueI,axiom,
    ! [Less_eq: nat > nat > $o,Less: nat > nat > $o,Top: nat,A: nat] :
      ( ( ordering_top_nat @ Less_eq @ Less @ Top )
     => ( ( Less_eq @ Top @ A )
       => ( A = Top ) ) ) ).

% ordering_top.extremum_uniqueI
thf(fact_1119_inf_Ostrict__coboundedI2,axiom,
    ! [B: nat,C: nat,A: nat] :
      ( ( ord_less_nat @ B @ C )
     => ( ord_less_nat @ ( inf_inf_nat @ A @ B ) @ C ) ) ).

% inf.strict_coboundedI2
thf(fact_1120_inf_Ostrict__coboundedI1,axiom,
    ! [A: nat,C: nat,B: nat] :
      ( ( ord_less_nat @ A @ C )
     => ( ord_less_nat @ ( inf_inf_nat @ A @ B ) @ C ) ) ).

% inf.strict_coboundedI1
thf(fact_1121_inf_Ostrict__order__iff,axiom,
    ( ord_less_nat
    = ( ^ [A2: nat,B2: nat] :
          ( ( A2
            = ( inf_inf_nat @ A2 @ B2 ) )
          & ( A2 != B2 ) ) ) ) ).

% inf.strict_order_iff
thf(fact_1122_inf_Ostrict__boundedE,axiom,
    ! [A: nat,B: nat,C: nat] :
      ( ( ord_less_nat @ A @ ( inf_inf_nat @ B @ C ) )
     => ~ ( ( ord_less_nat @ A @ B )
         => ~ ( ord_less_nat @ A @ C ) ) ) ).

% inf.strict_boundedE
thf(fact_1123_inf_Oabsorb4,axiom,
    ! [B: nat,A: nat] :
      ( ( ord_less_nat @ B @ A )
     => ( ( inf_inf_nat @ A @ B )
        = B ) ) ).

% inf.absorb4
thf(fact_1124_inf_Oabsorb3,axiom,
    ! [A: nat,B: nat] :
      ( ( ord_less_nat @ A @ B )
     => ( ( inf_inf_nat @ A @ B )
        = A ) ) ).

% inf.absorb3
thf(fact_1125_less__infI2,axiom,
    ! [B: nat,X2: nat,A: nat] :
      ( ( ord_less_nat @ B @ X2 )
     => ( ord_less_nat @ ( inf_inf_nat @ A @ B ) @ X2 ) ) ).

% less_infI2
thf(fact_1126_less__infI1,axiom,
    ! [A: nat,X2: nat,B: nat] :
      ( ( ord_less_nat @ A @ X2 )
     => ( ord_less_nat @ ( inf_inf_nat @ A @ B ) @ X2 ) ) ).

% less_infI1
thf(fact_1127_Int__Diff__disjoint,axiom,
    ! [A4: set_nat,B5: set_nat] :
      ( ( inf_inf_set_nat @ ( inf_inf_set_nat @ A4 @ B5 ) @ ( minus_minus_set_nat @ A4 @ B5 ) )
      = bot_bot_set_nat ) ).

% Int_Diff_disjoint
thf(fact_1128_Diff__triv,axiom,
    ! [A4: set_nat,B5: set_nat] :
      ( ( ( inf_inf_set_nat @ A4 @ B5 )
        = bot_bot_set_nat )
     => ( ( minus_minus_set_nat @ A4 @ B5 )
        = A4 ) ) ).

% Diff_triv
thf(fact_1129_inter__set__filter,axiom,
    ! [A4: set_nat,Xs: list_nat] :
      ( ( inf_inf_set_nat @ A4 @ ( set_nat2 @ Xs ) )
      = ( set_nat2
        @ ( filter_nat
          @ ^ [X3: nat] : ( member_nat @ X3 @ A4 )
          @ Xs ) ) ) ).

% inter_set_filter
thf(fact_1130_inter__set__filter,axiom,
    ! [A4: set_a,Xs: list_a] :
      ( ( inf_inf_set_a @ A4 @ ( set_a2 @ Xs ) )
      = ( set_a2
        @ ( filter_a
          @ ^ [X3: a] : ( member_a @ X3 @ A4 )
          @ Xs ) ) ) ).

% inter_set_filter
thf(fact_1131_bot__nat__0_Oordering__top__axioms,axiom,
    ( ordering_top_nat
    @ ^ [X3: nat,Y: nat] : ( ord_less_eq_nat @ Y @ X3 )
    @ ^ [X3: nat,Y: nat] : ( ord_less_nat @ Y @ X3 )
    @ zero_zero_nat ) ).

% bot_nat_0.ordering_top_axioms
thf(fact_1132_distinct__concat__iff,axiom,
    ! [Xs: list_list_nat] :
      ( ( distinct_nat @ ( concat_nat @ Xs ) )
      = ( ( distinct_list_nat @ ( removeAll_list_nat @ nil_nat @ Xs ) )
        & ! [Ys2: list_nat] :
            ( ( member_list_nat @ Ys2 @ ( set_list_nat2 @ Xs ) )
           => ( distinct_nat @ Ys2 ) )
        & ! [Ys2: list_nat,Zs3: list_nat] :
            ( ( ( member_list_nat @ Ys2 @ ( set_list_nat2 @ Xs ) )
              & ( member_list_nat @ Zs3 @ ( set_list_nat2 @ Xs ) )
              & ( Ys2 != Zs3 ) )
           => ( ( inf_inf_set_nat @ ( set_nat2 @ Ys2 ) @ ( set_nat2 @ Zs3 ) )
              = bot_bot_set_nat ) ) ) ) ).

% distinct_concat_iff
thf(fact_1133_distinct__concat,axiom,
    ! [Xs: list_list_nat] :
      ( ( distinct_list_nat @ Xs )
     => ( ! [Ys4: list_nat] :
            ( ( member_list_nat @ Ys4 @ ( set_list_nat2 @ Xs ) )
           => ( distinct_nat @ Ys4 ) )
       => ( ! [Ys4: list_nat,Zs2: list_nat] :
              ( ( member_list_nat @ Ys4 @ ( set_list_nat2 @ Xs ) )
             => ( ( member_list_nat @ Zs2 @ ( set_list_nat2 @ Xs ) )
               => ( ( Ys4 != Zs2 )
                 => ( ( inf_inf_set_nat @ ( set_nat2 @ Ys4 ) @ ( set_nat2 @ Zs2 ) )
                    = bot_bot_set_nat ) ) ) )
         => ( distinct_nat @ ( concat_nat @ Xs ) ) ) ) ) ).

% distinct_concat
thf(fact_1134_length__concat__rev,axiom,
    ! [Xs: list_list_a] :
      ( ( size_size_list_a @ ( concat_a @ ( rev_list_a @ Xs ) ) )
      = ( size_size_list_a @ ( concat_a @ Xs ) ) ) ).

% length_concat_rev
thf(fact_1135_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_1136_inf__set__def,axiom,
    ( inf_inf_set_nat
    = ( ^ [A7: set_nat,B7: set_nat] :
          ( collect_nat
          @ ( inf_inf_nat_o
            @ ^ [X3: nat] : ( member_nat @ X3 @ A7 )
            @ ^ [X3: nat] : ( member_nat @ X3 @ B7 ) ) ) ) ) ).

% inf_set_def
thf(fact_1137_set__nths,axiom,
    ! [Xs: list_a,I5: set_nat] :
      ( ( set_a2 @ ( nths_a @ Xs @ I5 ) )
      = ( collect_a
        @ ^ [Uu: a] :
          ? [I2: nat] :
            ( ( Uu
              = ( nth_a @ Xs @ I2 ) )
            & ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs ) )
            & ( member_nat @ I2 @ I5 ) ) ) ) ).

% set_nths
thf(fact_1138_set__nths,axiom,
    ! [Xs: list_nat,I5: set_nat] :
      ( ( set_nat2 @ ( nths_nat @ Xs @ I5 ) )
      = ( collect_nat
        @ ^ [Uu: nat] :
          ? [I2: nat] :
            ( ( Uu
              = ( nth_nat @ Xs @ I2 ) )
            & ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
            & ( member_nat @ I2 @ I5 ) ) ) ) ).

% set_nths
thf(fact_1139_append__eq__append__conv,axiom,
    ! [Xs: list_a,Ys: list_a,Us: list_a,Vs: list_a] :
      ( ( ( ( size_size_list_a @ Xs )
          = ( size_size_list_a @ Ys ) )
        | ( ( size_size_list_a @ Us )
          = ( size_size_list_a @ Vs ) ) )
     => ( ( ( append_a @ Xs @ Us )
          = ( append_a @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_1140_append__eq__append__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat,Us: list_nat,Vs: list_nat] :
      ( ( ( ( size_size_list_nat @ Xs )
          = ( size_size_list_nat @ Ys ) )
        | ( ( size_size_list_nat @ Us )
          = ( size_size_list_nat @ Vs ) ) )
     => ( ( ( append_nat @ Xs @ Us )
          = ( append_nat @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_1141_perm__append1,axiom,
    ! [Xs: list_a,Ys: list_a,L: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( mset_a @ ( append_a @ L @ Xs ) )
        = ( mset_a @ ( append_a @ L @ Ys ) ) ) ) ).

% perm_append1
thf(fact_1142_perm__append2,axiom,
    ! [Xs: list_a,Ys: list_a,L: list_a] :
      ( ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) )
     => ( ( mset_a @ ( append_a @ Xs @ L ) )
        = ( mset_a @ ( append_a @ Ys @ L ) ) ) ) ).

% perm_append2
thf(fact_1143_perm__append1__eq,axiom,
    ! [Zs: list_a,Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ ( append_a @ Zs @ Xs ) )
        = ( mset_a @ ( append_a @ Zs @ Ys ) ) )
      = ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) ) ) ).

% perm_append1_eq
thf(fact_1144_perm__append2__eq,axiom,
    ! [Xs: list_a,Zs: list_a,Ys: list_a] :
      ( ( ( mset_a @ ( append_a @ Xs @ Zs ) )
        = ( mset_a @ ( append_a @ Ys @ Zs ) ) )
      = ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) ) ) ).

% perm_append2_eq
thf(fact_1145_filter__append,axiom,
    ! [P: a > $o,Xs: list_a,Ys: list_a] :
      ( ( filter_a @ P @ ( append_a @ Xs @ Ys ) )
      = ( append_a @ ( filter_a @ P @ Xs ) @ ( filter_a @ P @ Ys ) ) ) ).

% filter_append
thf(fact_1146_nth__append__length,axiom,
    ! [Xs: list_a,X2: a,Ys: list_a] :
      ( ( nth_a @ ( append_a @ Xs @ ( cons_a @ X2 @ Ys ) ) @ ( size_size_list_a @ Xs ) )
      = X2 ) ).

% nth_append_length
thf(fact_1147_nth__append__length,axiom,
    ! [Xs: list_nat,X2: nat,Ys: list_nat] :
      ( ( nth_nat @ ( append_nat @ Xs @ ( cons_nat @ X2 @ Ys ) ) @ ( size_size_list_nat @ Xs ) )
      = X2 ) ).

% nth_append_length
thf(fact_1148_list__update__length,axiom,
    ! [Xs: list_a,X2: a,Ys: list_a,Y3: a] :
      ( ( list_update_a @ ( append_a @ Xs @ ( cons_a @ X2 @ Ys ) ) @ ( size_size_list_a @ Xs ) @ Y3 )
      = ( append_a @ Xs @ ( cons_a @ Y3 @ Ys ) ) ) ).

% list_update_length
thf(fact_1149_list__update__length,axiom,
    ! [Xs: list_nat,X2: nat,Ys: list_nat,Y3: nat] :
      ( ( list_update_nat @ ( append_nat @ Xs @ ( cons_nat @ X2 @ Ys ) ) @ ( size_size_list_nat @ Xs ) @ Y3 )
      = ( append_nat @ Xs @ ( cons_nat @ Y3 @ Ys ) ) ) ).

% list_update_length
thf(fact_1150_distinct__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( distinct_nat @ ( append_nat @ Xs @ Ys ) )
      = ( ( distinct_nat @ Xs )
        & ( distinct_nat @ Ys )
        & ( ( inf_inf_set_nat @ ( set_nat2 @ Xs ) @ ( set_nat2 @ Ys ) )
          = bot_bot_set_nat ) ) ) ).

% distinct_append
thf(fact_1151_remove1__append,axiom,
    ! [X2: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ( ( remove1_nat @ X2 @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ ( remove1_nat @ X2 @ Xs ) @ Ys ) ) )
      & ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
       => ( ( remove1_nat @ X2 @ ( append_nat @ Xs @ Ys ) )
          = ( append_nat @ Xs @ ( remove1_nat @ X2 @ Ys ) ) ) ) ) ).

% remove1_append
thf(fact_1152_in__set__conv__decomp__first,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
      = ( ? [Ys2: list_nat,Zs3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs3 ) ) )
            & ~ ( member_nat @ X2 @ ( set_nat2 @ Ys2 ) ) ) ) ) ).

% in_set_conv_decomp_first
thf(fact_1153_in__set__conv__decomp__last,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
      = ( ? [Ys2: list_nat,Zs3: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs3 ) ) )
            & ~ ( member_nat @ X2 @ ( set_nat2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp_last
thf(fact_1154_in__set__conv__decomp,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
      = ( ? [Ys2: list_nat,Zs3: list_nat] :
            ( Xs
            = ( append_nat @ Ys2 @ ( cons_nat @ X2 @ Zs3 ) ) ) ) ) ).

% in_set_conv_decomp
thf(fact_1155_append__Cons__eq__iff,axiom,
    ! [X2: nat,Xs: list_nat,Ys: list_nat,Xs4: list_nat,Ys5: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ~ ( member_nat @ X2 @ ( set_nat2 @ Ys ) )
       => ( ( ( append_nat @ Xs @ ( cons_nat @ X2 @ Ys ) )
            = ( append_nat @ Xs4 @ ( cons_nat @ X2 @ Ys5 ) ) )
          = ( ( Xs = Xs4 )
            & ( Ys = Ys5 ) ) ) ) ) ).

% append_Cons_eq_iff
thf(fact_1156_split__list__first,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ? [Ys4: list_nat,Zs2: list_nat] :
          ( ( Xs
            = ( append_nat @ Ys4 @ ( cons_nat @ X2 @ Zs2 ) ) )
          & ~ ( member_nat @ X2 @ ( set_nat2 @ Ys4 ) ) ) ) ).

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

% split_list_last
thf(fact_1158_split__list,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ? [Ys4: list_nat,Zs2: list_nat] :
          ( Xs
          = ( append_nat @ Ys4 @ ( cons_nat @ X2 @ Zs2 ) ) ) ) ).

% split_list
thf(fact_1159_perm__append__Cons,axiom,
    ! [A: a,Xs: list_a,Ys: list_a] :
      ( ( mset_a @ ( cons_a @ A @ ( append_a @ Xs @ Ys ) ) )
      = ( mset_a @ ( append_a @ Xs @ ( cons_a @ A @ Ys ) ) ) ) ).

% perm_append_Cons
thf(fact_1160_sorted__wrt__append,axiom,
    ! [P: a > a > $o,Xs: list_a,Ys: list_a] :
      ( ( sorted_wrt_a @ P @ ( append_a @ Xs @ Ys ) )
      = ( ( sorted_wrt_a @ P @ Xs )
        & ( sorted_wrt_a @ P @ Ys )
        & ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ! [Y: a] :
                ( ( member_a @ Y @ ( set_a2 @ Ys ) )
               => ( P @ X3 @ Y ) ) ) ) ) ).

% sorted_wrt_append
thf(fact_1161_sorted__wrt__append,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ P @ ( append_nat @ Xs @ Ys ) )
      = ( ( sorted_wrt_nat @ P @ Xs )
        & ( sorted_wrt_nat @ P @ Ys )
        & ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs ) )
           => ! [Y: nat] :
                ( ( member_nat @ Y @ ( set_nat2 @ Ys ) )
               => ( P @ X3 @ Y ) ) ) ) ) ).

% sorted_wrt_append
thf(fact_1162_perm__append__swap,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( mset_a @ ( append_a @ Xs @ Ys ) )
      = ( mset_a @ ( append_a @ Ys @ Xs ) ) ) ).

% perm_append_swap
thf(fact_1163_append__perm__imp__perm,axiom,
    ! [Zs: list_a,Xs: list_a,Ys: list_a] :
      ( ( ( mset_a @ ( append_a @ Zs @ Xs ) )
        = ( mset_a @ ( append_a @ Zs @ Ys ) ) )
     => ( ( mset_a @ Xs )
        = ( mset_a @ Ys ) ) ) ).

% append_perm_imp_perm
thf(fact_1164_same__length__different,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( Xs != Ys )
     => ( ( ( size_size_list_a @ Xs )
          = ( size_size_list_a @ Ys ) )
       => ? [Pre: list_a,X4: a,Xs5: list_a,Y4: a,Ys6: list_a] :
            ( ( X4 != Y4 )
            & ( Xs
              = ( append_a @ Pre @ ( append_a @ ( cons_a @ X4 @ nil_a ) @ Xs5 ) ) )
            & ( Ys
              = ( append_a @ Pre @ ( append_a @ ( cons_a @ Y4 @ nil_a ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_1165_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,X4: nat,Xs5: list_nat,Y4: nat,Ys6: list_nat] :
            ( ( X4 != Y4 )
            & ( Xs
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ X4 @ nil_nat ) @ Xs5 ) ) )
            & ( Ys
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ Y4 @ nil_nat ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_1166_sorted__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( append_nat @ Xs @ Ys ) )
      = ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
        & ( sorted_wrt_nat @ ord_less_eq_nat @ Ys )
        & ! [X3: nat] :
            ( ( member_nat @ X3 @ ( set_nat2 @ Xs ) )
           => ! [Y: nat] :
                ( ( member_nat @ Y @ ( set_nat2 @ Ys ) )
               => ( ord_less_eq_nat @ X3 @ Y ) ) ) ) ) ).

% sorted_append
thf(fact_1167_sorted__append,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ ( append_a @ Xs @ Ys ) )
      = ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
        & ( sorted_wrt_a @ ord_less_eq_a @ Ys )
        & ! [X3: a] :
            ( ( member_a @ X3 @ ( set_a2 @ Xs ) )
           => ! [Y: a] :
                ( ( member_a @ Y @ ( set_a2 @ Ys ) )
               => ( ord_less_eq_a @ X3 @ Y ) ) ) ) ) ).

% sorted_append
thf(fact_1168_perm__append__single,axiom,
    ! [A: a,Xs: list_a] :
      ( ( mset_a @ ( cons_a @ A @ Xs ) )
      = ( mset_a @ ( append_a @ Xs @ ( cons_a @ A @ nil_a ) ) ) ) ).

% perm_append_single
thf(fact_1169_not__distinct__conv__prefix,axiom,
    ! [As: list_nat] :
      ( ( ~ ( distinct_nat @ As ) )
      = ( ? [Xs2: list_nat,Y: nat,Ys2: list_nat] :
            ( ( member_nat @ Y @ ( set_nat2 @ Xs2 ) )
            & ( distinct_nat @ Xs2 )
            & ( As
              = ( append_nat @ Xs2 @ ( cons_nat @ Y @ Ys2 ) ) ) ) ) ) ).

% not_distinct_conv_prefix
thf(fact_1170_filter__eq__Cons__iff,axiom,
    ! [P: a > $o,Ys: list_a,X2: a,Xs: list_a] :
      ( ( ( filter_a @ P @ Ys )
        = ( cons_a @ X2 @ Xs ) )
      = ( ? [Us2: list_a,Vs2: list_a] :
            ( ( Ys
              = ( append_a @ Us2 @ ( cons_a @ X2 @ Vs2 ) ) )
            & ! [X3: a] :
                ( ( member_a @ X3 @ ( set_a2 @ Us2 ) )
               => ~ ( P @ X3 ) )
            & ( P @ X2 )
            & ( Xs
              = ( filter_a @ P @ Vs2 ) ) ) ) ) ).

% filter_eq_Cons_iff
thf(fact_1171_Cons__eq__filter__iff,axiom,
    ! [X2: a,Xs: list_a,P: a > $o,Ys: list_a] :
      ( ( ( cons_a @ X2 @ Xs )
        = ( filter_a @ P @ Ys ) )
      = ( ? [Us2: list_a,Vs2: list_a] :
            ( ( Ys
              = ( append_a @ Us2 @ ( cons_a @ X2 @ Vs2 ) ) )
            & ! [X3: a] :
                ( ( member_a @ X3 @ ( set_a2 @ Us2 ) )
               => ~ ( P @ X3 ) )
            & ( P @ X2 )
            & ( Xs
              = ( filter_a @ P @ Vs2 ) ) ) ) ) ).

% Cons_eq_filter_iff
thf(fact_1172_filter__eq__ConsD,axiom,
    ! [P: a > $o,Ys: list_a,X2: a,Xs: list_a] :
      ( ( ( filter_a @ P @ Ys )
        = ( cons_a @ X2 @ Xs ) )
     => ? [Us3: list_a,Vs3: list_a] :
          ( ( Ys
            = ( append_a @ Us3 @ ( cons_a @ X2 @ Vs3 ) ) )
          & ! [X6: a] :
              ( ( member_a @ X6 @ ( set_a2 @ Us3 ) )
             => ~ ( P @ X6 ) )
          & ( P @ X2 )
          & ( Xs
            = ( filter_a @ P @ Vs3 ) ) ) ) ).

% filter_eq_ConsD
thf(fact_1173_Cons__eq__filterD,axiom,
    ! [X2: a,Xs: list_a,P: a > $o,Ys: list_a] :
      ( ( ( cons_a @ X2 @ Xs )
        = ( filter_a @ P @ Ys ) )
     => ? [Us3: list_a,Vs3: list_a] :
          ( ( Ys
            = ( append_a @ Us3 @ ( cons_a @ X2 @ Vs3 ) ) )
          & ! [X6: a] :
              ( ( member_a @ X6 @ ( set_a2 @ Us3 ) )
             => ~ ( P @ X6 ) )
          & ( P @ X2 )
          & ( Xs
            = ( filter_a @ P @ Vs3 ) ) ) ) ).

% Cons_eq_filterD
thf(fact_1174_list__update__append1,axiom,
    ! [I: nat,Xs: list_a,Ys: list_a,X2: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ I @ X2 )
        = ( append_a @ ( list_update_a @ Xs @ I @ X2 ) @ Ys ) ) ) ).

% list_update_append1
thf(fact_1175_list__update__append1,axiom,
    ! [I: nat,Xs: list_nat,Ys: list_nat,X2: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ I @ X2 )
        = ( append_nat @ ( list_update_nat @ Xs @ I @ X2 ) @ Ys ) ) ) ).

% list_update_append1
thf(fact_1176_remove1__split,axiom,
    ! [A: nat,Xs: list_nat,Ys: list_nat] :
      ( ( member_nat @ A @ ( set_nat2 @ Xs ) )
     => ( ( ( remove1_nat @ A @ Xs )
          = Ys )
        = ( ? [Ls2: list_nat,Rs: list_nat] :
              ( ( Xs
                = ( append_nat @ Ls2 @ ( cons_nat @ A @ Rs ) ) )
              & ~ ( member_nat @ A @ ( set_nat2 @ Ls2 ) )
              & ( Ys
                = ( append_nat @ Ls2 @ Rs ) ) ) ) ) ) ).

% remove1_split
thf(fact_1177_length__append__singleton,axiom,
    ! [Xs: list_a,X2: a] :
      ( ( size_size_list_a @ ( append_a @ Xs @ ( cons_a @ X2 @ nil_a ) ) )
      = ( suc @ ( size_size_list_a @ Xs ) ) ) ).

% length_append_singleton
thf(fact_1178_length__append__singleton,axiom,
    ! [Xs: list_nat,X2: nat] :
      ( ( size_size_list_nat @ ( append_nat @ Xs @ ( cons_nat @ X2 @ nil_nat ) ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_append_singleton
thf(fact_1179_length__Suc__conv__rev,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( suc @ N ) )
      = ( ? [Y: a,Ys2: list_a] :
            ( ( Xs
              = ( append_a @ Ys2 @ ( cons_a @ Y @ nil_a ) ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_1180_length__Suc__conv__rev,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y: nat,Ys2: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ Y @ nil_nat ) ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_1181_nth__append,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( nth_a @ ( append_a @ Xs @ Ys ) @ N )
          = ( nth_a @ Xs @ N ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( nth_a @ ( append_a @ Xs @ Ys ) @ N )
          = ( nth_a @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_a @ Xs ) ) ) ) ) ) ).

% nth_append
thf(fact_1182_nth__append,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( nth_nat @ ( append_nat @ Xs @ Ys ) @ N )
          = ( nth_nat @ Xs @ N ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( nth_nat @ ( append_nat @ Xs @ Ys ) @ N )
          = ( nth_nat @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_nat @ Xs ) ) ) ) ) ) ).

% nth_append
thf(fact_1183_list__update__append,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a,X2: a] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ N @ X2 )
          = ( append_a @ ( list_update_a @ Xs @ N @ X2 ) @ Ys ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ N @ X2 )
          = ( append_a @ Xs @ ( list_update_a @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_a @ Xs ) ) @ X2 ) ) ) ) ) ).

% list_update_append
thf(fact_1184_list__update__append,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat,X2: nat] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ N @ X2 )
          = ( append_nat @ ( list_update_nat @ Xs @ N @ X2 ) @ Ys ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ N @ X2 )
          = ( append_nat @ Xs @ ( list_update_nat @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_nat @ Xs ) ) @ X2 ) ) ) ) ) ).

% list_update_append
thf(fact_1185_set__conv__nth,axiom,
    ( set_a2
    = ( ^ [Xs2: list_a] :
          ( collect_a
          @ ^ [Uu: a] :
            ? [I2: nat] :
              ( ( Uu
                = ( nth_a @ Xs2 @ I2 ) )
              & ( ord_less_nat @ I2 @ ( size_size_list_a @ Xs2 ) ) ) ) ) ) ).

% set_conv_nth
thf(fact_1186_set__conv__nth,axiom,
    ( set_nat2
    = ( ^ [Xs2: list_nat] :
          ( collect_nat
          @ ^ [Uu: nat] :
            ? [I2: nat] :
              ( ( Uu
                = ( nth_nat @ Xs2 @ I2 ) )
              & ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs2 ) ) ) ) ) ) ).

% set_conv_nth
thf(fact_1187_inf__Int__eq,axiom,
    ! [R: set_nat,S3: set_nat] :
      ( ( inf_inf_nat_o
        @ ^ [X3: nat] : ( member_nat @ X3 @ R )
        @ ^ [X3: nat] : ( member_nat @ X3 @ S3 ) )
      = ( ^ [X3: nat] : ( member_nat @ X3 @ ( inf_inf_set_nat @ R @ S3 ) ) ) ) ).

% inf_Int_eq
thf(fact_1188_Succ__def,axiom,
    ( bNF_Gr6352880689984616693cc_nat
    = ( ^ [Kl: set_list_nat,Kl2: list_nat] :
          ( collect_nat
          @ ^ [K3: nat] : ( member_list_nat @ ( append_nat @ Kl2 @ ( cons_nat @ K3 @ nil_nat ) ) @ Kl ) ) ) ) ).

% Succ_def
thf(fact_1189_sorted__insort__is__snoc,axiom,
    ! [Xs: list_nat,A: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( ! [X4: nat] :
            ( ( member_nat @ X4 @ ( set_nat2 @ Xs ) )
           => ( ord_less_eq_nat @ X4 @ A ) )
       => ( ( linord8961336180081300637at_nat
            @ ^ [X3: nat] : X3
            @ A
            @ Xs )
          = ( append_nat @ Xs @ ( cons_nat @ A @ nil_nat ) ) ) ) ) ).

% sorted_insort_is_snoc
thf(fact_1190_sorted__insort__is__snoc,axiom,
    ! [Xs: list_a,A: a] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( ! [X4: a] :
            ( ( member_a @ X4 @ ( set_a2 @ Xs ) )
           => ( ord_less_eq_a @ X4 @ A ) )
       => ( ( linord5015558716440999803ey_a_a
            @ ^ [X3: a] : X3
            @ A
            @ Xs )
          = ( append_a @ Xs @ ( cons_a @ A @ nil_a ) ) ) ) ) ).

% sorted_insort_is_snoc
thf(fact_1191_count__list__lt__suffix,axiom,
    ! [A: list_a,B: list_a,X2: a] :
      ( ( suffix_a @ A @ B )
     => ( ( member_a @ X2
          @ ( collect_a
            @ ^ [Uu: a] :
              ? [I2: nat] :
                ( ( Uu
                  = ( nth_a @ B @ I2 ) )
                & ( ord_less_nat @ I2 @ ( minus_minus_nat @ ( size_size_list_a @ B ) @ ( size_size_list_a @ A ) ) ) ) ) )
       => ( ord_less_nat @ ( count_list_a @ A @ X2 ) @ ( count_list_a @ B @ X2 ) ) ) ) ).

% count_list_lt_suffix
thf(fact_1192_count__list__lt__suffix,axiom,
    ! [A: list_nat,B: list_nat,X2: nat] :
      ( ( suffix_nat @ A @ B )
     => ( ( member_nat @ X2
          @ ( collect_nat
            @ ^ [Uu: nat] :
              ? [I2: nat] :
                ( ( Uu
                  = ( nth_nat @ B @ I2 ) )
                & ( ord_less_nat @ I2 @ ( minus_minus_nat @ ( size_size_list_nat @ B ) @ ( size_size_list_nat @ A ) ) ) ) ) )
       => ( ord_less_nat @ ( count_list_nat @ A @ X2 ) @ ( count_list_nat @ B @ X2 ) ) ) ) ).

% count_list_lt_suffix
thf(fact_1193_Multiset_Omset__insort,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( mset_a
        @ ( linord5015558716440999803ey_a_a
          @ ^ [X3: a] : X3
          @ X2
          @ Xs ) )
      = ( add_mset_a @ X2 @ ( mset_a @ Xs ) ) ) ).

% Multiset.mset_insort
thf(fact_1194_sorted__list__of__multiset__insert,axiom,
    ! [X2: a,M5: multiset_a] :
      ( ( linord814965612141868908iset_a @ ( add_mset_a @ X2 @ M5 ) )
      = ( linord5015558716440999803ey_a_a
        @ ^ [X3: a] : X3
        @ X2
        @ ( linord814965612141868908iset_a @ M5 ) ) ) ).

% sorted_list_of_multiset_insert
thf(fact_1195_insort__insert__insort,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ~ ( member_nat @ X2 @ ( set_nat2 @ Xs ) )
     => ( ( linord1921536354676448932at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs )
        = ( linord8961336180081300637at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs ) ) ) ).

% insort_insert_insort
thf(fact_1196_sorted__insort,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat
        @ ( linord8961336180081300637at_nat
          @ ^ [X3: nat] : X3
          @ X2
          @ Xs ) )
      = ( sorted_wrt_nat @ ord_less_eq_nat @ Xs ) ) ).

% sorted_insort
thf(fact_1197_sorted__insort,axiom,
    ! [X2: a,Xs: list_a] :
      ( ( sorted_wrt_a @ ord_less_eq_a
        @ ( linord5015558716440999803ey_a_a
          @ ^ [X3: a] : X3
          @ X2
          @ Xs ) )
      = ( sorted_wrt_a @ ord_less_eq_a @ Xs ) ) ).

% sorted_insort
thf(fact_1198_insort__remove1,axiom,
    ! [A: nat,Xs: list_nat] :
      ( ( member_nat @ A @ ( set_nat2 @ Xs ) )
     => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
       => ( ( linord8961336180081300637at_nat
            @ ^ [X3: nat] : X3
            @ A
            @ ( remove1_nat @ A @ Xs ) )
          = Xs ) ) ) ).

% insort_remove1
thf(fact_1199_insort__remove1,axiom,
    ! [A: a,Xs: list_a] :
      ( ( member_a @ A @ ( set_a2 @ Xs ) )
     => ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
       => ( ( linord5015558716440999803ey_a_a
            @ ^ [X3: a] : X3
            @ A
            @ ( remove1_a @ A @ Xs ) )
          = Xs ) ) ) ).

% insort_remove1
thf(fact_1200_sorted__antimono__suffix,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( suffix_nat @ Xs @ Ys )
     => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Ys )
       => ( sorted_wrt_nat @ ord_less_eq_nat @ Xs ) ) ) ).

% sorted_antimono_suffix
thf(fact_1201_sorted__antimono__suffix,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( suffix_a @ Xs @ Ys )
     => ( ( sorted_wrt_a @ ord_less_eq_a @ Ys )
       => ( sorted_wrt_a @ ord_less_eq_a @ Xs ) ) ) ).

% sorted_antimono_suffix
thf(fact_1202_suffix__length__suffix,axiom,
    ! [Ps: list_a,Xs: list_a,Qs: list_a] :
      ( ( suffix_a @ Ps @ Xs )
     => ( ( suffix_a @ Qs @ Xs )
       => ( ( ord_less_eq_nat @ ( size_size_list_a @ Ps ) @ ( size_size_list_a @ Qs ) )
         => ( suffix_a @ Ps @ Qs ) ) ) ) ).

% suffix_length_suffix
thf(fact_1203_suffix__length__suffix,axiom,
    ! [Ps: list_nat,Xs: list_nat,Qs: list_nat] :
      ( ( suffix_nat @ Ps @ Xs )
     => ( ( suffix_nat @ Qs @ Xs )
       => ( ( ord_less_eq_nat @ ( size_size_list_nat @ Ps ) @ ( size_size_list_nat @ Qs ) )
         => ( suffix_nat @ Ps @ Qs ) ) ) ) ).

% suffix_length_suffix
thf(fact_1204_filter__mono__suffix,axiom,
    ! [Xs: list_a,Ys: list_a,P: a > $o] :
      ( ( suffix_a @ Xs @ Ys )
     => ( suffix_a @ ( filter_a @ P @ Xs ) @ ( filter_a @ P @ Ys ) ) ) ).

% filter_mono_suffix
thf(fact_1205_suffix__length__le,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( suffix_a @ Xs @ Ys )
     => ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ ( size_size_list_a @ Ys ) ) ) ).

% suffix_length_le
thf(fact_1206_suffix__length__le,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( suffix_nat @ Xs @ Ys )
     => ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) ) ).

% suffix_length_le
thf(fact_1207_take__Suc__conv__app__nth,axiom,
    ! [I: nat,Xs: list_a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( take_a @ ( suc @ I ) @ Xs )
        = ( append_a @ ( take_a @ I @ Xs ) @ ( cons_a @ ( nth_a @ Xs @ I ) @ nil_a ) ) ) ) ).

% take_Suc_conv_app_nth
thf(fact_1208_take__Suc__conv__app__nth,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( take_nat @ ( suc @ I ) @ Xs )
        = ( append_nat @ ( take_nat @ I @ Xs ) @ ( cons_nat @ ( nth_nat @ Xs @ I ) @ nil_nat ) ) ) ) ).

% take_Suc_conv_app_nth
thf(fact_1209_take__all,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ N )
     => ( ( take_a @ N @ Xs )
        = Xs ) ) ).

% take_all
thf(fact_1210_take__all,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ N )
     => ( ( take_nat @ N @ Xs )
        = Xs ) ) ).

% take_all
thf(fact_1211_take__all__iff,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ( take_a @ N @ Xs )
        = Xs )
      = ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ N ) ) ).

% take_all_iff
thf(fact_1212_take__all__iff,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ( take_nat @ N @ Xs )
        = Xs )
      = ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ N ) ) ).

% take_all_iff
thf(fact_1213_nth__take,axiom,
    ! [I: nat,N: nat,Xs: list_a] :
      ( ( ord_less_nat @ I @ N )
     => ( ( nth_a @ ( take_a @ N @ Xs ) @ I )
        = ( nth_a @ Xs @ I ) ) ) ).

% nth_take
thf(fact_1214_nth__take,axiom,
    ! [I: nat,N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ I @ N )
     => ( ( nth_nat @ ( take_nat @ N @ Xs ) @ I )
        = ( nth_nat @ Xs @ I ) ) ) ).

% nth_take
thf(fact_1215_take__append,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a] :
      ( ( take_a @ N @ ( append_a @ Xs @ Ys ) )
      = ( append_a @ ( take_a @ N @ Xs ) @ ( take_a @ ( minus_minus_nat @ N @ ( size_size_list_a @ Xs ) ) @ Ys ) ) ) ).

% take_append
thf(fact_1216_take__append,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat] :
      ( ( take_nat @ N @ ( append_nat @ Xs @ Ys ) )
      = ( append_nat @ ( take_nat @ N @ Xs ) @ ( take_nat @ ( minus_minus_nat @ N @ ( size_size_list_nat @ Xs ) ) @ Ys ) ) ) ).

% take_append
thf(fact_1217_length__butlast,axiom,
    ! [Xs: list_a] :
      ( ( size_size_list_a @ ( butlast_a @ Xs ) )
      = ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) ) ).

% length_butlast
thf(fact_1218_length__butlast,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( butlast_nat @ Xs ) )
      = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) ) ).

% length_butlast
thf(fact_1219_in__set__butlast__appendI,axiom,
    ! [X2: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ( member_nat @ X2 @ ( set_nat2 @ ( butlast_nat @ Xs ) ) )
        | ( member_nat @ X2 @ ( set_nat2 @ ( butlast_nat @ Ys ) ) ) )
     => ( member_nat @ X2 @ ( set_nat2 @ ( butlast_nat @ ( append_nat @ Xs @ Ys ) ) ) ) ) ).

% in_set_butlast_appendI
thf(fact_1220_take__butlast,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( take_a @ N @ ( butlast_a @ Xs ) )
        = ( take_a @ N @ Xs ) ) ) ).

% take_butlast
thf(fact_1221_take__butlast,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( take_nat @ N @ ( butlast_nat @ Xs ) )
        = ( take_nat @ N @ Xs ) ) ) ).

% take_butlast
thf(fact_1222_butlast__take,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_eq_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( butlast_a @ ( take_a @ N @ Xs ) )
        = ( take_a @ ( minus_minus_nat @ N @ one_one_nat ) @ Xs ) ) ) ).

% butlast_take
thf(fact_1223_butlast__take,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( butlast_nat @ ( take_nat @ N @ Xs ) )
        = ( take_nat @ ( minus_minus_nat @ N @ one_one_nat ) @ Xs ) ) ) ).

% butlast_take
thf(fact_1224_butlast__conv__take,axiom,
    ( butlast_a
    = ( ^ [Xs2: list_a] : ( take_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs2 ) @ one_one_nat ) @ Xs2 ) ) ) ).

% butlast_conv_take
thf(fact_1225_butlast__conv__take,axiom,
    ( butlast_nat
    = ( ^ [Xs2: list_nat] : ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs2 ) @ one_one_nat ) @ Xs2 ) ) ) ).

% butlast_conv_take
thf(fact_1226_sorted__take,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( take_nat @ N @ Xs ) ) ) ).

% sorted_take
thf(fact_1227_sorted__take,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ ( take_a @ N @ Xs ) ) ) ).

% sorted_take
thf(fact_1228_in__set__takeD,axiom,
    ! [X2: nat,N: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ( take_nat @ N @ Xs ) ) )
     => ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% in_set_takeD
thf(fact_1229_in__set__butlastD,axiom,
    ! [X2: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ( butlast_nat @ Xs ) ) )
     => ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% in_set_butlastD
thf(fact_1230_sorted__wrt__take,axiom,
    ! [F: a > a > $o,Xs: list_a,N: nat] :
      ( ( sorted_wrt_a @ F @ Xs )
     => ( sorted_wrt_a @ F @ ( take_a @ N @ Xs ) ) ) ).

% sorted_wrt_take
thf(fact_1231_sorted__wrt__take,axiom,
    ! [F: nat > nat > $o,Xs: list_nat,N: nat] :
      ( ( sorted_wrt_nat @ F @ Xs )
     => ( sorted_wrt_nat @ F @ ( take_nat @ N @ Xs ) ) ) ).

% sorted_wrt_take
thf(fact_1232_sorted__butlast,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
       => ( sorted_wrt_nat @ ord_less_eq_nat @ ( butlast_nat @ Xs ) ) ) ) ).

% sorted_butlast
thf(fact_1233_sorted__butlast,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
       => ( sorted_wrt_a @ ord_less_eq_a @ ( butlast_a @ Xs ) ) ) ) ).

% sorted_butlast
thf(fact_1234_nth__butlast,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ ( butlast_a @ Xs ) ) )
     => ( ( nth_a @ ( butlast_a @ Xs ) @ N )
        = ( nth_a @ Xs @ N ) ) ) ).

% nth_butlast
thf(fact_1235_nth__butlast,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ ( butlast_nat @ Xs ) ) )
     => ( ( nth_nat @ ( butlast_nat @ Xs ) @ N )
        = ( nth_nat @ Xs @ N ) ) ) ).

% nth_butlast
thf(fact_1236_nth__take__lemma,axiom,
    ! [K: nat,Xs: list_a,Ys: list_a] :
      ( ( ord_less_eq_nat @ K @ ( size_size_list_a @ Xs ) )
     => ( ( ord_less_eq_nat @ K @ ( size_size_list_a @ Ys ) )
       => ( ! [I3: nat] :
              ( ( ord_less_nat @ I3 @ K )
             => ( ( nth_a @ Xs @ I3 )
                = ( nth_a @ Ys @ I3 ) ) )
         => ( ( take_a @ K @ Xs )
            = ( take_a @ K @ Ys ) ) ) ) ) ).

% nth_take_lemma
thf(fact_1237_nth__take__lemma,axiom,
    ! [K: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ord_less_eq_nat @ K @ ( size_size_list_nat @ Xs ) )
     => ( ( ord_less_eq_nat @ K @ ( size_size_list_nat @ Ys ) )
       => ( ! [I3: nat] :
              ( ( ord_less_nat @ I3 @ K )
             => ( ( nth_nat @ Xs @ I3 )
                = ( nth_nat @ Ys @ I3 ) ) )
         => ( ( take_nat @ K @ Xs )
            = ( take_nat @ K @ Ys ) ) ) ) ) ).

% nth_take_lemma
thf(fact_1238_suffix__take,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( suffix_a @ Xs @ Ys )
     => ( Ys
        = ( append_a @ ( take_a @ ( minus_minus_nat @ ( size_size_list_a @ Ys ) @ ( size_size_list_a @ Xs ) ) @ Ys ) @ Xs ) ) ) ).

% suffix_take
thf(fact_1239_suffix__take,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( suffix_nat @ Xs @ Ys )
     => ( Ys
        = ( append_nat @ ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Ys ) @ ( size_size_list_nat @ Xs ) ) @ Ys ) @ Xs ) ) ) ).

% suffix_take
thf(fact_1240_butlast__list__update,axiom,
    ! [K: nat,Xs: list_a,X2: a] :
      ( ( ( K
          = ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) )
       => ( ( butlast_a @ ( list_update_a @ Xs @ K @ X2 ) )
          = ( butlast_a @ Xs ) ) )
      & ( ( K
         != ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ one_one_nat ) )
       => ( ( butlast_a @ ( list_update_a @ Xs @ K @ X2 ) )
          = ( list_update_a @ ( butlast_a @ Xs ) @ K @ X2 ) ) ) ) ).

% butlast_list_update
thf(fact_1241_butlast__list__update,axiom,
    ! [K: nat,Xs: list_nat,X2: nat] :
      ( ( ( K
          = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
       => ( ( butlast_nat @ ( list_update_nat @ Xs @ K @ X2 ) )
          = ( butlast_nat @ Xs ) ) )
      & ( ( K
         != ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
       => ( ( butlast_nat @ ( list_update_nat @ Xs @ K @ X2 ) )
          = ( list_update_nat @ ( butlast_nat @ Xs ) @ K @ X2 ) ) ) ) ).

% butlast_list_update
thf(fact_1242_upd__conv__take__nth__drop,axiom,
    ! [I: nat,Xs: list_a,A: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( list_update_a @ Xs @ I @ A )
        = ( append_a @ ( take_a @ I @ Xs ) @ ( cons_a @ A @ ( drop_a @ ( suc @ I ) @ Xs ) ) ) ) ) ).

% upd_conv_take_nth_drop
thf(fact_1243_upd__conv__take__nth__drop,axiom,
    ! [I: nat,Xs: list_nat,A: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( list_update_nat @ Xs @ I @ A )
        = ( append_nat @ ( take_nat @ I @ Xs ) @ ( cons_nat @ A @ ( drop_nat @ ( suc @ I ) @ Xs ) ) ) ) ) ).

% upd_conv_take_nth_drop
thf(fact_1244_id__take__nth__drop,axiom,
    ! [I: nat,Xs: list_a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( Xs
        = ( append_a @ ( take_a @ I @ Xs ) @ ( cons_a @ ( nth_a @ Xs @ I ) @ ( drop_a @ ( suc @ I ) @ Xs ) ) ) ) ) ).

% id_take_nth_drop
thf(fact_1245_id__take__nth__drop,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( Xs
        = ( append_nat @ ( take_nat @ I @ Xs ) @ ( cons_nat @ ( nth_nat @ Xs @ I ) @ ( drop_nat @ ( suc @ I ) @ Xs ) ) ) ) ) ).

% id_take_nth_drop
thf(fact_1246_length__drop,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( size_size_list_a @ ( drop_a @ N @ Xs ) )
      = ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ N ) ) ).

% length_drop
thf(fact_1247_length__drop,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( drop_nat @ N @ Xs ) )
      = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ N ) ) ).

% length_drop
thf(fact_1248_drop__eq__Nil2,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( nil_a
        = ( drop_a @ N @ Xs ) )
      = ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ N ) ) ).

% drop_eq_Nil2
thf(fact_1249_drop__eq__Nil2,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( nil_nat
        = ( drop_nat @ N @ Xs ) )
      = ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ N ) ) ).

% drop_eq_Nil2
thf(fact_1250_drop__eq__Nil,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ( drop_a @ N @ Xs )
        = nil_a )
      = ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ N ) ) ).

% drop_eq_Nil
thf(fact_1251_drop__eq__Nil,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ( drop_nat @ N @ Xs )
        = nil_nat )
      = ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ N ) ) ).

% drop_eq_Nil
thf(fact_1252_drop__all,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs ) @ N )
     => ( ( drop_a @ N @ Xs )
        = nil_a ) ) ).

% drop_all
thf(fact_1253_drop__all,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ N )
     => ( ( drop_nat @ N @ Xs )
        = nil_nat ) ) ).

% drop_all
thf(fact_1254_drop__append,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a] :
      ( ( drop_a @ N @ ( append_a @ Xs @ Ys ) )
      = ( append_a @ ( drop_a @ N @ Xs ) @ ( drop_a @ ( minus_minus_nat @ N @ ( size_size_list_a @ Xs ) ) @ Ys ) ) ) ).

% drop_append
thf(fact_1255_drop__append,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat] :
      ( ( drop_nat @ N @ ( append_nat @ Xs @ Ys ) )
      = ( append_nat @ ( drop_nat @ N @ Xs ) @ ( drop_nat @ ( minus_minus_nat @ N @ ( size_size_list_nat @ Xs ) ) @ Ys ) ) ) ).

% drop_append
thf(fact_1256_last__drop,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( last_a @ ( drop_a @ N @ Xs ) )
        = ( last_a @ Xs ) ) ) ).

% last_drop
thf(fact_1257_last__drop,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( last_nat @ ( drop_nat @ N @ Xs ) )
        = ( last_nat @ Xs ) ) ) ).

% last_drop
thf(fact_1258_append__eq__conv__conj,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = Zs )
      = ( ( Xs
          = ( take_a @ ( size_size_list_a @ Xs ) @ Zs ) )
        & ( Ys
          = ( drop_a @ ( size_size_list_a @ Xs ) @ Zs ) ) ) ) ).

% append_eq_conv_conj
thf(fact_1259_append__eq__conv__conj,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ( ( append_nat @ Xs @ Ys )
        = Zs )
      = ( ( Xs
          = ( take_nat @ ( size_size_list_nat @ Xs ) @ Zs ) )
        & ( Ys
          = ( drop_nat @ ( size_size_list_nat @ Xs ) @ Zs ) ) ) ) ).

% append_eq_conv_conj
thf(fact_1260_sorted__wrt__drop,axiom,
    ! [F: a > a > $o,Xs: list_a,N: nat] :
      ( ( sorted_wrt_a @ F @ Xs )
     => ( sorted_wrt_a @ F @ ( drop_a @ N @ Xs ) ) ) ).

% sorted_wrt_drop
thf(fact_1261_sorted__wrt__drop,axiom,
    ! [F: nat > nat > $o,Xs: list_nat,N: nat] :
      ( ( sorted_wrt_nat @ F @ Xs )
     => ( sorted_wrt_nat @ F @ ( drop_nat @ N @ Xs ) ) ) ).

% sorted_wrt_drop
thf(fact_1262_in__set__dropD,axiom,
    ! [X2: nat,N: nat,Xs: list_nat] :
      ( ( member_nat @ X2 @ ( set_nat2 @ ( drop_nat @ N @ Xs ) ) )
     => ( member_nat @ X2 @ ( set_nat2 @ Xs ) ) ) ).

% in_set_dropD
thf(fact_1263_nth__via__drop,axiom,
    ! [N: nat,Xs: list_a,Y3: a,Ys: list_a] :
      ( ( ( drop_a @ N @ Xs )
        = ( cons_a @ Y3 @ Ys ) )
     => ( ( nth_a @ Xs @ N )
        = Y3 ) ) ).

% nth_via_drop
thf(fact_1264_nth__via__drop,axiom,
    ! [N: nat,Xs: list_nat,Y3: nat,Ys: list_nat] :
      ( ( ( drop_nat @ N @ Xs )
        = ( cons_nat @ Y3 @ Ys ) )
     => ( ( nth_nat @ Xs @ N )
        = Y3 ) ) ).

% nth_via_drop
thf(fact_1265_sorted__drop,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( drop_nat @ N @ Xs ) ) ) ).

% sorted_drop
thf(fact_1266_sorted__drop,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( sorted_wrt_a @ ord_less_eq_a @ Xs )
     => ( sorted_wrt_a @ ord_less_eq_a @ ( drop_a @ N @ Xs ) ) ) ).

% sorted_drop

% Conjectures (1)
thf(conj_0,conjecture,
    ( ord_less_eq_nat
    @ ( finite_card_nat
      @ ( collect_nat
        @ ^ [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_a @ xs ) )
            & ( ord_less_eq_a @ ( nth_a @ xs @ I2 ) @ x ) ) ) )
    @ ( finite_card_nat
      @ ( collect_nat
        @ ^ [I2: nat] : ( ord_less_nat @ I2 @ k ) ) ) ) ).

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