TPTP Problem File: ITP078^2.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP078^2 : TPTP v8.2.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer Hilbert_Function problem prob_85__11621656_1
% Version  : Especial.
% English  :

% Refs     : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
%          : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source   : [Des21]
% Names    : Hilbert_Function/prob_85__11621656_1 [Des21]

% Status   : Theorem
% Rating   : 0.00 v8.1.0, 0.25 v7.5.0
% Syntax   : Number of formulae    :  393 ( 144 unt;  63 typ;   0 def)
%            Number of atoms       :  827 ( 318 equ;   0 cnn)
%            Maximal formula atoms :    6 (   2 avg)
%            Number of connectives : 3345 (  68   ~;   3   |;  30   &;2920   @)
%                                         (   0 <=>; 324  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   19 (   6 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :  217 ( 217   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   62 (  59 usr;   4 con; 0-6 aty)
%            Number of variables   :  943 (  35   ^; 826   !;  23   ?; 943   :)
%                                         (  59  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 16:21:51.858
%------------------------------------------------------------------------------
% Could-be-implicit typings (7)
thf(ty_t_Multiset_Omultiset,type,
    multiset: $tType > $tType ).

thf(ty_t_Real_Oreal,type,
    real: $tType ).

thf(ty_t_List_Olist,type,
    list: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

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

thf(ty_t_Int_Oint,type,
    int: $tType ).

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

% Explicit typings (56)
thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Odioid,type,
    dioid: 
      !>[A: $tType] : $o ).

thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : $o ).

thf(sy_cl_Nat_Osize,type,
    size: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ozero,type,
    zero: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Ofield,type,
    field: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Oring__1,type,
    ring_1: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : $o ).

thf(sy_cl_Nat_Oring__char__0,type,
    ring_char_0: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ogroup__add,type,
    group_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Osemiring__1,type,
    semiring_1: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Nat_Osemiring__char__0,type,
    semiring_char_0: 
      !>[A: $tType] : $o ).

thf(sy_cl_Orderings_Owellorder,type,
    wellorder: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Odivision__ring,type,
    division_ring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : $o ).

thf(sy_cl_Fields_Olinordered__field,type,
    linordered_field: 
      !>[A: $tType] : $o ).

thf(sy_cl_Lattices_Oboolean__algebra,type,
    boolean_algebra: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Oordered__ab__group__add,type,
    ordered_ab_group_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Olinordered__ab__group__add,type,
    linord219039673up_add: 
      !>[A: $tType] : $o ).

thf(sy_cl_Rings_Olinordered__nonzero__semiring,type,
    linord1659791738miring: 
      !>[A: $tType] : $o ).

thf(sy_cl_Archimedean__Field_Oarchimedean__field,type,
    archim1804426504_field: 
      !>[A: $tType] : $o ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : $o ).

thf(sy_c_Fields_Oinverse__class_Oinverse,type,
    inverse_inverse: 
      !>[A: $tType] : ( A > A ) ).

thf(sy_c_Fun_Obij__betw,type,
    bij_betw: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ A ) > ( set @ B ) > $o ) ).

thf(sy_c_Fun_Ocomp,type,
    comp: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > B ) > A > C ) ).

thf(sy_c_Fun_Oinj__on,type,
    inj_on: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ A ) > $o ) ).

thf(sy_c_Groups_Ouminus__class_Ouminus,type,
    uminus_uminus: 
      !>[A: $tType] : ( A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Int_Onat,type,
    nat2: int > nat ).

thf(sy_c_Int_Oring__1__class_Oof__int,type,
    ring_1_of_int: 
      !>[A: $tType] : ( int > A ) ).

thf(sy_c_List_Ogen__length,type,
    gen_length: 
      !>[A: $tType] : ( nat > ( list @ A ) > nat ) ).

thf(sy_c_List_Olist_Omap,type,
    map: 
      !>[A: $tType,Aa: $tType] : ( ( A > Aa ) > ( list @ A ) > ( list @ Aa ) ) ).

thf(sy_c_List_Olist__ex,type,
    list_ex: 
      !>[A: $tType] : ( ( A > $o ) > ( list @ A ) > $o ) ).

thf(sy_c_List_Omap__tailrec,type,
    map_tailrec: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( list @ A ) > ( list @ B ) ) ).

thf(sy_c_List_Onth,type,
    nth: 
      !>[A: $tType] : ( ( list @ A ) > nat > A ) ).

thf(sy_c_List_Oupt,type,
    upt: nat > nat > ( list @ nat ) ).

thf(sy_c_Multiset_Oimage__mset,type,
    image_mset: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( multiset @ A ) > ( multiset @ B ) ) ).

thf(sy_c_Multiset_Ois__empty,type,
    is_empty: 
      !>[A: $tType] : ( ( multiset @ A ) > $o ) ).

thf(sy_c_Multiset_Omset,type,
    mset: 
      !>[A: $tType] : ( ( list @ A ) > ( multiset @ A ) ) ).

thf(sy_c_Multiset_Omset__set,type,
    mset_set: 
      !>[B: $tType] : ( ( set @ B ) > ( multiset @ B ) ) ).

thf(sy_c_Multiset_Osize__multiset,type,
    size_multiset: 
      !>[A: $tType] : ( ( A > nat ) > ( multiset @ A ) > nat ) ).

thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
    semiring_1_of_nat: 
      !>[A: $tType] : ( nat > A ) ).

thf(sy_c_Nat_Osize__class_Osize,type,
    size_size: 
      !>[A: $tType] : ( A > nat ) ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set_Oimage,type,
    image: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ A ) > ( set @ B ) ) ).

thf(sy_c_Set__Interval_Oord__class_OatLeastLessThan,type,
    set_or1433837966ssThan: 
      !>[A: $tType] : ( A > A > ( set @ A ) ) ).

thf(sy_c_Set__Interval_Oord__class_OlessThan,type,
    set_ord_lessThan: 
      !>[A: $tType] : ( A > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

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

thf(sy_v_xs,type,
    xs: list @ a ).

thf(sy_v_ys,type,
    ys: list @ a ).

% Relevant facts (254)
thf(fact_0__C1_C,axiom,
    inj_on @ nat @ nat @ f @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ).

% "1"
thf(fact_1_calculation,axiom,
    ( ( mset @ a @ xs )
    = ( image_mset @ nat @ a @ ( nth @ a @ ys ) @ ( image_mset @ nat @ nat @ f @ ( mset_set @ nat @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) ) ) ) ).

% calculation
thf(fact_2_assms_I2_J,axiom,
    ! [I: nat] :
      ( ( ord_less @ nat @ I @ ( size_size @ ( list @ a ) @ xs ) )
     => ( ( nth @ a @ xs @ I )
        = ( nth @ a @ ys @ ( f @ I ) ) ) ) ).

% assms(2)
thf(fact_3__C2_C,axiom,
    ( ( image @ nat @ nat @ f @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) )
    = ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ ys ) ) ) ).

% "2"
thf(fact_4_zero__fun__apply,axiom,
    ! [A: $tType,B: $tType] :
      ( ( zero @ A )
     => ( ( zero_zero @ ( B > A ) )
        = ( ^ [X: B] : ( zero_zero @ A ) ) ) ) ).

% zero_fun_apply
thf(fact_5_assms_I1_J,axiom,
    bij_betw @ nat @ nat @ f @ ( set_ord_lessThan @ nat @ ( size_size @ ( list @ a ) @ xs ) ) @ ( set_ord_lessThan @ nat @ ( size_size @ ( list @ a ) @ ys ) ) ).

% assms(1)
thf(fact_6__092_060open_062mset_A_Imap_A_I_I_B_J_Ays_A_092_060circ_062_Af_J_A_0910_O_O_060length_Axs_093_J_A_061_Aimage__mset_A_I_I_B_J_Ays_J_A_Iimage__mset_Af_A_Imset__set_A_1230_O_O_060length_Axs_125_J_J_092_060close_062,axiom,
    ( ( mset @ a @ ( map @ nat @ a @ ( comp @ nat @ a @ nat @ ( nth @ a @ ys ) @ f ) @ ( upt @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) )
    = ( image_mset @ nat @ a @ ( nth @ a @ ys ) @ ( image_mset @ nat @ nat @ f @ ( mset_set @ nat @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) ) ) ) ).

% \<open>mset (map ((!) ys \<circ> f) [0..<length xs]) = image_mset ((!) ys) (image_mset f (mset_set {0..<length xs}))\<close>
thf(fact_7__092_060open_062xs_A_061_Amap_A_I_I_B_J_Ays_A_092_060circ_062_Af_J_A_0910_O_O_060length_Axs_093_092_060close_062,axiom,
    ( xs
    = ( map @ nat @ a @ ( comp @ nat @ a @ nat @ ( nth @ a @ ys ) @ f ) @ ( upt @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) ) ).

% \<open>xs = map ((!) ys \<circ> f) [0..<length xs]\<close>
thf(fact_8_Ex__list__of__length,axiom,
    ! [A: $tType,N: nat] :
    ? [Xs: list @ A] :
      ( ( size_size @ ( list @ A ) @ Xs )
      = N ) ).

% Ex_list_of_length
thf(fact_9_neq__if__length__neq,axiom,
    ! [A: $tType,Xs2: list @ A,Ys: list @ A] :
      ( ( ( size_size @ ( list @ A ) @ Xs2 )
       != ( size_size @ ( list @ A ) @ Ys ) )
     => ( Xs2 != Ys ) ) ).

% neq_if_length_neq
thf(fact_10_size__neq__size__imp__neq,axiom,
    ! [A: $tType] :
      ( ( size @ A )
     => ! [X2: A,Y: A] :
          ( ( ( size_size @ A @ X2 )
           != ( size_size @ A @ Y ) )
         => ( X2 != Y ) ) ) ).

% size_neq_size_imp_neq
thf(fact_11_not__gr__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% not_gr_zero
thf(fact_12_bot__nat__0_Onot__eq__extremum,axiom,
    ! [A2: nat] :
      ( ( A2
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ A2 ) ) ).

% bot_nat_0.not_eq_extremum
thf(fact_13_less__nat__zero__code,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_nat_zero_code
thf(fact_14_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% neq0_conv
thf(fact_15_map__map,axiom,
    ! [B: $tType,A: $tType,C: $tType,F: B > A,G: C > B,Xs2: list @ C] :
      ( ( map @ B @ A @ F @ ( map @ C @ B @ G @ Xs2 ) )
      = ( map @ C @ A @ ( comp @ B @ A @ C @ F @ G ) @ Xs2 ) ) ).

% map_map
thf(fact_16_List_Omap_Ocomp,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: B > C,G: A > B] :
      ( ( comp @ ( list @ B ) @ ( list @ C ) @ ( list @ A ) @ ( map @ B @ C @ F ) @ ( map @ A @ B @ G ) )
      = ( map @ A @ C @ ( comp @ B @ C @ A @ F @ G ) ) ) ).

% List.map.comp
thf(fact_17_map__comp__map,axiom,
    ! [B: $tType,C: $tType,A: $tType,F: C > B,G: A > C] :
      ( ( comp @ ( list @ C ) @ ( list @ B ) @ ( list @ A ) @ ( map @ C @ B @ F ) @ ( map @ A @ C @ G ) )
      = ( map @ A @ B @ ( comp @ C @ B @ A @ F @ G ) ) ) ).

% map_comp_map
thf(fact_18_list_Omap__comp,axiom,
    ! [B: $tType,C: $tType,A: $tType,G: B > C,F: A > B,V: list @ A] :
      ( ( map @ B @ C @ G @ ( map @ A @ B @ F @ V ) )
      = ( map @ A @ C @ ( comp @ B @ C @ A @ G @ F ) @ V ) ) ).

% list.map_comp
thf(fact_19_List_Omap_Ocompositionality,axiom,
    ! [B: $tType,C: $tType,A: $tType,F: B > C,G: A > B,List: list @ A] :
      ( ( map @ B @ C @ F @ ( map @ A @ B @ G @ List ) )
      = ( map @ A @ C @ ( comp @ B @ C @ A @ F @ G ) @ List ) ) ).

% List.map.compositionality
thf(fact_20_length__map,axiom,
    ! [A: $tType,B: $tType,F: B > A,Xs2: list @ B] :
      ( ( size_size @ ( list @ A ) @ ( map @ B @ A @ F @ Xs2 ) )
      = ( size_size @ ( list @ B ) @ Xs2 ) ) ).

% length_map
thf(fact_21_nth__map,axiom,
    ! [B: $tType,A: $tType,N: nat,Xs2: list @ A,F: A > B] :
      ( ( ord_less @ nat @ N @ ( size_size @ ( list @ A ) @ Xs2 ) )
     => ( ( nth @ B @ ( map @ A @ B @ F @ Xs2 ) @ N )
        = ( F @ ( nth @ A @ Xs2 @ N ) ) ) ) ).

% nth_map
thf(fact_22__092_060open_062mset_Axs_A_061_Amset_A_Imap_A_I_I_B_J_Ays_A_092_060circ_062_Af_J_A_0910_O_O_060length_Axs_093_J_092_060close_062,axiom,
    ( ( mset @ a @ xs )
    = ( mset @ a @ ( map @ nat @ a @ ( comp @ nat @ a @ nat @ ( nth @ a @ ys ) @ f ) @ ( upt @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) ) ) ).

% \<open>mset xs = mset (map ((!) ys \<circ> f) [0..<length xs])\<close>
thf(fact_23_nat__neq__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( M != N )
      = ( ( ord_less @ nat @ M @ N )
        | ( ord_less @ nat @ N @ M ) ) ) ).

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

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

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

% less_not_refl3
thf(fact_27_measure__induct,axiom,
    ! [B: $tType,A: $tType] :
      ( ( wellorder @ B )
     => ! [F: A > B,P: A > $o,A2: A] :
          ( ! [X3: A] :
              ( ! [Y2: A] :
                  ( ( ord_less @ B @ ( F @ Y2 ) @ ( F @ X3 ) )
                 => ( P @ Y2 ) )
             => ( P @ X3 ) )
         => ( P @ A2 ) ) ) ).

% measure_induct
thf(fact_28_less__irrefl__nat,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_irrefl_nat
thf(fact_29_nat__less__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ! [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% nat_less_induct
thf(fact_30_infinite__descent,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ~ ( P @ N2 )
         => ? [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
              & ~ ( P @ M2 ) ) )
     => ( P @ N ) ) ).

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

% linorder_neqE_nat
thf(fact_32_measure__induct__rule,axiom,
    ! [B: $tType,A: $tType] :
      ( ( wellorder @ B )
     => ! [F: A > B,P: A > $o,A2: A] :
          ( ! [X3: A] :
              ( ! [Y2: A] :
                  ( ( ord_less @ B @ ( F @ Y2 ) @ ( F @ X3 ) )
                 => ( P @ Y2 ) )
             => ( P @ X3 ) )
         => ( P @ A2 ) ) ) ).

% measure_induct_rule
thf(fact_33_infinite__descent__measure,axiom,
    ! [A: $tType,P: A > $o,V2: A > nat,X2: A] :
      ( ! [X3: A] :
          ( ~ ( P @ X3 )
         => ? [Y2: A] :
              ( ( ord_less @ nat @ ( V2 @ Y2 ) @ ( V2 @ X3 ) )
              & ~ ( P @ Y2 ) ) )
     => ( P @ X2 ) ) ).

% infinite_descent_measure
thf(fact_34_map__eq__imp__length__eq,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: B > A,Xs2: list @ B,G: C > A,Ys: list @ C] :
      ( ( ( map @ B @ A @ F @ Xs2 )
        = ( map @ C @ A @ G @ Ys ) )
     => ( ( size_size @ ( list @ B ) @ Xs2 )
        = ( size_size @ ( list @ C ) @ Ys ) ) ) ).

% map_eq_imp_length_eq
thf(fact_35_zero__less__iff__neq__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ N )
          = ( N
           != ( zero_zero @ A ) ) ) ) ).

% zero_less_iff_neq_zero
thf(fact_36_gr__implies__not__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [M: A,N: A] :
          ( ( ord_less @ A @ M @ N )
         => ( N
           != ( zero_zero @ A ) ) ) ) ).

% gr_implies_not_zero
thf(fact_37_not__less__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ~ ( ord_less @ A @ N @ ( zero_zero @ A ) ) ) ).

% not_less_zero
thf(fact_38_gr__zeroI,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( N
           != ( zero_zero @ A ) )
         => ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).

% gr_zeroI
thf(fact_39_infinite__descent0__measure,axiom,
    ! [A: $tType,V2: A > nat,P: A > $o,X2: A] :
      ( ! [X3: A] :
          ( ( ( V2 @ X3 )
            = ( zero_zero @ nat ) )
         => ( P @ X3 ) )
     => ( ! [X3: A] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V2 @ X3 ) )
           => ( ~ ( P @ X3 )
             => ? [Y2: A] :
                  ( ( ord_less @ nat @ ( V2 @ Y2 ) @ ( V2 @ X3 ) )
                  & ~ ( P @ Y2 ) ) ) )
       => ( P @ X2 ) ) ) ).

% infinite_descent0_measure
thf(fact_40_bot__nat__0_Oextremum__strict,axiom,
    ! [A2: nat] :
      ~ ( ord_less @ nat @ A2 @ ( zero_zero @ nat ) ) ).

% bot_nat_0.extremum_strict
thf(fact_41_infinite__descent0,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N2: nat] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
           => ( ~ ( P @ N2 )
             => ? [M2: nat] :
                  ( ( ord_less @ nat @ M2 @ N2 )
                  & ~ ( P @ M2 ) ) ) )
       => ( P @ N ) ) ) ).

% infinite_descent0
thf(fact_42_gr__implies__not0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( N
       != ( zero_zero @ nat ) ) ) ).

% gr_implies_not0
thf(fact_43_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_44_Collect__mem__eq,axiom,
    ! [A: $tType,A3: set @ A] :
      ( ( collect @ A
        @ ^ [X: A] : ( member @ A @ X @ A3 ) )
      = A3 ) ).

% Collect_mem_eq
thf(fact_45_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X3: A] :
          ( ( P @ X3 )
          = ( Q @ X3 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_46_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X3: A] :
          ( ( F @ X3 )
          = ( G @ X3 ) )
     => ( F = G ) ) ).

% ext
thf(fact_47_less__zeroE,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_zeroE
thf(fact_48_not__less0,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% not_less0
thf(fact_49_not__gr0,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% not_gr0
thf(fact_50_gr0I,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% gr0I
thf(fact_51_length__induct,axiom,
    ! [A: $tType,P: ( list @ A ) > $o,Xs2: list @ A] :
      ( ! [Xs: list @ A] :
          ( ! [Ys2: list @ A] :
              ( ( ord_less @ nat @ ( size_size @ ( list @ A ) @ Ys2 ) @ ( size_size @ ( list @ A ) @ Xs ) )
             => ( P @ Ys2 ) )
         => ( P @ Xs ) )
     => ( P @ Xs2 ) ) ).

% length_induct
thf(fact_52_all__nat__less__eq,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [M3: nat] :
            ( ( ord_less @ nat @ M3 @ N )
           => ( P @ M3 ) ) )
      = ( ! [X: nat] :
            ( ( member @ nat @ X @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ N ) )
           => ( P @ X ) ) ) ) ).

% all_nat_less_eq
thf(fact_53_ex__nat__less__eq,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ? [M3: nat] :
            ( ( ord_less @ nat @ M3 @ N )
            & ( P @ M3 ) ) )
      = ( ? [X: nat] :
            ( ( member @ nat @ X @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ N ) )
            & ( P @ X ) ) ) ) ).

% ex_nat_less_eq
thf(fact_54_list__eq__iff__nth__eq,axiom,
    ! [A: $tType] :
      ( ( ^ [Y3: list @ A,Z: list @ A] : Y3 = Z )
      = ( ^ [Xs3: list @ A,Ys3: list @ A] :
            ( ( ( size_size @ ( list @ A ) @ Xs3 )
              = ( size_size @ ( list @ A ) @ Ys3 ) )
            & ! [I2: nat] :
                ( ( ord_less @ nat @ I2 @ ( size_size @ ( list @ A ) @ Xs3 ) )
               => ( ( nth @ A @ Xs3 @ I2 )
                  = ( nth @ A @ Ys3 @ I2 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_55_Skolem__list__nth,axiom,
    ! [A: $tType,K: nat,P: nat > A > $o] :
      ( ( ! [I2: nat] :
            ( ( ord_less @ nat @ I2 @ K )
           => ? [X4: A] : ( P @ I2 @ X4 ) ) )
      = ( ? [Xs3: list @ A] :
            ( ( ( size_size @ ( list @ A ) @ Xs3 )
              = K )
            & ! [I2: nat] :
                ( ( ord_less @ nat @ I2 @ K )
               => ( P @ I2 @ ( nth @ A @ Xs3 @ I2 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_56_nth__equalityI,axiom,
    ! [A: $tType,Xs2: list @ A,Ys: list @ A] :
      ( ( ( size_size @ ( list @ A ) @ Xs2 )
        = ( size_size @ ( list @ A ) @ Ys ) )
     => ( ! [I3: nat] :
            ( ( ord_less @ nat @ I3 @ ( size_size @ ( list @ A ) @ Xs2 ) )
           => ( ( nth @ A @ Xs2 @ I3 )
              = ( nth @ A @ Ys @ I3 ) ) )
       => ( Xs2 = Ys ) ) ) ).

% nth_equalityI
thf(fact_57_zero__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( zero @ B )
     => ( ( zero_zero @ ( A > B ) )
        = ( ^ [X: A] : ( zero_zero @ B ) ) ) ) ).

% zero_fun_def
thf(fact_58_zero__reorient,axiom,
    ! [A: $tType] :
      ( ( zero @ A )
     => ! [X2: A] :
          ( ( ( zero_zero @ A )
            = X2 )
          = ( X2
            = ( zero_zero @ A ) ) ) ) ).

% zero_reorient
thf(fact_59_mset__map,axiom,
    ! [A: $tType,B: $tType,F: B > A,Xs2: list @ B] :
      ( ( mset @ A @ ( map @ B @ A @ F @ Xs2 ) )
      = ( image_mset @ B @ A @ F @ ( mset @ B @ Xs2 ) ) ) ).

% mset_map
thf(fact_60_size__mset,axiom,
    ! [A: $tType,Xs2: list @ A] :
      ( ( size_size @ ( multiset @ A ) @ ( mset @ A @ Xs2 ) )
      = ( size_size @ ( list @ A ) @ Xs2 ) ) ).

% size_mset
thf(fact_61_lessThan__iff,axiom,
    ! [A: $tType] :
      ( ( ord @ A )
     => ! [I: A,K: A] :
          ( ( member @ A @ I @ ( set_ord_lessThan @ A @ K ) )
          = ( ord_less @ A @ I @ K ) ) ) ).

% lessThan_iff
thf(fact_62_image__mset__mset__set,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( image_mset @ A @ B @ F @ ( mset_set @ A @ A3 ) )
        = ( mset_set @ B @ ( image @ A @ B @ F @ A3 ) ) ) ) ).

% image_mset_mset_set
thf(fact_63_lessThan__atLeast0,axiom,
    ( ( set_ord_lessThan @ nat )
    = ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) ) ) ).

% lessThan_atLeast0
thf(fact_64_bij__betw__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( bij_betw @ A @ B )
      = ( ^ [F2: A > B,A4: set @ A,B2: set @ B] :
            ( ( inj_on @ A @ B @ F2 @ A4 )
            & ( ( image @ A @ B @ F2 @ A4 )
              = B2 ) ) ) ) ).

% bij_betw_def
thf(fact_65_bij__betw__imageI,axiom,
    ! [A: $tType,B: $tType,F: A > B,A3: set @ A,B3: set @ B] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( ( image @ A @ B @ F @ A3 )
          = B3 )
       => ( bij_betw @ A @ B @ F @ A3 @ B3 ) ) ) ).

% bij_betw_imageI
thf(fact_66_inj__on__imp__bij__betw,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( bij_betw @ A @ B @ F @ A3 @ ( image @ A @ B @ F @ A3 ) ) ) ).

% inj_on_imp_bij_betw
thf(fact_67_comp__inj__on,axiom,
    ! [B: $tType,C: $tType,A: $tType,F: A > B,A3: set @ A,G: B > C] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( inj_on @ B @ C @ G @ ( image @ A @ B @ F @ A3 ) )
       => ( inj_on @ A @ C @ ( comp @ B @ C @ A @ G @ F ) @ A3 ) ) ) ).

% comp_inj_on
thf(fact_68_inj__on__imageI,axiom,
    ! [B: $tType,C: $tType,A: $tType,G: C > B,F: A > C,A3: set @ A] :
      ( ( inj_on @ A @ B @ ( comp @ C @ B @ A @ G @ F ) @ A3 )
     => ( inj_on @ C @ B @ G @ ( image @ A @ C @ F @ A3 ) ) ) ).

% inj_on_imageI
thf(fact_69_comp__inj__on__iff,axiom,
    ! [B: $tType,C: $tType,A: $tType,F: A > B,A3: set @ A,F3: B > C] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( inj_on @ B @ C @ F3 @ ( image @ A @ B @ F @ A3 ) )
        = ( inj_on @ A @ C @ ( comp @ B @ C @ A @ F3 @ F ) @ A3 ) ) ) ).

% comp_inj_on_iff
thf(fact_70_comp__apply,axiom,
    ! [C: $tType,A: $tType,B: $tType] :
      ( ( comp @ B @ A @ C )
      = ( ^ [F2: B > A,G2: C > B,X: C] : ( F2 @ ( G2 @ X ) ) ) ) ).

% comp_apply
thf(fact_71_lessThan__eq__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [X2: A,Y: A] :
          ( ( ( set_ord_lessThan @ A @ X2 )
            = ( set_ord_lessThan @ A @ Y ) )
          = ( X2 = Y ) ) ) ).

% lessThan_eq_iff
thf(fact_72_image__mset__empty,axiom,
    ! [B: $tType,A: $tType,F: B > A] :
      ( ( image_mset @ B @ A @ F @ ( zero_zero @ ( multiset @ B ) ) )
      = ( zero_zero @ ( multiset @ A ) ) ) ).

% image_mset_empty
thf(fact_73_image__mset__is__empty__iff,axiom,
    ! [A: $tType,B: $tType,F: B > A,M4: multiset @ B] :
      ( ( ( image_mset @ B @ A @ F @ M4 )
        = ( zero_zero @ ( multiset @ A ) ) )
      = ( M4
        = ( zero_zero @ ( multiset @ B ) ) ) ) ).

% image_mset_is_empty_iff
thf(fact_74_size__eq__0__iff__empty,axiom,
    ! [A: $tType,M4: multiset @ A] :
      ( ( ( size_size @ ( multiset @ A ) @ M4 )
        = ( zero_zero @ nat ) )
      = ( M4
        = ( zero_zero @ ( multiset @ A ) ) ) ) ).

% size_eq_0_iff_empty
thf(fact_75_size__empty,axiom,
    ! [A: $tType] :
      ( ( size_size @ ( multiset @ A ) @ ( zero_zero @ ( multiset @ A ) ) )
      = ( zero_zero @ nat ) ) ).

% size_empty
thf(fact_76_size__image__mset,axiom,
    ! [A: $tType,B: $tType,F: B > A,M4: multiset @ B] :
      ( ( size_size @ ( multiset @ A ) @ ( image_mset @ B @ A @ F @ M4 ) )
      = ( size_size @ ( multiset @ B ) @ M4 ) ) ).

% size_image_mset
thf(fact_77_mset__upt,axiom,
    ! [M: nat,N: nat] :
      ( ( mset @ nat @ ( upt @ M @ N ) )
      = ( mset_set @ nat @ ( set_or1433837966ssThan @ nat @ M @ N ) ) ) ).

% mset_upt
thf(fact_78_inj__on__strict__subset,axiom,
    ! [B: $tType,A: $tType,F: A > B,B3: set @ A,A3: set @ A] :
      ( ( inj_on @ A @ B @ F @ B3 )
     => ( ( ord_less @ ( set @ A ) @ A3 @ B3 )
       => ( ord_less @ ( set @ B ) @ ( image @ A @ B @ F @ A3 ) @ ( image @ A @ B @ F @ B3 ) ) ) ) ).

% inj_on_strict_subset
thf(fact_79_comp__eq__dest__lhs,axiom,
    ! [C: $tType,B: $tType,A: $tType,A2: C > B,B4: A > C,C2: A > B,V: A] :
      ( ( ( comp @ C @ B @ A @ A2 @ B4 )
        = C2 )
     => ( ( A2 @ ( B4 @ V ) )
        = ( C2 @ V ) ) ) ).

% comp_eq_dest_lhs
thf(fact_80_comp__eq__elim,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A2: C > B,B4: A > C,C2: D > B,D2: A > D] :
      ( ( ( comp @ C @ B @ A @ A2 @ B4 )
        = ( comp @ D @ B @ A @ C2 @ D2 ) )
     => ! [V3: A] :
          ( ( A2 @ ( B4 @ V3 ) )
          = ( C2 @ ( D2 @ V3 ) ) ) ) ).

% comp_eq_elim
thf(fact_81_comp__eq__dest,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A2: C > B,B4: A > C,C2: D > B,D2: A > D,V: A] :
      ( ( ( comp @ C @ B @ A @ A2 @ B4 )
        = ( comp @ D @ B @ A @ C2 @ D2 ) )
     => ( ( A2 @ ( B4 @ V ) )
        = ( C2 @ ( D2 @ V ) ) ) ) ).

% comp_eq_dest
thf(fact_82_comp__assoc,axiom,
    ! [B: $tType,D: $tType,C: $tType,A: $tType,F: D > B,G: C > D,H: A > C] :
      ( ( comp @ C @ B @ A @ ( comp @ D @ B @ C @ F @ G ) @ H )
      = ( comp @ D @ B @ A @ F @ ( comp @ C @ D @ A @ G @ H ) ) ) ).

% comp_assoc
thf(fact_83_comp__def,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( comp @ B @ C @ A )
      = ( ^ [F2: B > C,G2: A > B,X: A] : ( F2 @ ( G2 @ X ) ) ) ) ).

% comp_def
thf(fact_84_inj__on__inverseI,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,G: B > A,F: A > B] :
      ( ! [X3: A] :
          ( ( member @ A @ X3 @ A3 )
         => ( ( G @ ( F @ X3 ) )
            = X3 ) )
     => ( inj_on @ A @ B @ F @ A3 ) ) ).

% inj_on_inverseI
thf(fact_85_inj__on__contraD,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A,X2: A,Y: A] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( X2 != Y )
       => ( ( member @ A @ X2 @ A3 )
         => ( ( member @ A @ Y @ A3 )
           => ( ( F @ X2 )
             != ( F @ Y ) ) ) ) ) ) ).

% inj_on_contraD
thf(fact_86_inj__on__eq__iff,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A,X2: A,Y: A] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( member @ A @ X2 @ A3 )
       => ( ( member @ A @ Y @ A3 )
         => ( ( ( F @ X2 )
              = ( F @ Y ) )
            = ( X2 = Y ) ) ) ) ) ).

% inj_on_eq_iff
thf(fact_87_inj__on__cong,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,F: A > B,G: A > B] :
      ( ! [A5: A] :
          ( ( member @ A @ A5 @ A3 )
         => ( ( F @ A5 )
            = ( G @ A5 ) ) )
     => ( ( inj_on @ A @ B @ F @ A3 )
        = ( inj_on @ A @ B @ G @ A3 ) ) ) ).

% inj_on_cong
thf(fact_88_inj__on__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( inj_on @ A @ B )
      = ( ^ [F2: A > B,A4: set @ A] :
          ! [X: A] :
            ( ( member @ A @ X @ A4 )
           => ! [Y4: A] :
                ( ( member @ A @ Y4 @ A4 )
               => ( ( ( F2 @ X )
                    = ( F2 @ Y4 ) )
                 => ( X = Y4 ) ) ) ) ) ) ).

% inj_on_def
thf(fact_89_inj__onI,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,F: A > B] :
      ( ! [X3: A,Y5: A] :
          ( ( member @ A @ X3 @ A3 )
         => ( ( member @ A @ Y5 @ A3 )
           => ( ( ( F @ X3 )
                = ( F @ Y5 ) )
             => ( X3 = Y5 ) ) ) )
     => ( inj_on @ A @ B @ F @ A3 ) ) ).

% inj_onI
thf(fact_90_inj__onD,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A,X2: A,Y: A] :
      ( ( inj_on @ A @ B @ F @ A3 )
     => ( ( ( F @ X2 )
          = ( F @ Y ) )
       => ( ( member @ A @ X2 @ A3 )
         => ( ( member @ A @ Y @ A3 )
           => ( X2 = Y ) ) ) ) ) ).

% inj_onD
thf(fact_91_bij__betw__iff__bijections,axiom,
    ! [B: $tType,A: $tType] :
      ( ( bij_betw @ A @ B )
      = ( ^ [F2: A > B,A4: set @ A,B2: set @ B] :
          ? [G2: B > A] :
            ( ! [X: A] :
                ( ( member @ A @ X @ A4 )
               => ( ( member @ B @ ( F2 @ X ) @ B2 )
                  & ( ( G2 @ ( F2 @ X ) )
                    = X ) ) )
            & ! [X: B] :
                ( ( member @ B @ X @ B2 )
               => ( ( member @ A @ ( G2 @ X ) @ A4 )
                  & ( ( F2 @ ( G2 @ X ) )
                    = X ) ) ) ) ) ) ).

% bij_betw_iff_bijections
thf(fact_92_bij__betw__apply,axiom,
    ! [A: $tType,B: $tType,F: A > B,A3: set @ A,B3: set @ B,A2: A] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ( ( member @ A @ A2 @ A3 )
       => ( member @ B @ ( F @ A2 ) @ B3 ) ) ) ).

% bij_betw_apply
thf(fact_93_bij__betw__cong,axiom,
    ! [A: $tType,B: $tType,A3: set @ A,F: A > B,G: A > B,A6: set @ B] :
      ( ! [A5: A] :
          ( ( member @ A @ A5 @ A3 )
         => ( ( F @ A5 )
            = ( G @ A5 ) ) )
     => ( ( bij_betw @ A @ B @ F @ A3 @ A6 )
        = ( bij_betw @ A @ B @ G @ A3 @ A6 ) ) ) ).

% bij_betw_cong
thf(fact_94_bij__betw__inv,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A,B3: set @ B] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ? [G3: B > A] : ( bij_betw @ B @ A @ G3 @ B3 @ A3 ) ) ).

% bij_betw_inv
thf(fact_95_bij__betwE,axiom,
    ! [A: $tType,B: $tType,F: A > B,A3: set @ A,B3: set @ B] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ! [X5: A] :
          ( ( member @ A @ X5 @ A3 )
         => ( member @ B @ ( F @ X5 ) @ B3 ) ) ) ).

% bij_betwE
thf(fact_96_ex__mset,axiom,
    ! [A: $tType,X6: multiset @ A] :
    ? [Xs: list @ A] :
      ( ( mset @ A @ Xs )
      = X6 ) ).

% ex_mset
thf(fact_97_image__eq__imp__comp,axiom,
    ! [B: $tType,A: $tType,D: $tType,C: $tType,F: B > A,A3: set @ B,G: C > A,B3: set @ C,H: A > D] :
      ( ( ( image @ B @ A @ F @ A3 )
        = ( image @ C @ A @ G @ B3 ) )
     => ( ( image @ B @ D @ ( comp @ A @ D @ B @ H @ F ) @ A3 )
        = ( image @ C @ D @ ( comp @ A @ D @ C @ H @ G ) @ B3 ) ) ) ).

% image_eq_imp_comp
thf(fact_98_image__comp,axiom,
    ! [B: $tType,A: $tType,C: $tType,F: B > A,G: C > B,R: set @ C] :
      ( ( image @ B @ A @ F @ ( image @ C @ B @ G @ R ) )
      = ( image @ C @ A @ ( comp @ B @ A @ C @ F @ G ) @ R ) ) ).

% image_comp
thf(fact_99_nonempty__has__size,axiom,
    ! [A: $tType,S2: multiset @ A] :
      ( ( S2
       != ( zero_zero @ ( multiset @ A ) ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( multiset @ A ) @ S2 ) ) ) ).

% nonempty_has_size
thf(fact_100_atLeastLessThan__inj_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [A2: A,B4: A,C2: A,D2: A] :
          ( ( ( set_or1433837966ssThan @ A @ A2 @ B4 )
            = ( set_or1433837966ssThan @ A @ C2 @ D2 ) )
         => ( ( ord_less @ A @ A2 @ B4 )
           => ( ( ord_less @ A @ C2 @ D2 )
             => ( B4 = D2 ) ) ) ) ) ).

% atLeastLessThan_inj(2)
thf(fact_101_atLeastLessThan__inj_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [A2: A,B4: A,C2: A,D2: A] :
          ( ( ( set_or1433837966ssThan @ A @ A2 @ B4 )
            = ( set_or1433837966ssThan @ A @ C2 @ D2 ) )
         => ( ( ord_less @ A @ A2 @ B4 )
           => ( ( ord_less @ A @ C2 @ D2 )
             => ( A2 = C2 ) ) ) ) ) ).

% atLeastLessThan_inj(1)
thf(fact_102_atLeastLessThan__eq__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [A2: A,B4: A,C2: A,D2: A] :
          ( ( ord_less @ A @ A2 @ B4 )
         => ( ( ord_less @ A @ C2 @ D2 )
           => ( ( ( set_or1433837966ssThan @ A @ A2 @ B4 )
                = ( set_or1433837966ssThan @ A @ C2 @ D2 ) )
              = ( ( A2 = C2 )
                & ( B4 = D2 ) ) ) ) ) ) ).

% atLeastLessThan_eq_iff
thf(fact_103_lessThan__strict__subset__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [M: A,N: A] :
          ( ( ord_less @ ( set @ A ) @ ( set_ord_lessThan @ A @ M ) @ ( set_ord_lessThan @ A @ N ) )
          = ( ord_less @ A @ M @ N ) ) ) ).

% lessThan_strict_subset_iff
thf(fact_104_inj__on__image__iff,axiom,
    ! [B: $tType,A: $tType,A3: set @ A,G: A > B,F: A > A] :
      ( ! [X3: A] :
          ( ( member @ A @ X3 @ A3 )
         => ! [Xa: A] :
              ( ( member @ A @ Xa @ A3 )
             => ( ( ( G @ ( F @ X3 ) )
                  = ( G @ ( F @ Xa ) ) )
                = ( ( G @ X3 )
                  = ( G @ Xa ) ) ) ) )
     => ( ( inj_on @ A @ A @ F @ A3 )
       => ( ( inj_on @ A @ B @ G @ ( image @ A @ A @ F @ A3 ) )
          = ( inj_on @ A @ B @ G @ A3 ) ) ) ) ).

% inj_on_image_iff
thf(fact_105_inj__on__imageI2,axiom,
    ! [B: $tType,C: $tType,A: $tType,F3: C > B,F: A > C,A3: set @ A] :
      ( ( inj_on @ A @ B @ ( comp @ C @ B @ A @ F3 @ F ) @ A3 )
     => ( inj_on @ A @ C @ F @ A3 ) ) ).

% inj_on_imageI2
thf(fact_106_bij__betw__imp__surj__on,axiom,
    ! [A: $tType,B: $tType,F: A > B,A3: set @ A,B3: set @ B] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ( ( image @ A @ B @ F @ A3 )
        = B3 ) ) ).

% bij_betw_imp_surj_on
thf(fact_107_bij__betw__comp__iff,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: A > B,A3: set @ A,A6: set @ B,F3: B > C,A7: set @ C] :
      ( ( bij_betw @ A @ B @ F @ A3 @ A6 )
     => ( ( bij_betw @ B @ C @ F3 @ A6 @ A7 )
        = ( bij_betw @ A @ C @ ( comp @ B @ C @ A @ F3 @ F ) @ A3 @ A7 ) ) ) ).

% bij_betw_comp_iff
thf(fact_108_bij__betw__trans,axiom,
    ! [A: $tType,B: $tType,C: $tType,F: A > B,A3: set @ A,B3: set @ B,G: B > C,C3: set @ C] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ( ( bij_betw @ B @ C @ G @ B3 @ C3 )
       => ( bij_betw @ A @ C @ ( comp @ B @ C @ A @ G @ F ) @ A3 @ C3 ) ) ) ).

% bij_betw_trans
thf(fact_109_multiset_Omap__comp,axiom,
    ! [B: $tType,C: $tType,A: $tType,G: B > C,F: A > B,V: multiset @ A] :
      ( ( image_mset @ B @ C @ G @ ( image_mset @ A @ B @ F @ V ) )
      = ( image_mset @ A @ C @ ( comp @ B @ C @ A @ G @ F ) @ V ) ) ).

% multiset.map_comp
thf(fact_110_image__mset_Ocompositionality,axiom,
    ! [B: $tType,C: $tType,A: $tType,F: B > C,G: A > B,Multiset: multiset @ A] :
      ( ( image_mset @ B @ C @ F @ ( image_mset @ A @ B @ G @ Multiset ) )
      = ( image_mset @ A @ C @ ( comp @ B @ C @ A @ F @ G ) @ Multiset ) ) ).

% image_mset.compositionality
thf(fact_111_image__mset_Ocomp,axiom,
    ! [C: $tType,B: $tType,A: $tType,F: B > C,G: A > B] :
      ( ( comp @ ( multiset @ B ) @ ( multiset @ C ) @ ( multiset @ A ) @ ( image_mset @ B @ C @ F ) @ ( image_mset @ A @ B @ G ) )
      = ( image_mset @ A @ C @ ( comp @ B @ C @ A @ F @ G ) ) ) ).

% image_mset.comp
thf(fact_112_bij__betw__imp__inj__on,axiom,
    ! [B: $tType,A: $tType,F: A > B,A3: set @ A,B3: set @ B] :
      ( ( bij_betw @ A @ B @ F @ A3 @ B3 )
     => ( inj_on @ A @ B @ F @ A3 ) ) ).

% bij_betw_imp_inj_on
thf(fact_113_mset__eq__length,axiom,
    ! [A: $tType,Xs2: list @ A,Ys: list @ A] :
      ( ( ( mset @ A @ Xs2 )
        = ( mset @ A @ Ys ) )
     => ( ( size_size @ ( list @ A ) @ Xs2 )
        = ( size_size @ ( list @ A ) @ Ys ) ) ) ).

% mset_eq_length
thf(fact_114_image__eqI,axiom,
    ! [A: $tType,B: $tType,B4: A,F: B > A,X2: B,A3: set @ B] :
      ( ( B4
        = ( F @ X2 ) )
     => ( ( member @ B @ X2 @ A3 )
       => ( member @ A @ B4 @ ( image @ B @ A @ F @ A3 ) ) ) ) ).

% image_eqI
thf(fact_115_mbs_Oless__not__eq,axiom,
    ! [A: $tType] :
      ( ( size @ A )
     => ! [X2: A,A3: set @ A,Y: A] :
          ( ( member @ A @ X2 @ A3 )
         => ( ( ord_less @ nat @ ( size_size @ A @ X2 ) @ ( size_size @ A @ Y ) )
           => ( X2 != Y ) ) ) ) ).

% mbs.less_not_eq
thf(fact_116_Sup_OSUP__image,axiom,
    ! [B: $tType,A: $tType,C: $tType,Sup: ( set @ A ) > A,G: B > A,F: C > B,A3: set @ C] :
      ( ( Sup @ ( image @ B @ A @ G @ ( image @ C @ B @ F @ A3 ) ) )
      = ( Sup @ ( image @ C @ A @ ( comp @ B @ A @ C @ G @ F ) @ A3 ) ) ) ).

% Sup.SUP_image
thf(fact_117_Inf_OINF__image,axiom,
    ! [B: $tType,A: $tType,C: $tType,Inf: ( set @ A ) > A,G: B > A,F: C > B,A3: set @ C] :
      ( ( Inf @ ( image @ B @ A @ G @ ( image @ C @ B @ F @ A3 ) ) )
      = ( Inf @ ( image @ C @ A @ ( comp @ B @ A @ C @ G @ F ) @ A3 ) ) ) ).

% Inf.INF_image
thf(fact_118_less__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% less_numeral_extra(3)
thf(fact_119_field__lbound__gt__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [D1: A,D22: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ D1 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ D22 )
           => ? [E: A] :
                ( ( ord_less @ A @ ( zero_zero @ A ) @ E )
                & ( ord_less @ A @ E @ D1 )
                & ( ord_less @ A @ E @ D22 ) ) ) ) ) ).

% field_lbound_gt_zero
thf(fact_120_length__code,axiom,
    ! [A: $tType] :
      ( ( size_size @ ( list @ A ) )
      = ( gen_length @ A @ ( zero_zero @ nat ) ) ) ).

% length_code
thf(fact_121_psubsetD,axiom,
    ! [A: $tType,A3: set @ A,B3: set @ A,C2: A] :
      ( ( ord_less @ ( set @ A ) @ A3 @ B3 )
     => ( ( member @ A @ C2 @ A3 )
       => ( member @ A @ C2 @ B3 ) ) ) ).

% psubsetD
thf(fact_122_psubset__trans,axiom,
    ! [A: $tType,A3: set @ A,B3: set @ A,C3: set @ A] :
      ( ( ord_less @ ( set @ A ) @ A3 @ B3 )
     => ( ( ord_less @ ( set @ A ) @ B3 @ C3 )
       => ( ord_less @ ( set @ A ) @ A3 @ C3 ) ) ) ).

% psubset_trans
thf(fact_123_imageI,axiom,
    ! [B: $tType,A: $tType,X2: A,A3: set @ A,F: A > B] :
      ( ( member @ A @ X2 @ A3 )
     => ( member @ B @ ( F @ X2 ) @ ( image @ A @ B @ F @ A3 ) ) ) ).

% imageI
thf(fact_124_image__iff,axiom,
    ! [A: $tType,B: $tType,Z2: A,F: B > A,A3: set @ B] :
      ( ( member @ A @ Z2 @ ( image @ B @ A @ F @ A3 ) )
      = ( ? [X: B] :
            ( ( member @ B @ X @ A3 )
            & ( Z2
              = ( F @ X ) ) ) ) ) ).

% image_iff
thf(fact_125_bex__imageD,axiom,
    ! [A: $tType,B: $tType,F: B > A,A3: set @ B,P: A > $o] :
      ( ? [X5: A] :
          ( ( member @ A @ X5 @ ( image @ B @ A @ F @ A3 ) )
          & ( P @ X5 ) )
     => ? [X3: B] :
          ( ( member @ B @ X3 @ A3 )
          & ( P @ ( F @ X3 ) ) ) ) ).

% bex_imageD
thf(fact_126_image__cong,axiom,
    ! [B: $tType,A: $tType,M4: set @ A,N3: set @ A,F: A > B,G: A > B] :
      ( ( M4 = N3 )
     => ( ! [X3: A] :
            ( ( member @ A @ X3 @ N3 )
           => ( ( F @ X3 )
              = ( G @ X3 ) ) )
       => ( ( image @ A @ B @ F @ M4 )
          = ( image @ A @ B @ G @ N3 ) ) ) ) ).

% image_cong
thf(fact_127_ball__imageD,axiom,
    ! [A: $tType,B: $tType,F: B > A,A3: set @ B,P: A > $o] :
      ( ! [X3: A] :
          ( ( member @ A @ X3 @ ( image @ B @ A @ F @ A3 ) )
         => ( P @ X3 ) )
     => ! [X5: B] :
          ( ( member @ B @ X5 @ A3 )
         => ( P @ ( F @ X5 ) ) ) ) ).

% ball_imageD
thf(fact_128_rev__image__eqI,axiom,
    ! [B: $tType,A: $tType,X2: A,A3: set @ A,B4: B,F: A > B] :
      ( ( member @ A @ X2 @ A3 )
     => ( ( B4
          = ( F @ X2 ) )
       => ( member @ B @ B4 @ ( image @ A @ B @ F @ A3 ) ) ) ) ).

% rev_image_eqI
thf(fact_129_Inf_OINF__cong,axiom,
    ! [A: $tType,B: $tType,A3: set @ B,B3: set @ B,C3: B > A,D3: B > A,Inf: ( set @ A ) > A] :
      ( ( A3 = B3 )
     => ( ! [X3: B] :
            ( ( member @ B @ X3 @ B3 )
           => ( ( C3 @ X3 )
              = ( D3 @ X3 ) ) )
       => ( ( Inf @ ( image @ B @ A @ C3 @ A3 ) )
          = ( Inf @ ( image @ B @ A @ D3 @ B3 ) ) ) ) ) ).

% Inf.INF_cong
thf(fact_130_Sup_OSUP__cong,axiom,
    ! [A: $tType,B: $tType,A3: set @ B,B3: set @ B,C3: B > A,D3: B > A,Sup: ( set @ A ) > A] :
      ( ( A3 = B3 )
     => ( ! [X3: B] :
            ( ( member @ B @ X3 @ B3 )
           => ( ( C3 @ X3 )
              = ( D3 @ X3 ) ) )
       => ( ( Sup @ ( image @ B @ A @ C3 @ A3 ) )
          = ( Sup @ ( image @ B @ A @ D3 @ B3 ) ) ) ) ) ).

% Sup.SUP_cong
thf(fact_131_Multiset_Ois__empty__def,axiom,
    ! [A: $tType] :
      ( ( is_empty @ A )
      = ( ^ [A4: multiset @ A] :
            ( A4
            = ( zero_zero @ ( multiset @ A ) ) ) ) ) ).

% Multiset.is_empty_def
thf(fact_132_map__eq__map__tailrec,axiom,
    ! [B: $tType,A: $tType] :
      ( ( map @ A @ B )
      = ( map_tailrec @ A @ B ) ) ).

% map_eq_map_tailrec
thf(fact_133_list__ex__length,axiom,
    ! [A: $tType] :
      ( ( list_ex @ A )
      = ( ^ [P2: A > $o,Xs3: list @ A] :
          ? [N4: nat] :
            ( ( ord_less @ nat @ N4 @ ( size_size @ ( list @ A ) @ Xs3 ) )
            & ( P2 @ ( nth @ A @ Xs3 @ N4 ) ) ) ) ) ).

% list_ex_length
thf(fact_134_of__nat__0__less__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [N: nat] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).

% of_nat_0_less_iff
thf(fact_135_of__nat__fun__apply,axiom,
    ! [B: $tType,A: $tType] :
      ( ( semiring_1 @ A )
     => ( ( semiring_1_of_nat @ ( B > A ) )
        = ( ^ [N4: nat,X: B] : ( semiring_1_of_nat @ A @ N4 ) ) ) ) ).

% of_nat_fun_apply
thf(fact_136_of__nat__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [M: nat,N: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( M = N ) ) ) ).

% of_nat_eq_iff
thf(fact_137_of__nat__0,axiom,
    ! [A: $tType] :
      ( ( semiring_1 @ A )
     => ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
        = ( zero_zero @ A ) ) ) ).

% of_nat_0
thf(fact_138_of__nat__0__eq__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [N: nat] :
          ( ( ( zero_zero @ A )
            = ( semiring_1_of_nat @ A @ N ) )
          = ( ( zero_zero @ nat )
            = N ) ) ) ).

% of_nat_0_eq_iff
thf(fact_139_of__nat__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [M: nat] :
          ( ( ( semiring_1_of_nat @ A @ M )
            = ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_eq_0_iff
thf(fact_140_of__nat__less__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less @ nat @ M @ N ) ) ) ).

% of_nat_less_iff
thf(fact_141_bij__betw__of__nat,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [N3: set @ nat,A3: set @ A] :
          ( ( bij_betw @ nat @ A @ ( semiring_1_of_nat @ A ) @ N3 @ A3 )
          = ( ( image @ nat @ A @ ( semiring_1_of_nat @ A ) @ N3 )
            = A3 ) ) ) ).

% bij_betw_of_nat
thf(fact_142_image__int__atLeastLessThan,axiom,
    ! [A2: nat,B4: nat] :
      ( ( image @ nat @ int @ ( semiring_1_of_nat @ int ) @ ( set_or1433837966ssThan @ nat @ A2 @ B4 ) )
      = ( set_or1433837966ssThan @ int @ ( semiring_1_of_nat @ int @ A2 ) @ ( semiring_1_of_nat @ int @ B4 ) ) ) ).

% image_int_atLeastLessThan
thf(fact_143_inj__on__of__nat,axiom,
    ! [A: $tType] :
      ( ( semiring_char_0 @ A )
     => ! [N3: set @ nat] : ( inj_on @ nat @ A @ ( semiring_1_of_nat @ A ) @ N3 ) ) ).

% inj_on_of_nat
thf(fact_144_of__nat__fun,axiom,
    ! [A: $tType,B: $tType] :
      ( ( semiring_1 @ B )
     => ( ( semiring_1_of_nat @ ( A > B ) )
        = ( ^ [N4: nat,X: A] : ( semiring_1_of_nat @ B @ N4 ) ) ) ) ).

% of_nat_fun
thf(fact_145_of__nat__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat] :
          ~ ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) ) ) ).

% of_nat_less_0_iff
thf(fact_146_of__nat__less__imp__less,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
         => ( ord_less @ nat @ M @ N ) ) ) ).

% of_nat_less_imp_less
thf(fact_147_less__imp__of__nat__less,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat,N: nat] :
          ( ( ord_less @ nat @ M @ N )
         => ( ord_less @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).

% less_imp_of_nat_less
thf(fact_148_pos__int__cases,axiom,
    ! [K: int] :
      ( ( ord_less @ int @ ( zero_zero @ int ) @ K )
     => ~ ! [N2: nat] :
            ( ( K
              = ( semiring_1_of_nat @ int @ N2 ) )
           => ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 ) ) ) ).

% pos_int_cases
thf(fact_149_zero__less__imp__eq__int,axiom,
    ! [K: int] :
      ( ( ord_less @ int @ ( zero_zero @ int ) @ K )
     => ? [N2: nat] :
          ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
          & ( K
            = ( semiring_1_of_nat @ int @ N2 ) ) ) ) ).

% zero_less_imp_eq_int
thf(fact_150_reals__Archimedean2,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A )
     => ! [X2: A] :
        ? [N2: nat] : ( ord_less @ A @ X2 @ ( semiring_1_of_nat @ A @ N2 ) ) ) ).

% reals_Archimedean2
thf(fact_151_size__multiset__empty,axiom,
    ! [A: $tType,F: A > nat] :
      ( ( size_multiset @ A @ F @ ( zero_zero @ ( multiset @ A ) ) )
      = ( zero_zero @ nat ) ) ).

% size_multiset_empty
thf(fact_152_size__multiset__eq__0__iff__empty,axiom,
    ! [A: $tType,F: A > nat,M4: multiset @ A] :
      ( ( ( size_multiset @ A @ F @ M4 )
        = ( zero_zero @ nat ) )
      = ( M4
        = ( zero_zero @ ( multiset @ A ) ) ) ) ).

% size_multiset_eq_0_iff_empty
thf(fact_153_int__int__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ( semiring_1_of_nat @ int @ M )
        = ( semiring_1_of_nat @ int @ N ) )
      = ( M = N ) ) ).

% int_int_eq
thf(fact_154_less__int__code_I1_J,axiom,
    ~ ( ord_less @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ) ).

% less_int_code(1)
thf(fact_155_size__multiset__o__map,axiom,
    ! [B: $tType,A: $tType,G: B > nat,F: A > B] :
      ( ( comp @ ( multiset @ B ) @ nat @ ( multiset @ A ) @ ( size_multiset @ B @ G ) @ ( image_mset @ A @ B @ F ) )
      = ( size_multiset @ A @ ( comp @ B @ nat @ A @ G @ F ) ) ) ).

% size_multiset_o_map
thf(fact_156_nat__int__comparison_I2_J,axiom,
    ( ( ord_less @ nat )
    = ( ^ [A8: nat,B5: nat] : ( ord_less @ int @ ( semiring_1_of_nat @ int @ A8 ) @ ( semiring_1_of_nat @ int @ B5 ) ) ) ) ).

% nat_int_comparison(2)
thf(fact_157_int__ops_I1_J,axiom,
    ( ( semiring_1_of_nat @ int @ ( zero_zero @ nat ) )
    = ( zero_zero @ int ) ) ).

% int_ops(1)
thf(fact_158_neg__int__cases,axiom,
    ! [K: int] :
      ( ( ord_less @ int @ K @ ( zero_zero @ int ) )
     => ~ ! [N2: nat] :
            ( ( K
              = ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N2 ) ) )
           => ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 ) ) ) ).

% neg_int_cases
thf(fact_159_add_Oinverse__inverse,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A] :
          ( ( uminus_uminus @ A @ ( uminus_uminus @ A @ A2 ) )
          = A2 ) ) ).

% add.inverse_inverse
thf(fact_160_neg__equal__iff__equal,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( ( uminus_uminus @ A @ A2 )
            = ( uminus_uminus @ A @ B4 ) )
          = ( A2 = B4 ) ) ) ).

% neg_equal_iff_equal
thf(fact_161_add_Oinverse__neutral,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ( ( uminus_uminus @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ A ) ) ) ).

% add.inverse_neutral
thf(fact_162_neg__0__equal__iff__equal,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A] :
          ( ( ( zero_zero @ A )
            = ( uminus_uminus @ A @ A2 ) )
          = ( ( zero_zero @ A )
            = A2 ) ) ) ).

% neg_0_equal_iff_equal
thf(fact_163_neg__equal__0__iff__equal,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A] :
          ( ( ( uminus_uminus @ A @ A2 )
            = ( zero_zero @ A ) )
          = ( A2
            = ( zero_zero @ A ) ) ) ) ).

% neg_equal_0_iff_equal
thf(fact_164_equal__neg__zero,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( A2
            = ( uminus_uminus @ A @ A2 ) )
          = ( A2
            = ( zero_zero @ A ) ) ) ) ).

% equal_neg_zero
thf(fact_165_neg__equal__zero,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( ( uminus_uminus @ A @ A2 )
            = A2 )
          = ( A2
            = ( zero_zero @ A ) ) ) ) ).

% neg_equal_zero
thf(fact_166_neg__less__iff__less,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [B4: A,A2: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ B4 ) @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less @ A @ A2 @ B4 ) ) ) ).

% neg_less_iff_less
thf(fact_167_inj__uminus,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A3: set @ A] : ( inj_on @ A @ A @ ( uminus_uminus @ A ) @ A3 ) ) ).

% inj_uminus
thf(fact_168_neg__less__0__iff__less,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% neg_less_0_iff_less
thf(fact_169_neg__0__less__iff__less,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% neg_0_less_iff_less
thf(fact_170_neg__less__pos,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ A2 ) @ A2 )
          = ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% neg_less_pos
thf(fact_171_less__neg__neg,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ A2 @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% less_neg_neg
thf(fact_172_negative__eq__positive,axiom,
    ! [N: nat,M: nat] :
      ( ( ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N ) )
        = ( semiring_1_of_nat @ int @ M ) )
      = ( ( N
          = ( zero_zero @ nat ) )
        & ( M
          = ( zero_zero @ nat ) ) ) ) ).

% negative_eq_positive
thf(fact_173_int__cases2,axiom,
    ! [Z2: int] :
      ( ! [N2: nat] :
          ( Z2
         != ( semiring_1_of_nat @ int @ N2 ) )
     => ~ ! [N2: nat] :
            ( Z2
           != ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N2 ) ) ) ) ).

% int_cases2
thf(fact_174_minus__less__iff,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ A2 ) @ B4 )
          = ( ord_less @ A @ ( uminus_uminus @ A @ B4 ) @ A2 ) ) ) ).

% minus_less_iff
thf(fact_175_less__minus__iff,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ ( uminus_uminus @ A @ B4 ) )
          = ( ord_less @ A @ B4 @ ( uminus_uminus @ A @ A2 ) ) ) ) ).

% less_minus_iff
thf(fact_176_uminus__int__code_I1_J,axiom,
    ( ( uminus_uminus @ int @ ( zero_zero @ int ) )
    = ( zero_zero @ int ) ) ).

% uminus_int_code(1)
thf(fact_177_verit__negate__coefficient_I2_J,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ B4 )
         => ( ord_less @ A @ ( uminus_uminus @ A @ B4 ) @ ( uminus_uminus @ A @ A2 ) ) ) ) ).

% verit_negate_coefficient(2)
thf(fact_178_equation__minus__iff,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( A2
            = ( uminus_uminus @ A @ B4 ) )
          = ( B4
            = ( uminus_uminus @ A @ A2 ) ) ) ) ).

% equation_minus_iff
thf(fact_179_minus__equation__iff,axiom,
    ! [A: $tType] :
      ( ( group_add @ A )
     => ! [A2: A,B4: A] :
          ( ( ( uminus_uminus @ A @ A2 )
            = B4 )
          = ( ( uminus_uminus @ A @ B4 )
            = A2 ) ) ) ).

% minus_equation_iff
thf(fact_180_not__int__zless__negative,axiom,
    ! [N: nat,M: nat] :
      ~ ( ord_less @ int @ ( semiring_1_of_nat @ int @ N ) @ ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ M ) ) ) ).

% not_int_zless_negative
thf(fact_181_int__cases4,axiom,
    ! [M: int] :
      ( ! [N2: nat] :
          ( M
         != ( semiring_1_of_nat @ int @ N2 ) )
     => ~ ! [N2: nat] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
           => ( M
             != ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N2 ) ) ) ) ) ).

% int_cases4
thf(fact_182_verit__comp__simplify1_I1_J,axiom,
    ! [A: $tType] :
      ( ( order @ A )
     => ! [A2: A] :
          ~ ( ord_less @ A @ A2 @ A2 ) ) ).

% verit_comp_simplify1(1)
thf(fact_183_nat__int__comparison_I1_J,axiom,
    ( ( ^ [Y3: nat,Z: nat] : Y3 = Z )
    = ( ^ [A8: nat,B5: nat] :
          ( ( semiring_1_of_nat @ int @ A8 )
          = ( semiring_1_of_nat @ int @ B5 ) ) ) ) ).

% nat_int_comparison(1)
thf(fact_184_int__if,axiom,
    ! [P: $o,A2: nat,B4: nat] :
      ( ( P
       => ( ( semiring_1_of_nat @ int @ ( if @ nat @ P @ A2 @ B4 ) )
          = ( semiring_1_of_nat @ int @ A2 ) ) )
      & ( ~ P
       => ( ( semiring_1_of_nat @ int @ ( if @ nat @ P @ A2 @ B4 ) )
          = ( semiring_1_of_nat @ int @ B4 ) ) ) ) ).

% int_if
thf(fact_185_int__cases3,axiom,
    ! [K: int] :
      ( ( K
       != ( zero_zero @ int ) )
     => ( ! [N2: nat] :
            ( ( K
              = ( semiring_1_of_nat @ int @ N2 ) )
           => ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 ) )
       => ~ ! [N2: nat] :
              ( ( K
                = ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N2 ) ) )
             => ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 ) ) ) ) ).

% int_cases3
thf(fact_186_norm__frac_Oinduct,axiom,
    ! [P: int > int > $o,A0: int,A1: int] :
      ( ! [A5: int,B6: int] :
          ( ( ( ord_less @ int @ B6 @ ( zero_zero @ int ) )
           => ( P @ ( uminus_uminus @ int @ A5 ) @ ( uminus_uminus @ int @ B6 ) ) )
         => ( P @ A5 @ B6 ) )
     => ( P @ A0 @ A1 ) ) ).

% norm_frac.induct
thf(fact_187_compl__less__swap1,axiom,
    ! [A: $tType] :
      ( ( boolean_algebra @ A )
     => ! [Y: A,X2: A] :
          ( ( ord_less @ A @ Y @ ( uminus_uminus @ A @ X2 ) )
         => ( ord_less @ A @ X2 @ ( uminus_uminus @ A @ Y ) ) ) ) ).

% compl_less_swap1
thf(fact_188_compl__less__swap2,axiom,
    ! [A: $tType] :
      ( ( boolean_algebra @ A )
     => ! [Y: A,X2: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ Y ) @ X2 )
         => ( ord_less @ A @ ( uminus_uminus @ A @ X2 ) @ Y ) ) ) ).

% compl_less_swap2
thf(fact_189_compl__less__compl__iff,axiom,
    ! [A: $tType] :
      ( ( boolean_algebra @ A )
     => ! [X2: A,Y: A] :
          ( ( ord_less @ A @ ( uminus_uminus @ A @ X2 ) @ ( uminus_uminus @ A @ Y ) )
          = ( ord_less @ A @ Y @ X2 ) ) ) ).

% compl_less_compl_iff
thf(fact_190_ex__inverse__of__nat__less,axiom,
    ! [A: $tType] :
      ( ( archim1804426504_field @ A )
     => ! [X2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ X2 )
         => ? [N2: nat] :
              ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N2 )
              & ( ord_less @ A @ ( inverse_inverse @ A @ ( semiring_1_of_nat @ A @ N2 ) ) @ X2 ) ) ) ) ).

% ex_inverse_of_nat_less
thf(fact_191_zero__less__nat__eq,axiom,
    ! [Z2: int] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( nat2 @ Z2 ) )
      = ( ord_less @ int @ ( zero_zero @ int ) @ Z2 ) ) ).

% zero_less_nat_eq
thf(fact_192_nat__int,axiom,
    ! [N: nat] :
      ( ( nat2 @ ( semiring_1_of_nat @ int @ N ) )
      = N ) ).

% nat_int
thf(fact_193_zless__nat__conj,axiom,
    ! [W: int,Z2: int] :
      ( ( ord_less @ nat @ ( nat2 @ W ) @ ( nat2 @ Z2 ) )
      = ( ( ord_less @ int @ ( zero_zero @ int ) @ Z2 )
        & ( ord_less @ int @ W @ Z2 ) ) ) ).

% zless_nat_conj
thf(fact_194_nat__zminus__int,axiom,
    ! [N: nat] :
      ( ( nat2 @ ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N ) ) )
      = ( zero_zero @ nat ) ) ).

% nat_zminus_int
thf(fact_195_nat__zero__as__int,axiom,
    ( ( zero_zero @ nat )
    = ( nat2 @ ( zero_zero @ int ) ) ) ).

% nat_zero_as_int
thf(fact_196_forall__pos__mono,axiom,
    ! [P: real > $o,E2: real] :
      ( ! [D4: real,E: real] :
          ( ( ord_less @ real @ D4 @ E )
         => ( ( P @ D4 )
           => ( P @ E ) ) )
     => ( ! [N2: nat] :
            ( ( N2
             != ( zero_zero @ nat ) )
           => ( P @ ( inverse_inverse @ real @ ( semiring_1_of_nat @ real @ N2 ) ) ) )
       => ( ( ord_less @ real @ ( zero_zero @ real ) @ E2 )
         => ( P @ E2 ) ) ) ) ).

% forall_pos_mono
thf(fact_197_real__arch__inverse,axiom,
    ! [E2: real] :
      ( ( ord_less @ real @ ( zero_zero @ real ) @ E2 )
      = ( ? [N4: nat] :
            ( ( N4
             != ( zero_zero @ nat ) )
            & ( ord_less @ real @ ( zero_zero @ real ) @ ( inverse_inverse @ real @ ( semiring_1_of_nat @ real @ N4 ) ) )
            & ( ord_less @ real @ ( inverse_inverse @ real @ ( semiring_1_of_nat @ real @ N4 ) ) @ E2 ) ) ) ) ).

% real_arch_inverse
thf(fact_198_nat__mono__iff,axiom,
    ! [Z2: int,W: int] :
      ( ( ord_less @ int @ ( zero_zero @ int ) @ Z2 )
     => ( ( ord_less @ nat @ ( nat2 @ W ) @ ( nat2 @ Z2 ) )
        = ( ord_less @ int @ W @ Z2 ) ) ) ).

% nat_mono_iff
thf(fact_199_zless__nat__eq__int__zless,axiom,
    ! [M: nat,Z2: int] :
      ( ( ord_less @ nat @ M @ ( nat2 @ Z2 ) )
      = ( ord_less @ int @ ( semiring_1_of_nat @ int @ M ) @ Z2 ) ) ).

% zless_nat_eq_int_zless
thf(fact_200_split__nat,axiom,
    ! [P: nat > $o,I: int] :
      ( ( P @ ( nat2 @ I ) )
      = ( ! [N4: nat] :
            ( ( I
              = ( semiring_1_of_nat @ int @ N4 ) )
           => ( P @ N4 ) )
        & ( ( ord_less @ int @ I @ ( zero_zero @ int ) )
         => ( P @ ( zero_zero @ nat ) ) ) ) ) ).

% split_nat
thf(fact_201_inverse__positive__iff__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
          = ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% inverse_positive_iff_positive
thf(fact_202_inverse__negative__iff__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% inverse_negative_iff_negative
thf(fact_203_inverse__zero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ( ( inverse_inverse @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ A ) ) ) ).

% inverse_zero
thf(fact_204_inverse__nonzero__iff__nonzero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( ( inverse_inverse @ A @ A2 )
            = ( zero_zero @ A ) )
          = ( A2
            = ( zero_zero @ A ) ) ) ) ).

% inverse_nonzero_iff_nonzero
thf(fact_205_inverse__less__iff__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B4 )
           => ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
              = ( ord_less @ A @ B4 @ A2 ) ) ) ) ) ).

% inverse_less_iff_less
thf(fact_206_inverse__less__iff__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B4 @ ( zero_zero @ A ) )
           => ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
              = ( ord_less @ A @ B4 @ A2 ) ) ) ) ) ).

% inverse_less_iff_less_neg
thf(fact_207_linordered__field__no__lb,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X5: A] :
        ? [Y5: A] : ( ord_less @ A @ Y5 @ X5 ) ) ).

% linordered_field_no_lb
thf(fact_208_linordered__field__no__ub,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [X5: A] :
        ? [X_1: A] : ( ord_less @ A @ X5 @ X_1 ) ) ).

% linordered_field_no_ub
thf(fact_209_field__class_Ofield__inverse__zero,axiom,
    ! [A: $tType] :
      ( ( field @ A )
     => ( ( inverse_inverse @ A @ ( zero_zero @ A ) )
        = ( zero_zero @ A ) ) ) ).

% field_class.field_inverse_zero
thf(fact_210_inverse__zero__imp__zero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( ( inverse_inverse @ A @ A2 )
            = ( zero_zero @ A ) )
         => ( A2
            = ( zero_zero @ A ) ) ) ) ).

% inverse_zero_imp_zero
thf(fact_211_nonzero__inverse__eq__imp__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A,B4: A] :
          ( ( ( inverse_inverse @ A @ A2 )
            = ( inverse_inverse @ A @ B4 ) )
         => ( ( A2
             != ( zero_zero @ A ) )
           => ( ( B4
               != ( zero_zero @ A ) )
             => ( A2 = B4 ) ) ) ) ) ).

% nonzero_inverse_eq_imp_eq
thf(fact_212_nonzero__inverse__inverse__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( inverse_inverse @ A @ ( inverse_inverse @ A @ A2 ) )
            = A2 ) ) ) ).

% nonzero_inverse_inverse_eq
thf(fact_213_nonzero__imp__inverse__nonzero,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( inverse_inverse @ A @ A2 )
           != ( zero_zero @ A ) ) ) ) ).

% nonzero_imp_inverse_nonzero
thf(fact_214_inverse__less__imp__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ B4 @ A2 ) ) ) ) ).

% inverse_less_imp_less
thf(fact_215_less__imp__inverse__less,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ B4 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( inverse_inverse @ A @ B4 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).

% less_imp_inverse_less
thf(fact_216_inverse__less__imp__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
         => ( ( ord_less @ A @ B4 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ B4 @ A2 ) ) ) ) ).

% inverse_less_imp_less_neg
thf(fact_217_less__imp__inverse__less__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ B4 )
         => ( ( ord_less @ A @ B4 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( inverse_inverse @ A @ B4 ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).

% less_imp_inverse_less_neg
thf(fact_218_inverse__negative__imp__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
         => ( ( A2
             != ( zero_zero @ A ) )
           => ( ord_less @ A @ A2 @ ( zero_zero @ A ) ) ) ) ) ).

% inverse_negative_imp_negative
thf(fact_219_inverse__positive__imp__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
         => ( ( A2
             != ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ A2 ) ) ) ) ).

% inverse_positive_imp_positive
thf(fact_220_negative__imp__inverse__negative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ord_less @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) ) ) ) ).

% negative_imp_inverse_negative
thf(fact_221_positive__imp__inverse__positive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ord_less @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) ) ) ) ).

% positive_imp_inverse_positive
thf(fact_222_nonzero__inverse__minus__eq,axiom,
    ! [A: $tType] :
      ( ( division_ring @ A )
     => ! [A2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( inverse_inverse @ A @ ( uminus_uminus @ A @ A2 ) )
            = ( uminus_uminus @ A @ ( inverse_inverse @ A @ A2 ) ) ) ) ) ).

% nonzero_inverse_minus_eq
thf(fact_223_image__atLeastZeroLessThan__int,axiom,
    ! [U: int] :
      ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ U )
     => ( ( set_or1433837966ssThan @ int @ ( zero_zero @ int ) @ U )
        = ( image @ nat @ int @ ( semiring_1_of_nat @ int ) @ ( set_ord_lessThan @ nat @ ( nat2 @ U ) ) ) ) ) ).

% image_atLeastZeroLessThan_int
thf(fact_224_of__int__of__nat,axiom,
    ! [A: $tType] :
      ( ( ring_1 @ A )
     => ( ( ring_1_of_int @ A )
        = ( ^ [K2: int] : ( if @ A @ ( ord_less @ int @ K2 @ ( zero_zero @ int ) ) @ ( uminus_uminus @ A @ ( semiring_1_of_nat @ A @ ( nat2 @ ( uminus_uminus @ int @ K2 ) ) ) ) @ ( semiring_1_of_nat @ A @ ( nat2 @ K2 ) ) ) ) ) ) ).

% of_int_of_nat
thf(fact_225_of__int__eq__iff,axiom,
    ! [A: $tType] :
      ( ( ring_char_0 @ A )
     => ! [W: int,Z2: int] :
          ( ( ( ring_1_of_int @ A @ W )
            = ( ring_1_of_int @ A @ Z2 ) )
          = ( W = Z2 ) ) ) ).

% of_int_eq_iff
thf(fact_226_le__zero__eq,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A )
     => ! [N: A] :
          ( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% le_zero_eq
thf(fact_227_neg__le__iff__le,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [B4: A,A2: A] :
          ( ( ord_less_eq @ A @ ( uminus_uminus @ A @ B4 ) @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less_eq @ A @ A2 @ B4 ) ) ) ).

% neg_le_iff_le
thf(fact_228_of__nat__le__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat,N: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
          = ( ord_less_eq @ nat @ M @ N ) ) ) ).

% of_nat_le_iff
thf(fact_229_ivl__subset,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [I: A,J: A,M: A,N: A] :
          ( ( ord_less_eq @ ( set @ A ) @ ( set_or1433837966ssThan @ A @ I @ J ) @ ( set_or1433837966ssThan @ A @ M @ N ) )
          = ( ( ord_less_eq @ A @ J @ I )
            | ( ( ord_less_eq @ A @ M @ I )
              & ( ord_less_eq @ A @ J @ N ) ) ) ) ) ).

% ivl_subset
thf(fact_230_lessThan__subset__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A )
     => ! [X2: A,Y: A] :
          ( ( ord_less_eq @ ( set @ A ) @ ( set_ord_lessThan @ A @ X2 ) @ ( set_ord_lessThan @ A @ Y ) )
          = ( ord_less_eq @ A @ X2 @ Y ) ) ) ).

% lessThan_subset_iff
thf(fact_231_neg__0__le__iff__le,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% neg_0_le_iff_le
thf(fact_232_neg__le__0__iff__le,axiom,
    ! [A: $tType] :
      ( ( ordered_ab_group_add @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( uminus_uminus @ A @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% neg_le_0_iff_le
thf(fact_233_less__eq__neg__nonpos,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( uminus_uminus @ A @ A2 ) )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% less_eq_neg_nonpos
thf(fact_234_neg__less__eq__nonneg,axiom,
    ! [A: $tType] :
      ( ( linord219039673up_add @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( uminus_uminus @ A @ A2 ) @ A2 )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% neg_less_eq_nonneg
thf(fact_235_inverse__nonpositive__iff__nonpositive,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( inverse_inverse @ A @ A2 ) @ ( zero_zero @ A ) )
          = ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).

% inverse_nonpositive_iff_nonpositive
thf(fact_236_inverse__nonnegative__iff__nonnegative,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( inverse_inverse @ A @ A2 ) )
          = ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).

% inverse_nonnegative_iff_nonnegative
thf(fact_237_atLeastLessThan__iff,axiom,
    ! [A: $tType] :
      ( ( ord @ A )
     => ! [I: A,L: A,U: A] :
          ( ( member @ A @ I @ ( set_or1433837966ssThan @ A @ L @ U ) )
          = ( ( ord_less_eq @ A @ L @ I )
            & ( ord_less @ A @ I @ U ) ) ) ) ).

% atLeastLessThan_iff
thf(fact_238_of__int__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( ring_char_0 @ A )
     => ! [Z2: int] :
          ( ( ( ring_1_of_int @ A @ Z2 )
            = ( zero_zero @ A ) )
          = ( Z2
            = ( zero_zero @ int ) ) ) ) ).

% of_int_eq_0_iff
thf(fact_239_of__int__0__eq__iff,axiom,
    ! [A: $tType] :
      ( ( ring_char_0 @ A )
     => ! [Z2: int] :
          ( ( ( zero_zero @ A )
            = ( ring_1_of_int @ A @ Z2 ) )
          = ( Z2
            = ( zero_zero @ int ) ) ) ) ).

% of_int_0_eq_iff
thf(fact_240_of__int__0,axiom,
    ! [A: $tType] :
      ( ( ring_1 @ A )
     => ( ( ring_1_of_int @ A @ ( zero_zero @ int ) )
        = ( zero_zero @ A ) ) ) ).

% of_int_0
thf(fact_241_of__int__le__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [W: int,Z2: int] :
          ( ( ord_less_eq @ A @ ( ring_1_of_int @ A @ W ) @ ( ring_1_of_int @ A @ Z2 ) )
          = ( ord_less_eq @ int @ W @ Z2 ) ) ) ).

% of_int_le_iff
thf(fact_242_of__int__less__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [W: int,Z2: int] :
          ( ( ord_less @ A @ ( ring_1_of_int @ A @ W ) @ ( ring_1_of_int @ A @ Z2 ) )
          = ( ord_less @ int @ W @ Z2 ) ) ) ).

% of_int_less_iff
thf(fact_243_of__int__minus,axiom,
    ! [A: $tType] :
      ( ( ring_1 @ A )
     => ! [Z2: int] :
          ( ( ring_1_of_int @ A @ ( uminus_uminus @ int @ Z2 ) )
          = ( uminus_uminus @ A @ ( ring_1_of_int @ A @ Z2 ) ) ) ) ).

% of_int_minus
thf(fact_244_of__int__of__nat__eq,axiom,
    ! [A: $tType] :
      ( ( ring_1 @ A )
     => ! [N: nat] :
          ( ( ring_1_of_int @ A @ ( semiring_1_of_nat @ int @ N ) )
          = ( semiring_1_of_nat @ A @ N ) ) ) ).

% of_int_of_nat_eq
thf(fact_245_negative__zle,axiom,
    ! [N: nat,M: nat] : ( ord_less_eq @ int @ ( uminus_uminus @ int @ ( semiring_1_of_nat @ int @ N ) ) @ ( semiring_1_of_nat @ int @ M ) ) ).

% negative_zle
thf(fact_246_of__nat__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord1659791738miring @ A )
     => ! [M: nat] :
          ( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) )
          = ( M
            = ( zero_zero @ nat ) ) ) ) ).

% of_nat_le_0_iff
thf(fact_247_inverse__le__iff__le,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B4 )
           => ( ( ord_less_eq @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
              = ( ord_less_eq @ A @ B4 @ A2 ) ) ) ) ) ).

% inverse_le_iff_le
thf(fact_248_inverse__le__iff__le__neg,axiom,
    ! [A: $tType] :
      ( ( linordered_field @ A )
     => ! [A2: A,B4: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B4 @ ( zero_zero @ A ) )
           => ( ( ord_less_eq @ A @ ( inverse_inverse @ A @ A2 ) @ ( inverse_inverse @ A @ B4 ) )
              = ( ord_less_eq @ A @ B4 @ A2 ) ) ) ) ) ).

% inverse_le_iff_le_neg
thf(fact_249_nat__le__0,axiom,
    ! [Z2: int] :
      ( ( ord_less_eq @ int @ Z2 @ ( zero_zero @ int ) )
     => ( ( nat2 @ Z2 )
        = ( zero_zero @ nat ) ) ) ).

% nat_le_0
thf(fact_250_nat__0__iff,axiom,
    ! [I: int] :
      ( ( ( nat2 @ I )
        = ( zero_zero @ nat ) )
      = ( ord_less_eq @ int @ I @ ( zero_zero @ int ) ) ) ).

% nat_0_iff
thf(fact_251_int__nat__eq,axiom,
    ! [Z2: int] :
      ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z2 )
       => ( ( semiring_1_of_nat @ int @ ( nat2 @ Z2 ) )
          = Z2 ) )
      & ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z2 )
       => ( ( semiring_1_of_nat @ int @ ( nat2 @ Z2 ) )
          = ( zero_zero @ int ) ) ) ) ).

% int_nat_eq
thf(fact_252_of__int__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [Z2: int] :
          ( ( ord_less_eq @ A @ ( ring_1_of_int @ A @ Z2 ) @ ( zero_zero @ A ) )
          = ( ord_less_eq @ int @ Z2 @ ( zero_zero @ int ) ) ) ) ).

% of_int_le_0_iff
thf(fact_253_of__int__0__le__iff,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A )
     => ! [Z2: int] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( ring_1_of_int @ A @ Z2 ) )
          = ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z2 ) ) ) ).

% of_int_0_le_iff

% Type constructors (72)
thf(tcon_Multiset_Omultiset___Orderings_Opreorder,axiom,
    ! [A9: $tType] :
      ( ( preorder @ A9 )
     => ( preorder @ ( multiset @ A9 ) ) ) ).

thf(tcon_Real_Oreal___Orderings_Opreorder_1,axiom,
    preorder @ real ).

thf(tcon_HOL_Obool___Orderings_Opreorder_2,axiom,
    preorder @ $o ).

thf(tcon_Set_Oset___Orderings_Opreorder_3,axiom,
    ! [A9: $tType] : ( preorder @ ( set @ A9 ) ) ).

thf(tcon_Nat_Onat___Rings_Odioid,axiom,
    dioid @ nat ).

thf(tcon_Nat_Onat___Orderings_Opreorder_4,axiom,
    preorder @ nat ).

thf(tcon_Int_Oint___Orderings_Opreorder_5,axiom,
    preorder @ int ).

thf(tcon_fun___Rings_Odioid_6,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( dioid @ A10 )
     => ( dioid @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Orderings_Opreorder_7,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( preorder @ A10 )
     => ( preorder @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Groups_Ocanonically__ordered__monoid__add,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( dioid @ A10 )
     => ( canoni770627133id_add @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Groups_Oordered__ab__group__add,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ordered_ab_group_add @ A10 )
     => ( ordered_ab_group_add @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Lattices_Oboolean__algebra,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( boolean_algebra @ A10 )
     => ( boolean_algebra @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Nat_Osemiring__char__0,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( semiring_char_0 @ A10 )
     => ( semiring_char_0 @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Rings_Osemiring__1,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( semiring_1 @ A10 )
     => ( semiring_1 @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Groups_Ogroup__add,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( group_add @ A10 )
     => ( group_add @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( order @ A10 )
     => ( order @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Nat_Oring__char__0,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ring_char_0 @ A10 )
     => ( ring_char_0 @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ord @ A10 )
     => ( ord @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Rings_Oring__1,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( ring_1 @ A10 )
     => ( ring_1 @ ( A9 > A10 ) ) ) ).

thf(tcon_fun___Groups_Ozero,axiom,
    ! [A9: $tType,A10: $tType] :
      ( ( zero @ A10 )
     => ( zero @ ( A9 > A10 ) ) ) ).

thf(tcon_Int_Oint___Rings_Olinordered__nonzero__semiring,axiom,
    linord1659791738miring @ int ).

thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
    linord219039673up_add @ int ).

thf(tcon_Int_Oint___Groups_Oordered__ab__group__add_8,axiom,
    ordered_ab_group_add @ int ).

thf(tcon_Int_Oint___Rings_Olinordered__idom,axiom,
    linordered_idom @ int ).

thf(tcon_Int_Oint___Nat_Osemiring__char__0_9,axiom,
    semiring_char_0 @ int ).

thf(tcon_Int_Oint___Orderings_Olinorder,axiom,
    linorder @ int ).

thf(tcon_Int_Oint___Rings_Osemiring__1_10,axiom,
    semiring_1 @ int ).

thf(tcon_Int_Oint___Groups_Ogroup__add_11,axiom,
    group_add @ int ).

thf(tcon_Int_Oint___Orderings_Oorder_12,axiom,
    order @ int ).

thf(tcon_Int_Oint___Nat_Oring__char__0_13,axiom,
    ring_char_0 @ int ).

thf(tcon_Int_Oint___Orderings_Oord_14,axiom,
    ord @ int ).

thf(tcon_Int_Oint___Rings_Oring__1_15,axiom,
    ring_1 @ int ).

thf(tcon_Int_Oint___Groups_Ozero_16,axiom,
    zero @ int ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add_17,axiom,
    canoni770627133id_add @ nat ).

thf(tcon_Nat_Onat___Rings_Olinordered__nonzero__semiring_18,axiom,
    linord1659791738miring @ nat ).

thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
    wellorder @ nat ).

thf(tcon_Nat_Onat___Nat_Osemiring__char__0_19,axiom,
    semiring_char_0 @ nat ).

thf(tcon_Nat_Onat___Orderings_Olinorder_20,axiom,
    linorder @ nat ).

thf(tcon_Nat_Onat___Rings_Osemiring__1_21,axiom,
    semiring_1 @ nat ).

thf(tcon_Nat_Onat___Orderings_Oorder_22,axiom,
    order @ nat ).

thf(tcon_Nat_Onat___Orderings_Oord_23,axiom,
    ord @ nat ).

thf(tcon_Nat_Onat___Groups_Ozero_24,axiom,
    zero @ nat ).

thf(tcon_Nat_Onat___Nat_Osize,axiom,
    size @ nat ).

thf(tcon_Set_Oset___Lattices_Oboolean__algebra_25,axiom,
    ! [A9: $tType] : ( boolean_algebra @ ( set @ A9 ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_26,axiom,
    ! [A9: $tType] : ( order @ ( set @ A9 ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_27,axiom,
    ! [A9: $tType] : ( ord @ ( set @ A9 ) ) ).

thf(tcon_HOL_Obool___Lattices_Oboolean__algebra_28,axiom,
    boolean_algebra @ $o ).

thf(tcon_HOL_Obool___Orderings_Olinorder_29,axiom,
    linorder @ $o ).

thf(tcon_HOL_Obool___Orderings_Oorder_30,axiom,
    order @ $o ).

thf(tcon_HOL_Obool___Orderings_Oord_31,axiom,
    ord @ $o ).

thf(tcon_List_Olist___Nat_Osize_32,axiom,
    ! [A9: $tType] : ( size @ ( list @ A9 ) ) ).

thf(tcon_Real_Oreal___Archimedean__Field_Oarchimedean__field,axiom,
    archim1804426504_field @ real ).

thf(tcon_Real_Oreal___Rings_Olinordered__nonzero__semiring_33,axiom,
    linord1659791738miring @ real ).

thf(tcon_Real_Oreal___Groups_Olinordered__ab__group__add_34,axiom,
    linord219039673up_add @ real ).

thf(tcon_Real_Oreal___Groups_Oordered__ab__group__add_35,axiom,
    ordered_ab_group_add @ real ).

thf(tcon_Real_Oreal___Fields_Olinordered__field,axiom,
    linordered_field @ real ).

thf(tcon_Real_Oreal___Rings_Olinordered__idom_36,axiom,
    linordered_idom @ real ).

thf(tcon_Real_Oreal___Fields_Odivision__ring,axiom,
    division_ring @ real ).

thf(tcon_Real_Oreal___Nat_Osemiring__char__0_37,axiom,
    semiring_char_0 @ real ).

thf(tcon_Real_Oreal___Orderings_Olinorder_38,axiom,
    linorder @ real ).

thf(tcon_Real_Oreal___Rings_Osemiring__1_39,axiom,
    semiring_1 @ real ).

thf(tcon_Real_Oreal___Groups_Ogroup__add_40,axiom,
    group_add @ real ).

thf(tcon_Real_Oreal___Orderings_Oorder_41,axiom,
    order @ real ).

thf(tcon_Real_Oreal___Nat_Oring__char__0_42,axiom,
    ring_char_0 @ real ).

thf(tcon_Real_Oreal___Orderings_Oord_43,axiom,
    ord @ real ).

thf(tcon_Real_Oreal___Rings_Oring__1_44,axiom,
    ring_1 @ real ).

thf(tcon_Real_Oreal___Fields_Ofield,axiom,
    field @ real ).

thf(tcon_Real_Oreal___Groups_Ozero_45,axiom,
    zero @ real ).

thf(tcon_Multiset_Omultiset___Orderings_Oorder_46,axiom,
    ! [A9: $tType] :
      ( ( preorder @ A9 )
     => ( order @ ( multiset @ A9 ) ) ) ).

thf(tcon_Multiset_Omultiset___Orderings_Oord_47,axiom,
    ! [A9: $tType] :
      ( ( preorder @ A9 )
     => ( ord @ ( multiset @ A9 ) ) ) ).

thf(tcon_Multiset_Omultiset___Groups_Ozero_48,axiom,
    ! [A9: $tType] : ( zero @ ( multiset @ A9 ) ) ).

thf(tcon_Multiset_Omultiset___Nat_Osize_49,axiom,
    ! [A9: $tType] : ( size @ ( multiset @ A9 ) ) ).

% Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X2: A,Y: A] :
      ( ( if @ A @ $false @ X2 @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X2: A,Y: A] :
      ( ( if @ A @ $true @ X2 @ Y )
      = X2 ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    ( ( image_mset @ nat @ a @ ( nth @ a @ ys ) @ ( image_mset @ nat @ nat @ f @ ( mset_set @ nat @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ xs ) ) ) ) )
    = ( image_mset @ nat @ a @ ( nth @ a @ ys ) @ ( mset_set @ nat @ ( set_or1433837966ssThan @ nat @ ( zero_zero @ nat ) @ ( size_size @ ( list @ a ) @ ys ) ) ) ) ) ).

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