TPTP Problem File: SLH0564^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    : Real_Time_Deque/0025_States_Proof/prob_01122_044153__7062848_1 [Des23]

% Status   : Theorem
% Rating   : ? v8.2.0
% Syntax   : Number of formulae    : 1759 ( 661 unt; 478 typ;   0 def)
%            Number of atoms       : 3407 (1930 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 15722 ( 374   ~; 123   |; 293   &;13678   @)
%                                         (   0 <=>;1254  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   29 (   7 avg)
%            Number of types       :   86 (  85 usr)
%            Number of type conns  :  868 ( 868   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  396 ( 393 usr;  18 con; 0-3 aty)
%            Number of variables   : 4020 (  49   ^;3841   !; 130   ?;4020   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2023-01-19 15:52:50.744
%------------------------------------------------------------------------------
% Could-be-implicit typings (85)
thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_J_J,type,
    set_Pr1542805901266377927at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_J_J,type,
    set_Pr2163802558726022747_a_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    produc6392793444374437607at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J_J,type,
    set_Pr8563485649468363847od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_J,type,
    produc417292134775302395_a_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    set_Pr8693737435421807431at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_J_J,type,
    set_Pr3311784803563962995um_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_J_J,type,
    set_Pr4525179957102981855at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_J_J,type,
    set_Pr7878039356161601943nt_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    produc5715173734304154471od_a_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_J,type,
    set_Pr1811044260758604347_a_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__List__Olist_It__Int__Oint_J_J_Mt__List__Olist_It__List__Olist_It__Int__Oint_J_J_J_J,type,
    set_Pr8140719670968651609st_int: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    produc859450856879609959at_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_J,type,
    produc4545171480585158163um_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    produc1282733263909545087at_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_J,type,
    produc2907033302207676215nt_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mtf__a_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    set_Pr8600417178894128327od_a_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__List__Olist_Itf__a_J_J_Mt__List__Olist_It__List__Olist_Itf__a_J_J_J_J,type,
    set_Pr5382606609415531783list_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J,type,
    produc4708774622424448987_a_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__List__Olist_It__Int__Oint_J_J_Mt__List__Olist_It__List__Olist_It__Int__Oint_J_J_J,type,
    produc8452586669324383225st_int: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_I_062_It__Num__Onum_Mt__Nat__Onat_J_M_062_It__Num__Onum_Mt__Nat__Onat_J_J_J,type,
    set_Pr2767457846497873235um_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Nat__Onat_J_M_062_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    set_Pr7682762132356531903at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_I_062_It__Int__Oint_Mt__Nat__Onat_J_M_062_It__Int__Oint_Mt__Nat__Onat_J_J_J,type,
    set_Pr1394042615296016247nt_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mtf__a_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc3498347346309940967od_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__List__Olist_Itf__a_J_J_Mt__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
    produc7709606177366032167list_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Num__Onum_J_Mt__List__Olist_It__Num__Onum_J_J_J,type,
    set_Pr6931154981057480341st_num: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Nat__Onat_J_Mt__List__Olist_It__Nat__Onat_J_J_J,type,
    set_Pr3451248702717554689st_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_It__Int__Oint_J_Mt__List__Olist_It__Int__Oint_J_J_J,type,
    set_Pr765067013931698361st_int: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Num__Onum_Mt__Nat__Onat_J_M_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    produc245313536953334771um_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Nat__Onat_J_M_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    produc1932156733058919263at_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_I_062_It__Int__Oint_Mt__Nat__Onat_J_M_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    produc5327195440680321047nt_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__List__Olist_Itf__a_J_Mt__List__Olist_Itf__a_J_J_J,type,
    set_Pr4048851178543822343list_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Num__Onum_J_Mt__List__Olist_It__Num__Onum_J_J,type,
    produc897883541406338101st_num: $tType ).

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

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_It__Int__Oint_J_Mt__List__Olist_It__Int__Oint_J_J,type,
    produc1186641810826059865st_int: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__List__Olist_Itf__a_J_Mt__List__Olist_Itf__a_J_J,type,
    produc9164743771328383783list_a: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J_J,type,
    list_P3744719386663036955um_num: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    list_P6011104703257516679at_nat: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J_J,type,
    list_P5707943133018811711nt_int: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J_J,type,
    set_Pr8218934625190621173um_num: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    set_Pr1261947904930325089at_nat: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J_J,type,
    set_Pr958786334691620121nt_int: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__States__Ostates_Itf__a_J_Mt__Nat__Onat_J,type,
    produc1571854377283420419_a_nat: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J,type,
    list_P3592885314253461005_a_nat: $tType ).

thf(ty_n_t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mtf__a_J_J,type,
    list_P2851791750731487283_nat_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Small__Ostate_Itf__a_J_J,type,
    produc7589950997499123219tate_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Big__Ostate_Itf__a_J_J,type,
    produc6972303929186420058tate_a: $tType ).

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

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

thf(ty_n_t__States__Ostates_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    states_num_nat: $tType ).

thf(ty_n_t__States__Ostates_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    states_nat_nat: $tType ).

thf(ty_n_t__States__Ostates_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    states_int_nat: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    product_prod_num_num: $tType ).

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

thf(ty_n_t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    product_prod_int_int: $tType ).

thf(ty_n_t__Small__Ostate_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    state_num_nat: $tType ).

thf(ty_n_t__Small__Ostate_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    state_nat_nat: $tType ).

thf(ty_n_t__Small__Ostate_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    state_int_nat: $tType ).

thf(ty_n_t__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    list_num_nat: $tType ).

thf(ty_n_t__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    list_nat_nat: $tType ).

thf(ty_n_t__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    list_int_nat: $tType ).

thf(ty_n_t__Big__Ostate_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    state_num_nat2: $tType ).

thf(ty_n_t__Big__Ostate_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    state_nat_nat2: $tType ).

thf(ty_n_t__Big__Ostate_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    state_int_nat2: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    product_prod_a_nat: $tType ).

thf(ty_n_t__List__Olist_It__List__Olist_It__Int__Oint_J_J,type,
    list_list_int: $tType ).

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

thf(ty_n_t__List__Olist_It__List__Olist_Itf__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__States__Ostates_It__Int__Oint_J,type,
    states_int: $tType ).

thf(ty_n_t__Small__Ostate_It__Int__Oint_J,type,
    state_int: $tType ).

thf(ty_n_t__List__Olist_It__Num__Onum_J,type,
    list_num: $tType ).

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

thf(ty_n_t__List__Olist_It__Int__Oint_J,type,
    list_int: $tType ).

thf(ty_n_t__Big__Ostate_It__Int__Oint_J,type,
    state_int2: $tType ).

thf(ty_n_t__States__Ostates_Itf__a_J,type,
    states_a: $tType ).

thf(ty_n_t__Small__Ostate_Itf__a_J,type,
    state_a: $tType ).

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

thf(ty_n_t__Big__Ostate_Itf__a_J,type,
    state_a2: $tType ).

thf(ty_n_t__States__Odirection,type,
    direction: $tType ).

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

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

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

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

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

% Explicit typings (393)
thf(sy_c_BNF__Greatest__Fixpoint_OSucc_001tf__a,type,
    bNF_Greatest_Succ_a: set_list_a > list_a > set_a ).

thf(sy_c_Big_Opop_001tf__a,type,
    pop_a: state_a2 > produc6972303929186420058tate_a ).

thf(sy_c_Big_Opush_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    push_int_nat: ( int > nat ) > state_int_nat2 > state_int_nat2 ).

thf(sy_c_Big_Opush_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    push_nat_nat: ( nat > nat ) > state_nat_nat2 > state_nat_nat2 ).

thf(sy_c_Big_Opush_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    push_num_nat: ( num > nat ) > state_num_nat2 > state_num_nat2 ).

thf(sy_c_Big_Opush_001t__Int__Oint,type,
    push_int: int > state_int2 > state_int2 ).

thf(sy_c_Big_Opush_001tf__a,type,
    push_a: a > state_a2 > state_a2 ).

thf(sy_c_Big__Aux_Olist__current_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    big_li1428258522215584551nt_nat: state_int_nat2 > list_int_nat ).

thf(sy_c_Big__Aux_Olist__current_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    big_li428904810314529995at_nat: state_nat_nat2 > list_nat_nat ).

thf(sy_c_Big__Aux_Olist__current_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    big_li7782607250476775189um_nat: state_num_nat2 > list_num_nat ).

thf(sy_c_Big__Aux_Olist__current_001t__Int__Oint,type,
    big_list_current_int: state_int2 > list_int ).

thf(sy_c_Big__Aux_Olist__current_001tf__a,type,
    big_list_current_a: state_a2 > list_a ).

thf(sy_c_Bit__Operations_Oconcat__bit,type,
    bit_concat_bit: nat > int > int > int ).

thf(sy_c_Bit__Operations_Oring__bit__operations__class_Osigned__take__bit_001t__Int__Oint,type,
    bit_ri631733984087533419it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Oand_001t__Nat__Onat,type,
    bit_se727722235901077358nd_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Oflip__bit_001t__Int__Oint,type,
    bit_se2159334234014336723it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Oflip__bit_001t__Nat__Onat,type,
    bit_se2161824704523386999it_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Opush__bit_001t__Int__Oint,type,
    bit_se545348938243370406it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Opush__bit_001t__Nat__Onat,type,
    bit_se547839408752420682it_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Oset__bit_001t__Int__Oint,type,
    bit_se7879613467334960850it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Oset__bit_001t__Nat__Onat,type,
    bit_se7882103937844011126it_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Otake__bit_001t__Int__Oint,type,
    bit_se2923211474154528505it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Otake__bit_001t__Nat__Onat,type,
    bit_se2925701944663578781it_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Ounset__bit_001t__Int__Oint,type,
    bit_se4203085406695923979it_int: nat > int > int ).

thf(sy_c_Bit__Operations_Osemiring__bit__operations__class_Ounset__bit_001t__Nat__Onat,type,
    bit_se4205575877204974255it_nat: nat > nat > nat ).

thf(sy_c_Bit__Operations_Osemiring__bits__class_Obit_001t__Int__Oint,type,
    bit_se1146084159140164899it_int: int > nat > $o ).

thf(sy_c_Bit__Operations_Osemiring__bits__class_Obit_001t__Nat__Onat,type,
    bit_se1148574629649215175it_nat: nat > nat > $o ).

thf(sy_c_Common__Aux_Otake__rev_001t__Nat__Onat,type,
    common_take_rev_nat: nat > list_nat > list_nat ).

thf(sy_c_Common__Aux_Otake__rev_001tf__a,type,
    common_take_rev_a: nat > list_a > list_a ).

thf(sy_c_Euclidean__Division_Odivmod__nat,type,
    euclidean_divmod_nat: nat > nat > product_prod_nat_nat ).

thf(sy_c_Euclidean__Division_Oeuclidean__semiring__class_Oeuclidean__size_001t__Int__Oint,type,
    euclid4774559944035922753ze_int: int > nat ).

thf(sy_c_Euclidean__Division_Oeuclidean__semiring__class_Oeuclidean__size_001t__Nat__Onat,type,
    euclid4777050414544973029ze_nat: nat > nat ).

thf(sy_c_Euclidean__Division_Ounique__euclidean__semiring__class_Odivision__segment_001t__Int__Oint,type,
    euclid3395696857347342551nt_int: int > int ).

thf(sy_c_Euclidean__Division_Ounique__euclidean__semiring__class_Odivision__segment_001t__Nat__Onat,type,
    euclid3398187327856392827nt_nat: nat > nat ).

thf(sy_c_Groups_Ominus__class_Ominus_001t__Int__Oint,type,
    minus_minus_int: int > int > int ).

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

thf(sy_c_Groups_Oone__class_Oone_001t__Int__Oint,type,
    one_one_int: int ).

thf(sy_c_Groups_Oone__class_Oone_001t__Nat__Onat,type,
    one_one_nat: nat ).

thf(sy_c_Groups_Oplus__class_Oplus_001t__Int__Oint,type,
    plus_plus_int: int > int > int ).

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

thf(sy_c_Groups_Oplus__class_Oplus_001t__Num__Onum,type,
    plus_plus_num: num > num > num ).

thf(sy_c_Groups_Otimes__class_Otimes_001t__Int__Oint,type,
    times_times_int: int > int > int ).

thf(sy_c_Groups_Otimes__class_Otimes_001t__Nat__Onat,type,
    times_times_nat: nat > nat > nat ).

thf(sy_c_Groups_Ouminus__class_Ouminus_001t__Int__Oint,type,
    uminus_uminus_int: int > int ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Int__Oint,type,
    zero_zero_int: int ).

thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat,type,
    zero_zero_nat: nat ).

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

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

thf(sy_c_If_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    if_Pro3027730157355071871nt_int: $o > product_prod_int_int > product_prod_int_int > product_prod_int_int ).

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

thf(sy_c_List_Oappend_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    append_int_nat: list_int_nat > list_int_nat > list_int_nat ).

thf(sy_c_List_Oappend_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    append_nat_nat: list_nat_nat > list_nat_nat > list_nat_nat ).

thf(sy_c_List_Oappend_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    append_num_nat: list_num_nat > list_num_nat > list_num_nat ).

thf(sy_c_List_Oappend_001t__Int__Oint,type,
    append_int: list_int > list_int > list_int ).

thf(sy_c_List_Oappend_001t__List__Olist_It__Int__Oint_J,type,
    append_list_int: list_list_int > list_list_int > list_list_int ).

thf(sy_c_List_Oappend_001t__List__Olist_Itf__a_J,type,
    append_list_a: list_list_a > list_list_a > list_list_a ).

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

thf(sy_c_List_Oappend_001t__Num__Onum,type,
    append_num: list_num > list_num > list_num ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    append985823374593552924at_nat: list_P6011104703257516679at_nat > list_P6011104703257516679at_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_It__Nat__Onat_Mtf__a_J,type,
    append1694031006427026248_nat_a: list_P2851791750731487283_nat_a > list_P2851791750731487283_nat_a > list_P2851791750731487283_nat_a ).

thf(sy_c_List_Oappend_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    append7679239579558125090_a_nat: list_P3592885314253461005_a_nat > list_P3592885314253461005_a_nat > list_P3592885314253461005_a_nat ).

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

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

thf(sy_c_List_Obind_001t__Int__Oint_001t__Int__Oint,type,
    bind_int_int: list_int > ( int > list_int ) > list_int ).

thf(sy_c_List_Obind_001t__Int__Oint_001t__Nat__Onat,type,
    bind_int_nat: list_int > ( int > list_nat ) > list_nat ).

thf(sy_c_List_Obind_001t__Int__Oint_001t__Num__Onum,type,
    bind_int_num: list_int > ( int > list_num ) > list_num ).

thf(sy_c_List_Obind_001t__Int__Oint_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    bind_i2574587955495602226_a_nat: list_int > ( int > list_P3592885314253461005_a_nat ) > list_P3592885314253461005_a_nat ).

thf(sy_c_List_Obind_001t__Int__Oint_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    bind_i42855015366907570od_a_a: list_int > ( int > list_P1396940483166286381od_a_a ) > list_P1396940483166286381od_a_a ).

thf(sy_c_List_Obind_001t__Int__Oint_001tf__a,type,
    bind_int_a: list_int > ( int > list_a ) > list_a ).

thf(sy_c_List_Obind_001tf__a_001t__Int__Oint,type,
    bind_a_int: list_a > ( a > list_int ) > list_int ).

thf(sy_c_List_Obind_001tf__a_001t__Nat__Onat,type,
    bind_a_nat: list_a > ( a > list_nat ) > list_nat ).

thf(sy_c_List_Obind_001tf__a_001t__Num__Onum,type,
    bind_a_num: list_a > ( a > list_num ) > list_num ).

thf(sy_c_List_Obind_001tf__a_001tf__a,type,
    bind_a_a: list_a > ( 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_Odistinct__adj_001tf__a,type,
    distinct_adj_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_Oenumerate_001t__Nat__Onat,type,
    enumerate_nat: nat > list_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Oenumerate_001tf__a,type,
    enumerate_a: nat > list_a > list_P2851791750731487283_nat_a ).

thf(sy_c_List_Ogen__length_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    gen_length_int_nat: nat > list_int_nat > nat ).

thf(sy_c_List_Ogen__length_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    gen_length_nat_nat: nat > list_nat_nat > nat ).

thf(sy_c_List_Ogen__length_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    gen_length_num_nat: nat > list_num_nat > nat ).

thf(sy_c_List_Ogen__length_001t__Int__Oint,type,
    gen_length_int: nat > list_int > nat ).

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

thf(sy_c_List_Ogen__length_001tf__a,type,
    gen_length_a: nat > list_a > nat ).

thf(sy_c_List_Olast_001t__Int__Oint,type,
    last_int: list_int > int ).

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

thf(sy_c_List_Olast_001t__Num__Onum,type,
    last_num: list_num > num ).

thf(sy_c_List_Olast_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    last_P3305686521732843992nt_int: list_P5707943133018811711nt_int > product_prod_int_int ).

thf(sy_c_List_Olast_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    last_P6484183829340986144at_nat: list_P6011104703257516679at_nat > product_prod_nat_nat ).

thf(sy_c_List_Olast_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    last_P5322758169597293236um_num: list_P3744719386663036955um_num > product_prod_num_num ).

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

thf(sy_c_List_Olenlex_001t__Int__Oint,type,
    lenlex_int: set_Pr958786334691620121nt_int > set_Pr765067013931698361st_int ).

thf(sy_c_List_Olenlex_001t__Nat__Onat,type,
    lenlex_nat: set_Pr1261947904930325089at_nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olenlex_001t__Num__Onum,type,
    lenlex_num: set_Pr8218934625190621173um_num > set_Pr6931154981057480341st_num ).

thf(sy_c_List_Olenlex_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    lenlex325483962726685836at_nat: set_Pr8693737435421807431at_nat > set_Pr1542805901266377927at_nat ).

thf(sy_c_List_Olenlex_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    lenlex6533860390983708594_a_nat: set_Pr1811044260758604347_a_nat > set_Pr2163802558726022747_a_nat ).

thf(sy_c_List_Olenlex_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    lenlex8556352030002712370od_a_a: set_Pr8600417178894128327od_a_a > set_Pr8563485649468363847od_a_a ).

thf(sy_c_List_Olenlex_001tf__a,type,
    lenlex_a: set_Product_prod_a_a > set_Pr4048851178543822343list_a ).

thf(sy_c_List_Olex_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    lex_int_nat: set_Pr1394042615296016247nt_nat > set_Pr7878039356161601943nt_nat ).

thf(sy_c_List_Olex_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    lex_nat_nat: set_Pr7682762132356531903at_nat > set_Pr4525179957102981855at_nat ).

thf(sy_c_List_Olex_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    lex_num_nat: set_Pr2767457846497873235um_nat > set_Pr3311784803563962995um_nat ).

thf(sy_c_List_Olex_001t__Int__Oint,type,
    lex_int: set_Pr958786334691620121nt_int > set_Pr765067013931698361st_int ).

thf(sy_c_List_Olex_001t__List__Olist_It__Int__Oint_J,type,
    lex_list_int: set_Pr765067013931698361st_int > set_Pr8140719670968651609st_int ).

thf(sy_c_List_Olex_001t__List__Olist_Itf__a_J,type,
    lex_list_a: set_Pr4048851178543822343list_a > set_Pr5382606609415531783list_a ).

thf(sy_c_List_Olex_001t__Nat__Onat,type,
    lex_nat: set_Pr1261947904930325089at_nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olex_001t__Num__Onum,type,
    lex_num: set_Pr8218934625190621173um_num > set_Pr6931154981057480341st_num ).

thf(sy_c_List_Olex_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    lex_Pr8571645452597969515at_nat: set_Pr8693737435421807431at_nat > set_Pr1542805901266377927at_nat ).

thf(sy_c_List_Olex_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    lex_Pr1126020055417095059_a_nat: set_Pr1811044260758604347_a_nat > set_Pr2163802558726022747_a_nat ).

thf(sy_c_List_Olex_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    lex_Product_prod_a_a: set_Pr8600417178894128327od_a_a > set_Pr8563485649468363847od_a_a ).

thf(sy_c_List_Olex_001tf__a,type,
    lex_a: set_Product_prod_a_a > set_Pr4048851178543822343list_a ).

thf(sy_c_List_Olexn_001t__Nat__Onat,type,
    lexn_nat: set_Pr1261947904930325089at_nat > nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olexord_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    lexord_int_nat: set_Pr1394042615296016247nt_nat > set_Pr7878039356161601943nt_nat ).

thf(sy_c_List_Olexord_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    lexord_nat_nat: set_Pr7682762132356531903at_nat > set_Pr4525179957102981855at_nat ).

thf(sy_c_List_Olexord_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    lexord_num_nat: set_Pr2767457846497873235um_nat > set_Pr3311784803563962995um_nat ).

thf(sy_c_List_Olexord_001t__Int__Oint,type,
    lexord_int: set_Pr958786334691620121nt_int > set_Pr765067013931698361st_int ).

thf(sy_c_List_Olexord_001t__List__Olist_It__Int__Oint_J,type,
    lexord_list_int: set_Pr765067013931698361st_int > set_Pr8140719670968651609st_int ).

thf(sy_c_List_Olexord_001t__List__Olist_Itf__a_J,type,
    lexord_list_a: set_Pr4048851178543822343list_a > set_Pr5382606609415531783list_a ).

thf(sy_c_List_Olexord_001t__Nat__Onat,type,
    lexord_nat: set_Pr1261947904930325089at_nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olexord_001t__Num__Onum,type,
    lexord_num: set_Pr8218934625190621173um_num > set_Pr6931154981057480341st_num ).

thf(sy_c_List_Olexord_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    lexord2902578037316800714_a_nat: set_Pr1811044260758604347_a_nat > set_Pr2163802558726022747_a_nat ).

thf(sy_c_List_Olexord_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    lexord2574673282903770138od_a_a: set_Pr8600417178894128327od_a_a > set_Pr8563485649468363847od_a_a ).

thf(sy_c_List_Olexord_001tf__a,type,
    lexord_a: set_Product_prod_a_a > set_Pr4048851178543822343list_a ).

thf(sy_c_List_Olist_OCons_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    cons_int_nat: ( int > nat ) > list_int_nat > list_int_nat ).

thf(sy_c_List_Olist_OCons_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    cons_nat_nat: ( nat > nat ) > list_nat_nat > list_nat_nat ).

thf(sy_c_List_Olist_OCons_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    cons_num_nat: ( num > nat ) > list_num_nat > list_num_nat ).

thf(sy_c_List_Olist_OCons_001t__Int__Oint,type,
    cons_int: int > list_int > list_int ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_It__Int__Oint_J,type,
    cons_list_int: list_int > list_list_int > list_list_int ).

thf(sy_c_List_Olist_OCons_001t__List__Olist_Itf__a_J,type,
    cons_list_a: list_a > list_list_a > list_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_001t__Num__Onum,type,
    cons_num: num > list_num > list_num ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    cons_P3334398858971670639nt_int: product_prod_int_int > list_P5707943133018811711nt_int > list_P5707943133018811711nt_int ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    cons_P6512896166579812791at_nat: product_prod_nat_nat > list_P6011104703257516679at_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    cons_P5351470506836119883um_num: product_prod_num_num > list_P3744719386663036955um_num > list_P3744719386663036955um_num ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    cons_P5205166803686508359_a_nat: product_prod_a_nat > list_P3592885314253461005_a_nat > list_P3592885314253461005_a_nat ).

thf(sy_c_List_Olist_OCons_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    cons_P7316939126706565853od_a_a: product_prod_a_a > list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a ).

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

thf(sy_c_List_Olist_ONil_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    nil_int_nat: list_int_nat ).

thf(sy_c_List_Olist_ONil_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    nil_nat_nat: list_nat_nat ).

thf(sy_c_List_Olist_ONil_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    nil_num_nat: list_num_nat ).

thf(sy_c_List_Olist_ONil_001t__Int__Oint,type,
    nil_int: list_int ).

thf(sy_c_List_Olist_ONil_001t__Nat__Onat,type,
    nil_nat: list_nat ).

thf(sy_c_List_Olist_ONil_001t__Num__Onum,type,
    nil_num: list_num ).

thf(sy_c_List_Olist_ONil_001tf__a,type,
    nil_a: list_a ).

thf(sy_c_List_Olist_Ohd_001t__Int__Oint,type,
    hd_int: list_int > int ).

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

thf(sy_c_List_Olist_Ohd_001t__Num__Onum,type,
    hd_num: list_num > num ).

thf(sy_c_List_Olist_Ohd_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    hd_Pro282112905867057956nt_int: list_P5707943133018811711nt_int > product_prod_int_int ).

thf(sy_c_List_Olist_Ohd_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    hd_Pro3460610213475200108at_nat: list_P6011104703257516679at_nat > product_prod_nat_nat ).

thf(sy_c_List_Olist_Ohd_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    hd_Pro2299184553731507200um_num: list_P3744719386663036955um_num > product_prod_num_num ).

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

thf(sy_c_List_Olist_Osize__list_001tf__a,type,
    size_list_a: ( a > nat ) > list_a > nat ).

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

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

thf(sy_c_List_Olist__update_001t__Int__Oint,type,
    list_update_int: list_int > nat > int > list_int ).

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_001t__Num__Onum,type,
    list_update_num: list_num > nat > num > list_num ).

thf(sy_c_List_Olist__update_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    list_u3002344382305578791nt_int: list_P5707943133018811711nt_int > nat > product_prod_int_int > list_P5707943133018811711nt_int ).

thf(sy_c_List_Olist__update_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    list_u6180841689913720943at_nat: list_P6011104703257516679at_nat > nat > product_prod_nat_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Olist__update_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    list_u5019416030170028035um_num: list_P3744719386663036955um_num > nat > product_prod_num_num > list_P3744719386663036955um_num ).

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

thf(sy_c_List_Olistrel1_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    listrel1_int_nat: set_Pr1394042615296016247nt_nat > set_Pr7878039356161601943nt_nat ).

thf(sy_c_List_Olistrel1_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    listrel1_nat_nat: set_Pr7682762132356531903at_nat > set_Pr4525179957102981855at_nat ).

thf(sy_c_List_Olistrel1_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    listrel1_num_nat: set_Pr2767457846497873235um_nat > set_Pr3311784803563962995um_nat ).

thf(sy_c_List_Olistrel1_001t__Int__Oint,type,
    listrel1_int: set_Pr958786334691620121nt_int > set_Pr765067013931698361st_int ).

thf(sy_c_List_Olistrel1_001t__List__Olist_It__Int__Oint_J,type,
    listrel1_list_int: set_Pr765067013931698361st_int > set_Pr8140719670968651609st_int ).

thf(sy_c_List_Olistrel1_001t__List__Olist_Itf__a_J,type,
    listrel1_list_a: set_Pr4048851178543822343list_a > set_Pr5382606609415531783list_a ).

thf(sy_c_List_Olistrel1_001t__Nat__Onat,type,
    listrel1_nat: set_Pr1261947904930325089at_nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olistrel1_001t__Num__Onum,type,
    listrel1_num: set_Pr8218934625190621173um_num > set_Pr6931154981057480341st_num ).

thf(sy_c_List_Olistrel1_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    listre4828114922151135584at_nat: set_Pr8693737435421807431at_nat > set_Pr1542805901266377927at_nat ).

thf(sy_c_List_Olistrel1_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    listre3824326845222555614_a_nat: set_Pr1811044260758604347_a_nat > set_Pr2163802558726022747_a_nat ).

thf(sy_c_List_Olistrel1_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    listre2955263628197028358od_a_a: set_Pr8600417178894128327od_a_a > set_Pr8563485649468363847od_a_a ).

thf(sy_c_List_Olistrel1_001tf__a,type,
    listrel1_a: set_Product_prod_a_a > set_Pr4048851178543822343list_a ).

thf(sy_c_List_Olistrel_001t__Int__Oint_001t__Int__Oint,type,
    listrel_int_int: set_Pr958786334691620121nt_int > set_Pr765067013931698361st_int ).

thf(sy_c_List_Olistrel_001t__Nat__Onat_001t__Nat__Onat,type,
    listrel_nat_nat: set_Pr1261947904930325089at_nat > set_Pr3451248702717554689st_nat ).

thf(sy_c_List_Olistrel_001t__Num__Onum_001t__Num__Onum,type,
    listrel_num_num: set_Pr8218934625190621173um_num > set_Pr6931154981057480341st_num ).

thf(sy_c_List_Omaps_001t__Int__Oint_001t__Int__Oint,type,
    maps_int_int: ( int > list_int ) > list_int > list_int ).

thf(sy_c_List_Omaps_001t__Int__Oint_001t__Nat__Onat,type,
    maps_int_nat: ( int > list_nat ) > list_int > list_nat ).

thf(sy_c_List_Omaps_001t__Int__Oint_001t__Num__Onum,type,
    maps_int_num: ( int > list_num ) > list_int > list_num ).

thf(sy_c_List_Omaps_001t__Int__Oint_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    maps_i564174456596884204_a_nat: ( int > list_P3592885314253461005_a_nat ) > list_int > list_P3592885314253461005_a_nat ).

thf(sy_c_List_Omaps_001t__Int__Oint_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    maps_i5625727269084573304od_a_a: ( int > list_P1396940483166286381od_a_a ) > list_int > list_P1396940483166286381od_a_a ).

thf(sy_c_List_Omaps_001t__Int__Oint_001tf__a,type,
    maps_int_a: ( int > list_a ) > list_int > list_a ).

thf(sy_c_List_Omaps_001tf__a_001t__Int__Oint,type,
    maps_a_int: ( a > list_int ) > list_a > list_int ).

thf(sy_c_List_Omaps_001tf__a_001t__Nat__Onat,type,
    maps_a_nat: ( a > list_nat ) > list_a > list_nat ).

thf(sy_c_List_Omaps_001tf__a_001t__Num__Onum,type,
    maps_a_num: ( a > list_num ) > list_a > list_num ).

thf(sy_c_List_Omaps_001tf__a_001tf__a,type,
    maps_a_a: ( a > list_a ) > list_a > list_a ).

thf(sy_c_List_Omeasures_001t__Int__Oint,type,
    measures_int: list_int_nat > set_Pr958786334691620121nt_int ).

thf(sy_c_List_Omeasures_001t__Nat__Onat,type,
    measures_nat: list_nat_nat > set_Pr1261947904930325089at_nat ).

thf(sy_c_List_Omeasures_001t__Num__Onum,type,
    measures_num: list_num_nat > set_Pr8218934625190621173um_num ).

thf(sy_c_List_Onth_001t__Int__Oint,type,
    nth_int: list_int > nat > int ).

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

thf(sy_c_List_Onth_001t__Num__Onum,type,
    nth_num: list_num > nat > num ).

thf(sy_c_List_Onth_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    nth_Pr4439495888332055232nt_int: list_P5707943133018811711nt_int > nat > product_prod_int_int ).

thf(sy_c_List_Onth_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    nth_Pr7617993195940197384at_nat: list_P6011104703257516679at_nat > nat > product_prod_nat_nat ).

thf(sy_c_List_Onth_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    nth_Pr6456567536196504476um_num: list_P3744719386663036955um_num > nat > product_prod_num_num ).

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

thf(sy_c_List_Oproduct_001t__Int__Oint_001t__Int__Oint,type,
    product_int_int: list_int > list_int > list_P5707943133018811711nt_int ).

thf(sy_c_List_Oproduct_001t__Nat__Onat_001t__Nat__Onat,type,
    product_nat_nat: list_nat > list_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Oproduct_001t__Num__Onum_001t__Num__Onum,type,
    product_num_num: list_num > list_num > list_P3744719386663036955um_num ).

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_Oreplicate_001t__Int__Oint,type,
    replicate_int: nat > int > list_int ).

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

thf(sy_c_List_Oreplicate_001t__Num__Onum,type,
    replicate_num: nat > num > list_num ).

thf(sy_c_List_Oreplicate_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    replic1057375728873637753nt_int: nat > product_prod_int_int > list_P5707943133018811711nt_int ).

thf(sy_c_List_Oreplicate_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    replic4235873036481779905at_nat: nat > product_prod_nat_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Oreplicate_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    replic3074447376738086997um_num: nat > product_prod_num_num > list_P3744719386663036955um_num ).

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

thf(sy_c_List_Orev_001t__Int__Oint,type,
    rev_int: list_int > list_int ).

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

thf(sy_c_List_Orev_001t__Num__Onum,type,
    rev_num: list_num > list_num ).

thf(sy_c_List_Orev_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    rev_Pr6102188148953555047at_nat: list_P6011104703257516679at_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Orev_001t__Product____Type__Oprod_It__Nat__Onat_Mtf__a_J,type,
    rev_Pr4566615044306411965_nat_a: list_P2851791750731487283_nat_a > list_P2851791750731487283_nat_a ).

thf(sy_c_List_Orev_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    rev_Pr1328451580582734999_a_nat: list_P3592885314253461005_a_nat > list_P3592885314253461005_a_nat ).

thf(sy_c_List_Orev_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    rev_Product_prod_a_a: list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a ).

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__Nat__Onat,type,
    sorted_wrt_nat: ( nat > nat > $o ) > list_nat > $o ).

thf(sy_c_List_Otake_001t__Int__Oint,type,
    take_int: nat > list_int > list_int ).

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

thf(sy_c_List_Otake_001t__Num__Onum,type,
    take_num: nat > list_num > list_num ).

thf(sy_c_List_Otake_001tf__a,type,
    take_a: nat > list_a > list_a ).

thf(sy_c_List_Ozip_001t__Int__Oint_001t__Int__Oint,type,
    zip_int_int: list_int > list_int > list_P5707943133018811711nt_int ).

thf(sy_c_List_Ozip_001t__Nat__Onat_001t__Nat__Onat,type,
    zip_nat_nat: list_nat > list_nat > list_P6011104703257516679at_nat ).

thf(sy_c_List_Ozip_001t__Nat__Onat_001tf__a,type,
    zip_nat_a: list_nat > list_a > list_P2851791750731487283_nat_a ).

thf(sy_c_List_Ozip_001t__Num__Onum_001t__Num__Onum,type,
    zip_num_num: list_num > list_num > list_P3744719386663036955um_num ).

thf(sy_c_List_Ozip_001tf__a_001t__Nat__Onat,type,
    zip_a_nat: list_a > list_nat > list_P3592885314253461005_a_nat ).

thf(sy_c_List_Ozip_001tf__a_001tf__a,type,
    zip_a_a: list_a > list_a > list_P1396940483166286381od_a_a ).

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

thf(sy_c_Nat_Ocompow_001_062_It__Int__Oint_Mt__Int__Oint_J,type,
    compow_int_int: nat > ( int > int ) > int > int ).

thf(sy_c_Nat_Ocompow_001_062_It__List__Olist_It__Nat__Onat_J_Mt__List__Olist_It__Nat__Onat_J_J,type,
    compow6514914278795418604st_nat: nat > ( list_nat > list_nat ) > list_nat > list_nat ).

thf(sy_c_Nat_Ocompow_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    compow_nat_nat: nat > ( nat > nat ) > nat > nat ).

thf(sy_c_Nat_Ocompow_001_062_It__States__Ostates_Itf__a_J_Mt__States__Ostates_Itf__a_J_J,type,
    compow495008222514391794ates_a: nat > ( states_a > states_a ) > states_a > states_a ).

thf(sy_c_Nat_Ofunpow_001t__Int__Oint,type,
    funpow_int: nat > ( int > int ) > int > int ).

thf(sy_c_Nat_Ofunpow_001t__List__Olist_It__Nat__Onat_J,type,
    funpow_list_nat: nat > ( list_nat > list_nat ) > list_nat > list_nat ).

thf(sy_c_Nat_Ofunpow_001t__Nat__Onat,type,
    funpow_nat: nat > ( nat > nat ) > nat > nat ).

thf(sy_c_Nat_Ofunpow_001t__States__Ostates_Itf__a_J,type,
    funpow_states_a: nat > ( states_a > states_a ) > states_a > states_a ).

thf(sy_c_Nat_Osize__class_Osize_001t__Big__Ostate_Itf__a_J,type,
    size_size_state_a: state_a2 > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    size_s1172059598526859839nt_nat: list_int_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    size_s8208510060688613859at_nat: list_nat_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    size_s1003533117800011565um_nat: list_num_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Int__Oint_J,type,
    size_size_list_int: list_int > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__List__Olist_It__Int__Oint_J_J,type,
    size_s533118279054570080st_int: list_list_int > 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_It__Num__Onum_J,type,
    size_size_list_num: list_num > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    size_s5460976970255530739at_nat: list_P6011104703257516679at_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mtf__a_J_J,type,
    size_s243904063682394823_nat_a: list_P2851791750731487283_nat_a > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J,type,
    size_s984997627204368545_a_nat: list_P3592885314253461005_a_nat > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    size_s3885678630836030617od_a_a: list_P1396940483166286381od_a_a > nat ).

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

thf(sy_c_Nat_Osize__class_Osize_001t__Num__Onum,type,
    size_size_num: num > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__Small__Ostate_Itf__a_J,type,
    size_size_state_a2: state_a > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__States__Odirection,type,
    size_size_direction: direction > nat ).

thf(sy_c_Nat_Osize__class_Osize_001t__States__Ostates_Itf__a_J,type,
    size_size_states_a: states_a > nat ).

thf(sy_c_Num_OBitM,type,
    bitM: num > num ).

thf(sy_c_Num_Oinc,type,
    inc: num > num ).

thf(sy_c_Num_Onum_OBit0,type,
    bit0: num > num ).

thf(sy_c_Num_Onum_OBit1,type,
    bit1: num > num ).

thf(sy_c_Num_Onum_OOne,type,
    one: num ).

thf(sy_c_Num_Onum_Osize__num,type,
    size_num: num > nat ).

thf(sy_c_Num_Onumeral__class_Onumeral_001t__Int__Oint,type,
    numeral_numeral_int: num > int ).

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

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

thf(sy_c_Orderings_Oord__class_Oless_001t__Num__Onum,type,
    ord_less_num: num > num > $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__Num__Onum,type,
    ord_less_eq_num: num > num > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J_J,type,
    ord_le2843351958646193337nt_int: set_Pr958786334691620121nt_int > set_Pr958786334691620121nt_int > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    ord_le3146513528884898305at_nat: set_Pr1261947904930325089at_nat > set_Pr1261947904930325089at_nat > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J_J,type,
    ord_le880128212290418581um_num: set_Pr8218934625190621173um_num > set_Pr8218934625190621173um_num > $o ).

thf(sy_c_Orderings_Oord__class_Omin_001t__Nat__Onat,type,
    ord_min_nat: nat > nat > nat ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivides__aux_001t__Int__Oint,type,
    unique5329631941980267465ux_int: product_prod_int_int > $o ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivides__aux_001t__Nat__Onat,type,
    unique5332122412489317741ux_nat: product_prod_nat_nat > $o ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivmod_001t__Int__Oint,type,
    unique5403075989570733136od_int: num > num > product_prod_int_int ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivmod_001t__Nat__Onat,type,
    unique5405566460079783412od_nat: num > num > product_prod_nat_nat ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivmod__step_001t__Int__Oint,type,
    unique4034149617335721244ep_int: int > product_prod_int_int > product_prod_int_int ).

thf(sy_c_Parity_Ounique__euclidean__semiring__with__nat__division__class_Odivmod__step_001t__Nat__Onat,type,
    unique4036640087844771520ep_nat: nat > product_prod_nat_nat > product_prod_nat_nat ).

thf(sy_c_Product__Type_OPair_001_062_It__Int__Oint_Mt__Nat__Onat_J_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    produc7977806053278589903nt_nat: ( int > nat ) > ( int > nat ) > produc5327195440680321047nt_nat ).

thf(sy_c_Product__Type_OPair_001_062_It__Nat__Onat_Mt__Nat__Onat_J_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    produc5770335208449155351at_nat: ( nat > nat ) > ( nat > nat ) > produc1932156733058919263at_nat ).

thf(sy_c_Product__Type_OPair_001_062_It__Num__Onum_Mt__Nat__Onat_J_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    produc195427321684866731um_nat: ( num > nat ) > ( num > nat ) > produc245313536953334771um_nat ).

thf(sy_c_Product__Type_OPair_001t__Int__Oint_001t__Int__Oint,type,
    product_Pair_int_int: int > int > product_prod_int_int ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_001t__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    produc5249521469742256623nt_nat: list_int_nat > list_int_nat > produc2907033302207676215nt_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_001t__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    produc4657003450915473719at_nat: list_nat_nat > list_nat_nat > produc1282733263909545087at_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_001t__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    produc2264169877068294091um_nat: list_num_nat > list_num_nat > produc4545171480585158163um_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Int__Oint_J_001t__List__Olist_It__Int__Oint_J,type,
    produc364263696895485585st_int: list_int > list_int > produc1186641810826059865st_int ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__List__Olist_It__Int__Oint_J_J_001t__List__Olist_It__List__Olist_It__Int__Oint_J_J,type,
    produc4355665770860423473st_int: list_list_int > list_list_int > produc8452586669324383225st_int ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__List__Olist_Itf__a_J_J_001t__List__Olist_It__List__Olist_Itf__a_J_J,type,
    produc8696003437204565271list_a: list_list_a > list_list_a > produc7709606177366032167list_a ).

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

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Num__Onum_J_001t__List__Olist_It__Num__Onum_J,type,
    produc6756297649562724717st_num: list_num > list_num > produc897883541406338101st_num ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_001t__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    produc5943733680697469783at_nat: list_P6011104703257516679at_nat > list_P6011104703257516679at_nat > produc6392793444374437607at_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J,type,
    produc5384655689722402227_a_nat: list_P3592885314253461005_a_nat > list_P3592885314253461005_a_nat > produc417292134775302395_a_nat ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_001t__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    produc1014507885701610967od_a_a: list_P1396940483166286381od_a_a > list_P1396940483166286381od_a_a > produc5715173734304154471od_a_a ).

thf(sy_c_Product__Type_OPair_001t__List__Olist_Itf__a_J_001t__List__Olist_Itf__a_J,type,
    produc6837034575241423639list_a: list_a > list_a > produc9164743771328383783list_a ).

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

thf(sy_c_Product__Type_OPair_001t__Num__Onum_001t__Num__Onum,type,
    product_Pair_num_num: num > num > product_prod_num_num ).

thf(sy_c_Product__Type_OPair_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    produc6161850002892822231at_nat: product_prod_nat_nat > product_prod_nat_nat > produc859450856879609959at_nat ).

thf(sy_c_Product__Type_OPair_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_001t__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J,type,
    produc2026711137822539155_a_nat: product_prod_a_nat > product_prod_a_nat > produc4708774622424448987_a_nat ).

thf(sy_c_Product__Type_OPair_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    produc7886510207707329367od_a_a: product_prod_a_a > product_prod_a_a > produc3498347346309940967od_a_a ).

thf(sy_c_Product__Type_OPair_001t__States__Ostates_Itf__a_J_001t__Nat__Onat,type,
    produc1877401315875745917_a_nat: states_a > nat > produc1571854377283420419_a_nat ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Big__Ostate_Itf__a_J,type,
    produc8641956578966763338tate_a: a > state_a2 > produc6972303929186420058tate_a ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Small__Ostate_Itf__a_J,type,
    produc1224139502141355779tate_a: a > state_a > produc7589950997499123219tate_a ).

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

thf(sy_c_Rings_Odivide__class_Odivide_001t__Int__Oint,type,
    divide_divide_int: int > int > int ).

thf(sy_c_Rings_Odivide__class_Odivide_001t__Nat__Onat,type,
    divide_divide_nat: nat > nat > nat ).

thf(sy_c_Rings_Odvd__class_Odvd_001t__Int__Oint,type,
    dvd_dvd_int: int > int > $o ).

thf(sy_c_Rings_Odvd__class_Odvd_001t__Nat__Onat,type,
    dvd_dvd_nat: nat > nat > $o ).

thf(sy_c_Rings_Omodulo__class_Omodulo_001t__Int__Oint,type,
    modulo_modulo_int: int > int > int ).

thf(sy_c_Rings_Omodulo__class_Omodulo_001t__Nat__Onat,type,
    modulo_modulo_nat: nat > nat > 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__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    collec213857154873943460nt_int: ( product_prod_int_int > $o ) > set_Pr958786334691620121nt_int ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    collec3392354462482085612at_nat: ( product_prod_nat_nat > $o ) > set_Pr1261947904930325089at_nat ).

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

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

thf(sy_c_Small_Opop_001tf__a,type,
    pop_a2: state_a > produc7589950997499123219tate_a ).

thf(sy_c_Small_Opush_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    push_int_nat2: ( int > nat ) > state_int_nat > state_int_nat ).

thf(sy_c_Small_Opush_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    push_nat_nat2: ( nat > nat ) > state_nat_nat > state_nat_nat ).

thf(sy_c_Small_Opush_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    push_num_nat2: ( num > nat ) > state_num_nat > state_num_nat ).

thf(sy_c_Small_Opush_001t__Int__Oint,type,
    push_int2: int > state_int > state_int ).

thf(sy_c_Small_Opush_001tf__a,type,
    push_a2: a > state_a > state_a ).

thf(sy_c_Small__Aux_Olist__current_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    small_4712429614954843054nt_nat: state_int_nat > list_int_nat ).

thf(sy_c_Small__Aux_Olist__current_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    small_3713075903053788498at_nat: state_nat_nat > list_nat_nat ).

thf(sy_c_Small__Aux_Olist__current_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    small_1843406306361257884um_nat: state_num_nat > list_num_nat ).

thf(sy_c_Small__Aux_Olist__current_001t__Int__Oint,type,
    small_1709254455575119551nt_int: state_int > list_int ).

thf(sy_c_Small__Aux_Olist__current_001tf__a,type,
    small_list_current_a: state_a > list_a ).

thf(sy_c_States_Odirection_OLeft,type,
    left: direction ).

thf(sy_c_States_Odirection_ORight,type,
    right: direction ).

thf(sy_c_States_Odirection_Osize__direction,type,
    size_direction: direction > nat ).

thf(sy_c_States_Ostates_OStates_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    states_int_nat2: direction > state_int_nat2 > state_int_nat > states_int_nat ).

thf(sy_c_States_Ostates_OStates_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    states_nat_nat2: direction > state_nat_nat2 > state_nat_nat > states_nat_nat ).

thf(sy_c_States_Ostates_OStates_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    states_num_nat2: direction > state_num_nat2 > state_num_nat > states_num_nat ).

thf(sy_c_States_Ostates_OStates_001t__Int__Oint,type,
    states_int2: direction > state_int2 > state_int > states_int ).

thf(sy_c_States_Ostates_OStates_001tf__a,type,
    states_a2: direction > state_a2 > state_a > states_a ).

thf(sy_c_States_Ostates_Osize__states_001tf__a,type,
    size_states_a: ( a > nat ) > states_a > nat ).

thf(sy_c_States__Aux_OlistL_001tf__a,type,
    states_listL_a: states_a > list_a ).

thf(sy_c_States__Aux_OlistL__rel_001tf__a,type,
    states_listL_rel_a: states_a > states_a > $o ).

thf(sy_c_States__Aux_Olist__big__first_001tf__a,type,
    states1888450819780863577irst_a: states_a > list_a ).

thf(sy_c_States__Aux_Olist__current__big__first_001tf__a,type,
    states7295096810965389224irst_a: states_a > list_a ).

thf(sy_c_States__Aux_Olist__current__small__first_001tf__a,type,
    states7886008410469471791irst_a: states_a > list_a ).

thf(sy_c_States__Aux_Olist__small__first_001tf__a,type,
    states1596304293096088672irst_a: states_a > list_a ).

thf(sy_c_States__Aux_Olists_001_062_It__Int__Oint_Mt__Nat__Onat_J,type,
    states_lists_int_nat: states_int_nat > produc2907033302207676215nt_nat ).

thf(sy_c_States__Aux_Olists_001_062_It__Nat__Onat_Mt__Nat__Onat_J,type,
    states_lists_nat_nat: states_nat_nat > produc1282733263909545087at_nat ).

thf(sy_c_States__Aux_Olists_001_062_It__Num__Onum_Mt__Nat__Onat_J,type,
    states_lists_num_nat: states_num_nat > produc4545171480585158163um_nat ).

thf(sy_c_States__Aux_Olists_001t__Int__Oint,type,
    states_lists_int: states_int > produc1186641810826059865st_int ).

thf(sy_c_States__Aux_Olists_001tf__a,type,
    states_lists_a: states_a > produc9164743771328383783list_a ).

thf(sy_c_States__Aux_Olists__current_001t__Int__Oint,type,
    states4446210166810079719nt_int: states_int > produc1186641810826059865st_int ).

thf(sy_c_States__Aux_Olists__current_001tf__a,type,
    states7719277857994474499rent_a: states_a > produc9164743771328383783list_a ).

thf(sy_c_States__Aux_Olists__current__rel_001t__Int__Oint,type,
    states6576289658430312748el_int: states_int > states_int > $o ).

thf(sy_c_States__Aux_Olists__current__rel_001tf__a,type,
    states5251248496104418302_rel_a: states_a > states_a > $o ).

thf(sy_c_States__Aux_Osize__ok_H_001tf__a,type,
    states_size_ok_a: states_a > nat > $o ).

thf(sy_c_States__Aux_Osize__ok_H__rel_001tf__a,type,
    states_size_ok_rel_a: produc1571854377283420419_a_nat > produc1571854377283420419_a_nat > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__Big__Ostate_Itf__a_J,type,
    type_i6304938058965754292tate_a: state_a2 > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__Small__Ostate_Itf__a_J,type,
    type_i464410347872898157tate_a: state_a > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__States__Ostates_I_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    type_i7955358610786168808nt_nat: states_int_nat > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__States__Ostates_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    type_i5768437036093147020at_nat: states_nat_nat > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__States__Ostates_I_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    type_i7786832130059320534um_nat: states_num_nat > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__States__Ostates_It__Int__Oint_J,type,
    type_i6677890655034438905es_int: states_int > $o ).

thf(sy_c_Type__Classes_Oinvar__class_Oinvar_001t__States__Ostates_Itf__a_J,type,
    type_i8221491762852169479ates_a: states_a > $o ).

thf(sy_c_Type__Classes_Oremaining__steps__class_Oremaining__steps_001t__States__Ostates_Itf__a_J,type,
    type_r4519047461186610747ates_a: states_a > nat ).

thf(sy_c_Type__Classes_Osize__new__class_Osize__new_001t__Big__Ostate_Itf__a_J,type,
    type_s6530235180886170618tate_a: state_a2 > nat ).

thf(sy_c_Type__Classes_Osize__new__class_Osize__new_001t__Small__Ostate_Itf__a_J,type,
    type_s6404775287138157491tate_a: state_a > nat ).

thf(sy_c_Type__Classes_Ostep__class_Ostep_001t__Big__Ostate_Itf__a_J,type,
    type_s3593206172722485288tate_a: state_a2 > state_a2 ).

thf(sy_c_Type__Classes_Ostep__class_Ostep_001t__States__Ostates_Itf__a_J,type,
    type_s4923920245906622843ates_a: states_a > states_a ).

thf(sy_c_Wellfounded_Oaccp_001t__Product____Type__Oprod_It__States__Ostates_Itf__a_J_Mt__Nat__Onat_J,type,
    accp_P8670043419270033210_a_nat: ( produc1571854377283420419_a_nat > produc1571854377283420419_a_nat > $o ) > produc1571854377283420419_a_nat > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__States__Ostates_It__Int__Oint_J,type,
    accp_states_int: ( states_int > states_int > $o ) > states_int > $o ).

thf(sy_c_Wellfounded_Oaccp_001t__States__Ostates_Itf__a_J,type,
    accp_states_a: ( states_a > states_a > $o ) > states_a > $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__Product____Type__Oprod_I_062_It__Int__Oint_Mt__Nat__Onat_J_M_062_It__Int__Oint_Mt__Nat__Onat_J_J,type,
    member4491287985726366656nt_nat: produc5327195440680321047nt_nat > set_Pr1394042615296016247nt_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_I_062_It__Nat__Onat_Mt__Nat__Onat_J_M_062_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    member1096249278104964872at_nat: produc1932156733058919263at_nat > set_Pr7682762132356531903at_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_I_062_It__Num__Onum_Mt__Nat__Onat_J_M_062_It__Num__Onum_Mt__Nat__Onat_J_J,type,
    member8632778118854156188um_nat: produc245313536953334771um_nat > set_Pr2767457846497873235um_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J,type,
    member5262025264175285858nt_int: product_prod_int_int > set_Pr958786334691620121nt_int > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Int__Oint_Mt__Nat__Onat_J_J_J,type,
    member7939632110732153312nt_nat: produc2907033302207676215nt_nat > set_Pr7878039356161601943nt_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    member6315332072434022184at_nat: produc1282733263909545087at_nat > set_Pr4525179957102981855at_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_Mt__List__Olist_I_062_It__Num__Onum_Mt__Nat__Onat_J_J_J,type,
    member354398252254859452um_nat: produc4545171480585158163um_nat > set_Pr3311784803563962995um_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Int__Oint_J_Mt__List__Olist_It__Int__Oint_J_J,type,
    member6698963635872716290st_int: produc1186641810826059865st_int > set_Pr765067013931698361st_int > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__List__Olist_It__Int__Oint_J_J_Mt__List__Olist_It__List__Olist_It__Int__Oint_J_J_J,type,
    member3583055517200259234st_int: produc8452586669324383225st_int > set_Pr8140719670968651609st_int > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__List__Olist_Itf__a_J_J_Mt__List__Olist_It__List__Olist_Itf__a_J_J_J,type,
    member1318342207407915856list_a: produc7709606177366032167list_a > set_Pr5382606609415531783list_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Nat__Onat_J_Mt__List__Olist_It__Nat__Onat_J_J,type,
    member7340969449405702474st_nat: produc1828647624359046049st_nat > set_Pr3451248702717554689st_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Num__Onum_J_Mt__List__Olist_It__Num__Onum_J_J,type,
    member6410205366452994526st_num: produc897883541406338101st_num > set_Pr6931154981057480341st_num > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J_J,type,
    member6693912407220327184at_nat: produc6392793444374437607at_nat > set_Pr1542805901266377927at_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J_J,type,
    member3259931553675508900_a_nat: produc417292134775302395_a_nat > set_Pr2163802558726022747_a_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_Mt__List__Olist_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J_J,type,
    member1370157277785437840od_a_a: produc5715173734304154471od_a_a > set_Pr8563485649468363847od_a_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__List__Olist_Itf__a_J_Mt__List__Olist_Itf__a_J_J,type,
    member8191768239178080336list_a: produc9164743771328383783list_a > set_Pr4048851178543822343list_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J,type,
    member8440522571783428010at_nat: product_prod_nat_nat > set_Pr1261947904930325089at_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Num__Onum_Mt__Num__Onum_J,type,
    member7279096912039735102um_num: product_prod_num_num > set_Pr8218934625190621173um_num > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_It__Nat__Onat_Mt__Nat__Onat_J_J,type,
    member8206827879206165904at_nat: produc859450856879609959at_nat > set_Pr8693737435421807431at_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_Mt__Product____Type__Oprod_Itf__a_Mt__Nat__Onat_J_J,type,
    member9062615507155100804_a_nat: produc4708774622424448987_a_nat > set_Pr1811044260758604347_a_nat > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Product____Type__Oprod_Itf__a_Mtf__a_J_Mt__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    member6330455413206600464od_a_a: produc3498347346309940967od_a_a > set_Pr8600417178894128327od_a_a > $o ).

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

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

thf(sy_v_big____,type,
    big: state_a2 ).

thf(sy_v_small____,type,
    small: state_a ).

% Relevant facts (1271)
thf(fact_0__092_060open_062list__small__first_A_Istep_A_IStates_Adirection_OLeft_Abig_Asmall_J_J_A_061_ASmall__Aux_Olist__current_Asmall_A_064_Arev_A_IBig__Aux_Olist__current_Abig_J_092_060close_062,axiom,
    ( ( states1596304293096088672irst_a @ ( type_s4923920245906622843ates_a @ ( states_a2 @ left @ big @ small ) ) )
    = ( append_a @ ( small_list_current_a @ small ) @ ( rev_a @ ( big_list_current_a @ big ) ) ) ) ).

% \<open>list_small_first (step (States direction.Left big small)) = Small_Aux.list_current small @ rev (Big_Aux.list_current big)\<close>
thf(fact_1__092_060open_062list__small__first_A_IStates_Adirection_OLeft_Abig_Asmall_J_A_061_ASmall__Aux_Olist__current_Asmall_A_064_Arev_A_IBig__Aux_Olist__current_Abig_J_092_060close_062,axiom,
    ( ( states1596304293096088672irst_a @ ( states_a2 @ left @ big @ small ) )
    = ( append_a @ ( small_list_current_a @ small ) @ ( rev_a @ ( big_list_current_a @ big ) ) ) ) ).

% \<open>list_small_first (States direction.Left big small) = Small_Aux.list_current small @ rev (Big_Aux.list_current big)\<close>
thf(fact_2__C1_C,axiom,
    type_i8221491762852169479ates_a @ ( states_a2 @ left @ big @ small ) ).

% "1"
thf(fact_3_step__same,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
     => ( Dir = Dir2 ) ) ).

% step_same
thf(fact_4_rev__append,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat] :
      ( ( rev_Pr6102188148953555047at_nat @ ( append985823374593552924at_nat @ Xs @ Ys ) )
      = ( append985823374593552924at_nat @ ( rev_Pr6102188148953555047at_nat @ Ys ) @ ( rev_Pr6102188148953555047at_nat @ Xs ) ) ) ).

% rev_append
thf(fact_5_rev__append,axiom,
    ! [Xs: list_P2851791750731487283_nat_a,Ys: list_P2851791750731487283_nat_a] :
      ( ( rev_Pr4566615044306411965_nat_a @ ( append1694031006427026248_nat_a @ Xs @ Ys ) )
      = ( append1694031006427026248_nat_a @ ( rev_Pr4566615044306411965_nat_a @ Ys ) @ ( rev_Pr4566615044306411965_nat_a @ Xs ) ) ) ).

% rev_append
thf(fact_6_rev__append,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( rev_Pr1328451580582734999_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Ys ) )
      = ( append7679239579558125090_a_nat @ ( rev_Pr1328451580582734999_a_nat @ Ys ) @ ( rev_Pr1328451580582734999_a_nat @ Xs ) ) ) ).

% rev_append
thf(fact_7_rev__append,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( rev_Product_prod_a_a @ ( append5335208819046833346od_a_a @ Xs @ Ys ) )
      = ( append5335208819046833346od_a_a @ ( rev_Product_prod_a_a @ Ys ) @ ( rev_Product_prod_a_a @ Xs ) ) ) ).

% rev_append
thf(fact_8_rev__append,axiom,
    ! [Xs: list_num,Ys: list_num] :
      ( ( rev_num @ ( append_num @ Xs @ Ys ) )
      = ( append_num @ ( rev_num @ Ys ) @ ( rev_num @ Xs ) ) ) ).

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

% rev_append
thf(fact_10_rev__append,axiom,
    ! [Xs: list_int,Ys: list_int] :
      ( ( rev_int @ ( append_int @ Xs @ Ys ) )
      = ( append_int @ ( rev_int @ Ys ) @ ( rev_int @ Xs ) ) ) ).

% rev_append
thf(fact_11_rev__append,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( rev_a @ ( append_a @ Xs @ Ys ) )
      = ( append_a @ ( rev_a @ Ys ) @ ( rev_a @ Xs ) ) ) ).

% rev_append
thf(fact_12_rev__rev__ident,axiom,
    ! [Xs: list_nat] :
      ( ( rev_nat @ ( rev_nat @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_13_rev__rev__ident,axiom,
    ! [Xs: list_P6011104703257516679at_nat] :
      ( ( rev_Pr6102188148953555047at_nat @ ( rev_Pr6102188148953555047at_nat @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_14_rev__rev__ident,axiom,
    ! [Xs: list_P2851791750731487283_nat_a] :
      ( ( rev_Pr4566615044306411965_nat_a @ ( rev_Pr4566615044306411965_nat_a @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_15_rev__rev__ident,axiom,
    ! [Xs: list_P3592885314253461005_a_nat] :
      ( ( rev_Pr1328451580582734999_a_nat @ ( rev_Pr1328451580582734999_a_nat @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_16_rev__rev__ident,axiom,
    ! [Xs: list_P1396940483166286381od_a_a] :
      ( ( rev_Product_prod_a_a @ ( rev_Product_prod_a_a @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_17_rev__rev__ident,axiom,
    ! [Xs: list_a] :
      ( ( rev_a @ ( rev_a @ Xs ) )
      = Xs ) ).

% rev_rev_ident
thf(fact_18_rev__is__rev__conv,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( rev_nat @ Xs )
        = ( rev_nat @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_19_rev__is__rev__conv,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat] :
      ( ( ( rev_Pr6102188148953555047at_nat @ Xs )
        = ( rev_Pr6102188148953555047at_nat @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_20_rev__is__rev__conv,axiom,
    ! [Xs: list_P2851791750731487283_nat_a,Ys: list_P2851791750731487283_nat_a] :
      ( ( ( rev_Pr4566615044306411965_nat_a @ Xs )
        = ( rev_Pr4566615044306411965_nat_a @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_21_rev__is__rev__conv,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( ( rev_Pr1328451580582734999_a_nat @ Xs )
        = ( rev_Pr1328451580582734999_a_nat @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_22_rev__is__rev__conv,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( ( rev_Product_prod_a_a @ Xs )
        = ( rev_Product_prod_a_a @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_23_rev__is__rev__conv,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( rev_a @ Xs )
        = ( rev_a @ Ys ) )
      = ( Xs = Ys ) ) ).

% rev_is_rev_conv
thf(fact_24_append_Oassoc,axiom,
    ! [A: list_P3592885314253461005_a_nat,B: list_P3592885314253461005_a_nat,C: list_P3592885314253461005_a_nat] :
      ( ( append7679239579558125090_a_nat @ ( append7679239579558125090_a_nat @ A @ B ) @ C )
      = ( append7679239579558125090_a_nat @ A @ ( append7679239579558125090_a_nat @ B @ C ) ) ) ).

% append.assoc
thf(fact_25_append_Oassoc,axiom,
    ! [A: list_P1396940483166286381od_a_a,B: list_P1396940483166286381od_a_a,C: list_P1396940483166286381od_a_a] :
      ( ( append5335208819046833346od_a_a @ ( append5335208819046833346od_a_a @ A @ B ) @ C )
      = ( append5335208819046833346od_a_a @ A @ ( append5335208819046833346od_a_a @ B @ C ) ) ) ).

% append.assoc
thf(fact_26_append_Oassoc,axiom,
    ! [A: list_num,B: list_num,C: list_num] :
      ( ( append_num @ ( append_num @ A @ B ) @ C )
      = ( append_num @ A @ ( append_num @ B @ C ) ) ) ).

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

% append.assoc
thf(fact_28_append_Oassoc,axiom,
    ! [A: list_int,B: list_int,C: list_int] :
      ( ( append_int @ ( append_int @ A @ B ) @ C )
      = ( append_int @ A @ ( append_int @ B @ C ) ) ) ).

% append.assoc
thf(fact_29_append_Oassoc,axiom,
    ! [A: list_a,B: list_a,C: list_a] :
      ( ( append_a @ ( append_a @ A @ B ) @ C )
      = ( append_a @ A @ ( append_a @ B @ C ) ) ) ).

% append.assoc
thf(fact_30_append__assoc,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ( append7679239579558125090_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Ys ) @ Zs )
      = ( append7679239579558125090_a_nat @ Xs @ ( append7679239579558125090_a_nat @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_31_append__assoc,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ( append5335208819046833346od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Ys ) @ Zs )
      = ( append5335208819046833346od_a_a @ Xs @ ( append5335208819046833346od_a_a @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_32_append__assoc,axiom,
    ! [Xs: list_num,Ys: list_num,Zs: list_num] :
      ( ( append_num @ ( append_num @ Xs @ Ys ) @ Zs )
      = ( append_num @ Xs @ ( append_num @ Ys @ Zs ) ) ) ).

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

% append_assoc
thf(fact_34_append__assoc,axiom,
    ! [Xs: list_int,Ys: list_int,Zs: list_int] :
      ( ( append_int @ ( append_int @ Xs @ Ys ) @ Zs )
      = ( append_int @ Xs @ ( append_int @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_35_append__assoc,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ( append_a @ ( append_a @ Xs @ Ys ) @ Zs )
      = ( append_a @ Xs @ ( append_a @ Ys @ Zs ) ) ) ).

% append_assoc
thf(fact_36_append__same__eq,axiom,
    ! [Ys: list_P3592885314253461005_a_nat,Xs: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ( ( append7679239579558125090_a_nat @ Ys @ Xs )
        = ( append7679239579558125090_a_nat @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_37_append__same__eq,axiom,
    ! [Ys: list_P1396940483166286381od_a_a,Xs: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ( ( append5335208819046833346od_a_a @ Ys @ Xs )
        = ( append5335208819046833346od_a_a @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_38_append__same__eq,axiom,
    ! [Ys: list_num,Xs: list_num,Zs: list_num] :
      ( ( ( append_num @ Ys @ Xs )
        = ( append_num @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

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

% append_same_eq
thf(fact_40_append__same__eq,axiom,
    ! [Ys: list_int,Xs: list_int,Zs: list_int] :
      ( ( ( append_int @ Ys @ Xs )
        = ( append_int @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_41_append__same__eq,axiom,
    ! [Ys: list_a,Xs: list_a,Zs: list_a] :
      ( ( ( append_a @ Ys @ Xs )
        = ( append_a @ Zs @ Xs ) )
      = ( Ys = Zs ) ) ).

% append_same_eq
thf(fact_42_same__append__eq,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ( ( append7679239579558125090_a_nat @ Xs @ Ys )
        = ( append7679239579558125090_a_nat @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_43_same__append__eq,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ( ( append5335208819046833346od_a_a @ Xs @ Ys )
        = ( append5335208819046833346od_a_a @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_44_same__append__eq,axiom,
    ! [Xs: list_num,Ys: list_num,Zs: list_num] :
      ( ( ( append_num @ Xs @ Ys )
        = ( append_num @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

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

% same_append_eq
thf(fact_46_same__append__eq,axiom,
    ! [Xs: list_int,Ys: list_int,Zs: list_int] :
      ( ( ( append_int @ Xs @ Ys )
        = ( append_int @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_47_same__append__eq,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = ( append_a @ Xs @ Zs ) )
      = ( Ys = Zs ) ) ).

% same_append_eq
thf(fact_48_states_Oinject,axiom,
    ! [X1: direction,X2: state_a2,X3: state_a,Y1: direction,Y2: state_a2,Y3: state_a] :
      ( ( ( states_a2 @ X1 @ X2 @ X3 )
        = ( states_a2 @ Y1 @ Y2 @ Y3 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 )
        & ( X3 = Y3 ) ) ) ).

% states.inject
thf(fact_49_listL_Osimps_I1_J,axiom,
    ! [Big: state_a2,Small: state_a] :
      ( ( states_listL_a @ ( states_a2 @ left @ Big @ Small ) )
      = ( states1596304293096088672irst_a @ ( states_a2 @ left @ Big @ Small ) ) ) ).

% listL.simps(1)
thf(fact_50_app__rev,axiom,
    ! [As: list_P6011104703257516679at_nat,Bs: list_P6011104703257516679at_nat,Cs: list_P6011104703257516679at_nat,Ds: list_P6011104703257516679at_nat] :
      ( ( ( append985823374593552924at_nat @ As @ ( rev_Pr6102188148953555047at_nat @ Bs ) )
        = ( append985823374593552924at_nat @ Cs @ ( rev_Pr6102188148953555047at_nat @ Ds ) ) )
     => ( ( append985823374593552924at_nat @ Bs @ ( rev_Pr6102188148953555047at_nat @ As ) )
        = ( append985823374593552924at_nat @ Ds @ ( rev_Pr6102188148953555047at_nat @ Cs ) ) ) ) ).

% app_rev
thf(fact_51_app__rev,axiom,
    ! [As: list_P2851791750731487283_nat_a,Bs: list_P2851791750731487283_nat_a,Cs: list_P2851791750731487283_nat_a,Ds: list_P2851791750731487283_nat_a] :
      ( ( ( append1694031006427026248_nat_a @ As @ ( rev_Pr4566615044306411965_nat_a @ Bs ) )
        = ( append1694031006427026248_nat_a @ Cs @ ( rev_Pr4566615044306411965_nat_a @ Ds ) ) )
     => ( ( append1694031006427026248_nat_a @ Bs @ ( rev_Pr4566615044306411965_nat_a @ As ) )
        = ( append1694031006427026248_nat_a @ Ds @ ( rev_Pr4566615044306411965_nat_a @ Cs ) ) ) ) ).

% app_rev
thf(fact_52_app__rev,axiom,
    ! [As: list_P3592885314253461005_a_nat,Bs: list_P3592885314253461005_a_nat,Cs: list_P3592885314253461005_a_nat,Ds: list_P3592885314253461005_a_nat] :
      ( ( ( append7679239579558125090_a_nat @ As @ ( rev_Pr1328451580582734999_a_nat @ Bs ) )
        = ( append7679239579558125090_a_nat @ Cs @ ( rev_Pr1328451580582734999_a_nat @ Ds ) ) )
     => ( ( append7679239579558125090_a_nat @ Bs @ ( rev_Pr1328451580582734999_a_nat @ As ) )
        = ( append7679239579558125090_a_nat @ Ds @ ( rev_Pr1328451580582734999_a_nat @ Cs ) ) ) ) ).

% app_rev
thf(fact_53_app__rev,axiom,
    ! [As: list_P1396940483166286381od_a_a,Bs: list_P1396940483166286381od_a_a,Cs: list_P1396940483166286381od_a_a,Ds: list_P1396940483166286381od_a_a] :
      ( ( ( append5335208819046833346od_a_a @ As @ ( rev_Product_prod_a_a @ Bs ) )
        = ( append5335208819046833346od_a_a @ Cs @ ( rev_Product_prod_a_a @ Ds ) ) )
     => ( ( append5335208819046833346od_a_a @ Bs @ ( rev_Product_prod_a_a @ As ) )
        = ( append5335208819046833346od_a_a @ Ds @ ( rev_Product_prod_a_a @ Cs ) ) ) ) ).

% app_rev
thf(fact_54_app__rev,axiom,
    ! [As: list_num,Bs: list_num,Cs: list_num,Ds: list_num] :
      ( ( ( append_num @ As @ ( rev_num @ Bs ) )
        = ( append_num @ Cs @ ( rev_num @ Ds ) ) )
     => ( ( append_num @ Bs @ ( rev_num @ As ) )
        = ( append_num @ Ds @ ( rev_num @ Cs ) ) ) ) ).

% app_rev
thf(fact_55_app__rev,axiom,
    ! [As: list_nat,Bs: list_nat,Cs: list_nat,Ds: list_nat] :
      ( ( ( append_nat @ As @ ( rev_nat @ Bs ) )
        = ( append_nat @ Cs @ ( rev_nat @ Ds ) ) )
     => ( ( append_nat @ Bs @ ( rev_nat @ As ) )
        = ( append_nat @ Ds @ ( rev_nat @ Cs ) ) ) ) ).

% app_rev
thf(fact_56_app__rev,axiom,
    ! [As: list_int,Bs: list_int,Cs: list_int,Ds: list_int] :
      ( ( ( append_int @ As @ ( rev_int @ Bs ) )
        = ( append_int @ Cs @ ( rev_int @ Ds ) ) )
     => ( ( append_int @ Bs @ ( rev_int @ As ) )
        = ( append_int @ Ds @ ( rev_int @ Cs ) ) ) ) ).

% app_rev
thf(fact_57_app__rev,axiom,
    ! [As: list_a,Bs: list_a,Cs: list_a,Ds: list_a] :
      ( ( ( append_a @ As @ ( rev_a @ Bs ) )
        = ( append_a @ Cs @ ( rev_a @ Ds ) ) )
     => ( ( append_a @ Bs @ ( rev_a @ As ) )
        = ( append_a @ Ds @ ( rev_a @ Cs ) ) ) ) ).

% app_rev
thf(fact_58_rev__swap,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( rev_nat @ Xs )
        = Ys )
      = ( Xs
        = ( rev_nat @ Ys ) ) ) ).

% rev_swap
thf(fact_59_rev__swap,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat] :
      ( ( ( rev_Pr6102188148953555047at_nat @ Xs )
        = Ys )
      = ( Xs
        = ( rev_Pr6102188148953555047at_nat @ Ys ) ) ) ).

% rev_swap
thf(fact_60_rev__swap,axiom,
    ! [Xs: list_P2851791750731487283_nat_a,Ys: list_P2851791750731487283_nat_a] :
      ( ( ( rev_Pr4566615044306411965_nat_a @ Xs )
        = Ys )
      = ( Xs
        = ( rev_Pr4566615044306411965_nat_a @ Ys ) ) ) ).

% rev_swap
thf(fact_61_rev__swap,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( ( rev_Pr1328451580582734999_a_nat @ Xs )
        = Ys )
      = ( Xs
        = ( rev_Pr1328451580582734999_a_nat @ Ys ) ) ) ).

% rev_swap
thf(fact_62_rev__swap,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( ( rev_Product_prod_a_a @ Xs )
        = Ys )
      = ( Xs
        = ( rev_Product_prod_a_a @ Ys ) ) ) ).

% rev_swap
thf(fact_63_rev__swap,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( rev_a @ Xs )
        = Ys )
      = ( Xs
        = ( rev_a @ Ys ) ) ) ).

% rev_swap
thf(fact_64_append__eq__appendI,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Xs1: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Us: list_P3592885314253461005_a_nat] :
      ( ( ( append7679239579558125090_a_nat @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append7679239579558125090_a_nat @ Xs1 @ Us ) )
       => ( ( append7679239579558125090_a_nat @ Xs @ Ys )
          = ( append7679239579558125090_a_nat @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_65_append__eq__appendI,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Xs1: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Us: list_P1396940483166286381od_a_a] :
      ( ( ( append5335208819046833346od_a_a @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append5335208819046833346od_a_a @ Xs1 @ Us ) )
       => ( ( append5335208819046833346od_a_a @ Xs @ Ys )
          = ( append5335208819046833346od_a_a @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_66_append__eq__appendI,axiom,
    ! [Xs: list_num,Xs1: list_num,Zs: list_num,Ys: list_num,Us: list_num] :
      ( ( ( append_num @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append_num @ Xs1 @ Us ) )
       => ( ( append_num @ Xs @ Ys )
          = ( append_num @ Zs @ Us ) ) ) ) ).

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

% append_eq_appendI
thf(fact_68_append__eq__appendI,axiom,
    ! [Xs: list_int,Xs1: list_int,Zs: list_int,Ys: list_int,Us: list_int] :
      ( ( ( append_int @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append_int @ Xs1 @ Us ) )
       => ( ( append_int @ Xs @ Ys )
          = ( append_int @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_69_append__eq__appendI,axiom,
    ! [Xs: list_a,Xs1: list_a,Zs: list_a,Ys: list_a,Us: list_a] :
      ( ( ( append_a @ Xs @ Xs1 )
        = Zs )
     => ( ( Ys
          = ( append_a @ Xs1 @ Us ) )
       => ( ( append_a @ Xs @ Ys )
          = ( append_a @ Zs @ Us ) ) ) ) ).

% append_eq_appendI
thf(fact_70_States__Proof_Oinvar__step,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( type_i8221491762852169479ates_a @ ( type_s4923920245906622843ates_a @ States ) ) ) ).

% States_Proof.invar_step
thf(fact_71_remaining__steps__states_Ocases,axiom,
    ! [X: states_a] :
      ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
          ( X
         != ( states_a2 @ Uu @ Big3 @ Small3 ) ) ).

% remaining_steps_states.cases
thf(fact_72_states_Oexhaust,axiom,
    ! [Y: states_a] :
      ~ ! [X12: direction,X22: state_a2,X32: state_a] :
          ( Y
         != ( states_a2 @ X12 @ X22 @ X32 ) ) ).

% states.exhaust
thf(fact_73_append__eq__append__conv2,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat,Ts: list_P3592885314253461005_a_nat] :
      ( ( ( append7679239579558125090_a_nat @ Xs @ Ys )
        = ( append7679239579558125090_a_nat @ Zs @ Ts ) )
      = ( ? [Us2: list_P3592885314253461005_a_nat] :
            ( ( ( Xs
                = ( append7679239579558125090_a_nat @ Zs @ Us2 ) )
              & ( ( append7679239579558125090_a_nat @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append7679239579558125090_a_nat @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append7679239579558125090_a_nat @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_74_append__eq__append__conv2,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a,Ts: list_P1396940483166286381od_a_a] :
      ( ( ( append5335208819046833346od_a_a @ Xs @ Ys )
        = ( append5335208819046833346od_a_a @ Zs @ Ts ) )
      = ( ? [Us2: list_P1396940483166286381od_a_a] :
            ( ( ( Xs
                = ( append5335208819046833346od_a_a @ Zs @ Us2 ) )
              & ( ( append5335208819046833346od_a_a @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append5335208819046833346od_a_a @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append5335208819046833346od_a_a @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_75_append__eq__append__conv2,axiom,
    ! [Xs: list_num,Ys: list_num,Zs: list_num,Ts: list_num] :
      ( ( ( append_num @ Xs @ Ys )
        = ( append_num @ Zs @ Ts ) )
      = ( ? [Us2: list_num] :
            ( ( ( Xs
                = ( append_num @ Zs @ Us2 ) )
              & ( ( append_num @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append_num @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append_num @ Us2 @ Ts ) ) ) ) ) ) ).

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

% append_eq_append_conv2
thf(fact_77_append__eq__append__conv2,axiom,
    ! [Xs: list_int,Ys: list_int,Zs: list_int,Ts: list_int] :
      ( ( ( append_int @ Xs @ Ys )
        = ( append_int @ Zs @ Ts ) )
      = ( ? [Us2: list_int] :
            ( ( ( Xs
                = ( append_int @ Zs @ Us2 ) )
              & ( ( append_int @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append_int @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append_int @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_78_append__eq__append__conv2,axiom,
    ! [Xs: list_a,Ys: list_a,Zs: list_a,Ts: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = ( append_a @ Zs @ Ts ) )
      = ( ? [Us2: list_a] :
            ( ( ( Xs
                = ( append_a @ Zs @ Us2 ) )
              & ( ( append_a @ Us2 @ Ys )
                = Ts ) )
            | ( ( ( append_a @ Xs @ Us2 )
                = Zs )
              & ( Ys
                = ( append_a @ Us2 @ Ts ) ) ) ) ) ) ).

% append_eq_append_conv2
thf(fact_79_step__lists__current,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states7719277857994474499rent_a @ ( type_s4923920245906622843ates_a @ States ) )
        = ( states7719277857994474499rent_a @ States ) ) ) ).

% step_lists_current
thf(fact_80_step__lists__small__first,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states1596304293096088672irst_a @ ( type_s4923920245906622843ates_a @ States ) )
        = ( states7886008410469471791irst_a @ ( type_s4923920245906622843ates_a @ States ) ) ) ) ).

% step_lists_small_first
thf(fact_81_step__lists,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states_lists_a @ ( type_s4923920245906622843ates_a @ States ) )
        = ( states_lists_a @ States ) ) ) ).

% step_lists
thf(fact_82_listL_Oelims,axiom,
    ! [X: states_a,Y: list_a] :
      ( ( ( states_listL_a @ X )
        = Y )
     => ( ! [Big3: state_a2,Small3: state_a] :
            ( ( X
              = ( states_a2 @ left @ Big3 @ Small3 ) )
           => ( Y
             != ( states1596304293096088672irst_a @ ( states_a2 @ left @ Big3 @ Small3 ) ) ) )
       => ~ ! [Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ right @ Big3 @ Small3 ) )
             => ( Y
               != ( states1888450819780863577irst_a @ ( states_a2 @ right @ Big3 @ Small3 ) ) ) ) ) ) ).

% listL.elims
thf(fact_83_step__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a2 @ Small2 )
          = ( size_size_state_a2 @ Small ) ) ) ) ).

% step_size_small
thf(fact_84_step__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6404775287138157491tate_a @ Small2 )
          = ( type_s6404775287138157491tate_a @ Small ) ) ) ) ).

% step_size_new_small
thf(fact_85_step__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6530235180886170618tate_a @ Big2 )
          = ( type_s6530235180886170618tate_a @ Big ) ) ) ) ).

% step_size_new_big
thf(fact_86_listL_Ocases,axiom,
    ! [X: states_a] :
      ( ! [Big3: state_a2,Small3: state_a] :
          ( X
         != ( states_a2 @ left @ Big3 @ Small3 ) )
     => ~ ! [Big3: state_a2,Small3: state_a] :
            ( X
           != ( states_a2 @ right @ Big3 @ Small3 ) ) ) ).

% listL.cases
thf(fact_87_step__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a @ Big2 )
          = ( size_size_state_a @ Big ) ) ) ) ).

% step_size_big
thf(fact_88_listL_Osimps_I2_J,axiom,
    ! [Big: state_a2,Small: state_a] :
      ( ( states_listL_a @ ( states_a2 @ right @ Big @ Small ) )
      = ( states1888450819780863577irst_a @ ( states_a2 @ right @ Big @ Small ) ) ) ).

% listL.simps(2)
thf(fact_89_direction_Odistinct_I1_J,axiom,
    left != right ).

% direction.distinct(1)
thf(fact_90_direction_Oexhaust,axiom,
    ! [Y: direction] :
      ( ( Y != left )
     => ( Y = right ) ) ).

% direction.exhaust
thf(fact_91_list__small__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( ( states1596304293096088672irst_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( states7886008410469471791irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
      = ( ( states1888450819780863577irst_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( states7295096810965389224irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ).

% list_small_big
thf(fact_92_listL_Opelims,axiom,
    ! [X: states_a,Y: list_a] :
      ( ( ( states_listL_a @ X )
        = Y )
     => ( ( accp_states_a @ states_listL_rel_a @ X )
       => ( ! [Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ left @ Big3 @ Small3 ) )
             => ( ( Y
                  = ( states1596304293096088672irst_a @ ( states_a2 @ left @ Big3 @ Small3 ) ) )
               => ~ ( accp_states_a @ states_listL_rel_a @ ( states_a2 @ left @ Big3 @ Small3 ) ) ) )
         => ~ ! [Big3: state_a2,Small3: state_a] :
                ( ( X
                  = ( states_a2 @ right @ Big3 @ Small3 ) )
               => ( ( Y
                    = ( states1888450819780863577irst_a @ ( states_a2 @ right @ Big3 @ Small3 ) ) )
                 => ~ ( accp_states_a @ states_listL_rel_a @ ( states_a2 @ right @ Big3 @ Small3 ) ) ) ) ) ) ) ).

% listL.pelims
thf(fact_93_lists__current_Oelims,axiom,
    ! [X: states_int,Y: produc1186641810826059865st_int] :
      ( ( ( states4446210166810079719nt_int @ X )
        = Y )
     => ~ ! [Uu: direction,Big3: state_int2,Small3: state_int] :
            ( ( X
              = ( states_int2 @ Uu @ Big3 @ Small3 ) )
           => ( Y
             != ( produc364263696895485585st_int @ ( big_list_current_int @ Big3 ) @ ( small_1709254455575119551nt_int @ Small3 ) ) ) ) ) ).

% lists_current.elims
thf(fact_94_lists__current_Oelims,axiom,
    ! [X: states_a,Y: produc9164743771328383783list_a] :
      ( ( ( states7719277857994474499rent_a @ X )
        = Y )
     => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
            ( ( X
              = ( states_a2 @ Uu @ Big3 @ Small3 ) )
           => ( Y
             != ( produc6837034575241423639list_a @ ( big_list_current_a @ Big3 ) @ ( small_list_current_a @ Small3 ) ) ) ) ) ).

% lists_current.elims
thf(fact_95_mem__Collect__eq,axiom,
    ! [A: product_prod_nat_nat,P: product_prod_nat_nat > $o] :
      ( ( member8440522571783428010at_nat @ A @ ( collec3392354462482085612at_nat @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_96_mem__Collect__eq,axiom,
    ! [A: product_prod_int_int,P: product_prod_int_int > $o] :
      ( ( member5262025264175285858nt_int @ A @ ( collec213857154873943460nt_int @ P ) )
      = ( P @ A ) ) ).

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

% mem_Collect_eq
thf(fact_98_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_99_mem__Collect__eq,axiom,
    ! [A: a,P: a > $o] :
      ( ( member_a @ A @ ( collect_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_100_Collect__mem__eq,axiom,
    ! [A2: set_Pr1261947904930325089at_nat] :
      ( ( collec3392354462482085612at_nat
        @ ^ [X4: product_prod_nat_nat] : ( member8440522571783428010at_nat @ X4 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_101_Collect__mem__eq,axiom,
    ! [A2: set_Pr958786334691620121nt_int] :
      ( ( collec213857154873943460nt_int
        @ ^ [X4: product_prod_int_int] : ( member5262025264175285858nt_int @ X4 @ A2 ) )
      = A2 ) ).

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

% Collect_mem_eq
thf(fact_103_Collect__mem__eq,axiom,
    ! [A2: set_list_a] :
      ( ( collect_list_a
        @ ^ [X4: list_a] : ( member_list_a @ X4 @ A2 ) )
      = A2 ) ).

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

% Collect_mem_eq
thf(fact_105_lists__current_Osimps,axiom,
    ! [Uu2: direction,Big: state_int2,Small: state_int] :
      ( ( states4446210166810079719nt_int @ ( states_int2 @ Uu2 @ Big @ Small ) )
      = ( produc364263696895485585st_int @ ( big_list_current_int @ Big ) @ ( small_1709254455575119551nt_int @ Small ) ) ) ).

% lists_current.simps
thf(fact_106_lists__current_Osimps,axiom,
    ! [Uu2: direction,Big: state_a2,Small: state_a] :
      ( ( states7719277857994474499rent_a @ ( states_a2 @ Uu2 @ Big @ Small ) )
      = ( produc6837034575241423639list_a @ ( big_list_current_a @ Big ) @ ( small_list_current_a @ Small ) ) ) ).

% lists_current.simps
thf(fact_107_invar__list__big__first,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states1888450819780863577irst_a @ States )
        = ( states7295096810965389224irst_a @ States ) ) ) ).

% invar_list_big_first
thf(fact_108_step__n__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a2 @ Small2 )
          = ( size_size_state_a2 @ Small ) ) ) ) ).

% step_n_size_small
thf(fact_109_step__n__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a @ Big2 )
          = ( size_size_state_a @ Big ) ) ) ) ).

% step_n_size_big
thf(fact_110_step__n__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6404775287138157491tate_a @ Small2 )
          = ( type_s6404775287138157491tate_a @ Small ) ) ) ) ).

% step_n_size_new_small
thf(fact_111_step__n__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6530235180886170618tate_a @ Big2 )
          = ( type_s6530235180886170618tate_a @ Big ) ) ) ) ).

% step_n_size_new_big
thf(fact_112_size__neq__size__imp__neq,axiom,
    ! [X: list_P6011104703257516679at_nat,Y: list_P6011104703257516679at_nat] :
      ( ( ( size_s5460976970255530739at_nat @ X )
       != ( size_s5460976970255530739at_nat @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_113_size__neq__size__imp__neq,axiom,
    ! [X: list_num,Y: list_num] :
      ( ( ( size_size_list_num @ X )
       != ( size_size_list_num @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_114_size__neq__size__imp__neq,axiom,
    ! [X: list_int,Y: list_int] :
      ( ( ( size_size_list_int @ X )
       != ( size_size_list_int @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_115_size__neq__size__imp__neq,axiom,
    ! [X: list_a,Y: list_a] :
      ( ( ( size_size_list_a @ X )
       != ( size_size_list_a @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_116_size__neq__size__imp__neq,axiom,
    ! [X: state_a2,Y: state_a2] :
      ( ( ( size_size_state_a @ X )
       != ( size_size_state_a @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_117_size__neq__size__imp__neq,axiom,
    ! [X: direction,Y: direction] :
      ( ( ( size_size_direction @ X )
       != ( size_size_direction @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_118_size__neq__size__imp__neq,axiom,
    ! [X: list_nat,Y: list_nat] :
      ( ( ( size_size_list_nat @ X )
       != ( size_size_list_nat @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_119_size__neq__size__imp__neq,axiom,
    ! [X: num,Y: num] :
      ( ( ( size_size_num @ X )
       != ( size_size_num @ Y ) )
     => ( X != Y ) ) ).

% size_neq_size_imp_neq
thf(fact_120_invar__push__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) ) ) ).

% invar_push_big
thf(fact_121_append__eq__append__conv,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Us: list_P3592885314253461005_a_nat,Vs: list_P3592885314253461005_a_nat] :
      ( ( ( ( size_s984997627204368545_a_nat @ Xs )
          = ( size_s984997627204368545_a_nat @ Ys ) )
        | ( ( size_s984997627204368545_a_nat @ Us )
          = ( size_s984997627204368545_a_nat @ Vs ) ) )
     => ( ( ( append7679239579558125090_a_nat @ Xs @ Us )
          = ( append7679239579558125090_a_nat @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_122_append__eq__append__conv,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Us: list_P1396940483166286381od_a_a,Vs: list_P1396940483166286381od_a_a] :
      ( ( ( ( size_s3885678630836030617od_a_a @ Xs )
          = ( size_s3885678630836030617od_a_a @ Ys ) )
        | ( ( size_s3885678630836030617od_a_a @ Us )
          = ( size_s3885678630836030617od_a_a @ Vs ) ) )
     => ( ( ( append5335208819046833346od_a_a @ Xs @ Us )
          = ( append5335208819046833346od_a_a @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_123_append__eq__append__conv,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat,Us: list_P6011104703257516679at_nat,Vs: list_P6011104703257516679at_nat] :
      ( ( ( ( size_s5460976970255530739at_nat @ Xs )
          = ( size_s5460976970255530739at_nat @ Ys ) )
        | ( ( size_s5460976970255530739at_nat @ Us )
          = ( size_s5460976970255530739at_nat @ Vs ) ) )
     => ( ( ( append985823374593552924at_nat @ Xs @ Us )
          = ( append985823374593552924at_nat @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_124_append__eq__append__conv,axiom,
    ! [Xs: list_num,Ys: list_num,Us: list_num,Vs: list_num] :
      ( ( ( ( size_size_list_num @ Xs )
          = ( size_size_list_num @ Ys ) )
        | ( ( size_size_list_num @ Us )
          = ( size_size_list_num @ Vs ) ) )
     => ( ( ( append_num @ Xs @ Us )
          = ( append_num @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_125_append__eq__append__conv,axiom,
    ! [Xs: list_int,Ys: list_int,Us: list_int,Vs: list_int] :
      ( ( ( ( size_size_list_int @ Xs )
          = ( size_size_list_int @ Ys ) )
        | ( ( size_size_list_int @ Us )
          = ( size_size_list_int @ Vs ) ) )
     => ( ( ( append_int @ Xs @ Us )
          = ( append_int @ Ys @ Vs ) )
        = ( ( Xs = Ys )
          & ( Us = Vs ) ) ) ) ).

% append_eq_append_conv
thf(fact_126_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_127_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_128_length__rev,axiom,
    ! [Xs: list_P2851791750731487283_nat_a] :
      ( ( size_s243904063682394823_nat_a @ ( rev_Pr4566615044306411965_nat_a @ Xs ) )
      = ( size_s243904063682394823_nat_a @ Xs ) ) ).

% length_rev
thf(fact_129_length__rev,axiom,
    ! [Xs: list_P3592885314253461005_a_nat] :
      ( ( size_s984997627204368545_a_nat @ ( rev_Pr1328451580582734999_a_nat @ Xs ) )
      = ( size_s984997627204368545_a_nat @ Xs ) ) ).

% length_rev
thf(fact_130_length__rev,axiom,
    ! [Xs: list_P1396940483166286381od_a_a] :
      ( ( size_s3885678630836030617od_a_a @ ( rev_Product_prod_a_a @ Xs ) )
      = ( size_s3885678630836030617od_a_a @ Xs ) ) ).

% length_rev
thf(fact_131_length__rev,axiom,
    ! [Xs: list_P6011104703257516679at_nat] :
      ( ( size_s5460976970255530739at_nat @ ( rev_Pr6102188148953555047at_nat @ Xs ) )
      = ( size_s5460976970255530739at_nat @ Xs ) ) ).

% length_rev
thf(fact_132_length__rev,axiom,
    ! [Xs: list_num] :
      ( ( size_size_list_num @ ( rev_num @ Xs ) )
      = ( size_size_list_num @ Xs ) ) ).

% length_rev
thf(fact_133_length__rev,axiom,
    ! [Xs: list_int] :
      ( ( size_size_list_int @ ( rev_int @ Xs ) )
      = ( size_size_list_int @ Xs ) ) ).

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

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

% length_rev
thf(fact_136_funpow__swap1,axiom,
    ! [F: states_a > states_a,N: nat,X: states_a] :
      ( ( F @ ( compow495008222514391794ates_a @ N @ F @ X ) )
      = ( compow495008222514391794ates_a @ N @ F @ ( F @ X ) ) ) ).

% funpow_swap1
thf(fact_137_funpow__swap1,axiom,
    ! [F: list_nat > list_nat,N: nat,X: list_nat] :
      ( ( F @ ( compow6514914278795418604st_nat @ N @ F @ X ) )
      = ( compow6514914278795418604st_nat @ N @ F @ ( F @ X ) ) ) ).

% funpow_swap1
thf(fact_138_funpow__swap1,axiom,
    ! [F: int > int,N: nat,X: int] :
      ( ( F @ ( compow_int_int @ N @ F @ X ) )
      = ( compow_int_int @ N @ F @ ( F @ X ) ) ) ).

% funpow_swap1
thf(fact_139_funpow__swap1,axiom,
    ! [F: nat > nat,N: nat,X: nat] :
      ( ( F @ ( compow_nat_nat @ N @ F @ X ) )
      = ( compow_nat_nat @ N @ F @ ( F @ X ) ) ) ).

% funpow_swap1
thf(fact_140_step__n__same,axiom,
    ! [N: nat,Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
     => ( Dir = Dir2 ) ) ).

% step_n_same
thf(fact_141_step__consistent__2,axiom,
    ! [P: states_a > $o,States: states_a,N: nat] :
      ( ! [States2: states_a] :
          ( ( type_i8221491762852169479ates_a @ States2 )
         => ( ( P @ States2 )
           => ( P @ ( type_s4923920245906622843ates_a @ States2 ) ) ) )
     => ( ( type_i8221491762852169479ates_a @ States )
       => ( ( P @ States )
         => ( P @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) ) ) ) ) ).

% step_consistent_2
thf(fact_142_lists__current_Opelims,axiom,
    ! [X: states_int,Y: produc1186641810826059865st_int] :
      ( ( ( states4446210166810079719nt_int @ X )
        = Y )
     => ( ( accp_states_int @ states6576289658430312748el_int @ X )
       => ~ ! [Uu: direction,Big3: state_int2,Small3: state_int] :
              ( ( X
                = ( states_int2 @ Uu @ Big3 @ Small3 ) )
             => ( ( Y
                  = ( produc364263696895485585st_int @ ( big_list_current_int @ Big3 ) @ ( small_1709254455575119551nt_int @ Small3 ) ) )
               => ~ ( accp_states_int @ states6576289658430312748el_int @ ( states_int2 @ Uu @ Big3 @ Small3 ) ) ) ) ) ) ).

% lists_current.pelims
thf(fact_143_lists__current_Opelims,axiom,
    ! [X: states_a,Y: produc9164743771328383783list_a] :
      ( ( ( states7719277857994474499rent_a @ X )
        = Y )
     => ( ( accp_states_a @ states5251248496104418302_rel_a @ X )
       => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ Uu @ Big3 @ Small3 ) )
             => ( ( Y
                  = ( produc6837034575241423639list_a @ ( big_list_current_a @ Big3 ) @ ( small_list_current_a @ Small3 ) ) )
               => ~ ( accp_states_a @ states5251248496104418302_rel_a @ ( states_a2 @ Uu @ Big3 @ Small3 ) ) ) ) ) ) ).

% lists_current.pelims
thf(fact_144_prod_Oinject,axiom,
    ! [X1: list_int,X2: list_int,Y1: list_int,Y2: list_int] :
      ( ( ( produc364263696895485585st_int @ X1 @ X2 )
        = ( produc364263696895485585st_int @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_145_prod_Oinject,axiom,
    ! [X1: list_a,X2: list_a,Y1: list_a,Y2: list_a] :
      ( ( ( produc6837034575241423639list_a @ X1 @ X2 )
        = ( produc6837034575241423639list_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_146_prod_Oinject,axiom,
    ! [X1: a,X2: state_a,Y1: a,Y2: state_a] :
      ( ( ( produc1224139502141355779tate_a @ X1 @ X2 )
        = ( produc1224139502141355779tate_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_147_prod_Oinject,axiom,
    ! [X1: a,X2: state_a2,Y1: a,Y2: state_a2] :
      ( ( ( produc8641956578966763338tate_a @ X1 @ X2 )
        = ( produc8641956578966763338tate_a @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

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

% prod.inject
thf(fact_149_prod_Oinject,axiom,
    ! [X1: num,X2: num,Y1: num,Y2: num] :
      ( ( ( product_Pair_num_num @ X1 @ X2 )
        = ( product_Pair_num_num @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_150_prod_Oinject,axiom,
    ! [X1: nat,X2: nat,Y1: nat,Y2: nat] :
      ( ( ( product_Pair_nat_nat @ X1 @ X2 )
        = ( product_Pair_nat_nat @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_151_prod_Oinject,axiom,
    ! [X1: int,X2: int,Y1: int,Y2: int] :
      ( ( ( product_Pair_int_int @ X1 @ X2 )
        = ( product_Pair_int_int @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_152_old_Oprod_Oinject,axiom,
    ! [A: list_int,B: list_int,A3: list_int,B2: list_int] :
      ( ( ( produc364263696895485585st_int @ A @ B )
        = ( produc364263696895485585st_int @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_153_old_Oprod_Oinject,axiom,
    ! [A: list_a,B: list_a,A3: list_a,B2: list_a] :
      ( ( ( produc6837034575241423639list_a @ A @ B )
        = ( produc6837034575241423639list_a @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

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

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

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

% old.prod.inject
thf(fact_157_old_Oprod_Oinject,axiom,
    ! [A: num,B: num,A3: num,B2: num] :
      ( ( ( product_Pair_num_num @ A @ B )
        = ( product_Pair_num_num @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_158_old_Oprod_Oinject,axiom,
    ! [A: nat,B: nat,A3: nat,B2: nat] :
      ( ( ( product_Pair_nat_nat @ A @ B )
        = ( product_Pair_nat_nat @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_159_old_Oprod_Oinject,axiom,
    ! [A: int,B: int,A3: int,B2: int] :
      ( ( ( product_Pair_int_int @ A @ B )
        = ( product_Pair_int_int @ A3 @ B2 ) )
      = ( ( A = A3 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_160_step__n__push__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a @ Big2 )
          = ( suc @ ( size_size_state_a @ Big ) ) ) ) ) ).

% step_n_push_size_big
thf(fact_161_step__n__push__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6530235180886170618tate_a @ Big2 )
          = ( suc @ ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ).

% step_n_push_size_new_big
thf(fact_162_Nat_Ofunpow__code__def,axiom,
    funpow_states_a = compow495008222514391794ates_a ).

% Nat.funpow_code_def
thf(fact_163_Nat_Ofunpow__code__def,axiom,
    funpow_list_nat = compow6514914278795418604st_nat ).

% Nat.funpow_code_def
thf(fact_164_Nat_Ofunpow__code__def,axiom,
    funpow_int = compow_int_int ).

% Nat.funpow_code_def
thf(fact_165_Nat_Ofunpow__code__def,axiom,
    funpow_nat = compow_nat_nat ).

% Nat.funpow_code_def
thf(fact_166_step__push__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a @ Big2 )
          = ( suc @ ( size_size_state_a @ Big ) ) ) ) ) ).

% step_push_size_big
thf(fact_167_step__push__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6530235180886170618tate_a @ Big2 )
          = ( suc @ ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ).

% step_push_size_new_big
thf(fact_168_push__big,axiom,
    ! [Dir: direction,Big: state_num_nat2,Small: state_num_nat,Big2: list_num_nat,Small2: list_num_nat,X: num > nat] :
      ( ( ( states_lists_num_nat @ ( states_num_nat2 @ Dir @ Big @ Small ) )
        = ( produc2264169877068294091um_nat @ Big2 @ Small2 ) )
     => ( ( states_lists_num_nat @ ( states_num_nat2 @ Dir @ ( push_num_nat @ X @ Big ) @ Small ) )
        = ( produc2264169877068294091um_nat @ ( cons_num_nat @ X @ Big2 ) @ Small2 ) ) ) ).

% push_big
thf(fact_169_push__big,axiom,
    ! [Dir: direction,Big: state_nat_nat2,Small: state_nat_nat,Big2: list_nat_nat,Small2: list_nat_nat,X: nat > nat] :
      ( ( ( states_lists_nat_nat @ ( states_nat_nat2 @ Dir @ Big @ Small ) )
        = ( produc4657003450915473719at_nat @ Big2 @ Small2 ) )
     => ( ( states_lists_nat_nat @ ( states_nat_nat2 @ Dir @ ( push_nat_nat @ X @ Big ) @ Small ) )
        = ( produc4657003450915473719at_nat @ ( cons_nat_nat @ X @ Big2 ) @ Small2 ) ) ) ).

% push_big
thf(fact_170_push__big,axiom,
    ! [Dir: direction,Big: state_int_nat2,Small: state_int_nat,Big2: list_int_nat,Small2: list_int_nat,X: int > nat] :
      ( ( ( states_lists_int_nat @ ( states_int_nat2 @ Dir @ Big @ Small ) )
        = ( produc5249521469742256623nt_nat @ Big2 @ Small2 ) )
     => ( ( states_lists_int_nat @ ( states_int_nat2 @ Dir @ ( push_int_nat @ X @ Big ) @ Small ) )
        = ( produc5249521469742256623nt_nat @ ( cons_int_nat @ X @ Big2 ) @ Small2 ) ) ) ).

% push_big
thf(fact_171_push__big,axiom,
    ! [Dir: direction,Big: state_int2,Small: state_int,Big2: list_int,Small2: list_int,X: int] :
      ( ( ( states_lists_int @ ( states_int2 @ Dir @ Big @ Small ) )
        = ( produc364263696895485585st_int @ Big2 @ Small2 ) )
     => ( ( states_lists_int @ ( states_int2 @ Dir @ ( push_int @ X @ Big ) @ Small ) )
        = ( produc364263696895485585st_int @ ( cons_int @ X @ Big2 ) @ Small2 ) ) ) ).

% push_big
thf(fact_172_push__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Big2: list_a,Small2: list_a,X: a] :
      ( ( ( states_lists_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( produc6837034575241423639list_a @ Big2 @ Small2 ) )
     => ( ( states_lists_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
        = ( produc6837034575241423639list_a @ ( cons_a @ X @ Big2 ) @ Small2 ) ) ) ).

% push_big
thf(fact_173_lex__append__left__iff,axiom,
    ! [R: set_Pr1811044260758604347_a_nat,Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ! [X5: product_prod_a_nat] :
          ~ ( member9062615507155100804_a_nat @ ( produc2026711137822539155_a_nat @ X5 @ X5 ) @ R )
     => ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Ys ) @ ( append7679239579558125090_a_nat @ Xs @ Zs ) ) @ ( lex_Pr1126020055417095059_a_nat @ R ) )
        = ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Ys @ Zs ) @ ( lex_Pr1126020055417095059_a_nat @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_174_lex__append__left__iff,axiom,
    ! [R: set_Pr8600417178894128327od_a_a,Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ! [X5: product_prod_a_a] :
          ~ ( member6330455413206600464od_a_a @ ( produc7886510207707329367od_a_a @ X5 @ X5 ) @ R )
     => ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Ys ) @ ( append5335208819046833346od_a_a @ Xs @ Zs ) ) @ ( lex_Product_prod_a_a @ R ) )
        = ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Ys @ Zs ) @ ( lex_Product_prod_a_a @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_175_lex__append__left__iff,axiom,
    ! [R: set_Pr765067013931698361st_int,Xs: list_list_int,Ys: list_list_int,Zs: list_list_int] :
      ( ! [X5: list_int] :
          ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X5 @ X5 ) @ R )
     => ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( append_list_int @ Xs @ Ys ) @ ( append_list_int @ Xs @ Zs ) ) @ ( lex_list_int @ R ) )
        = ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Ys @ Zs ) @ ( lex_list_int @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_176_lex__append__left__iff,axiom,
    ! [R: set_Pr4048851178543822343list_a,Xs: list_list_a,Ys: list_list_a,Zs: list_list_a] :
      ( ! [X5: list_a] :
          ~ ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X5 @ X5 ) @ R )
     => ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( append_list_a @ Xs @ Ys ) @ ( append_list_a @ Xs @ Zs ) ) @ ( lex_list_a @ R ) )
        = ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Ys @ Zs ) @ ( lex_list_a @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_177_lex__append__left__iff,axiom,
    ! [R: set_Product_prod_a_a,Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ! [X5: a] :
          ~ ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X5 @ X5 ) @ R )
     => ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Ys ) @ ( append_a @ Xs @ Zs ) ) @ ( lex_a @ R ) )
        = ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Ys @ Zs ) @ ( lex_a @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_178_lex__append__left__iff,axiom,
    ! [R: set_Pr8218934625190621173um_num,Xs: list_num,Ys: list_num,Zs: list_num] :
      ( ! [X5: num] :
          ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ X5 ) @ R )
     => ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ Ys ) @ ( append_num @ Xs @ Zs ) ) @ ( lex_num @ R ) )
        = ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Ys @ Zs ) @ ( lex_num @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_179_lex__append__left__iff,axiom,
    ! [R: set_Pr1261947904930325089at_nat,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ! [X5: nat] :
          ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ X5 ) @ R )
     => ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Ys ) @ ( append_nat @ Xs @ Zs ) ) @ ( lex_nat @ R ) )
        = ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ys @ Zs ) @ ( lex_nat @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_180_lex__append__left__iff,axiom,
    ! [R: set_Pr958786334691620121nt_int,Xs: list_int,Ys: list_int,Zs: list_int] :
      ( ! [X5: int] :
          ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ X5 ) @ R )
     => ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ Ys ) @ ( append_int @ Xs @ Zs ) ) @ ( lex_int @ R ) )
        = ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Ys @ Zs ) @ ( lex_int @ R ) ) ) ) ).

% lex_append_left_iff
thf(fact_181_lex__append__leftD,axiom,
    ! [R: set_Pr1811044260758604347_a_nat,Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ! [X5: product_prod_a_nat] :
          ~ ( member9062615507155100804_a_nat @ ( produc2026711137822539155_a_nat @ X5 @ X5 ) @ R )
     => ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Ys ) @ ( append7679239579558125090_a_nat @ Xs @ Zs ) ) @ ( lex_Pr1126020055417095059_a_nat @ R ) )
       => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Ys @ Zs ) @ ( lex_Pr1126020055417095059_a_nat @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_182_lex__append__leftD,axiom,
    ! [R: set_Pr8600417178894128327od_a_a,Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ! [X5: product_prod_a_a] :
          ~ ( member6330455413206600464od_a_a @ ( produc7886510207707329367od_a_a @ X5 @ X5 ) @ R )
     => ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Ys ) @ ( append5335208819046833346od_a_a @ Xs @ Zs ) ) @ ( lex_Product_prod_a_a @ R ) )
       => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Ys @ Zs ) @ ( lex_Product_prod_a_a @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_183_lex__append__leftD,axiom,
    ! [R: set_Pr765067013931698361st_int,Xs: list_list_int,Ys: list_list_int,Zs: list_list_int] :
      ( ! [X5: list_int] :
          ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X5 @ X5 ) @ R )
     => ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( append_list_int @ Xs @ Ys ) @ ( append_list_int @ Xs @ Zs ) ) @ ( lex_list_int @ R ) )
       => ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Ys @ Zs ) @ ( lex_list_int @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_184_lex__append__leftD,axiom,
    ! [R: set_Pr4048851178543822343list_a,Xs: list_list_a,Ys: list_list_a,Zs: list_list_a] :
      ( ! [X5: list_a] :
          ~ ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X5 @ X5 ) @ R )
     => ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( append_list_a @ Xs @ Ys ) @ ( append_list_a @ Xs @ Zs ) ) @ ( lex_list_a @ R ) )
       => ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Ys @ Zs ) @ ( lex_list_a @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_185_lex__append__leftD,axiom,
    ! [R: set_Product_prod_a_a,Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ! [X5: a] :
          ~ ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X5 @ X5 ) @ R )
     => ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Ys ) @ ( append_a @ Xs @ Zs ) ) @ ( lex_a @ R ) )
       => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Ys @ Zs ) @ ( lex_a @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_186_lex__append__leftD,axiom,
    ! [R: set_Pr8218934625190621173um_num,Xs: list_num,Ys: list_num,Zs: list_num] :
      ( ! [X5: num] :
          ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ X5 ) @ R )
     => ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ Ys ) @ ( append_num @ Xs @ Zs ) ) @ ( lex_num @ R ) )
       => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Ys @ Zs ) @ ( lex_num @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_187_lex__append__leftD,axiom,
    ! [R: set_Pr1261947904930325089at_nat,Xs: list_nat,Ys: list_nat,Zs: list_nat] :
      ( ! [X5: nat] :
          ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ X5 ) @ R )
     => ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Ys ) @ ( append_nat @ Xs @ Zs ) ) @ ( lex_nat @ R ) )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ys @ Zs ) @ ( lex_nat @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_188_lex__append__leftD,axiom,
    ! [R: set_Pr958786334691620121nt_int,Xs: list_int,Ys: list_int,Zs: list_int] :
      ( ! [X5: int] :
          ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ X5 ) @ R )
     => ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ Ys ) @ ( append_int @ Xs @ Zs ) ) @ ( lex_int @ R ) )
       => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Ys @ Zs ) @ ( lex_int @ R ) ) ) ) ).

% lex_append_leftD
thf(fact_189_nat_Oinject,axiom,
    ! [X2: nat,Y2: nat] :
      ( ( ( suc @ X2 )
        = ( suc @ Y2 ) )
      = ( X2 = Y2 ) ) ).

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

% old.nat.inject
thf(fact_191_list_Oinject,axiom,
    ! [X21: int,X222: list_int,Y21: int,Y22: list_int] :
      ( ( ( cons_int @ X21 @ X222 )
        = ( cons_int @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_192_list_Oinject,axiom,
    ! [X21: num > nat,X222: list_num_nat,Y21: num > nat,Y22: list_num_nat] :
      ( ( ( cons_num_nat @ X21 @ X222 )
        = ( cons_num_nat @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_193_list_Oinject,axiom,
    ! [X21: nat > nat,X222: list_nat_nat,Y21: nat > nat,Y22: list_nat_nat] :
      ( ( ( cons_nat_nat @ X21 @ X222 )
        = ( cons_nat_nat @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_194_list_Oinject,axiom,
    ! [X21: int > nat,X222: list_int_nat,Y21: int > nat,Y22: list_int_nat] :
      ( ( ( cons_int_nat @ X21 @ X222 )
        = ( cons_int_nat @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_195_list_Oinject,axiom,
    ! [X21: a,X222: list_a,Y21: a,Y22: list_a] :
      ( ( ( cons_a @ X21 @ X222 )
        = ( cons_a @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 ) ) ) ).

% list.inject
thf(fact_196_Cons__in__lex,axiom,
    ! [X: num > nat,Xs: list_num_nat,Y: num > nat,Ys: list_num_nat,R: set_Pr2767457846497873235um_nat] :
      ( ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ ( cons_num_nat @ X @ Xs ) @ ( cons_num_nat @ Y @ Ys ) ) @ ( lex_num_nat @ R ) )
      = ( ( ( member8632778118854156188um_nat @ ( produc195427321684866731um_nat @ X @ Y ) @ R )
          & ( ( size_s1003533117800011565um_nat @ Xs )
            = ( size_s1003533117800011565um_nat @ Ys ) ) )
        | ( ( X = Y )
          & ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ Xs @ Ys ) @ ( lex_num_nat @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_197_Cons__in__lex,axiom,
    ! [X: nat > nat,Xs: list_nat_nat,Y: nat > nat,Ys: list_nat_nat,R: set_Pr7682762132356531903at_nat] :
      ( ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ ( cons_nat_nat @ X @ Xs ) @ ( cons_nat_nat @ Y @ Ys ) ) @ ( lex_nat_nat @ R ) )
      = ( ( ( member1096249278104964872at_nat @ ( produc5770335208449155351at_nat @ X @ Y ) @ R )
          & ( ( size_s8208510060688613859at_nat @ Xs )
            = ( size_s8208510060688613859at_nat @ Ys ) ) )
        | ( ( X = Y )
          & ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ Xs @ Ys ) @ ( lex_nat_nat @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_198_Cons__in__lex,axiom,
    ! [X: int > nat,Xs: list_int_nat,Y: int > nat,Ys: list_int_nat,R: set_Pr1394042615296016247nt_nat] :
      ( ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ ( cons_int_nat @ X @ Xs ) @ ( cons_int_nat @ Y @ Ys ) ) @ ( lex_int_nat @ R ) )
      = ( ( ( member4491287985726366656nt_nat @ ( produc7977806053278589903nt_nat @ X @ Y ) @ R )
          & ( ( size_s1172059598526859839nt_nat @ Xs )
            = ( size_s1172059598526859839nt_nat @ Ys ) ) )
        | ( ( X = Y )
          & ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ Xs @ Ys ) @ ( lex_int_nat @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_199_Cons__in__lex,axiom,
    ! [X: list_int,Xs: list_list_int,Y: list_int,Ys: list_list_int,R: set_Pr765067013931698361st_int] :
      ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( cons_list_int @ X @ Xs ) @ ( cons_list_int @ Y @ Ys ) ) @ ( lex_list_int @ R ) )
      = ( ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ R )
          & ( ( size_s533118279054570080st_int @ Xs )
            = ( size_s533118279054570080st_int @ Ys ) ) )
        | ( ( X = Y )
          & ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Xs @ Ys ) @ ( lex_list_int @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_200_Cons__in__lex,axiom,
    ! [X: list_a,Xs: list_list_a,Y: list_a,Ys: list_list_a,R: set_Pr4048851178543822343list_a] :
      ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( cons_list_a @ X @ Xs ) @ ( cons_list_a @ Y @ Ys ) ) @ ( lex_list_a @ R ) )
      = ( ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ Y ) @ R )
          & ( ( size_s349497388124573686list_a @ Xs )
            = ( size_s349497388124573686list_a @ Ys ) ) )
        | ( ( X = Y )
          & ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Xs @ Ys ) @ ( lex_list_a @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_201_Cons__in__lex,axiom,
    ! [X: product_prod_nat_nat,Xs: list_P6011104703257516679at_nat,Y: product_prod_nat_nat,Ys: list_P6011104703257516679at_nat,R: set_Pr8693737435421807431at_nat] :
      ( ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ ( cons_P6512896166579812791at_nat @ X @ Xs ) @ ( cons_P6512896166579812791at_nat @ Y @ Ys ) ) @ ( lex_Pr8571645452597969515at_nat @ R ) )
      = ( ( ( member8206827879206165904at_nat @ ( produc6161850002892822231at_nat @ X @ Y ) @ R )
          & ( ( size_s5460976970255530739at_nat @ Xs )
            = ( size_s5460976970255530739at_nat @ Ys ) ) )
        | ( ( X = Y )
          & ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ Xs @ Ys ) @ ( lex_Pr8571645452597969515at_nat @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_202_Cons__in__lex,axiom,
    ! [X: a,Xs: list_a,Y: a,Ys: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( cons_a @ X @ Xs ) @ ( cons_a @ Y @ Ys ) ) @ ( lex_a @ R ) )
      = ( ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X @ Y ) @ R )
          & ( ( size_size_list_a @ Xs )
            = ( size_size_list_a @ Ys ) ) )
        | ( ( X = Y )
          & ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( lex_a @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_203_Cons__in__lex,axiom,
    ! [X: num,Xs: list_num,Y: num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ Y @ Ys ) ) @ ( lex_num @ R ) )
      = ( ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R )
          & ( ( size_size_list_num @ Xs )
            = ( size_size_list_num @ Ys ) ) )
        | ( ( X = Y )
          & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( lex_num @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_204_Cons__in__lex,axiom,
    ! [X: int,Xs: list_int,Y: int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ Y @ Ys ) ) @ ( lex_int @ R ) )
      = ( ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R )
          & ( ( size_size_list_int @ Xs )
            = ( size_size_list_int @ Ys ) ) )
        | ( ( X = Y )
          & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( lex_int @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_205_Cons__in__lex,axiom,
    ! [X: nat,Xs: list_nat,Y: nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) ) @ ( lex_nat @ R ) )
      = ( ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R )
          & ( ( size_size_list_nat @ Xs )
            = ( size_size_list_nat @ Ys ) ) )
        | ( ( X = Y )
          & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( lex_nat @ R ) ) ) ) ) ).

% Cons_in_lex
thf(fact_206_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_num_nat] :
      ( ( ( suc @ N )
        = ( size_s1003533117800011565um_nat @ Xs ) )
      = ( ? [Y4: num > nat,Ys2: list_num_nat] :
            ( ( Xs
              = ( cons_num_nat @ Y4 @ Ys2 ) )
            & ( ( size_s1003533117800011565um_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_207_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_nat_nat] :
      ( ( ( suc @ N )
        = ( size_s8208510060688613859at_nat @ Xs ) )
      = ( ? [Y4: nat > nat,Ys2: list_nat_nat] :
            ( ( Xs
              = ( cons_nat_nat @ Y4 @ Ys2 ) )
            & ( ( size_s8208510060688613859at_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_208_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_int_nat] :
      ( ( ( suc @ N )
        = ( size_s1172059598526859839nt_nat @ Xs ) )
      = ( ? [Y4: int > nat,Ys2: list_int_nat] :
            ( ( Xs
              = ( cons_int_nat @ Y4 @ Ys2 ) )
            & ( ( size_s1172059598526859839nt_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_209_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_P6011104703257516679at_nat] :
      ( ( ( suc @ N )
        = ( size_s5460976970255530739at_nat @ Xs ) )
      = ( ? [Y4: product_prod_nat_nat,Ys2: list_P6011104703257516679at_nat] :
            ( ( Xs
              = ( cons_P6512896166579812791at_nat @ Y4 @ Ys2 ) )
            & ( ( size_s5460976970255530739at_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_210_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_num] :
      ( ( ( suc @ N )
        = ( size_size_list_num @ Xs ) )
      = ( ? [Y4: num,Ys2: list_num] :
            ( ( Xs
              = ( cons_num @ Y4 @ Ys2 ) )
            & ( ( size_size_list_num @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_211_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_int] :
      ( ( ( suc @ N )
        = ( size_size_list_int @ Xs ) )
      = ( ? [Y4: int,Ys2: list_int] :
            ( ( Xs
              = ( cons_int @ Y4 @ Ys2 ) )
            & ( ( size_size_list_int @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_212_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ( suc @ N )
        = ( size_size_list_a @ Xs ) )
      = ( ? [Y4: a,Ys2: list_a] :
            ( ( Xs
              = ( cons_a @ Y4 @ Ys2 ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_213_Suc__length__conv,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ( suc @ N )
        = ( size_size_list_nat @ Xs ) )
      = ( ? [Y4: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y4 @ Ys2 ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% Suc_length_conv
thf(fact_214_length__Suc__conv,axiom,
    ! [Xs: list_num_nat,N: nat] :
      ( ( ( size_s1003533117800011565um_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: num > nat,Ys2: list_num_nat] :
            ( ( Xs
              = ( cons_num_nat @ Y4 @ Ys2 ) )
            & ( ( size_s1003533117800011565um_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_215_length__Suc__conv,axiom,
    ! [Xs: list_nat_nat,N: nat] :
      ( ( ( size_s8208510060688613859at_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: nat > nat,Ys2: list_nat_nat] :
            ( ( Xs
              = ( cons_nat_nat @ Y4 @ Ys2 ) )
            & ( ( size_s8208510060688613859at_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_216_length__Suc__conv,axiom,
    ! [Xs: list_int_nat,N: nat] :
      ( ( ( size_s1172059598526859839nt_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: int > nat,Ys2: list_int_nat] :
            ( ( Xs
              = ( cons_int_nat @ Y4 @ Ys2 ) )
            & ( ( size_s1172059598526859839nt_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_217_length__Suc__conv,axiom,
    ! [Xs: list_P6011104703257516679at_nat,N: nat] :
      ( ( ( size_s5460976970255530739at_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: product_prod_nat_nat,Ys2: list_P6011104703257516679at_nat] :
            ( ( Xs
              = ( cons_P6512896166579812791at_nat @ Y4 @ Ys2 ) )
            & ( ( size_s5460976970255530739at_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_218_length__Suc__conv,axiom,
    ! [Xs: list_num,N: nat] :
      ( ( ( size_size_list_num @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: num,Ys2: list_num] :
            ( ( Xs
              = ( cons_num @ Y4 @ Ys2 ) )
            & ( ( size_size_list_num @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_219_length__Suc__conv,axiom,
    ! [Xs: list_int,N: nat] :
      ( ( ( size_size_list_int @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: int,Ys2: list_int] :
            ( ( Xs
              = ( cons_int @ Y4 @ Ys2 ) )
            & ( ( size_size_list_int @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_220_length__Suc__conv,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: a,Ys2: list_a] :
            ( ( Xs
              = ( cons_a @ Y4 @ Ys2 ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_221_length__Suc__conv,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y4 @ Ys2 ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv
thf(fact_222_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs2: list_P6011104703257516679at_nat] :
      ( ( size_s5460976970255530739at_nat @ Xs2 )
      = N ) ).

% Ex_list_of_length
thf(fact_223_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs2: list_num] :
      ( ( size_size_list_num @ Xs2 )
      = N ) ).

% Ex_list_of_length
thf(fact_224_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs2: list_int] :
      ( ( size_size_list_int @ Xs2 )
      = N ) ).

% Ex_list_of_length
thf(fact_225_Ex__list__of__length,axiom,
    ! [N: nat] :
    ? [Xs2: list_a] :
      ( ( size_size_list_a @ Xs2 )
      = N ) ).

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

% Ex_list_of_length
thf(fact_227_neq__if__length__neq,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat] :
      ( ( ( size_s5460976970255530739at_nat @ Xs )
       != ( size_s5460976970255530739at_nat @ Ys ) )
     => ( Xs != Ys ) ) ).

% neq_if_length_neq
thf(fact_228_neq__if__length__neq,axiom,
    ! [Xs: list_num,Ys: list_num] :
      ( ( ( size_size_list_num @ Xs )
       != ( size_size_list_num @ Ys ) )
     => ( Xs != Ys ) ) ).

% neq_if_length_neq
thf(fact_229_neq__if__length__neq,axiom,
    ! [Xs: list_int,Ys: list_int] :
      ( ( ( size_size_list_int @ Xs )
       != ( size_size_list_int @ Ys ) )
     => ( Xs != Ys ) ) ).

% neq_if_length_neq
thf(fact_230_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_231_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_232_Suc__inject,axiom,
    ! [X: nat,Y: nat] :
      ( ( ( suc @ X )
        = ( suc @ Y ) )
     => ( X = Y ) ) ).

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

% n_not_Suc_n
thf(fact_234_not__Cons__self2,axiom,
    ! [X: int,Xs: list_int] :
      ( ( cons_int @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_235_not__Cons__self2,axiom,
    ! [X: num > nat,Xs: list_num_nat] :
      ( ( cons_num_nat @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_236_not__Cons__self2,axiom,
    ! [X: nat > nat,Xs: list_nat_nat] :
      ( ( cons_nat_nat @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_237_not__Cons__self2,axiom,
    ! [X: int > nat,Xs: list_int_nat] :
      ( ( cons_int_nat @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_238_not__Cons__self2,axiom,
    ! [X: a,Xs: list_a] :
      ( ( cons_a @ X @ Xs )
     != Xs ) ).

% not_Cons_self2
thf(fact_239_size__ok_H_Ocases,axiom,
    ! [X: produc1571854377283420419_a_nat] :
      ~ ! [Uu: direction,Big3: state_a2,Small3: state_a,Steps: nat] :
          ( X
         != ( produc1877401315875745917_a_nat @ ( states_a2 @ Uu @ Big3 @ Small3 ) @ Steps ) ) ).

% size_ok'.cases
thf(fact_240_append__Cons,axiom,
    ! [X: product_prod_a_nat,Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( append7679239579558125090_a_nat @ ( cons_P5205166803686508359_a_nat @ X @ Xs ) @ Ys )
      = ( cons_P5205166803686508359_a_nat @ X @ ( append7679239579558125090_a_nat @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_241_append__Cons,axiom,
    ! [X: product_prod_a_a,Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( append5335208819046833346od_a_a @ ( cons_P7316939126706565853od_a_a @ X @ Xs ) @ Ys )
      = ( cons_P7316939126706565853od_a_a @ X @ ( append5335208819046833346od_a_a @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_242_append__Cons,axiom,
    ! [X: num,Xs: list_num,Ys: list_num] :
      ( ( append_num @ ( cons_num @ X @ Xs ) @ Ys )
      = ( cons_num @ X @ ( append_num @ Xs @ Ys ) ) ) ).

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

% append_Cons
thf(fact_244_append__Cons,axiom,
    ! [X: int,Xs: list_int,Ys: list_int] :
      ( ( append_int @ ( cons_int @ X @ Xs ) @ Ys )
      = ( cons_int @ X @ ( append_int @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_245_append__Cons,axiom,
    ! [X: num > nat,Xs: list_num_nat,Ys: list_num_nat] :
      ( ( append_num_nat @ ( cons_num_nat @ X @ Xs ) @ Ys )
      = ( cons_num_nat @ X @ ( append_num_nat @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_246_append__Cons,axiom,
    ! [X: nat > nat,Xs: list_nat_nat,Ys: list_nat_nat] :
      ( ( append_nat_nat @ ( cons_nat_nat @ X @ Xs ) @ Ys )
      = ( cons_nat_nat @ X @ ( append_nat_nat @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_247_append__Cons,axiom,
    ! [X: int > nat,Xs: list_int_nat,Ys: list_int_nat] :
      ( ( append_int_nat @ ( cons_int_nat @ X @ Xs ) @ Ys )
      = ( cons_int_nat @ X @ ( append_int_nat @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_248_append__Cons,axiom,
    ! [X: a,Xs: list_a,Ys: list_a] :
      ( ( append_a @ ( cons_a @ X @ Xs ) @ Ys )
      = ( cons_a @ X @ ( append_a @ Xs @ Ys ) ) ) ).

% append_Cons
thf(fact_249_Cons__eq__appendI,axiom,
    ! [X: product_prod_a_nat,Xs1: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,Xs: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat] :
      ( ( ( cons_P5205166803686508359_a_nat @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append7679239579558125090_a_nat @ Xs1 @ Zs ) )
       => ( ( cons_P5205166803686508359_a_nat @ X @ Xs )
          = ( append7679239579558125090_a_nat @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_250_Cons__eq__appendI,axiom,
    ! [X: product_prod_a_a,Xs1: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,Xs: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a] :
      ( ( ( cons_P7316939126706565853od_a_a @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append5335208819046833346od_a_a @ Xs1 @ Zs ) )
       => ( ( cons_P7316939126706565853od_a_a @ X @ Xs )
          = ( append5335208819046833346od_a_a @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_251_Cons__eq__appendI,axiom,
    ! [X: num,Xs1: list_num,Ys: list_num,Xs: list_num,Zs: list_num] :
      ( ( ( cons_num @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_num @ Xs1 @ Zs ) )
       => ( ( cons_num @ X @ Xs )
          = ( append_num @ Ys @ Zs ) ) ) ) ).

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

% Cons_eq_appendI
thf(fact_253_Cons__eq__appendI,axiom,
    ! [X: int,Xs1: list_int,Ys: list_int,Xs: list_int,Zs: list_int] :
      ( ( ( cons_int @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_int @ Xs1 @ Zs ) )
       => ( ( cons_int @ X @ Xs )
          = ( append_int @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_254_Cons__eq__appendI,axiom,
    ! [X: num > nat,Xs1: list_num_nat,Ys: list_num_nat,Xs: list_num_nat,Zs: list_num_nat] :
      ( ( ( cons_num_nat @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_num_nat @ Xs1 @ Zs ) )
       => ( ( cons_num_nat @ X @ Xs )
          = ( append_num_nat @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_255_Cons__eq__appendI,axiom,
    ! [X: nat > nat,Xs1: list_nat_nat,Ys: list_nat_nat,Xs: list_nat_nat,Zs: list_nat_nat] :
      ( ( ( cons_nat_nat @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_nat_nat @ Xs1 @ Zs ) )
       => ( ( cons_nat_nat @ X @ Xs )
          = ( append_nat_nat @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_256_Cons__eq__appendI,axiom,
    ! [X: int > nat,Xs1: list_int_nat,Ys: list_int_nat,Xs: list_int_nat,Zs: list_int_nat] :
      ( ( ( cons_int_nat @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_int_nat @ Xs1 @ Zs ) )
       => ( ( cons_int_nat @ X @ Xs )
          = ( append_int_nat @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_257_Cons__eq__appendI,axiom,
    ! [X: a,Xs1: list_a,Ys: list_a,Xs: list_a,Zs: list_a] :
      ( ( ( cons_a @ X @ Xs1 )
        = Ys )
     => ( ( Xs
          = ( append_a @ Xs1 @ Zs ) )
       => ( ( cons_a @ X @ Xs )
          = ( append_a @ Ys @ Zs ) ) ) ) ).

% Cons_eq_appendI
thf(fact_258_lex__append__leftI,axiom,
    ! [Ys: list_P3592885314253461005_a_nat,Zs: list_P3592885314253461005_a_nat,R: set_Pr1811044260758604347_a_nat,Xs: list_P3592885314253461005_a_nat] :
      ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Ys @ Zs ) @ ( lex_Pr1126020055417095059_a_nat @ R ) )
     => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Ys ) @ ( append7679239579558125090_a_nat @ Xs @ Zs ) ) @ ( lex_Pr1126020055417095059_a_nat @ R ) ) ) ).

% lex_append_leftI
thf(fact_259_lex__append__leftI,axiom,
    ! [Ys: list_P1396940483166286381od_a_a,Zs: list_P1396940483166286381od_a_a,R: set_Pr8600417178894128327od_a_a,Xs: list_P1396940483166286381od_a_a] :
      ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Ys @ Zs ) @ ( lex_Product_prod_a_a @ R ) )
     => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Ys ) @ ( append5335208819046833346od_a_a @ Xs @ Zs ) ) @ ( lex_Product_prod_a_a @ R ) ) ) ).

% lex_append_leftI
thf(fact_260_lex__append__leftI,axiom,
    ! [Ys: list_num,Zs: list_num,R: set_Pr8218934625190621173um_num,Xs: list_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Ys @ Zs ) @ ( lex_num @ R ) )
     => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ Ys ) @ ( append_num @ Xs @ Zs ) ) @ ( lex_num @ R ) ) ) ).

% lex_append_leftI
thf(fact_261_lex__append__leftI,axiom,
    ! [Ys: list_nat,Zs: list_nat,R: set_Pr1261947904930325089at_nat,Xs: list_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ys @ Zs ) @ ( lex_nat @ R ) )
     => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Ys ) @ ( append_nat @ Xs @ Zs ) ) @ ( lex_nat @ R ) ) ) ).

% lex_append_leftI
thf(fact_262_lex__append__leftI,axiom,
    ! [Ys: list_int,Zs: list_int,R: set_Pr958786334691620121nt_int,Xs: list_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Ys @ Zs ) @ ( lex_int @ R ) )
     => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ Ys ) @ ( append_int @ Xs @ Zs ) ) @ ( lex_int @ R ) ) ) ).

% lex_append_leftI
thf(fact_263_lex__append__leftI,axiom,
    ! [Ys: list_a,Zs: list_a,R: set_Product_prod_a_a,Xs: list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Ys @ Zs ) @ ( lex_a @ R ) )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Ys ) @ ( append_a @ Xs @ Zs ) ) @ ( lex_a @ R ) ) ) ).

% lex_append_leftI
thf(fact_264_lex__append__rightI,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,R: set_Pr1811044260758604347_a_nat,Vs: list_P3592885314253461005_a_nat,Us: list_P3592885314253461005_a_nat] :
      ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Xs @ Ys ) @ ( lex_Pr1126020055417095059_a_nat @ R ) )
     => ( ( ( size_s984997627204368545_a_nat @ Vs )
          = ( size_s984997627204368545_a_nat @ Us ) )
       => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Us ) @ ( append7679239579558125090_a_nat @ Ys @ Vs ) ) @ ( lex_Pr1126020055417095059_a_nat @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_265_lex__append__rightI,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,R: set_Pr8600417178894128327od_a_a,Vs: list_P1396940483166286381od_a_a,Us: list_P1396940483166286381od_a_a] :
      ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Xs @ Ys ) @ ( lex_Product_prod_a_a @ R ) )
     => ( ( ( size_s3885678630836030617od_a_a @ Vs )
          = ( size_s3885678630836030617od_a_a @ Us ) )
       => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Us ) @ ( append5335208819046833346od_a_a @ Ys @ Vs ) ) @ ( lex_Product_prod_a_a @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_266_lex__append__rightI,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat,R: set_Pr8693737435421807431at_nat,Vs: list_P6011104703257516679at_nat,Us: list_P6011104703257516679at_nat] :
      ( ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ Xs @ Ys ) @ ( lex_Pr8571645452597969515at_nat @ R ) )
     => ( ( ( size_s5460976970255530739at_nat @ Vs )
          = ( size_s5460976970255530739at_nat @ Us ) )
       => ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ ( append985823374593552924at_nat @ Xs @ Us ) @ ( append985823374593552924at_nat @ Ys @ Vs ) ) @ ( lex_Pr8571645452597969515at_nat @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_267_lex__append__rightI,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num,Vs: list_num,Us: list_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( lex_num @ R ) )
     => ( ( ( size_size_list_num @ Vs )
          = ( size_size_list_num @ Us ) )
       => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ Us ) @ ( append_num @ Ys @ Vs ) ) @ ( lex_num @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_268_lex__append__rightI,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int,Vs: list_int,Us: list_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( lex_int @ R ) )
     => ( ( ( size_size_list_int @ Vs )
          = ( size_size_list_int @ Us ) )
       => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ Us ) @ ( append_int @ Ys @ Vs ) ) @ ( lex_int @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_269_lex__append__rightI,axiom,
    ! [Xs: list_a,Ys: list_a,R: set_Product_prod_a_a,Vs: list_a,Us: list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( lex_a @ R ) )
     => ( ( ( size_size_list_a @ Vs )
          = ( size_size_list_a @ Us ) )
       => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Us ) @ ( append_a @ Ys @ Vs ) ) @ ( lex_a @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_270_lex__append__rightI,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat,Vs: list_nat,Us: list_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( lex_nat @ R ) )
     => ( ( ( size_size_list_nat @ Vs )
          = ( size_size_list_nat @ Us ) )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Us ) @ ( append_nat @ Ys @ Vs ) ) @ ( lex_nat @ R ) ) ) ) ).

% lex_append_rightI
thf(fact_271_Pair__inject,axiom,
    ! [A: list_int,B: list_int,A3: list_int,B2: list_int] :
      ( ( ( produc364263696895485585st_int @ A @ B )
        = ( produc364263696895485585st_int @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_272_Pair__inject,axiom,
    ! [A: list_a,B: list_a,A3: list_a,B2: list_a] :
      ( ( ( produc6837034575241423639list_a @ A @ B )
        = ( produc6837034575241423639list_a @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

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

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

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

% Pair_inject
thf(fact_276_Pair__inject,axiom,
    ! [A: num,B: num,A3: num,B2: num] :
      ( ( ( product_Pair_num_num @ A @ B )
        = ( product_Pair_num_num @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_277_Pair__inject,axiom,
    ! [A: nat,B: nat,A3: nat,B2: nat] :
      ( ( ( product_Pair_nat_nat @ A @ B )
        = ( product_Pair_nat_nat @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_278_Pair__inject,axiom,
    ! [A: int,B: int,A3: int,B2: int] :
      ( ( ( product_Pair_int_int @ A @ B )
        = ( product_Pair_int_int @ A3 @ B2 ) )
     => ~ ( ( A = A3 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_279_prod__cases,axiom,
    ! [P: produc1186641810826059865st_int > $o,P2: produc1186641810826059865st_int] :
      ( ! [A4: list_int,B3: list_int] : ( P @ ( produc364263696895485585st_int @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_280_prod__cases,axiom,
    ! [P: produc9164743771328383783list_a > $o,P2: produc9164743771328383783list_a] :
      ( ! [A4: list_a,B3: list_a] : ( P @ ( produc6837034575241423639list_a @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_281_prod__cases,axiom,
    ! [P: produc7589950997499123219tate_a > $o,P2: produc7589950997499123219tate_a] :
      ( ! [A4: a,B3: state_a] : ( P @ ( produc1224139502141355779tate_a @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_282_prod__cases,axiom,
    ! [P: produc6972303929186420058tate_a > $o,P2: produc6972303929186420058tate_a] :
      ( ! [A4: a,B3: state_a2] : ( P @ ( produc8641956578966763338tate_a @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

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

% prod_cases
thf(fact_284_prod__cases,axiom,
    ! [P: product_prod_num_num > $o,P2: product_prod_num_num] :
      ( ! [A4: num,B3: num] : ( P @ ( product_Pair_num_num @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_285_prod__cases,axiom,
    ! [P: product_prod_nat_nat > $o,P2: product_prod_nat_nat] :
      ( ! [A4: nat,B3: nat] : ( P @ ( product_Pair_nat_nat @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_286_prod__cases,axiom,
    ! [P: product_prod_int_int > $o,P2: product_prod_int_int] :
      ( ! [A4: int,B3: int] : ( P @ ( product_Pair_int_int @ A4 @ B3 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_287_surj__pair,axiom,
    ! [P2: produc1186641810826059865st_int] :
    ? [X5: list_int,Y5: list_int] :
      ( P2
      = ( produc364263696895485585st_int @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_288_surj__pair,axiom,
    ! [P2: produc9164743771328383783list_a] :
    ? [X5: list_a,Y5: list_a] :
      ( P2
      = ( produc6837034575241423639list_a @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_289_surj__pair,axiom,
    ! [P2: produc7589950997499123219tate_a] :
    ? [X5: a,Y5: state_a] :
      ( P2
      = ( produc1224139502141355779tate_a @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_290_surj__pair,axiom,
    ! [P2: produc6972303929186420058tate_a] :
    ? [X5: a,Y5: state_a2] :
      ( P2
      = ( produc8641956578966763338tate_a @ X5 @ Y5 ) ) ).

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

% surj_pair
thf(fact_292_surj__pair,axiom,
    ! [P2: product_prod_num_num] :
    ? [X5: num,Y5: num] :
      ( P2
      = ( product_Pair_num_num @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_293_surj__pair,axiom,
    ! [P2: product_prod_nat_nat] :
    ? [X5: nat,Y5: nat] :
      ( P2
      = ( product_Pair_nat_nat @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_294_surj__pair,axiom,
    ! [P2: product_prod_int_int] :
    ? [X5: int,Y5: int] :
      ( P2
      = ( product_Pair_int_int @ X5 @ Y5 ) ) ).

% surj_pair
thf(fact_295_old_Oprod_Oexhaust,axiom,
    ! [Y: produc1186641810826059865st_int] :
      ~ ! [A4: list_int,B3: list_int] :
          ( Y
         != ( produc364263696895485585st_int @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_296_old_Oprod_Oexhaust,axiom,
    ! [Y: produc9164743771328383783list_a] :
      ~ ! [A4: list_a,B3: list_a] :
          ( Y
         != ( produc6837034575241423639list_a @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_297_old_Oprod_Oexhaust,axiom,
    ! [Y: produc7589950997499123219tate_a] :
      ~ ! [A4: a,B3: state_a] :
          ( Y
         != ( produc1224139502141355779tate_a @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_298_old_Oprod_Oexhaust,axiom,
    ! [Y: produc6972303929186420058tate_a] :
      ~ ! [A4: a,B3: state_a2] :
          ( Y
         != ( produc8641956578966763338tate_a @ A4 @ B3 ) ) ).

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

% old.prod.exhaust
thf(fact_300_old_Oprod_Oexhaust,axiom,
    ! [Y: product_prod_num_num] :
      ~ ! [A4: num,B3: num] :
          ( Y
         != ( product_Pair_num_num @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_301_old_Oprod_Oexhaust,axiom,
    ! [Y: product_prod_nat_nat] :
      ~ ! [A4: nat,B3: nat] :
          ( Y
         != ( product_Pair_nat_nat @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_302_old_Oprod_Oexhaust,axiom,
    ! [Y: product_prod_int_int] :
      ~ ! [A4: int,B3: int] :
          ( Y
         != ( product_Pair_int_int @ A4 @ B3 ) ) ).

% old.prod.exhaust
thf(fact_303_Big__Proof_Opush__list__current,axiom,
    ! [X: int,Big: state_int2] :
      ( ( big_list_current_int @ ( push_int @ X @ Big ) )
      = ( cons_int @ X @ ( big_list_current_int @ Big ) ) ) ).

% Big_Proof.push_list_current
thf(fact_304_Big__Proof_Opush__list__current,axiom,
    ! [X: num > nat,Big: state_num_nat2] :
      ( ( big_li7782607250476775189um_nat @ ( push_num_nat @ X @ Big ) )
      = ( cons_num_nat @ X @ ( big_li7782607250476775189um_nat @ Big ) ) ) ).

% Big_Proof.push_list_current
thf(fact_305_Big__Proof_Opush__list__current,axiom,
    ! [X: nat > nat,Big: state_nat_nat2] :
      ( ( big_li428904810314529995at_nat @ ( push_nat_nat @ X @ Big ) )
      = ( cons_nat_nat @ X @ ( big_li428904810314529995at_nat @ Big ) ) ) ).

% Big_Proof.push_list_current
thf(fact_306_Big__Proof_Opush__list__current,axiom,
    ! [X: int > nat,Big: state_int_nat2] :
      ( ( big_li1428258522215584551nt_nat @ ( push_int_nat @ X @ Big ) )
      = ( cons_int_nat @ X @ ( big_li1428258522215584551nt_nat @ Big ) ) ) ).

% Big_Proof.push_list_current
thf(fact_307_Big__Proof_Opush__list__current,axiom,
    ! [X: a,Big: state_a2] :
      ( ( big_list_current_a @ ( push_a @ X @ Big ) )
      = ( cons_a @ X @ ( big_list_current_a @ Big ) ) ) ).

% Big_Proof.push_list_current
thf(fact_308_step__n__push__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a2 @ Small2 )
          = ( suc @ ( size_size_state_a2 @ Small ) ) ) ) ) ).

% step_n_push_size_small
thf(fact_309_step__n__push__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,N: nat,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6404775287138157491tate_a @ Small2 )
          = ( suc @ ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ).

% step_n_push_size_new_small
thf(fact_310_length__Cons,axiom,
    ! [X: num > nat,Xs: list_num_nat] :
      ( ( size_s1003533117800011565um_nat @ ( cons_num_nat @ X @ Xs ) )
      = ( suc @ ( size_s1003533117800011565um_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_311_length__Cons,axiom,
    ! [X: nat > nat,Xs: list_nat_nat] :
      ( ( size_s8208510060688613859at_nat @ ( cons_nat_nat @ X @ Xs ) )
      = ( suc @ ( size_s8208510060688613859at_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_312_length__Cons,axiom,
    ! [X: int > nat,Xs: list_int_nat] :
      ( ( size_s1172059598526859839nt_nat @ ( cons_int_nat @ X @ Xs ) )
      = ( suc @ ( size_s1172059598526859839nt_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_313_length__Cons,axiom,
    ! [X: product_prod_nat_nat,Xs: list_P6011104703257516679at_nat] :
      ( ( size_s5460976970255530739at_nat @ ( cons_P6512896166579812791at_nat @ X @ Xs ) )
      = ( suc @ ( size_s5460976970255530739at_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_314_length__Cons,axiom,
    ! [X: num,Xs: list_num] :
      ( ( size_size_list_num @ ( cons_num @ X @ Xs ) )
      = ( suc @ ( size_size_list_num @ Xs ) ) ) ).

% length_Cons
thf(fact_315_length__Cons,axiom,
    ! [X: int,Xs: list_int] :
      ( ( size_size_list_int @ ( cons_int @ X @ Xs ) )
      = ( suc @ ( size_size_list_int @ Xs ) ) ) ).

% length_Cons
thf(fact_316_length__Cons,axiom,
    ! [X: a,Xs: list_a] :
      ( ( size_size_list_a @ ( cons_a @ X @ Xs ) )
      = ( suc @ ( size_size_list_a @ Xs ) ) ) ).

% length_Cons
thf(fact_317_length__Cons,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( cons_nat @ X @ Xs ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_Cons
thf(fact_318_step__push__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( size_size_state_a2 @ Small2 )
          = ( suc @ ( size_size_state_a2 @ Small ) ) ) ) ) ).

% step_push_size_small
thf(fact_319_step__push__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( type_s6404775287138157491tate_a @ Small2 )
          = ( suc @ ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ).

% step_push_size_new_small
thf(fact_320_push__small__lists,axiom,
    ! [Dir: direction,Big: state_num_nat2,Small: state_num_nat,Big2: list_num_nat,Small2: list_num_nat,X: num > nat] :
      ( ( type_i7786832130059320534um_nat @ ( states_num_nat2 @ Dir @ Big @ Small ) )
     => ( ( ( states_lists_num_nat @ ( states_num_nat2 @ Dir @ Big @ Small ) )
          = ( produc2264169877068294091um_nat @ Big2 @ Small2 ) )
       => ( ( states_lists_num_nat @ ( states_num_nat2 @ Dir @ Big @ ( push_num_nat2 @ X @ Small ) ) )
          = ( produc2264169877068294091um_nat @ Big2 @ ( cons_num_nat @ X @ Small2 ) ) ) ) ) ).

% push_small_lists
thf(fact_321_push__small__lists,axiom,
    ! [Dir: direction,Big: state_nat_nat2,Small: state_nat_nat,Big2: list_nat_nat,Small2: list_nat_nat,X: nat > nat] :
      ( ( type_i5768437036093147020at_nat @ ( states_nat_nat2 @ Dir @ Big @ Small ) )
     => ( ( ( states_lists_nat_nat @ ( states_nat_nat2 @ Dir @ Big @ Small ) )
          = ( produc4657003450915473719at_nat @ Big2 @ Small2 ) )
       => ( ( states_lists_nat_nat @ ( states_nat_nat2 @ Dir @ Big @ ( push_nat_nat2 @ X @ Small ) ) )
          = ( produc4657003450915473719at_nat @ Big2 @ ( cons_nat_nat @ X @ Small2 ) ) ) ) ) ).

% push_small_lists
thf(fact_322_push__small__lists,axiom,
    ! [Dir: direction,Big: state_int_nat2,Small: state_int_nat,Big2: list_int_nat,Small2: list_int_nat,X: int > nat] :
      ( ( type_i7955358610786168808nt_nat @ ( states_int_nat2 @ Dir @ Big @ Small ) )
     => ( ( ( states_lists_int_nat @ ( states_int_nat2 @ Dir @ Big @ Small ) )
          = ( produc5249521469742256623nt_nat @ Big2 @ Small2 ) )
       => ( ( states_lists_int_nat @ ( states_int_nat2 @ Dir @ Big @ ( push_int_nat2 @ X @ Small ) ) )
          = ( produc5249521469742256623nt_nat @ Big2 @ ( cons_int_nat @ X @ Small2 ) ) ) ) ) ).

% push_small_lists
thf(fact_323_push__small__lists,axiom,
    ! [Dir: direction,Big: state_int2,Small: state_int,Big2: list_int,Small2: list_int,X: int] :
      ( ( type_i6677890655034438905es_int @ ( states_int2 @ Dir @ Big @ Small ) )
     => ( ( ( states_lists_int @ ( states_int2 @ Dir @ Big @ Small ) )
          = ( produc364263696895485585st_int @ Big2 @ Small2 ) )
       => ( ( states_lists_int @ ( states_int2 @ Dir @ Big @ ( push_int2 @ X @ Small ) ) )
          = ( produc364263696895485585st_int @ Big2 @ ( cons_int @ X @ Small2 ) ) ) ) ) ).

% push_small_lists
thf(fact_324_push__small__lists,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Big2: list_a,Small2: list_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( states_lists_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( produc6837034575241423639list_a @ Big2 @ Small2 ) )
       => ( ( states_lists_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
          = ( produc6837034575241423639list_a @ Big2 @ ( cons_a @ X @ Small2 ) ) ) ) ) ).

% push_small_lists
thf(fact_325_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_a] :
      ( ( bind_int_a @ ( cons_int @ X @ Xs ) @ F )
      = ( append_a @ ( F @ X ) @ ( bind_int_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_326_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_num] :
      ( ( bind_int_num @ ( cons_int @ X @ Xs ) @ F )
      = ( append_num @ ( F @ X ) @ ( bind_int_num @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_327_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_nat] :
      ( ( bind_int_nat @ ( cons_int @ X @ Xs ) @ F )
      = ( append_nat @ ( F @ X ) @ ( bind_int_nat @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_328_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_int] :
      ( ( bind_int_int @ ( cons_int @ X @ Xs ) @ F )
      = ( append_int @ ( F @ X ) @ ( bind_int_int @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_329_bind__simps_I2_J,axiom,
    ! [X: a,Xs: list_a,F: a > list_a] :
      ( ( bind_a_a @ ( cons_a @ X @ Xs ) @ F )
      = ( append_a @ ( F @ X ) @ ( bind_a_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_330_bind__simps_I2_J,axiom,
    ! [X: a,Xs: list_a,F: a > list_num] :
      ( ( bind_a_num @ ( cons_a @ X @ Xs ) @ F )
      = ( append_num @ ( F @ X ) @ ( bind_a_num @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_331_bind__simps_I2_J,axiom,
    ! [X: a,Xs: list_a,F: a > list_nat] :
      ( ( bind_a_nat @ ( cons_a @ X @ Xs ) @ F )
      = ( append_nat @ ( F @ X ) @ ( bind_a_nat @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_332_bind__simps_I2_J,axiom,
    ! [X: a,Xs: list_a,F: a > list_int] :
      ( ( bind_a_int @ ( cons_a @ X @ Xs ) @ F )
      = ( append_int @ ( F @ X ) @ ( bind_a_int @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_333_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_P3592885314253461005_a_nat] :
      ( ( bind_i2574587955495602226_a_nat @ ( cons_int @ X @ Xs ) @ F )
      = ( append7679239579558125090_a_nat @ ( F @ X ) @ ( bind_i2574587955495602226_a_nat @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_334_bind__simps_I2_J,axiom,
    ! [X: int,Xs: list_int,F: int > list_P1396940483166286381od_a_a] :
      ( ( bind_i42855015366907570od_a_a @ ( cons_int @ X @ Xs ) @ F )
      = ( append5335208819046833346od_a_a @ ( F @ X ) @ ( bind_i42855015366907570od_a_a @ Xs @ F ) ) ) ).

% bind_simps(2)
thf(fact_335_gen__length__code_I2_J,axiom,
    ! [N: nat,X: int,Xs: list_int] :
      ( ( gen_length_int @ N @ ( cons_int @ X @ Xs ) )
      = ( gen_length_int @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_336_gen__length__code_I2_J,axiom,
    ! [N: nat,X: num > nat,Xs: list_num_nat] :
      ( ( gen_length_num_nat @ N @ ( cons_num_nat @ X @ Xs ) )
      = ( gen_length_num_nat @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_337_gen__length__code_I2_J,axiom,
    ! [N: nat,X: nat > nat,Xs: list_nat_nat] :
      ( ( gen_length_nat_nat @ N @ ( cons_nat_nat @ X @ Xs ) )
      = ( gen_length_nat_nat @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_338_gen__length__code_I2_J,axiom,
    ! [N: nat,X: int > nat,Xs: list_int_nat] :
      ( ( gen_length_int_nat @ N @ ( cons_int_nat @ X @ Xs ) )
      = ( gen_length_int_nat @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_339_gen__length__code_I2_J,axiom,
    ! [N: nat,X: a,Xs: list_a] :
      ( ( gen_length_a @ N @ ( cons_a @ X @ Xs ) )
      = ( gen_length_a @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_340_gen__length__code_I2_J,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( gen_length_nat @ N @ ( cons_nat @ X @ Xs ) )
      = ( gen_length_nat @ ( suc @ N ) @ Xs ) ) ).

% gen_length_code(2)
thf(fact_341_invar__push__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) ) ) ).

% invar_push_small
thf(fact_342_Small__Proof_Opush__list__current,axiom,
    ! [X: int,Small: state_int] :
      ( ( small_1709254455575119551nt_int @ ( push_int2 @ X @ Small ) )
      = ( cons_int @ X @ ( small_1709254455575119551nt_int @ Small ) ) ) ).

% Small_Proof.push_list_current
thf(fact_343_Small__Proof_Opush__list__current,axiom,
    ! [X: num > nat,Small: state_num_nat] :
      ( ( small_1843406306361257884um_nat @ ( push_num_nat2 @ X @ Small ) )
      = ( cons_num_nat @ X @ ( small_1843406306361257884um_nat @ Small ) ) ) ).

% Small_Proof.push_list_current
thf(fact_344_Small__Proof_Opush__list__current,axiom,
    ! [X: nat > nat,Small: state_nat_nat] :
      ( ( small_3713075903053788498at_nat @ ( push_nat_nat2 @ X @ Small ) )
      = ( cons_nat_nat @ X @ ( small_3713075903053788498at_nat @ Small ) ) ) ).

% Small_Proof.push_list_current
thf(fact_345_Small__Proof_Opush__list__current,axiom,
    ! [X: int > nat,Small: state_int_nat] :
      ( ( small_4712429614954843054nt_nat @ ( push_int_nat2 @ X @ Small ) )
      = ( cons_int_nat @ X @ ( small_4712429614954843054nt_nat @ Small ) ) ) ).

% Small_Proof.push_list_current
thf(fact_346_Small__Proof_Opush__list__current,axiom,
    ! [X: a,Small: state_a] :
      ( ( small_list_current_a @ ( push_a2 @ X @ Small ) )
      = ( cons_a @ X @ ( small_list_current_a @ Small ) ) ) ).

% Small_Proof.push_list_current
thf(fact_347_maps__simps_I1_J,axiom,
    ! [F: int > list_a,X: int,Xs: list_int] :
      ( ( maps_int_a @ F @ ( cons_int @ X @ Xs ) )
      = ( append_a @ ( F @ X ) @ ( maps_int_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_348_maps__simps_I1_J,axiom,
    ! [F: int > list_num,X: int,Xs: list_int] :
      ( ( maps_int_num @ F @ ( cons_int @ X @ Xs ) )
      = ( append_num @ ( F @ X ) @ ( maps_int_num @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_349_maps__simps_I1_J,axiom,
    ! [F: int > list_nat,X: int,Xs: list_int] :
      ( ( maps_int_nat @ F @ ( cons_int @ X @ Xs ) )
      = ( append_nat @ ( F @ X ) @ ( maps_int_nat @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_350_maps__simps_I1_J,axiom,
    ! [F: int > list_int,X: int,Xs: list_int] :
      ( ( maps_int_int @ F @ ( cons_int @ X @ Xs ) )
      = ( append_int @ ( F @ X ) @ ( maps_int_int @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_351_maps__simps_I1_J,axiom,
    ! [F: a > list_a,X: a,Xs: list_a] :
      ( ( maps_a_a @ F @ ( cons_a @ X @ Xs ) )
      = ( append_a @ ( F @ X ) @ ( maps_a_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_352_maps__simps_I1_J,axiom,
    ! [F: a > list_num,X: a,Xs: list_a] :
      ( ( maps_a_num @ F @ ( cons_a @ X @ Xs ) )
      = ( append_num @ ( F @ X ) @ ( maps_a_num @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_353_maps__simps_I1_J,axiom,
    ! [F: a > list_nat,X: a,Xs: list_a] :
      ( ( maps_a_nat @ F @ ( cons_a @ X @ Xs ) )
      = ( append_nat @ ( F @ X ) @ ( maps_a_nat @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_354_maps__simps_I1_J,axiom,
    ! [F: a > list_int,X: a,Xs: list_a] :
      ( ( maps_a_int @ F @ ( cons_a @ X @ Xs ) )
      = ( append_int @ ( F @ X ) @ ( maps_a_int @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_355_maps__simps_I1_J,axiom,
    ! [F: int > list_P3592885314253461005_a_nat,X: int,Xs: list_int] :
      ( ( maps_i564174456596884204_a_nat @ F @ ( cons_int @ X @ Xs ) )
      = ( append7679239579558125090_a_nat @ ( F @ X ) @ ( maps_i564174456596884204_a_nat @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_356_maps__simps_I1_J,axiom,
    ! [F: int > list_P1396940483166286381od_a_a,X: int,Xs: list_int] :
      ( ( maps_i5625727269084573304od_a_a @ F @ ( cons_int @ X @ Xs ) )
      = ( append5335208819046833346od_a_a @ ( F @ X ) @ ( maps_i5625727269084573304od_a_a @ F @ Xs ) ) ) ).

% maps_simps(1)
thf(fact_357_Big__Proof_Osize__push,axiom,
    ! [Big: state_a2,X: a] :
      ( ( type_i6304938058965754292tate_a @ Big )
     => ( ( size_size_state_a @ ( push_a @ X @ Big ) )
        = ( suc @ ( size_size_state_a @ Big ) ) ) ) ).

% Big_Proof.size_push
thf(fact_358_Big__Proof_Osize__new__push,axiom,
    ! [Big: state_a2,X: a] :
      ( ( type_i6304938058965754292tate_a @ Big )
     => ( ( type_s6530235180886170618tate_a @ ( push_a @ X @ Big ) )
        = ( suc @ ( type_s6530235180886170618tate_a @ Big ) ) ) ) ).

% Big_Proof.size_new_push
thf(fact_359_lexord__append__left__rightI,axiom,
    ! [A: a,B: a,R: set_Product_prod_a_a,U: list_a,X: list_a,Y: list_a] :
      ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A @ B ) @ R )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ U @ ( cons_a @ A @ X ) ) @ ( append_a @ U @ ( cons_a @ B @ Y ) ) ) @ ( lexord_a @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_360_lexord__append__left__rightI,axiom,
    ! [A: num,B: num,R: set_Pr8218934625190621173um_num,U: list_num,X: list_num,Y: list_num] :
      ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ A @ B ) @ R )
     => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ U @ ( cons_num @ A @ X ) ) @ ( append_num @ U @ ( cons_num @ B @ Y ) ) ) @ ( lexord_num @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_361_lexord__append__left__rightI,axiom,
    ! [A: nat,B: nat,R: set_Pr1261947904930325089at_nat,U: list_nat,X: list_nat,Y: list_nat] :
      ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ A @ B ) @ R )
     => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ U @ ( cons_nat @ A @ X ) ) @ ( append_nat @ U @ ( cons_nat @ B @ Y ) ) ) @ ( lexord_nat @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_362_lexord__append__left__rightI,axiom,
    ! [A: int,B: int,R: set_Pr958786334691620121nt_int,U: list_int,X: list_int,Y: list_int] :
      ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ A @ B ) @ R )
     => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ U @ ( cons_int @ A @ X ) ) @ ( append_int @ U @ ( cons_int @ B @ Y ) ) ) @ ( lexord_int @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_363_lexord__append__left__rightI,axiom,
    ! [A: list_int,B: list_int,R: set_Pr765067013931698361st_int,U: list_list_int,X: list_list_int,Y: list_list_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ A @ B ) @ R )
     => ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( append_list_int @ U @ ( cons_list_int @ A @ X ) ) @ ( append_list_int @ U @ ( cons_list_int @ B @ Y ) ) ) @ ( lexord_list_int @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_364_lexord__append__left__rightI,axiom,
    ! [A: list_a,B: list_a,R: set_Pr4048851178543822343list_a,U: list_list_a,X: list_list_a,Y: list_list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ A @ B ) @ R )
     => ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( append_list_a @ U @ ( cons_list_a @ A @ X ) ) @ ( append_list_a @ U @ ( cons_list_a @ B @ Y ) ) ) @ ( lexord_list_a @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_365_lexord__append__left__rightI,axiom,
    ! [A: product_prod_a_nat,B: product_prod_a_nat,R: set_Pr1811044260758604347_a_nat,U: list_P3592885314253461005_a_nat,X: list_P3592885314253461005_a_nat,Y: list_P3592885314253461005_a_nat] :
      ( ( member9062615507155100804_a_nat @ ( produc2026711137822539155_a_nat @ A @ B ) @ R )
     => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ U @ ( cons_P5205166803686508359_a_nat @ A @ X ) ) @ ( append7679239579558125090_a_nat @ U @ ( cons_P5205166803686508359_a_nat @ B @ Y ) ) ) @ ( lexord2902578037316800714_a_nat @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_366_lexord__append__left__rightI,axiom,
    ! [A: product_prod_a_a,B: product_prod_a_a,R: set_Pr8600417178894128327od_a_a,U: list_P1396940483166286381od_a_a,X: list_P1396940483166286381od_a_a,Y: list_P1396940483166286381od_a_a] :
      ( ( member6330455413206600464od_a_a @ ( produc7886510207707329367od_a_a @ A @ B ) @ R )
     => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ U @ ( cons_P7316939126706565853od_a_a @ A @ X ) ) @ ( append5335208819046833346od_a_a @ U @ ( cons_P7316939126706565853od_a_a @ B @ Y ) ) ) @ ( lexord2574673282903770138od_a_a @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_367_lexord__append__left__rightI,axiom,
    ! [A: num > nat,B: num > nat,R: set_Pr2767457846497873235um_nat,U: list_num_nat,X: list_num_nat,Y: list_num_nat] :
      ( ( member8632778118854156188um_nat @ ( produc195427321684866731um_nat @ A @ B ) @ R )
     => ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ ( append_num_nat @ U @ ( cons_num_nat @ A @ X ) ) @ ( append_num_nat @ U @ ( cons_num_nat @ B @ Y ) ) ) @ ( lexord_num_nat @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_368_lexord__append__left__rightI,axiom,
    ! [A: nat > nat,B: nat > nat,R: set_Pr7682762132356531903at_nat,U: list_nat_nat,X: list_nat_nat,Y: list_nat_nat] :
      ( ( member1096249278104964872at_nat @ ( produc5770335208449155351at_nat @ A @ B ) @ R )
     => ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ ( append_nat_nat @ U @ ( cons_nat_nat @ A @ X ) ) @ ( append_nat_nat @ U @ ( cons_nat_nat @ B @ Y ) ) ) @ ( lexord_nat_nat @ R ) ) ) ).

% lexord_append_left_rightI
thf(fact_369_lenlex__append1,axiom,
    ! [Us: list_P3592885314253461005_a_nat,Xs: list_P3592885314253461005_a_nat,R2: set_Pr1811044260758604347_a_nat,Vs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Us @ Xs ) @ ( lenlex6533860390983708594_a_nat @ R2 ) )
     => ( ( ( size_s984997627204368545_a_nat @ Vs )
          = ( size_s984997627204368545_a_nat @ Ys ) )
       => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Us @ Vs ) @ ( append7679239579558125090_a_nat @ Xs @ Ys ) ) @ ( lenlex6533860390983708594_a_nat @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_370_lenlex__append1,axiom,
    ! [Us: list_P1396940483166286381od_a_a,Xs: list_P1396940483166286381od_a_a,R2: set_Pr8600417178894128327od_a_a,Vs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Us @ Xs ) @ ( lenlex8556352030002712370od_a_a @ R2 ) )
     => ( ( ( size_s3885678630836030617od_a_a @ Vs )
          = ( size_s3885678630836030617od_a_a @ Ys ) )
       => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Us @ Vs ) @ ( append5335208819046833346od_a_a @ Xs @ Ys ) ) @ ( lenlex8556352030002712370od_a_a @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_371_lenlex__append1,axiom,
    ! [Us: list_P6011104703257516679at_nat,Xs: list_P6011104703257516679at_nat,R2: set_Pr8693737435421807431at_nat,Vs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat] :
      ( ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ Us @ Xs ) @ ( lenlex325483962726685836at_nat @ R2 ) )
     => ( ( ( size_s5460976970255530739at_nat @ Vs )
          = ( size_s5460976970255530739at_nat @ Ys ) )
       => ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ ( append985823374593552924at_nat @ Us @ Vs ) @ ( append985823374593552924at_nat @ Xs @ Ys ) ) @ ( lenlex325483962726685836at_nat @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_372_lenlex__append1,axiom,
    ! [Us: list_num,Xs: list_num,R2: set_Pr8218934625190621173um_num,Vs: list_num,Ys: list_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Us @ Xs ) @ ( lenlex_num @ R2 ) )
     => ( ( ( size_size_list_num @ Vs )
          = ( size_size_list_num @ Ys ) )
       => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Us @ Vs ) @ ( append_num @ Xs @ Ys ) ) @ ( lenlex_num @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_373_lenlex__append1,axiom,
    ! [Us: list_int,Xs: list_int,R2: set_Pr958786334691620121nt_int,Vs: list_int,Ys: list_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Us @ Xs ) @ ( lenlex_int @ R2 ) )
     => ( ( ( size_size_list_int @ Vs )
          = ( size_size_list_int @ Ys ) )
       => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Us @ Vs ) @ ( append_int @ Xs @ Ys ) ) @ ( lenlex_int @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_374_lenlex__append1,axiom,
    ! [Us: list_a,Xs: list_a,R2: set_Product_prod_a_a,Vs: list_a,Ys: list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Us @ Xs ) @ ( lenlex_a @ R2 ) )
     => ( ( ( size_size_list_a @ Vs )
          = ( size_size_list_a @ Ys ) )
       => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Us @ Vs ) @ ( append_a @ Xs @ Ys ) ) @ ( lenlex_a @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_375_lenlex__append1,axiom,
    ! [Us: list_nat,Xs: list_nat,R2: set_Pr1261947904930325089at_nat,Vs: list_nat,Ys: list_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Us @ Xs ) @ ( lenlex_nat @ R2 ) )
     => ( ( ( size_size_list_nat @ Vs )
          = ( size_size_list_nat @ Ys ) )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Us @ Vs ) @ ( append_nat @ Xs @ Ys ) ) @ ( lenlex_nat @ R2 ) ) ) ) ).

% lenlex_append1
thf(fact_376_listrel1I,axiom,
    ! [X: a,Y: a,R: set_Product_prod_a_a,Xs: list_a,Us: list_a,Vs: list_a,Ys: list_a] :
      ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_a @ Us @ ( cons_a @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_a @ Us @ ( cons_a @ Y @ Vs ) ) )
         => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) ) ) ) ) ).

% listrel1I
thf(fact_377_listrel1I,axiom,
    ! [X: num,Y: num,R: set_Pr8218934625190621173um_num,Xs: list_num,Us: list_num,Vs: list_num,Ys: list_num] :
      ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_num @ Us @ ( cons_num @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_num @ Us @ ( cons_num @ Y @ Vs ) ) )
         => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) ) ) ) ) ).

% listrel1I
thf(fact_378_listrel1I,axiom,
    ! [X: nat,Y: nat,R: set_Pr1261947904930325089at_nat,Xs: list_nat,Us: list_nat,Vs: list_nat,Ys: list_nat] :
      ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_nat @ Us @ ( cons_nat @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_nat @ Us @ ( cons_nat @ Y @ Vs ) ) )
         => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) ) ) ) ) ).

% listrel1I
thf(fact_379_listrel1I,axiom,
    ! [X: int,Y: int,R: set_Pr958786334691620121nt_int,Xs: list_int,Us: list_int,Vs: list_int,Ys: list_int] :
      ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_int @ Us @ ( cons_int @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_int @ Us @ ( cons_int @ Y @ Vs ) ) )
         => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) ) ) ) ) ).

% listrel1I
thf(fact_380_listrel1I,axiom,
    ! [X: list_int,Y: list_int,R: set_Pr765067013931698361st_int,Xs: list_list_int,Us: list_list_int,Vs: list_list_int,Ys: list_list_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_list_int @ Us @ ( cons_list_int @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_list_int @ Us @ ( cons_list_int @ Y @ Vs ) ) )
         => ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Xs @ Ys ) @ ( listrel1_list_int @ R ) ) ) ) ) ).

% listrel1I
thf(fact_381_listrel1I,axiom,
    ! [X: list_a,Y: list_a,R: set_Pr4048851178543822343list_a,Xs: list_list_a,Us: list_list_a,Vs: list_list_a,Ys: list_list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_list_a @ Us @ ( cons_list_a @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_list_a @ Us @ ( cons_list_a @ Y @ Vs ) ) )
         => ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Xs @ Ys ) @ ( listrel1_list_a @ R ) ) ) ) ) ).

% listrel1I
thf(fact_382_listrel1I,axiom,
    ! [X: product_prod_a_nat,Y: product_prod_a_nat,R: set_Pr1811044260758604347_a_nat,Xs: list_P3592885314253461005_a_nat,Us: list_P3592885314253461005_a_nat,Vs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat] :
      ( ( member9062615507155100804_a_nat @ ( produc2026711137822539155_a_nat @ X @ Y ) @ R )
     => ( ( Xs
          = ( append7679239579558125090_a_nat @ Us @ ( cons_P5205166803686508359_a_nat @ X @ Vs ) ) )
       => ( ( Ys
            = ( append7679239579558125090_a_nat @ Us @ ( cons_P5205166803686508359_a_nat @ Y @ Vs ) ) )
         => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Xs @ Ys ) @ ( listre3824326845222555614_a_nat @ R ) ) ) ) ) ).

% listrel1I
thf(fact_383_listrel1I,axiom,
    ! [X: product_prod_a_a,Y: product_prod_a_a,R: set_Pr8600417178894128327od_a_a,Xs: list_P1396940483166286381od_a_a,Us: list_P1396940483166286381od_a_a,Vs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a] :
      ( ( member6330455413206600464od_a_a @ ( produc7886510207707329367od_a_a @ X @ Y ) @ R )
     => ( ( Xs
          = ( append5335208819046833346od_a_a @ Us @ ( cons_P7316939126706565853od_a_a @ X @ Vs ) ) )
       => ( ( Ys
            = ( append5335208819046833346od_a_a @ Us @ ( cons_P7316939126706565853od_a_a @ Y @ Vs ) ) )
         => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Xs @ Ys ) @ ( listre2955263628197028358od_a_a @ R ) ) ) ) ) ).

% listrel1I
thf(fact_384_listrel1I,axiom,
    ! [X: num > nat,Y: num > nat,R: set_Pr2767457846497873235um_nat,Xs: list_num_nat,Us: list_num_nat,Vs: list_num_nat,Ys: list_num_nat] :
      ( ( member8632778118854156188um_nat @ ( produc195427321684866731um_nat @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_num_nat @ Us @ ( cons_num_nat @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_num_nat @ Us @ ( cons_num_nat @ Y @ Vs ) ) )
         => ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ Xs @ Ys ) @ ( listrel1_num_nat @ R ) ) ) ) ) ).

% listrel1I
thf(fact_385_listrel1I,axiom,
    ! [X: nat > nat,Y: nat > nat,R: set_Pr7682762132356531903at_nat,Xs: list_nat_nat,Us: list_nat_nat,Vs: list_nat_nat,Ys: list_nat_nat] :
      ( ( member1096249278104964872at_nat @ ( produc5770335208449155351at_nat @ X @ Y ) @ R )
     => ( ( Xs
          = ( append_nat_nat @ Us @ ( cons_nat_nat @ X @ Vs ) ) )
       => ( ( Ys
            = ( append_nat_nat @ Us @ ( cons_nat_nat @ Y @ Vs ) ) )
         => ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ Xs @ Ys ) @ ( listrel1_nat_nat @ R ) ) ) ) ) ).

% listrel1I
thf(fact_386_Cons__listrel1__Cons,axiom,
    ! [X: num > nat,Xs: list_num_nat,Y: num > nat,Ys: list_num_nat,R: set_Pr2767457846497873235um_nat] :
      ( ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ ( cons_num_nat @ X @ Xs ) @ ( cons_num_nat @ Y @ Ys ) ) @ ( listrel1_num_nat @ R ) )
      = ( ( ( member8632778118854156188um_nat @ ( produc195427321684866731um_nat @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ Xs @ Ys ) @ ( listrel1_num_nat @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_387_Cons__listrel1__Cons,axiom,
    ! [X: nat > nat,Xs: list_nat_nat,Y: nat > nat,Ys: list_nat_nat,R: set_Pr7682762132356531903at_nat] :
      ( ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ ( cons_nat_nat @ X @ Xs ) @ ( cons_nat_nat @ Y @ Ys ) ) @ ( listrel1_nat_nat @ R ) )
      = ( ( ( member1096249278104964872at_nat @ ( produc5770335208449155351at_nat @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ Xs @ Ys ) @ ( listrel1_nat_nat @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_388_Cons__listrel1__Cons,axiom,
    ! [X: int > nat,Xs: list_int_nat,Y: int > nat,Ys: list_int_nat,R: set_Pr1394042615296016247nt_nat] :
      ( ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ ( cons_int_nat @ X @ Xs ) @ ( cons_int_nat @ Y @ Ys ) ) @ ( listrel1_int_nat @ R ) )
      = ( ( ( member4491287985726366656nt_nat @ ( produc7977806053278589903nt_nat @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ Xs @ Ys ) @ ( listrel1_int_nat @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_389_Cons__listrel1__Cons,axiom,
    ! [X: list_int,Xs: list_list_int,Y: list_int,Ys: list_list_int,R: set_Pr765067013931698361st_int] :
      ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( cons_list_int @ X @ Xs ) @ ( cons_list_int @ Y @ Ys ) ) @ ( listrel1_list_int @ R ) )
      = ( ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Xs @ Ys ) @ ( listrel1_list_int @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_390_Cons__listrel1__Cons,axiom,
    ! [X: list_a,Xs: list_list_a,Y: list_a,Ys: list_list_a,R: set_Pr4048851178543822343list_a] :
      ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( cons_list_a @ X @ Xs ) @ ( cons_list_a @ Y @ Ys ) ) @ ( listrel1_list_a @ R ) )
      = ( ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Xs @ Ys ) @ ( listrel1_list_a @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_391_Cons__listrel1__Cons,axiom,
    ! [X: a,Xs: list_a,Y: a,Ys: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( cons_a @ X @ Xs ) @ ( cons_a @ Y @ Ys ) ) @ ( listrel1_a @ R ) )
      = ( ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_392_Cons__listrel1__Cons,axiom,
    ! [X: num,Xs: list_num,Y: num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ Y @ Ys ) ) @ ( listrel1_num @ R ) )
      = ( ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_393_Cons__listrel1__Cons,axiom,
    ! [X: nat,Xs: list_nat,Y: nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) ) @ ( listrel1_nat @ R ) )
      = ( ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_394_Cons__listrel1__Cons,axiom,
    ! [X: int,Xs: list_int,Y: int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ Y @ Ys ) ) @ ( listrel1_int @ R ) )
      = ( ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R )
          & ( Xs = Ys ) )
        | ( ( X = Y )
          & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) ) ) ) ) ).

% Cons_listrel1_Cons
thf(fact_395_lexord__cons__cons,axiom,
    ! [A: num > nat,X: list_num_nat,B: num > nat,Y: list_num_nat,R: set_Pr2767457846497873235um_nat] :
      ( ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ ( cons_num_nat @ A @ X ) @ ( cons_num_nat @ B @ Y ) ) @ ( lexord_num_nat @ R ) )
      = ( ( member8632778118854156188um_nat @ ( produc195427321684866731um_nat @ A @ B ) @ R )
        | ( ( A = B )
          & ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ X @ Y ) @ ( lexord_num_nat @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_396_lexord__cons__cons,axiom,
    ! [A: nat > nat,X: list_nat_nat,B: nat > nat,Y: list_nat_nat,R: set_Pr7682762132356531903at_nat] :
      ( ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ ( cons_nat_nat @ A @ X ) @ ( cons_nat_nat @ B @ Y ) ) @ ( lexord_nat_nat @ R ) )
      = ( ( member1096249278104964872at_nat @ ( produc5770335208449155351at_nat @ A @ B ) @ R )
        | ( ( A = B )
          & ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ X @ Y ) @ ( lexord_nat_nat @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_397_lexord__cons__cons,axiom,
    ! [A: int > nat,X: list_int_nat,B: int > nat,Y: list_int_nat,R: set_Pr1394042615296016247nt_nat] :
      ( ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ ( cons_int_nat @ A @ X ) @ ( cons_int_nat @ B @ Y ) ) @ ( lexord_int_nat @ R ) )
      = ( ( member4491287985726366656nt_nat @ ( produc7977806053278589903nt_nat @ A @ B ) @ R )
        | ( ( A = B )
          & ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ X @ Y ) @ ( lexord_int_nat @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_398_lexord__cons__cons,axiom,
    ! [A: list_int,X: list_list_int,B: list_int,Y: list_list_int,R: set_Pr765067013931698361st_int] :
      ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ ( cons_list_int @ A @ X ) @ ( cons_list_int @ B @ Y ) ) @ ( lexord_list_int @ R ) )
      = ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ A @ B ) @ R )
        | ( ( A = B )
          & ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ X @ Y ) @ ( lexord_list_int @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_399_lexord__cons__cons,axiom,
    ! [A: list_a,X: list_list_a,B: list_a,Y: list_list_a,R: set_Pr4048851178543822343list_a] :
      ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ ( cons_list_a @ A @ X ) @ ( cons_list_a @ B @ Y ) ) @ ( lexord_list_a @ R ) )
      = ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ A @ B ) @ R )
        | ( ( A = B )
          & ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ X @ Y ) @ ( lexord_list_a @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_400_lexord__cons__cons,axiom,
    ! [A: a,X: list_a,B: a,Y: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( cons_a @ A @ X ) @ ( cons_a @ B @ Y ) ) @ ( lexord_a @ R ) )
      = ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A @ B ) @ R )
        | ( ( A = B )
          & ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ Y ) @ ( lexord_a @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_401_lexord__cons__cons,axiom,
    ! [A: num,X: list_num,B: num,Y: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ A @ X ) @ ( cons_num @ B @ Y ) ) @ ( lexord_num @ R ) )
      = ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ A @ B ) @ R )
        | ( ( A = B )
          & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ X @ Y ) @ ( lexord_num @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_402_lexord__cons__cons,axiom,
    ! [A: nat,X: list_nat,B: nat,Y: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ A @ X ) @ ( cons_nat @ B @ Y ) ) @ ( lexord_nat @ R ) )
      = ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ A @ B ) @ R )
        | ( ( A = B )
          & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ X @ Y ) @ ( lexord_nat @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_403_lexord__cons__cons,axiom,
    ! [A: int,X: list_int,B: int,Y: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ A @ X ) @ ( cons_int @ B @ Y ) ) @ ( lexord_int @ R ) )
      = ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ A @ B ) @ R )
        | ( ( A = B )
          & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ ( lexord_int @ R ) ) ) ) ) ).

% lexord_cons_cons
thf(fact_404_Big__Proof_Oinvar__push,axiom,
    ! [Big: state_a2,X: a] :
      ( ( type_i6304938058965754292tate_a @ Big )
     => ( type_i6304938058965754292tate_a @ ( push_a @ X @ Big ) ) ) ).

% Big_Proof.invar_push
thf(fact_405_listrel1I2,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat,X: nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
     => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ X @ Ys ) ) @ ( listrel1_nat @ R ) ) ) ).

% listrel1I2
thf(fact_406_listrel1I2,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num,X: num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
     => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ X @ Ys ) ) @ ( listrel1_num @ R ) ) ) ).

% listrel1I2
thf(fact_407_listrel1I2,axiom,
    ! [Xs: list_num_nat,Ys: list_num_nat,R: set_Pr2767457846497873235um_nat,X: num > nat] :
      ( ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ Xs @ Ys ) @ ( listrel1_num_nat @ R ) )
     => ( member354398252254859452um_nat @ ( produc2264169877068294091um_nat @ ( cons_num_nat @ X @ Xs ) @ ( cons_num_nat @ X @ Ys ) ) @ ( listrel1_num_nat @ R ) ) ) ).

% listrel1I2
thf(fact_408_listrel1I2,axiom,
    ! [Xs: list_nat_nat,Ys: list_nat_nat,R: set_Pr7682762132356531903at_nat,X: nat > nat] :
      ( ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ Xs @ Ys ) @ ( listrel1_nat_nat @ R ) )
     => ( member6315332072434022184at_nat @ ( produc4657003450915473719at_nat @ ( cons_nat_nat @ X @ Xs ) @ ( cons_nat_nat @ X @ Ys ) ) @ ( listrel1_nat_nat @ R ) ) ) ).

% listrel1I2
thf(fact_409_listrel1I2,axiom,
    ! [Xs: list_int_nat,Ys: list_int_nat,R: set_Pr1394042615296016247nt_nat,X: int > nat] :
      ( ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ Xs @ Ys ) @ ( listrel1_int_nat @ R ) )
     => ( member7939632110732153312nt_nat @ ( produc5249521469742256623nt_nat @ ( cons_int_nat @ X @ Xs ) @ ( cons_int_nat @ X @ Ys ) ) @ ( listrel1_int_nat @ R ) ) ) ).

% listrel1I2
thf(fact_410_listrel1I2,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int,X: int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
     => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ X @ Ys ) ) @ ( listrel1_int @ R ) ) ) ).

% listrel1I2
thf(fact_411_listrel1I2,axiom,
    ! [Xs: list_a,Ys: list_a,R: set_Product_prod_a_a,X: a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( cons_a @ X @ Xs ) @ ( cons_a @ X @ Ys ) ) @ ( listrel1_a @ R ) ) ) ).

% listrel1I2
thf(fact_412_listrel1__eq__len,axiom,
    ! [Xs: list_P6011104703257516679at_nat,Ys: list_P6011104703257516679at_nat,R: set_Pr8693737435421807431at_nat] :
      ( ( member6693912407220327184at_nat @ ( produc5943733680697469783at_nat @ Xs @ Ys ) @ ( listre4828114922151135584at_nat @ R ) )
     => ( ( size_s5460976970255530739at_nat @ Xs )
        = ( size_s5460976970255530739at_nat @ Ys ) ) ) ).

% listrel1_eq_len
thf(fact_413_listrel1__eq__len,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
     => ( ( size_size_list_num @ Xs )
        = ( size_size_list_num @ Ys ) ) ) ).

% listrel1_eq_len
thf(fact_414_listrel1__eq__len,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
     => ( ( size_size_list_int @ Xs )
        = ( size_size_list_int @ Ys ) ) ) ).

% listrel1_eq_len
thf(fact_415_listrel1__eq__len,axiom,
    ! [Xs: list_a,Ys: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) )
     => ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) ) ) ).

% listrel1_eq_len
thf(fact_416_listrel1__eq__len,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) ) ) ).

% listrel1_eq_len
thf(fact_417_append__listrel1I,axiom,
    ! [Xs: list_P3592885314253461005_a_nat,Ys: list_P3592885314253461005_a_nat,R: set_Pr1811044260758604347_a_nat,Us: list_P3592885314253461005_a_nat,Vs: list_P3592885314253461005_a_nat] :
      ( ( ( ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Xs @ Ys ) @ ( listre3824326845222555614_a_nat @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ Us @ Vs ) @ ( listre3824326845222555614_a_nat @ R ) ) ) )
     => ( member3259931553675508900_a_nat @ ( produc5384655689722402227_a_nat @ ( append7679239579558125090_a_nat @ Xs @ Us ) @ ( append7679239579558125090_a_nat @ Ys @ Vs ) ) @ ( listre3824326845222555614_a_nat @ R ) ) ) ).

% append_listrel1I
thf(fact_418_append__listrel1I,axiom,
    ! [Xs: list_P1396940483166286381od_a_a,Ys: list_P1396940483166286381od_a_a,R: set_Pr8600417178894128327od_a_a,Us: list_P1396940483166286381od_a_a,Vs: list_P1396940483166286381od_a_a] :
      ( ( ( ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Xs @ Ys ) @ ( listre2955263628197028358od_a_a @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ Us @ Vs ) @ ( listre2955263628197028358od_a_a @ R ) ) ) )
     => ( member1370157277785437840od_a_a @ ( produc1014507885701610967od_a_a @ ( append5335208819046833346od_a_a @ Xs @ Us ) @ ( append5335208819046833346od_a_a @ Ys @ Vs ) ) @ ( listre2955263628197028358od_a_a @ R ) ) ) ).

% append_listrel1I
thf(fact_419_append__listrel1I,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat,Us: list_nat,Vs: list_nat] :
      ( ( ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Us @ Vs ) @ ( listrel1_nat @ R ) ) ) )
     => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Us ) @ ( append_nat @ Ys @ Vs ) ) @ ( listrel1_nat @ R ) ) ) ).

% append_listrel1I
thf(fact_420_append__listrel1I,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num,Us: list_num,Vs: list_num] :
      ( ( ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Us @ Vs ) @ ( listrel1_num @ R ) ) ) )
     => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ Us ) @ ( append_num @ Ys @ Vs ) ) @ ( listrel1_num @ R ) ) ) ).

% append_listrel1I
thf(fact_421_append__listrel1I,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int,Us: list_int,Vs: list_int] :
      ( ( ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Us @ Vs ) @ ( listrel1_int @ R ) ) ) )
     => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ Us ) @ ( append_int @ Ys @ Vs ) ) @ ( listrel1_int @ R ) ) ) ).

% append_listrel1I
thf(fact_422_append__listrel1I,axiom,
    ! [Xs: list_a,Ys: list_a,R: set_Product_prod_a_a,Us: list_a,Vs: list_a] :
      ( ( ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) )
          & ( Us = Vs ) )
        | ( ( Xs = Ys )
          & ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Us @ Vs ) @ ( listrel1_a @ R ) ) ) )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Us ) @ ( append_a @ Ys @ Vs ) ) @ ( listrel1_a @ R ) ) ) ).

% append_listrel1I
thf(fact_423_lexord__linear,axiom,
    ! [R: set_Pr765067013931698361st_int,X: list_list_int,Y: list_list_int] :
      ( ! [A4: list_int,B3: list_int] :
          ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ B3 @ A4 ) @ R ) )
     => ( ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ X @ Y ) @ ( lexord_list_int @ R ) )
        | ( X = Y )
        | ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Y @ X ) @ ( lexord_list_int @ R ) ) ) ) ).

% lexord_linear
thf(fact_424_lexord__linear,axiom,
    ! [R: set_Pr4048851178543822343list_a,X: list_list_a,Y: list_list_a] :
      ( ! [A4: list_a,B3: list_a] :
          ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ B3 @ A4 ) @ R ) )
     => ( ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ X @ Y ) @ ( lexord_list_a @ R ) )
        | ( X = Y )
        | ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Y @ X ) @ ( lexord_list_a @ R ) ) ) ) ).

% lexord_linear
thf(fact_425_lexord__linear,axiom,
    ! [R: set_Product_prod_a_a,X: list_a,Y: list_a] :
      ( ! [A4: a,B3: a] :
          ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ B3 @ A4 ) @ R ) )
     => ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ Y ) @ ( lexord_a @ R ) )
        | ( X = Y )
        | ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Y @ X ) @ ( lexord_a @ R ) ) ) ) ).

% lexord_linear
thf(fact_426_lexord__linear,axiom,
    ! [R: set_Pr8218934625190621173um_num,X: list_num,Y: list_num] :
      ( ! [A4: num,B3: num] :
          ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member7279096912039735102um_num @ ( product_Pair_num_num @ B3 @ A4 ) @ R ) )
     => ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ X @ Y ) @ ( lexord_num @ R ) )
        | ( X = Y )
        | ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Y @ X ) @ ( lexord_num @ R ) ) ) ) ).

% lexord_linear
thf(fact_427_lexord__linear,axiom,
    ! [R: set_Pr1261947904930325089at_nat,X: list_nat,Y: list_nat] :
      ( ! [A4: nat,B3: nat] :
          ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ B3 @ A4 ) @ R ) )
     => ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ X @ Y ) @ ( lexord_nat @ R ) )
        | ( X = Y )
        | ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Y @ X ) @ ( lexord_nat @ R ) ) ) ) ).

% lexord_linear
thf(fact_428_lexord__linear,axiom,
    ! [R: set_Pr958786334691620121nt_int,X: list_int,Y: list_int] :
      ( ! [A4: int,B3: int] :
          ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ A4 @ B3 ) @ R )
          | ( A4 = B3 )
          | ( member5262025264175285858nt_int @ ( product_Pair_int_int @ B3 @ A4 ) @ R ) )
     => ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ ( lexord_int @ R ) )
        | ( X = Y )
        | ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Y @ X ) @ ( lexord_int @ R ) ) ) ) ).

% lexord_linear
thf(fact_429_lexord__irreflexive,axiom,
    ! [R: set_Pr765067013931698361st_int,Xs: list_list_int] :
      ( ! [X5: list_int] :
          ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X5 @ X5 ) @ R )
     => ~ ( member3583055517200259234st_int @ ( produc4355665770860423473st_int @ Xs @ Xs ) @ ( lexord_list_int @ R ) ) ) ).

% lexord_irreflexive
thf(fact_430_lexord__irreflexive,axiom,
    ! [R: set_Pr4048851178543822343list_a,Xs: list_list_a] :
      ( ! [X5: list_a] :
          ~ ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X5 @ X5 ) @ R )
     => ~ ( member1318342207407915856list_a @ ( produc8696003437204565271list_a @ Xs @ Xs ) @ ( lexord_list_a @ R ) ) ) ).

% lexord_irreflexive
thf(fact_431_lexord__irreflexive,axiom,
    ! [R: set_Product_prod_a_a,Xs: list_a] :
      ( ! [X5: a] :
          ~ ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X5 @ X5 ) @ R )
     => ~ ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Xs ) @ ( lexord_a @ R ) ) ) ).

% lexord_irreflexive
thf(fact_432_lexord__irreflexive,axiom,
    ! [R: set_Pr8218934625190621173um_num,Xs: list_num] :
      ( ! [X5: num] :
          ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ X5 ) @ R )
     => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Xs ) @ ( lexord_num @ R ) ) ) ).

% lexord_irreflexive
thf(fact_433_lexord__irreflexive,axiom,
    ! [R: set_Pr1261947904930325089at_nat,Xs: list_nat] :
      ( ! [X5: nat] :
          ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ X5 ) @ R )
     => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Xs ) @ ( lexord_nat @ R ) ) ) ).

% lexord_irreflexive
thf(fact_434_lexord__irreflexive,axiom,
    ! [R: set_Pr958786334691620121nt_int,Xs: list_int] :
      ( ! [X5: int] :
          ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ X5 ) @ R )
     => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Xs ) @ ( lexord_int @ R ) ) ) ).

% lexord_irreflexive
thf(fact_435_lexord__append__leftI,axiom,
    ! [U: list_a,V: list_a,R: set_Product_prod_a_a,X: list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ U @ V ) @ ( lexord_a @ R ) )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ X @ U ) @ ( append_a @ X @ V ) ) @ ( lexord_a @ R ) ) ) ).

% lexord_append_leftI
thf(fact_436_lenlex__irreflexive,axiom,
    ! [R: set_Pr8218934625190621173um_num,Xs: list_num] :
      ( ! [X5: num] :
          ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ X5 ) @ R )
     => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Xs ) @ ( lenlex_num @ R ) ) ) ).

% lenlex_irreflexive
thf(fact_437_lenlex__irreflexive,axiom,
    ! [R: set_Pr1261947904930325089at_nat,Xs: list_nat] :
      ( ! [X5: nat] :
          ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ X5 ) @ R )
     => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Xs ) @ ( lenlex_nat @ R ) ) ) ).

% lenlex_irreflexive
thf(fact_438_lenlex__irreflexive,axiom,
    ! [R: set_Pr958786334691620121nt_int,Xs: list_int] :
      ( ! [X5: int] :
          ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ X5 ) @ R )
     => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Xs ) @ ( lenlex_int @ R ) ) ) ).

% lenlex_irreflexive
thf(fact_439_listrel1I1,axiom,
    ! [X: num,Y: num,R: set_Pr8218934625190621173um_num,Xs: list_num] :
      ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R )
     => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ Y @ Xs ) ) @ ( listrel1_num @ R ) ) ) ).

% listrel1I1
thf(fact_440_listrel1I1,axiom,
    ! [X: nat,Y: nat,R: set_Pr1261947904930325089at_nat,Xs: list_nat] :
      ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R )
     => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Xs ) ) @ ( listrel1_nat @ R ) ) ) ).

% listrel1I1
thf(fact_441_listrel1I1,axiom,
    ! [X: int,Y: int,R: set_Pr958786334691620121nt_int,Xs: list_int] :
      ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R )
     => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ Y @ Xs ) ) @ ( listrel1_int @ R ) ) ) ).

% listrel1I1
thf(fact_442_Cons__listrel1E1,axiom,
    ! [X: num,Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ Ys ) @ ( listrel1_num @ R ) )
     => ( ! [Y5: num] :
            ( ( Ys
              = ( cons_num @ Y5 @ Xs ) )
           => ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y5 ) @ R ) )
       => ~ ! [Zs2: list_num] :
              ( ( Ys
                = ( cons_num @ X @ Zs2 ) )
             => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Zs2 ) @ ( listrel1_num @ R ) ) ) ) ) ).

% Cons_listrel1E1
thf(fact_443_Cons__listrel1E1,axiom,
    ! [X: nat,Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ Ys ) @ ( listrel1_nat @ R ) )
     => ( ! [Y5: nat] :
            ( ( Ys
              = ( cons_nat @ Y5 @ Xs ) )
           => ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y5 ) @ R ) )
       => ~ ! [Zs2: list_nat] :
              ( ( Ys
                = ( cons_nat @ X @ Zs2 ) )
             => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Zs2 ) @ ( listrel1_nat @ R ) ) ) ) ) ).

% Cons_listrel1E1
thf(fact_444_Cons__listrel1E1,axiom,
    ! [X: int,Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ Ys ) @ ( listrel1_int @ R ) )
     => ( ! [Y5: int] :
            ( ( Ys
              = ( cons_int @ Y5 @ Xs ) )
           => ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y5 ) @ R ) )
       => ~ ! [Zs2: list_int] :
              ( ( Ys
                = ( cons_int @ X @ Zs2 ) )
             => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Zs2 ) @ ( listrel1_int @ R ) ) ) ) ) ).

% Cons_listrel1E1
thf(fact_445_Cons__listrel1E2,axiom,
    ! [Xs: list_num,Y: num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ ( cons_num @ Y @ Ys ) ) @ ( listrel1_num @ R ) )
     => ( ! [X5: num] :
            ( ( Xs
              = ( cons_num @ X5 @ Ys ) )
           => ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y ) @ R ) )
       => ~ ! [Zs2: list_num] :
              ( ( Xs
                = ( cons_num @ Y @ Zs2 ) )
             => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Zs2 @ Ys ) @ ( listrel1_num @ R ) ) ) ) ) ).

% Cons_listrel1E2
thf(fact_446_Cons__listrel1E2,axiom,
    ! [Xs: list_nat,Y: nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ ( cons_nat @ Y @ Ys ) ) @ ( listrel1_nat @ R ) )
     => ( ! [X5: nat] :
            ( ( Xs
              = ( cons_nat @ X5 @ Ys ) )
           => ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y ) @ R ) )
       => ~ ! [Zs2: list_nat] :
              ( ( Xs
                = ( cons_nat @ Y @ Zs2 ) )
             => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Zs2 @ Ys ) @ ( listrel1_nat @ R ) ) ) ) ) ).

% Cons_listrel1E2
thf(fact_447_Cons__listrel1E2,axiom,
    ! [Xs: list_int,Y: int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ ( cons_int @ Y @ Ys ) ) @ ( listrel1_int @ R ) )
     => ( ! [X5: int] :
            ( ( Xs
              = ( cons_int @ X5 @ Ys ) )
           => ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y ) @ R ) )
       => ~ ! [Zs2: list_int] :
              ( ( Xs
                = ( cons_int @ Y @ Zs2 ) )
             => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Zs2 @ Ys ) @ ( listrel1_int @ R ) ) ) ) ) ).

% Cons_listrel1E2
thf(fact_448_lexord__append__leftD,axiom,
    ! [X: list_a,U: list_a,V: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ X @ U ) @ ( append_a @ X @ V ) ) @ ( lexord_a @ R ) )
     => ( ! [A4: a] :
            ~ ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ A4 @ A4 ) @ R )
       => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ U @ V ) @ ( lexord_a @ R ) ) ) ) ).

% lexord_append_leftD
thf(fact_449_lexord__append__leftD,axiom,
    ! [X: list_num,U: list_num,V: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ X @ U ) @ ( append_num @ X @ V ) ) @ ( lexord_num @ R ) )
     => ( ! [A4: num] :
            ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ A4 @ A4 ) @ R )
       => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ U @ V ) @ ( lexord_num @ R ) ) ) ) ).

% lexord_append_leftD
thf(fact_450_lexord__append__leftD,axiom,
    ! [X: list_nat,U: list_nat,V: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ X @ U ) @ ( append_nat @ X @ V ) ) @ ( lexord_nat @ R ) )
     => ( ! [A4: nat] :
            ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ A4 @ A4 ) @ R )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ U @ V ) @ ( lexord_nat @ R ) ) ) ) ).

% lexord_append_leftD
thf(fact_451_lexord__append__leftD,axiom,
    ! [X: list_int,U: list_int,V: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ X @ U ) @ ( append_int @ X @ V ) ) @ ( lexord_int @ R ) )
     => ( ! [A4: int] :
            ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ A4 @ A4 ) @ R )
       => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ U @ V ) @ ( lexord_int @ R ) ) ) ) ).

% lexord_append_leftD
thf(fact_452_lexord__append__rightI,axiom,
    ! [Y: list_a,X: list_a,R: set_Product_prod_a_a] :
      ( ? [B4: a,Z: list_a] :
          ( Y
          = ( cons_a @ B4 @ Z ) )
     => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ X @ ( append_a @ X @ Y ) ) @ ( lexord_a @ R ) ) ) ).

% lexord_append_rightI
thf(fact_453_lexord__sufE,axiom,
    ! [Xs: list_a,Zs: list_a,Ys: list_a,Qs: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ Zs ) @ ( append_a @ Ys @ Qs ) ) @ ( lexord_a @ R ) )
     => ( ( Xs != Ys )
       => ( ( ( size_size_list_a @ Xs )
            = ( size_size_list_a @ Ys ) )
         => ( ( ( size_size_list_a @ Zs )
              = ( size_size_list_a @ Qs ) )
           => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( lexord_a @ R ) ) ) ) ) ) ).

% lexord_sufE
thf(fact_454_lexord__sufE,axiom,
    ! [Xs: list_nat,Zs: list_nat,Ys: list_nat,Qs: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ Zs ) @ ( append_nat @ Ys @ Qs ) ) @ ( lexord_nat @ R ) )
     => ( ( Xs != Ys )
       => ( ( ( size_size_list_nat @ Xs )
            = ( size_size_list_nat @ Ys ) )
         => ( ( ( size_size_list_nat @ Zs )
              = ( size_size_list_nat @ Qs ) )
           => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( lexord_nat @ R ) ) ) ) ) ) ).

% lexord_sufE
thf(fact_455_lexord__lex,axiom,
    ! [X: list_nat,Y: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ X @ Y ) @ ( lex_nat @ R ) )
      = ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ X @ Y ) @ ( lexord_nat @ R ) )
        & ( ( size_size_list_nat @ X )
          = ( size_size_list_nat @ Y ) ) ) ) ).

% lexord_lex
thf(fact_456_listrel1E,axiom,
    ! [Xs: list_a,Ys: list_a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) )
     => ~ ! [X5: a,Y5: a] :
            ( ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X5 @ Y5 ) @ R )
           => ! [Us3: list_a,Vs2: list_a] :
                ( ( Xs
                  = ( append_a @ Us3 @ ( cons_a @ X5 @ Vs2 ) ) )
               => ( Ys
                 != ( append_a @ Us3 @ ( cons_a @ Y5 @ Vs2 ) ) ) ) ) ) ).

% listrel1E
thf(fact_457_listrel1E,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
     => ~ ! [X5: num,Y5: num] :
            ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y5 ) @ R )
           => ! [Us3: list_num,Vs2: list_num] :
                ( ( Xs
                  = ( append_num @ Us3 @ ( cons_num @ X5 @ Vs2 ) ) )
               => ( Ys
                 != ( append_num @ Us3 @ ( cons_num @ Y5 @ Vs2 ) ) ) ) ) ) ).

% listrel1E
thf(fact_458_listrel1E,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
     => ~ ! [X5: nat,Y5: nat] :
            ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y5 ) @ R )
           => ! [Us3: list_nat,Vs2: list_nat] :
                ( ( Xs
                  = ( append_nat @ Us3 @ ( cons_nat @ X5 @ Vs2 ) ) )
               => ( Ys
                 != ( append_nat @ Us3 @ ( cons_nat @ Y5 @ Vs2 ) ) ) ) ) ) ).

% listrel1E
thf(fact_459_listrel1E,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
     => ~ ! [X5: int,Y5: int] :
            ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y5 ) @ R )
           => ! [Us3: list_int,Vs2: list_int] :
                ( ( Xs
                  = ( append_int @ Us3 @ ( cons_int @ X5 @ Vs2 ) ) )
               => ( Ys
                 != ( append_int @ Us3 @ ( cons_int @ Y5 @ Vs2 ) ) ) ) ) ) ).

% listrel1E
thf(fact_460_Cons__lenlex__iff,axiom,
    ! [M: num,Ms: list_num,N: num,Ns: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ M @ Ms ) @ ( cons_num @ N @ Ns ) ) @ ( lenlex_num @ R ) )
      = ( ( ord_less_nat @ ( size_size_list_num @ Ms ) @ ( size_size_list_num @ Ns ) )
        | ( ( ( size_size_list_num @ Ms )
            = ( size_size_list_num @ Ns ) )
          & ( member7279096912039735102um_num @ ( product_Pair_num_num @ M @ N ) @ R ) )
        | ( ( M = N )
          & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Ms @ Ns ) @ ( lenlex_num @ R ) ) ) ) ) ).

% Cons_lenlex_iff
thf(fact_461_Cons__lenlex__iff,axiom,
    ! [M: int,Ms: list_int,N: int,Ns: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ M @ Ms ) @ ( cons_int @ N @ Ns ) ) @ ( lenlex_int @ R ) )
      = ( ( ord_less_nat @ ( size_size_list_int @ Ms ) @ ( size_size_list_int @ Ns ) )
        | ( ( ( size_size_list_int @ Ms )
            = ( size_size_list_int @ Ns ) )
          & ( member5262025264175285858nt_int @ ( product_Pair_int_int @ M @ N ) @ R ) )
        | ( ( M = N )
          & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Ms @ Ns ) @ ( lenlex_int @ R ) ) ) ) ) ).

% Cons_lenlex_iff
thf(fact_462_Cons__lenlex__iff,axiom,
    ! [M: nat,Ms: list_nat,N: nat,Ns: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ M @ Ms ) @ ( cons_nat @ N @ Ns ) ) @ ( lenlex_nat @ R ) )
      = ( ( ord_less_nat @ ( size_size_list_nat @ Ms ) @ ( size_size_list_nat @ Ns ) )
        | ( ( ( size_size_list_nat @ Ms )
            = ( size_size_list_nat @ Ns ) )
          & ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ M @ N ) @ R ) )
        | ( ( M = N )
          & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ms @ Ns ) @ ( lenlex_nat @ R ) ) ) ) ) ).

% Cons_lenlex_iff
thf(fact_463_snoc__listrel1__snoc__iff,axiom,
    ! [Xs: list_a,X: a,Ys: list_a,Y: a,R: set_Product_prod_a_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) @ ( append_a @ Ys @ ( cons_a @ Y @ nil_a ) ) ) @ ( listrel1_a @ R ) )
      = ( ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ Xs @ Ys ) @ ( listrel1_a @ R ) )
          & ( X = Y ) )
        | ( ( Xs = Ys )
          & ( member1426531477525435216od_a_a @ ( product_Pair_a_a @ X @ Y ) @ R ) ) ) ) ).

% snoc_listrel1_snoc_iff
thf(fact_464_snoc__listrel1__snoc__iff,axiom,
    ! [Xs: list_num,X: num,Ys: list_num,Y: num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( append_num @ Xs @ ( cons_num @ X @ nil_num ) ) @ ( append_num @ Ys @ ( cons_num @ Y @ nil_num ) ) ) @ ( listrel1_num @ R ) )
      = ( ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
          & ( X = Y ) )
        | ( ( Xs = Ys )
          & ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R ) ) ) ) ).

% snoc_listrel1_snoc_iff
thf(fact_465_snoc__listrel1__snoc__iff,axiom,
    ! [Xs: list_nat,X: nat,Ys: list_nat,Y: nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) @ ( append_nat @ Ys @ ( cons_nat @ Y @ nil_nat ) ) ) @ ( listrel1_nat @ R ) )
      = ( ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
          & ( X = Y ) )
        | ( ( Xs = Ys )
          & ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R ) ) ) ) ).

% snoc_listrel1_snoc_iff
thf(fact_466_snoc__listrel1__snoc__iff,axiom,
    ! [Xs: list_int,X: int,Ys: list_int,Y: int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( append_int @ Xs @ ( cons_int @ X @ nil_int ) ) @ ( append_int @ Ys @ ( cons_int @ Y @ nil_int ) ) ) @ ( listrel1_int @ R ) )
      = ( ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
          & ( X = Y ) )
        | ( ( Xs = Ys )
          & ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R ) ) ) ) ).

% snoc_listrel1_snoc_iff
thf(fact_467_step__invars,axiom,
    ! [States: states_a,Dir: direction,Big: state_a2,Small: state_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( ( type_s4923920245906622843ates_a @ States )
          = ( states_a2 @ Dir @ Big @ Small ) )
       => ( ( type_i6304938058965754292tate_a @ Big )
          & ( type_i464410347872898157tate_a @ Small ) ) ) ) ).

% step_invars
thf(fact_468_lexord__sufI,axiom,
    ! [U: list_a,W: list_a,R: set_Product_prod_a_a,V: list_a,Z2: list_a] :
      ( ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ U @ W ) @ ( lexord_a @ R ) )
     => ( ( ord_less_eq_nat @ ( size_size_list_a @ W ) @ ( size_size_list_a @ U ) )
       => ( member8191768239178080336list_a @ ( produc6837034575241423639list_a @ ( append_a @ U @ V ) @ ( append_a @ W @ Z2 ) ) @ ( lexord_a @ R ) ) ) ) ).

% lexord_sufI
thf(fact_469_lexord__sufI,axiom,
    ! [U: list_nat,W: list_nat,R: set_Pr1261947904930325089at_nat,V: list_nat,Z2: list_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ U @ W ) @ ( lexord_nat @ R ) )
     => ( ( ord_less_eq_nat @ ( size_size_list_nat @ W ) @ ( size_size_list_nat @ U ) )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( append_nat @ U @ V ) @ ( append_nat @ W @ Z2 ) ) @ ( lexord_nat @ R ) ) ) ) ).

% lexord_sufI
thf(fact_470_lexn__length,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat,N: nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( lexn_nat @ R @ N ) )
     => ( ( ( size_size_list_nat @ Xs )
          = N )
        & ( ( size_size_list_nat @ Ys )
          = N ) ) ) ).

% lexn_length
thf(fact_471_Big__Proof_Ostep__list__current,axiom,
    ! [Big: state_a2] :
      ( ( type_i6304938058965754292tate_a @ Big )
     => ( ( big_list_current_a @ ( type_s3593206172722485288tate_a @ Big ) )
        = ( big_list_current_a @ Big ) ) ) ).

% Big_Proof.step_list_current
thf(fact_472_length__Suc__conv__rev,axiom,
    ! [Xs: list_a,N: nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: a,Ys2: list_a] :
            ( ( Xs
              = ( append_a @ Ys2 @ ( cons_a @ Y4 @ nil_a ) ) )
            & ( ( size_size_list_a @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_473_length__Suc__conv__rev,axiom,
    ! [Xs: list_nat,N: nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( suc @ N ) )
      = ( ? [Y4: nat,Ys2: list_nat] :
            ( ( Xs
              = ( append_nat @ Ys2 @ ( cons_nat @ Y4 @ nil_nat ) ) )
            & ( ( size_size_list_nat @ Ys2 )
              = N ) ) ) ) ).

% length_Suc_conv_rev
thf(fact_474_Suc__less__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ ( suc @ M ) @ ( suc @ N ) )
      = ( ord_less_nat @ M @ N ) ) ).

% Suc_less_eq
thf(fact_475_Suc__mono,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ord_less_nat @ ( suc @ M ) @ ( suc @ N ) ) ) ).

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

% lessI
thf(fact_477_Suc__le__mono,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( suc @ M ) )
      = ( ord_less_eq_nat @ N @ M ) ) ).

% Suc_le_mono
thf(fact_478_append__is__Nil__conv,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = nil_a )
      = ( ( Xs = nil_a )
        & ( Ys = nil_a ) ) ) ).

% append_is_Nil_conv
thf(fact_479_Nil__is__append__conv,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( nil_a
        = ( append_a @ Xs @ Ys ) )
      = ( ( Xs = nil_a )
        & ( Ys = nil_a ) ) ) ).

% Nil_is_append_conv
thf(fact_480_self__append__conv2,axiom,
    ! [Y: list_a,Xs: list_a] :
      ( ( Y
        = ( append_a @ Xs @ Y ) )
      = ( Xs = nil_a ) ) ).

% self_append_conv2
thf(fact_481_append__self__conv2,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = Ys )
      = ( Xs = nil_a ) ) ).

% append_self_conv2
thf(fact_482_self__append__conv,axiom,
    ! [Y: list_a,Ys: list_a] :
      ( ( Y
        = ( append_a @ Y @ Ys ) )
      = ( Ys = nil_a ) ) ).

% self_append_conv
thf(fact_483_append__self__conv,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( append_a @ Xs @ Ys )
        = Xs )
      = ( Ys = nil_a ) ) ).

% append_self_conv
thf(fact_484_append__Nil2,axiom,
    ! [Xs: list_a] :
      ( ( append_a @ Xs @ nil_a )
      = Xs ) ).

% append_Nil2
thf(fact_485_append_Oright__neutral,axiom,
    ! [A: list_a] :
      ( ( append_a @ A @ nil_a )
      = A ) ).

% append.right_neutral
thf(fact_486_rev__is__Nil__conv,axiom,
    ! [Xs: list_a] :
      ( ( ( rev_a @ Xs )
        = nil_a )
      = ( Xs = nil_a ) ) ).

% rev_is_Nil_conv
thf(fact_487_Nil__is__rev__conv,axiom,
    ! [Xs: list_a] :
      ( ( nil_a
        = ( rev_a @ Xs ) )
      = ( Xs = nil_a ) ) ).

% Nil_is_rev_conv
thf(fact_488_append1__eq__conv,axiom,
    ! [Xs: list_a,X: a,Ys: list_a,Y: a] :
      ( ( ( append_a @ Xs @ ( cons_a @ X @ nil_a ) )
        = ( append_a @ Ys @ ( cons_a @ Y @ nil_a ) ) )
      = ( ( Xs = Ys )
        & ( X = Y ) ) ) ).

% append1_eq_conv
thf(fact_489_rev__singleton__conv,axiom,
    ! [Xs: list_a,X: a] :
      ( ( ( rev_a @ Xs )
        = ( cons_a @ X @ nil_a ) )
      = ( Xs
        = ( cons_a @ X @ nil_a ) ) ) ).

% rev_singleton_conv
thf(fact_490_singleton__rev__conv,axiom,
    ! [X: a,Xs: list_a] :
      ( ( ( cons_a @ X @ nil_a )
        = ( rev_a @ Xs ) )
      = ( ( cons_a @ X @ nil_a )
        = Xs ) ) ).

% singleton_rev_conv
thf(fact_491_rev__eq__Cons__iff,axiom,
    ! [Xs: list_a,Y: a,Ys: list_a] :
      ( ( ( rev_a @ Xs )
        = ( cons_a @ Y @ Ys ) )
      = ( Xs
        = ( append_a @ ( rev_a @ Ys ) @ ( cons_a @ Y @ nil_a ) ) ) ) ).

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

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

% le_neq_implies_less
thf(fact_494_Nat_Oex__has__greatest__nat,axiom,
    ! [P: nat > $o,K: nat,B: nat] :
      ( ( P @ K )
     => ( ! [Y5: nat] :
            ( ( P @ Y5 )
           => ( ord_less_eq_nat @ Y5 @ B ) )
       => ? [X5: nat] :
            ( ( P @ X5 )
            & ! [Y6: nat] :
                ( ( P @ Y6 )
               => ( ord_less_eq_nat @ Y6 @ X5 ) ) ) ) ) ).

% Nat.ex_has_greatest_nat
thf(fact_495_linorder__neqE__nat,axiom,
    ! [X: nat,Y: nat] :
      ( ( X != Y )
     => ( ~ ( ord_less_nat @ X @ Y )
       => ( ord_less_nat @ Y @ X ) ) ) ).

% linorder_neqE_nat
thf(fact_496_less__or__eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( ( ord_less_nat @ M @ N )
        | ( M = N ) )
     => ( ord_less_eq_nat @ M @ N ) ) ).

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

% le_eq_less_or_eq
thf(fact_498_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_499_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_500_less__irrefl__nat,axiom,
    ! [N: nat] :
      ~ ( ord_less_nat @ N @ N ) ).

% less_irrefl_nat
thf(fact_501_less__imp__le__nat,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

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

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

% less_not_refl2
thf(fact_504_nat__le__linear,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
      | ( ord_less_eq_nat @ N @ M ) ) ).

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

% less_not_refl
thf(fact_506_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_507_nat__less__le,axiom,
    ( ord_less_nat
    = ( ^ [M2: nat,N2: nat] :
          ( ( ord_less_eq_nat @ M2 @ N2 )
          & ( M2 != N2 ) ) ) ) ).

% nat_less_le
thf(fact_508_le__antisym,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( ord_less_eq_nat @ N @ M )
       => ( M = N ) ) ) ).

% le_antisym
thf(fact_509_eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( M = N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

% eq_imp_le
thf(fact_510_le__trans,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ( ord_less_eq_nat @ J @ K )
       => ( ord_less_eq_nat @ I @ K ) ) ) ).

% le_trans
thf(fact_511_le__refl,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ N @ N ) ).

% le_refl
thf(fact_512_Suc__leI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ord_less_eq_nat @ ( suc @ M ) @ N ) ) ).

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

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

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

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

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

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

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

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

% le_imp_less_Suc
thf(fact_521_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_522_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_523_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_524_lift__Suc__mono__less__iff,axiom,
    ! [F: nat > nat,N: nat,M: nat] :
      ( ! [N3: nat] : ( ord_less_nat @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
     => ( ( ord_less_nat @ ( F @ N ) @ ( F @ M ) )
        = ( ord_less_nat @ N @ M ) ) ) ).

% lift_Suc_mono_less_iff
thf(fact_525_not__less__less__Suc__eq,axiom,
    ! [N: nat,M: nat] :
      ( ~ ( ord_less_nat @ N @ M )
     => ( ( ord_less_nat @ N @ ( suc @ M ) )
        = ( N = M ) ) ) ).

% not_less_less_Suc_eq
thf(fact_526_strict__inc__induct,axiom,
    ! [I: nat,J: nat,P: nat > $o] :
      ( ( ord_less_nat @ I @ J )
     => ( ! [I2: nat] :
            ( ( J
              = ( suc @ I2 ) )
           => ( P @ I2 ) )
       => ( ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ J )
             => ( ( P @ ( suc @ I2 ) )
               => ( P @ I2 ) ) )
         => ( P @ I ) ) ) ) ).

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

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

% less_trans_Suc
thf(fact_529_Suc__less__SucD,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ ( suc @ M ) @ ( suc @ N ) )
     => ( ord_less_nat @ M @ N ) ) ).

% Suc_less_SucD
thf(fact_530_less__antisym,axiom,
    ! [N: nat,M: nat] :
      ( ~ ( ord_less_nat @ N @ M )
     => ( ( ord_less_nat @ N @ ( suc @ M ) )
       => ( M = N ) ) ) ).

% less_antisym
thf(fact_531_Suc__less__eq2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ ( suc @ N ) @ M )
      = ( ? [M4: nat] :
            ( ( M
              = ( suc @ M4 ) )
            & ( ord_less_nat @ N @ M4 ) ) ) ) ).

% Suc_less_eq2
thf(fact_532_All__less__Suc,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N ) )
           => ( P @ I3 ) ) )
      = ( ( P @ N )
        & ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ N )
           => ( P @ I3 ) ) ) ) ).

% All_less_Suc
thf(fact_533_not__less__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ~ ( ord_less_nat @ M @ N ) )
      = ( ord_less_nat @ N @ ( suc @ M ) ) ) ).

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

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

% Ex_less_Suc
thf(fact_536_less__SucI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ord_less_nat @ M @ ( suc @ N ) ) ) ).

% less_SucI
thf(fact_537_less__SucE,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ ( suc @ N ) )
     => ( ~ ( ord_less_nat @ M @ N )
       => ( M = N ) ) ) ).

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

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

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

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

% Nat.lessE
thf(fact_542_transitive__stepwise__le,axiom,
    ! [M: nat,N: nat,R2: nat > nat > $o] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ! [X5: nat] : ( R2 @ X5 @ X5 )
       => ( ! [X5: nat,Y5: nat,Z3: nat] :
              ( ( R2 @ X5 @ Y5 )
             => ( ( R2 @ Y5 @ Z3 )
               => ( R2 @ X5 @ Z3 ) ) )
         => ( ! [N3: nat] : ( R2 @ N3 @ ( suc @ N3 ) )
           => ( R2 @ M @ N ) ) ) ) ) ).

% transitive_stepwise_le
thf(fact_543_nat__induct__at__least,axiom,
    ! [M: nat,N: nat,P: nat > $o] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( P @ M )
       => ( ! [N3: nat] :
              ( ( ord_less_eq_nat @ M @ N3 )
             => ( ( P @ N3 )
               => ( P @ ( suc @ N3 ) ) ) )
         => ( P @ N ) ) ) ) ).

% nat_induct_at_least
thf(fact_544_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_545_not__less__eq__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ~ ( ord_less_eq_nat @ M @ N ) )
      = ( ord_less_eq_nat @ ( suc @ N ) @ M ) ) ).

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

% Suc_n_not_le_n
thf(fact_547_le__Suc__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ ( suc @ N ) )
      = ( ( ord_less_eq_nat @ M @ N )
        | ( M
          = ( suc @ N ) ) ) ) ).

% le_Suc_eq
thf(fact_548_Suc__le__D,axiom,
    ! [N: nat,M5: nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ M5 )
     => ? [M6: nat] :
          ( M5
          = ( suc @ M6 ) ) ) ).

% Suc_le_D
thf(fact_549_le__SucI,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ord_less_eq_nat @ M @ ( suc @ N ) ) ) ).

% le_SucI
thf(fact_550_le__SucE,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ ( suc @ N ) )
     => ( ~ ( ord_less_eq_nat @ M @ N )
       => ( M
          = ( suc @ N ) ) ) ) ).

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

% Suc_leD
thf(fact_552_length__induct,axiom,
    ! [P: list_nat > $o,Xs: list_nat] :
      ( ! [Xs2: list_nat] :
          ( ! [Ys3: list_nat] :
              ( ( ord_less_nat @ ( size_size_list_nat @ Ys3 ) @ ( size_size_list_nat @ Xs2 ) )
             => ( P @ Ys3 ) )
         => ( P @ Xs2 ) )
     => ( P @ Xs ) ) ).

% length_induct
thf(fact_553_eq__Nil__appendI,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( Xs = Ys )
     => ( Xs
        = ( append_a @ nil_a @ Ys ) ) ) ).

% eq_Nil_appendI
thf(fact_554_append_Oleft__neutral,axiom,
    ! [A: list_a] :
      ( ( append_a @ nil_a @ A )
      = A ) ).

% append.left_neutral
thf(fact_555_append__Nil,axiom,
    ! [Ys: list_a] :
      ( ( append_a @ nil_a @ Ys )
      = Ys ) ).

% append_Nil
thf(fact_556_rev_Osimps_I1_J,axiom,
    ( ( rev_a @ nil_a )
    = nil_a ) ).

% rev.simps(1)
thf(fact_557_impossible__Cons,axiom,
    ! [Xs: list_nat,Ys: list_nat,X: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) )
     => ( Xs
       != ( cons_nat @ X @ Ys ) ) ) ).

% impossible_Cons
thf(fact_558_list__induct4,axiom,
    ! [Xs: list_nat,Ys: list_nat,Zs: list_nat,Ws: list_nat,P: list_nat > 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 ) )
       => ( ( ( size_size_list_nat @ Zs )
            = ( size_size_list_nat @ Ws ) )
         => ( ( P @ nil_nat @ nil_nat @ nil_nat @ nil_nat )
           => ( ! [X5: nat,Xs2: list_nat,Y5: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat,W2: nat,Ws2: list_nat] :
                  ( ( ( size_size_list_nat @ Xs2 )
                    = ( 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 @ Xs2 @ Ys4 @ Zs2 @ Ws2 )
                       => ( P @ ( cons_nat @ X5 @ Xs2 ) @ ( cons_nat @ Y5 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) @ ( cons_nat @ W2 @ Ws2 ) ) ) ) ) )
             => ( P @ Xs @ Ys @ Zs @ Ws ) ) ) ) ) ) ).

% list_induct4
thf(fact_559_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 )
         => ( ! [X5: nat,Xs2: list_nat,Y5: nat,Ys4: list_nat,Z3: nat,Zs2: list_nat] :
                ( ( ( size_size_list_nat @ Xs2 )
                  = ( size_size_list_nat @ Ys4 ) )
               => ( ( ( size_size_list_nat @ Ys4 )
                    = ( size_size_list_nat @ Zs2 ) )
                 => ( ( P @ Xs2 @ Ys4 @ Zs2 )
                   => ( P @ ( cons_nat @ X5 @ Xs2 ) @ ( cons_nat @ Y5 @ Ys4 ) @ ( cons_nat @ Z3 @ Zs2 ) ) ) ) )
           => ( P @ Xs @ Ys @ Zs ) ) ) ) ) ).

% list_induct3
thf(fact_560_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 )
       => ( ! [X5: nat,Xs2: list_nat,Y5: nat,Ys4: list_nat] :
              ( ( ( size_size_list_nat @ Xs2 )
                = ( size_size_list_nat @ Ys4 ) )
             => ( ( P @ Xs2 @ Ys4 )
               => ( P @ ( cons_nat @ X5 @ Xs2 ) @ ( cons_nat @ Y5 @ Ys4 ) ) ) )
         => ( P @ Xs @ Ys ) ) ) ) ).

% list_induct2
thf(fact_561_rev__induct,axiom,
    ! [P: list_a > $o,Xs: list_a] :
      ( ( P @ nil_a )
     => ( ! [X5: a,Xs2: list_a] :
            ( ( P @ Xs2 )
           => ( P @ ( append_a @ Xs2 @ ( cons_a @ X5 @ nil_a ) ) ) )
       => ( P @ Xs ) ) ) ).

% rev_induct
thf(fact_562_rev__exhaust,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ~ ! [Ys4: list_a,Y5: a] :
            ( Xs
           != ( append_a @ Ys4 @ ( cons_a @ Y5 @ nil_a ) ) ) ) ).

% rev_exhaust
thf(fact_563_Cons__eq__append__conv,axiom,
    ! [X: a,Xs: list_a,Ys: list_a,Zs: list_a] :
      ( ( ( cons_a @ X @ Xs )
        = ( append_a @ Ys @ Zs ) )
      = ( ( ( Ys = nil_a )
          & ( ( cons_a @ X @ Xs )
            = Zs ) )
        | ? [Ys5: list_a] :
            ( ( ( cons_a @ X @ Ys5 )
              = Ys )
            & ( Xs
              = ( append_a @ Ys5 @ Zs ) ) ) ) ) ).

% Cons_eq_append_conv
thf(fact_564_append__eq__Cons__conv,axiom,
    ! [Ys: list_a,Zs: list_a,X: a,Xs: list_a] :
      ( ( ( append_a @ Ys @ Zs )
        = ( cons_a @ X @ Xs ) )
      = ( ( ( Ys = nil_a )
          & ( Zs
            = ( cons_a @ X @ Xs ) ) )
        | ? [Ys5: list_a] :
            ( ( Ys
              = ( cons_a @ X @ Ys5 ) )
            & ( ( append_a @ Ys5 @ Zs )
              = Xs ) ) ) ) ).

% append_eq_Cons_conv
thf(fact_565_rev__nonempty__induct,axiom,
    ! [Xs: list_a,P: list_a > $o] :
      ( ( Xs != nil_a )
     => ( ! [X5: a] : ( P @ ( cons_a @ X5 @ nil_a ) )
       => ( ! [X5: a,Xs2: list_a] :
              ( ( Xs2 != nil_a )
             => ( ( P @ Xs2 )
               => ( P @ ( append_a @ Xs2 @ ( cons_a @ X5 @ nil_a ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% rev_nonempty_induct
thf(fact_566_Suc__le__length__iff,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_eq_nat @ ( suc @ N ) @ ( size_size_list_nat @ Xs ) )
      = ( ? [X4: nat,Ys2: list_nat] :
            ( ( Xs
              = ( cons_nat @ X4 @ Ys2 ) )
            & ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Ys2 ) ) ) ) ) ).

% Suc_le_length_iff
thf(fact_567_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,X5: a,Xs3: list_a,Y5: a,Ys6: list_a] :
            ( ( X5 != Y5 )
            & ( Xs
              = ( append_a @ Pre @ ( append_a @ ( cons_a @ X5 @ nil_a ) @ Xs3 ) ) )
            & ( Ys
              = ( append_a @ Pre @ ( append_a @ ( cons_a @ Y5 @ nil_a ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_568_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,X5: nat,Xs3: list_nat,Y5: nat,Ys6: list_nat] :
            ( ( X5 != Y5 )
            & ( Xs
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ X5 @ nil_nat ) @ Xs3 ) ) )
            & ( Ys
              = ( append_nat @ Pre @ ( append_nat @ ( cons_nat @ Y5 @ nil_nat ) @ Ys6 ) ) ) ) ) ) ).

% same_length_different
thf(fact_569_rev__app__single,axiom,
    ! [Xs: list_a,X: a] :
      ( ( append_a @ ( rev_a @ Xs ) @ ( cons_a @ X @ nil_a ) )
      = ( rev_a @ ( cons_a @ X @ Xs ) ) ) ).

% rev_app_single
thf(fact_570_lenlex__length,axiom,
    ! [Ms: list_nat,Ns: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ms @ Ns ) @ ( lenlex_nat @ R ) )
     => ( ord_less_eq_nat @ ( size_size_list_nat @ Ms ) @ ( size_size_list_nat @ Ns ) ) ) ).

% lenlex_length
thf(fact_571_length__append__singleton,axiom,
    ! [Xs: list_a,X: a] :
      ( ( size_size_list_a @ ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) )
      = ( suc @ ( size_size_list_a @ Xs ) ) ) ).

% length_append_singleton
thf(fact_572_length__append__singleton,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( size_size_list_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ nil_nat ) ) )
      = ( suc @ ( size_size_list_nat @ Xs ) ) ) ).

% length_append_singleton
thf(fact_573_SuccI,axiom,
    ! [Kl: list_a,K: a,Kl2: set_list_a] :
      ( ( member_list_a @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 )
     => ( member_a @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) ) ) ).

% SuccI
thf(fact_574_SuccD,axiom,
    ! [K: a,Kl2: set_list_a,Kl: list_a] :
      ( ( member_a @ K @ ( bNF_Greatest_Succ_a @ Kl2 @ Kl ) )
     => ( member_list_a @ ( append_a @ Kl @ ( cons_a @ K @ nil_a ) ) @ Kl2 ) ) ).

% SuccD
thf(fact_575_Small__Proof_Olist__current__size,axiom,
    ! [Small: state_a] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
     => ( ( ( small_list_current_a @ Small )
          = nil_a )
       => ~ ( type_i464410347872898157tate_a @ Small ) ) ) ).

% Small_Proof.list_current_size
thf(fact_576_Big__Proof_Olist__current__size,axiom,
    ! [Big: state_a2] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
     => ( ( ( big_list_current_a @ Big )
          = nil_a )
       => ~ ( type_i6304938058965754292tate_a @ Big ) ) ) ).

% Big_Proof.list_current_size
thf(fact_577_in__measures_I2_J,axiom,
    ! [X: num,Y: num,F: num > nat,Fs: list_num_nat] :
      ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ ( cons_num_nat @ F @ Fs ) ) )
      = ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
        | ( ( ( F @ X )
            = ( F @ Y ) )
          & ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ Fs ) ) ) ) ) ).

% in_measures(2)
thf(fact_578_in__measures_I2_J,axiom,
    ! [X: nat,Y: nat,F: nat > nat,Fs: list_nat_nat] :
      ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ ( cons_nat_nat @ F @ Fs ) ) )
      = ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
        | ( ( ( F @ X )
            = ( F @ Y ) )
          & ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ Fs ) ) ) ) ) ).

% in_measures(2)
thf(fact_579_in__measures_I2_J,axiom,
    ! [X: int,Y: int,F: int > nat,Fs: list_int_nat] :
      ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ ( cons_int_nat @ F @ Fs ) ) )
      = ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
        | ( ( ( F @ X )
            = ( F @ Y ) )
          & ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ Fs ) ) ) ) ) ).

% in_measures(2)
thf(fact_580_step__n__pop__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( type_s6404775287138157491tate_a @ Small2 ) )
              = ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ) ).

% step_n_pop_size_new_small
thf(fact_581_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_582_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
      = ( ord_less_nat @ zero_zero_nat @ N ) ) ).

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

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

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

% le0
thf(fact_586_funpow__0,axiom,
    ! [F: nat > nat,X: nat] :
      ( ( compow_nat_nat @ zero_zero_nat @ F @ X )
      = X ) ).

% funpow_0
thf(fact_587_in__measures_I1_J,axiom,
    ! [X: num,Y: num] :
      ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ nil_num_nat ) ) ).

% in_measures(1)
thf(fact_588_in__measures_I1_J,axiom,
    ! [X: nat,Y: nat] :
      ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ nil_nat_nat ) ) ).

% in_measures(1)
thf(fact_589_in__measures_I1_J,axiom,
    ! [X: int,Y: int] :
      ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ nil_int_nat ) ) ).

% in_measures(1)
thf(fact_590_less__Suc0,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ N @ ( suc @ zero_zero_nat ) )
      = ( N = zero_zero_nat ) ) ).

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

% zero_less_Suc
thf(fact_592_length__0__conv,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = zero_zero_nat )
      = ( Xs = nil_nat ) ) ).

% length_0_conv
thf(fact_593_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_594_Small__Proof_Opop__list__current,axiom,
    ! [Small: state_a,X: a,Small2: state_a] :
      ( ( type_i464410347872898157tate_a @ Small )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( ( cons_a @ X @ ( small_list_current_a @ Small2 ) )
            = ( small_list_current_a @ Small ) ) ) ) ) ).

% Small_Proof.pop_list_current
thf(fact_595_list__small__first__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( ( cons_a @ X @ ( states1596304293096088672irst_a @ ( states_a2 @ Dir @ Big @ Small2 ) ) )
            = ( states1596304293096088672irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% list_small_first_pop_small
thf(fact_596_list__current__small__first__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( ( cons_a @ X @ ( states7886008410469471791irst_a @ ( states_a2 @ Dir @ Big @ Small2 ) ) )
            = ( states7886008410469471791irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% list_current_small_first_pop_small
thf(fact_597_step__n__pop__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( size_size_state_a2 @ Small2 ) )
              = ( size_size_state_a2 @ Small ) ) ) ) ) ) ).

% step_n_pop_size_small
thf(fact_598_nat_Odistinct_I1_J,axiom,
    ! [X2: nat] :
      ( zero_zero_nat
     != ( suc @ X2 ) ) ).

% nat.distinct(1)
thf(fact_599_old_Onat_Odistinct_I2_J,axiom,
    ! [Nat2: nat] :
      ( ( suc @ Nat2 )
     != zero_zero_nat ) ).

% old.nat.distinct(2)
thf(fact_600_old_Onat_Odistinct_I1_J,axiom,
    ! [Nat2: nat] :
      ( zero_zero_nat
     != ( suc @ Nat2 ) ) ).

% old.nat.distinct(1)
thf(fact_601_nat_OdiscI,axiom,
    ! [Nat: nat,X2: nat] :
      ( ( Nat
        = ( suc @ X2 ) )
     => ( Nat != zero_zero_nat ) ) ).

% nat.discI
thf(fact_602_old_Onat_Oexhaust,axiom,
    ! [Y: nat] :
      ( ( Y != zero_zero_nat )
     => ~ ! [Nat3: nat] :
            ( Y
           != ( suc @ Nat3 ) ) ) ).

% old.nat.exhaust
thf(fact_603_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_604_diff__induct,axiom,
    ! [P: nat > nat > $o,M: nat,N: nat] :
      ( ! [X5: nat] : ( P @ X5 @ zero_zero_nat )
     => ( ! [Y5: nat] : ( P @ zero_zero_nat @ ( suc @ Y5 ) )
       => ( ! [X5: nat,Y5: nat] :
              ( ( P @ X5 @ Y5 )
             => ( P @ ( suc @ X5 ) @ ( suc @ Y5 ) ) )
         => ( P @ M @ N ) ) ) ) ).

% diff_induct
thf(fact_605_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_606_Suc__neq__Zero,axiom,
    ! [M: nat] :
      ( ( suc @ M )
     != zero_zero_nat ) ).

% Suc_neq_Zero
thf(fact_607_Zero__neq__Suc,axiom,
    ! [M: nat] :
      ( zero_zero_nat
     != ( suc @ M ) ) ).

% Zero_neq_Suc
thf(fact_608_Zero__not__Suc,axiom,
    ! [M: nat] :
      ( zero_zero_nat
     != ( suc @ M ) ) ).

% Zero_not_Suc
thf(fact_609_not0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( N != zero_zero_nat )
     => ? [M6: nat] :
          ( N
          = ( suc @ M6 ) ) ) ).

% not0_implies_Suc
thf(fact_610_bot__nat__0_Oextremum__strict,axiom,
    ! [A: nat] :
      ~ ( ord_less_nat @ A @ zero_zero_nat ) ).

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

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

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

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

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

% gr_implies_not0
thf(fact_616_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_617_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq_nat @ zero_zero_nat @ N ) ).

% less_eq_nat.simps(1)
thf(fact_618_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_619_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_620_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq_nat @ N @ zero_zero_nat )
      = ( N = zero_zero_nat ) ) ).

% le_0_eq
thf(fact_621_direction_Osize_I3_J,axiom,
    ( ( size_size_direction @ left )
    = zero_zero_nat ) ).

% direction.size(3)
thf(fact_622_direction_Osize_I4_J,axiom,
    ( ( size_size_direction @ right )
    = zero_zero_nat ) ).

% direction.size(4)
thf(fact_623_less__Suc__eq__0__disj,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ ( suc @ N ) )
      = ( ( M = zero_zero_nat )
        | ? [J3: nat] :
            ( ( M
              = ( suc @ J3 ) )
            & ( ord_less_nat @ J3 @ N ) ) ) ) ).

% less_Suc_eq_0_disj
thf(fact_624_gr0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ? [M6: nat] :
          ( N
          = ( suc @ M6 ) ) ) ).

% gr0_implies_Suc
thf(fact_625_All__less__Suc2,axiom,
    ! [N: nat,P: nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( suc @ N ) )
           => ( P @ I3 ) ) )
      = ( ( P @ zero_zero_nat )
        & ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ N )
           => ( P @ ( suc @ I3 ) ) ) ) ) ).

% All_less_Suc2
thf(fact_626_gr0__conv__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
      = ( ? [M2: nat] :
            ( N
            = ( suc @ M2 ) ) ) ) ).

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

% Ex_less_Suc2
thf(fact_628_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_629_list_Osize_I3_J,axiom,
    ( ( size_size_list_nat @ nil_nat )
    = zero_zero_nat ) ).

% list.size(3)
thf(fact_630_states_Osize_I2_J,axiom,
    ! [X1: direction,X2: state_a2,X3: state_a] :
      ( ( size_size_states_a @ ( states_a2 @ X1 @ X2 @ X3 ) )
      = ( suc @ zero_zero_nat ) ) ).

% states.size(2)
thf(fact_631_invar__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small2 ) ) ) ) ) ).

% invar_pop_small
thf(fact_632_length__code,axiom,
    ( size_size_list_nat
    = ( gen_length_nat @ zero_zero_nat ) ) ).

% length_code
thf(fact_633_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_634_invars__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( ( type_i6304938058965754292tate_a @ Big )
            & ( type_i464410347872898157tate_a @ Small2 ) ) ) ) ) ).

% invars_pop_small
thf(fact_635_measures__less,axiom,
    ! [F: num > nat,X: num,Y: num,Fs: list_num_nat] :
      ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ ( cons_num_nat @ F @ Fs ) ) ) ) ).

% measures_less
thf(fact_636_measures__less,axiom,
    ! [F: nat > nat,X: nat,Y: nat,Fs: list_nat_nat] :
      ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ ( cons_nat_nat @ F @ Fs ) ) ) ) ).

% measures_less
thf(fact_637_measures__less,axiom,
    ! [F: int > nat,X: int,Y: int,Fs: list_int_nat] :
      ( ( ord_less_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ ( cons_int_nat @ F @ Fs ) ) ) ) ).

% measures_less
thf(fact_638_measures__lesseq,axiom,
    ! [F: num > nat,X: num,Y: num,Fs: list_num_nat] :
      ( ( ord_less_eq_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ Fs ) )
       => ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ ( measures_num @ ( cons_num_nat @ F @ Fs ) ) ) ) ) ).

% measures_lesseq
thf(fact_639_measures__lesseq,axiom,
    ! [F: nat > nat,X: nat,Y: nat,Fs: list_nat_nat] :
      ( ( ord_less_eq_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ Fs ) )
       => ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( measures_nat @ ( cons_nat_nat @ F @ Fs ) ) ) ) ) ).

% measures_lesseq
thf(fact_640_measures__lesseq,axiom,
    ! [F: int > nat,X: int,Y: int,Fs: list_int_nat] :
      ( ( ord_less_eq_nat @ ( F @ X ) @ ( F @ Y ) )
     => ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ Fs ) )
       => ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( measures_int @ ( cons_int_nat @ F @ Fs ) ) ) ) ) ).

% measures_lesseq
thf(fact_641_lists__small__first__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ Small2 ) )
         => ( ( states1596304293096088672irst_a @ ( states_a2 @ Dir @ Big @ Small2 ) )
            = ( states7886008410469471791irst_a @ ( states_a2 @ Dir @ Big @ Small2 ) ) ) ) ) ) ).

% lists_small_first_pop_small
thf(fact_642_step__n__pop__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( size_size_state_a @ Big2 ) )
              = ( size_size_state_a @ Big ) ) ) ) ) ) ).

% step_n_pop_size_big
thf(fact_643_step__pop__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( type_s6530235180886170618tate_a @ Big2 ) )
              = ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ) ).

% step_pop_size_new_big
thf(fact_644_list__current__big__first__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( cons_a @ X @ ( states7295096810965389224irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) ) )
            = ( states7295096810965389224irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% list_current_big_first_pop_big
thf(fact_645_list__big__first__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( cons_a @ X @ ( states1888450819780863577irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) ) )
            = ( states1888450819780863577irst_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% list_big_first_pop_big
thf(fact_646_step__n__pop__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,N: nat,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( type_s6530235180886170618tate_a @ Big2 ) )
              = ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ) ).

% step_n_pop_size_new_big
thf(fact_647_Big__Proof_Opop__list__current,axiom,
    ! [Big: state_a2,X: a,Big2: state_a2] :
      ( ( type_i6304938058965754292tate_a @ Big )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( cons_a @ X @ ( big_list_current_a @ Big2 ) )
            = ( big_list_current_a @ Big ) ) ) ) ) ).

% Big_Proof.pop_list_current
thf(fact_648_step__pop__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
              = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
           => ( ( suc @ ( size_size_state_a @ Big2 ) )
              = ( size_size_state_a @ Big ) ) ) ) ) ) ).

% step_pop_size_big
thf(fact_649_invar__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big2 @ Small ) ) ) ) ) ).

% invar_pop_big
thf(fact_650_invars__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( type_i6304938058965754292tate_a @ Big2 )
            & ( type_i464410347872898157tate_a @ Small ) ) ) ) ) ).

% invars_pop_big
thf(fact_651_lists__small__first__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( states1596304293096088672irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) )
            = ( states7886008410469471791irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) ) ) ) ) ) ).

% lists_small_first_pop_big
thf(fact_652_lists__big__first__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Big2: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ Big2 ) )
         => ( ( states1888450819780863577irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) )
            = ( states7295096810965389224irst_a @ ( states_a2 @ Dir @ Big2 @ Small ) ) ) ) ) ) ).

% lists_big_first_pop_big
thf(fact_653_direction_Osize__gen_I2_J,axiom,
    ( ( size_direction @ right )
    = zero_zero_nat ) ).

% direction.size_gen(2)
thf(fact_654_direction_Osize__gen_I1_J,axiom,
    ( ( size_direction @ left )
    = zero_zero_nat ) ).

% direction.size_gen(1)
thf(fact_655_states_Osize__gen,axiom,
    ! [X: a > nat,X1: direction,X2: state_a2,X3: state_a] :
      ( ( size_states_a @ X @ ( states_a2 @ X1 @ X2 @ X3 ) )
      = ( suc @ zero_zero_nat ) ) ).

% states.size_gen
thf(fact_656_remaining__steps__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% remaining_steps_pop_small
thf(fact_657_remaining__steps__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ) ) ).

% remaining_steps_pop_big
thf(fact_658_tl__append2,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( Xs != nil_a )
     => ( ( tl_a @ ( append_a @ Xs @ Ys ) )
        = ( append_a @ ( tl_a @ Xs ) @ Ys ) ) ) ).

% tl_append2
thf(fact_659_remaining__steps__0,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( ( type_r4519047461186610747ates_a @ States )
          = zero_zero_nat )
       => ( ( type_r4519047461186610747ates_a @ ( type_s4923920245906622843ates_a @ States ) )
          = zero_zero_nat ) ) ) ).

% remaining_steps_0
thf(fact_660_remaining__steps__push__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
        = ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) ) ).

% remaining_steps_push_big
thf(fact_661_remaining__steps__decline__n__steps,axiom,
    ! [States: states_a,N: nat] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ States ) @ N )
       => ( ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) )
          = zero_zero_nat ) ) ) ).

% remaining_steps_decline_n_steps
thf(fact_662_tl__append__if,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( Xs = nil_a )
       => ( ( tl_a @ ( append_a @ Xs @ Ys ) )
          = ( tl_a @ Ys ) ) )
      & ( ( Xs != nil_a )
       => ( ( tl_a @ ( append_a @ Xs @ Ys ) )
          = ( append_a @ ( tl_a @ Xs ) @ Ys ) ) ) ) ).

% tl_append_if
thf(fact_663_remaining__steps__decline,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ ( type_s4923920245906622843ates_a @ States ) ) @ ( type_r4519047461186610747ates_a @ States ) ) ) ).

% remaining_steps_decline
thf(fact_664_remaining__steps__push__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
        = ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) ) ) ) ).

% remaining_steps_push_small
thf(fact_665_remaining__steps__0_H,axiom,
    ! [States: states_a,N: nat] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( ( type_r4519047461186610747ates_a @ States )
          = zero_zero_nat )
       => ( ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) )
          = zero_zero_nat ) ) ) ).

% remaining_steps_0'
thf(fact_666_remaining__steps__decline__Suc,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( ord_less_nat @ zero_zero_nat @ ( type_r4519047461186610747ates_a @ States ) )
       => ( ( suc @ ( type_r4519047461186610747ates_a @ ( type_s4923920245906622843ates_a @ States ) ) )
          = ( type_r4519047461186610747ates_a @ States ) ) ) ) ).

% remaining_steps_decline_Suc
thf(fact_667_Nitpick_Osize__list__simp_I2_J,axiom,
    ( size_size_list_nat
    = ( ^ [Xs4: list_nat] : ( if_nat @ ( Xs4 = nil_nat ) @ zero_zero_nat @ ( suc @ ( size_size_list_nat @ ( tl_nat @ Xs4 ) ) ) ) ) ) ).

% Nitpick.size_list_simp(2)
thf(fact_668_subrelI,axiom,
    ! [R: set_Pr8218934625190621173um_num,S: set_Pr8218934625190621173um_num] :
      ( ! [X5: num,Y5: num] :
          ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y5 ) @ R )
         => ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y5 ) @ S ) )
     => ( ord_le880128212290418581um_num @ R @ S ) ) ).

% subrelI
thf(fact_669_subrelI,axiom,
    ! [R: set_Pr1261947904930325089at_nat,S: set_Pr1261947904930325089at_nat] :
      ( ! [X5: nat,Y5: nat] :
          ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y5 ) @ R )
         => ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y5 ) @ S ) )
     => ( ord_le3146513528884898305at_nat @ R @ S ) ) ).

% subrelI
thf(fact_670_subrelI,axiom,
    ! [R: set_Pr958786334691620121nt_int,S: set_Pr958786334691620121nt_int] :
      ( ! [X5: int,Y5: int] :
          ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y5 ) @ R )
         => ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y5 ) @ S ) )
     => ( ord_le2843351958646193337nt_int @ R @ S ) ) ).

% subrelI
thf(fact_671_remaining__steps__n__steps__plus,axiom,
    ! [N: nat,States: states_a] :
      ( ( ord_less_eq_nat @ N @ ( type_r4519047461186610747ates_a @ States ) )
     => ( ( type_i8221491762852169479ates_a @ States )
       => ( ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) ) @ N )
          = ( type_r4519047461186610747ates_a @ States ) ) ) ) ).

% remaining_steps_n_steps_plus
thf(fact_672_size__ok__size__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) ) ) ).

% size_ok_size_small
thf(fact_673_add__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus_nat @ M @ N )
        = zero_zero_nat )
      = ( ( M = zero_zero_nat )
        & ( N = zero_zero_nat ) ) ) ).

% add_is_0
thf(fact_674_Nat_Oadd__0__right,axiom,
    ! [M: nat] :
      ( ( plus_plus_nat @ M @ zero_zero_nat )
      = M ) ).

% Nat.add_0_right
thf(fact_675_Suc__funpow,axiom,
    ! [N: nat] :
      ( ( compow_nat_nat @ N @ suc )
      = ( plus_plus_nat @ N ) ) ).

% Suc_funpow
thf(fact_676_add__Suc__right,axiom,
    ! [M: nat,N: nat] :
      ( ( plus_plus_nat @ M @ ( suc @ N ) )
      = ( suc @ ( plus_plus_nat @ M @ N ) ) ) ).

% add_Suc_right
thf(fact_677_nat__add__left__cancel__less,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( ord_less_nat @ M @ N ) ) ).

% nat_add_left_cancel_less
thf(fact_678_nat__add__left__cancel__le,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( ord_less_eq_nat @ M @ N ) ) ).

% nat_add_left_cancel_le
thf(fact_679_add__gr__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( plus_plus_nat @ M @ N ) )
      = ( ( ord_less_nat @ zero_zero_nat @ M )
        | ( ord_less_nat @ zero_zero_nat @ N ) ) ) ).

% add_gr_0
thf(fact_680_length__append,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( size_size_list_a @ ( append_a @ Xs @ Ys ) )
      = ( plus_plus_nat @ ( size_size_list_a @ Xs ) @ ( size_size_list_a @ Ys ) ) ) ).

% length_append
thf(fact_681_length__append,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( size_size_list_nat @ ( append_nat @ Xs @ Ys ) )
      = ( plus_plus_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) ) ).

% length_append
thf(fact_682_plus__nat_Oadd__0,axiom,
    ! [N: nat] :
      ( ( plus_plus_nat @ zero_zero_nat @ N )
      = N ) ).

% plus_nat.add_0
thf(fact_683_add__eq__self__zero,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus_nat @ M @ N )
        = M )
     => ( N = zero_zero_nat ) ) ).

% add_eq_self_zero
thf(fact_684_nat__arith_Osuc1,axiom,
    ! [A2: nat,K: nat,A: nat] :
      ( ( A2
        = ( plus_plus_nat @ K @ A ) )
     => ( ( suc @ A2 )
        = ( plus_plus_nat @ K @ ( suc @ A ) ) ) ) ).

% nat_arith.suc1
thf(fact_685_add__Suc,axiom,
    ! [M: nat,N: nat] :
      ( ( plus_plus_nat @ ( suc @ M ) @ N )
      = ( suc @ ( plus_plus_nat @ M @ N ) ) ) ).

% add_Suc
thf(fact_686_add__Suc__shift,axiom,
    ! [M: nat,N: nat] :
      ( ( plus_plus_nat @ ( suc @ M ) @ N )
      = ( plus_plus_nat @ M @ ( suc @ N ) ) ) ).

% add_Suc_shift
thf(fact_687_add__lessD1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_nat @ ( plus_plus_nat @ I @ J ) @ K )
     => ( ord_less_nat @ I @ K ) ) ).

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

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

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

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

% add_less_mono1
thf(fact_692_trans__less__add1,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less_nat @ I @ J )
     => ( ord_less_nat @ I @ ( plus_plus_nat @ J @ M ) ) ) ).

% trans_less_add1
thf(fact_693_trans__less__add2,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less_nat @ I @ J )
     => ( ord_less_nat @ I @ ( plus_plus_nat @ M @ J ) ) ) ).

% trans_less_add2
thf(fact_694_less__add__eq__less,axiom,
    ! [K: nat,L: nat,M: nat,N: nat] :
      ( ( ord_less_nat @ K @ L )
     => ( ( ( plus_plus_nat @ M @ L )
          = ( plus_plus_nat @ K @ N ) )
       => ( ord_less_nat @ M @ N ) ) ) ).

% less_add_eq_less
thf(fact_695_add__leE,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ~ ( ( ord_less_eq_nat @ M @ N )
         => ~ ( ord_less_eq_nat @ K @ N ) ) ) ).

% add_leE
thf(fact_696_le__add1,axiom,
    ! [N: nat,M: nat] : ( ord_less_eq_nat @ N @ ( plus_plus_nat @ N @ M ) ) ).

% le_add1
thf(fact_697_le__add2,axiom,
    ! [N: nat,M: nat] : ( ord_less_eq_nat @ N @ ( plus_plus_nat @ M @ N ) ) ).

% le_add2
thf(fact_698_add__leD1,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ( ord_less_eq_nat @ M @ N ) ) ).

% add_leD1
thf(fact_699_add__leD2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( plus_plus_nat @ M @ K ) @ N )
     => ( ord_less_eq_nat @ K @ N ) ) ).

% add_leD2
thf(fact_700_le__Suc__ex,axiom,
    ! [K: nat,L: nat] :
      ( ( ord_less_eq_nat @ K @ L )
     => ? [N3: nat] :
          ( L
          = ( plus_plus_nat @ K @ N3 ) ) ) ).

% le_Suc_ex
thf(fact_701_add__le__mono,axiom,
    ! [I: nat,J: nat,K: nat,L: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ( ord_less_eq_nat @ K @ L )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ I @ K ) @ ( plus_plus_nat @ J @ L ) ) ) ) ).

% add_le_mono
thf(fact_702_add__le__mono1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ord_less_eq_nat @ ( plus_plus_nat @ I @ K ) @ ( plus_plus_nat @ J @ K ) ) ) ).

% add_le_mono1
thf(fact_703_trans__le__add1,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ord_less_eq_nat @ I @ ( plus_plus_nat @ J @ M ) ) ) ).

% trans_le_add1
thf(fact_704_trans__le__add2,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ord_less_eq_nat @ I @ ( plus_plus_nat @ M @ J ) ) ) ).

% trans_le_add2
thf(fact_705_nat__le__iff__add,axiom,
    ( ord_less_eq_nat
    = ( ^ [M2: nat,N2: nat] :
        ? [K3: nat] :
          ( N2
          = ( plus_plus_nat @ M2 @ K3 ) ) ) ) ).

% nat_le_iff_add
thf(fact_706_one__is__add,axiom,
    ! [M: nat,N: nat] :
      ( ( ( suc @ zero_zero_nat )
        = ( plus_plus_nat @ M @ N ) )
      = ( ( ( M
            = ( suc @ zero_zero_nat ) )
          & ( N = zero_zero_nat ) )
        | ( ( M = zero_zero_nat )
          & ( N
            = ( suc @ zero_zero_nat ) ) ) ) ) ).

% one_is_add
thf(fact_707_add__is__1,axiom,
    ! [M: nat,N: nat] :
      ( ( ( plus_plus_nat @ M @ N )
        = ( suc @ zero_zero_nat ) )
      = ( ( ( M
            = ( suc @ zero_zero_nat ) )
          & ( N = zero_zero_nat ) )
        | ( ( M = zero_zero_nat )
          & ( N
            = ( suc @ zero_zero_nat ) ) ) ) ) ).

% add_is_1
thf(fact_708_less__imp__add__positive,axiom,
    ! [I: nat,J: nat] :
      ( ( ord_less_nat @ I @ J )
     => ? [K2: nat] :
          ( ( ord_less_nat @ zero_zero_nat @ K2 )
          & ( ( plus_plus_nat @ I @ K2 )
            = J ) ) ) ).

% less_imp_add_positive
thf(fact_709_less__imp__Suc__add,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ? [K2: nat] :
          ( N
          = ( suc @ ( plus_plus_nat @ M @ K2 ) ) ) ) ).

% less_imp_Suc_add
thf(fact_710_less__iff__Suc__add,axiom,
    ( ord_less_nat
    = ( ^ [M2: nat,N2: nat] :
        ? [K3: nat] :
          ( N2
          = ( suc @ ( plus_plus_nat @ M2 @ K3 ) ) ) ) ) ).

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

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

% less_add_Suc1
thf(fact_713_less__natE,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ M @ N )
     => ~ ! [Q: nat] :
            ( N
           != ( suc @ ( plus_plus_nat @ M @ Q ) ) ) ) ).

% less_natE
thf(fact_714_mono__nat__linear__lb,axiom,
    ! [F: nat > nat,M: nat,K: nat] :
      ( ! [M6: nat,N3: nat] :
          ( ( ord_less_nat @ M6 @ N3 )
         => ( ord_less_nat @ ( F @ M6 ) @ ( F @ N3 ) ) )
     => ( ord_less_eq_nat @ ( plus_plus_nat @ ( F @ M ) @ K ) @ ( F @ ( plus_plus_nat @ M @ K ) ) ) ) ).

% mono_nat_linear_lb
thf(fact_715_gen__length__def,axiom,
    ( gen_length_nat
    = ( ^ [N2: nat,Xs4: list_nat] : ( plus_plus_nat @ N2 @ ( size_size_list_nat @ Xs4 ) ) ) ) ).

% gen_length_def
thf(fact_716_step__size__ok_H,axiom,
    ! [States: states_a,N: nat] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states_size_ok_a @ States @ N )
       => ( states_size_ok_a @ ( type_s4923920245906622843ates_a @ States ) @ N ) ) ) ).

% step_size_ok'
thf(fact_717_list_Osize_I4_J,axiom,
    ! [X21: nat,X222: list_nat] :
      ( ( size_size_list_nat @ ( cons_nat @ X21 @ X222 ) )
      = ( plus_plus_nat @ ( size_size_list_nat @ X222 ) @ ( suc @ zero_zero_nat ) ) ) ).

% list.size(4)
thf(fact_718_step__size__ok,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states_size_ok_a @ States @ ( type_r4519047461186610747ates_a @ States ) )
       => ( states_size_ok_a @ ( type_s4923920245906622843ates_a @ States ) @ ( type_r4519047461186610747ates_a @ ( type_s4923920245906622843ates_a @ States ) ) ) ) ) ).

% step_size_ok
thf(fact_719_step__n__size__ok,axiom,
    ! [States: states_a,N: nat] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( states_size_ok_a @ States @ ( type_r4519047461186610747ates_a @ States ) )
       => ( states_size_ok_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) ) ) ) ) ).

% step_n_size_ok
thf(fact_720_size__ok__size__new__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ord_less_nat @ zero_zero_nat @ ( type_s6530235180886170618tate_a @ Big ) ) ) ).

% size_ok_size_new_big
thf(fact_721_size__ok__size__new__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ord_less_nat @ zero_zero_nat @ ( type_s6404775287138157491tate_a @ Small ) ) ) ).

% size_ok_size_new_small
thf(fact_722_size__ok__size__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) ) ) ).

% size_ok_size_big
thf(fact_723_remaining__steps__n__steps__sub,axiom,
    ! [States: states_a,N: nat] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ N @ type_s4923920245906622843ates_a @ States ) )
        = ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ States ) @ N ) ) ) ).

% remaining_steps_n_steps_sub
thf(fact_724_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_725_rev__tl__hd,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( append_a @ ( rev_a @ ( tl_a @ Xs ) ) @ ( cons_a @ ( hd_a @ Xs ) @ nil_a ) )
        = ( rev_a @ Xs ) ) ) ).

% rev_tl_hd
thf(fact_726_diff__self__eq__0,axiom,
    ! [M: nat] :
      ( ( minus_minus_nat @ M @ M )
      = zero_zero_nat ) ).

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

% diff_0_eq_0
thf(fact_728_Suc__diff__diff,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ ( suc @ M ) @ N ) @ ( suc @ K ) )
      = ( minus_minus_nat @ ( minus_minus_nat @ M @ N ) @ K ) ) ).

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

% diff_Suc_Suc
thf(fact_730_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_731_diff__diff__left,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ I @ J ) @ K )
      = ( minus_minus_nat @ I @ ( plus_plus_nat @ J @ K ) ) ) ).

% diff_diff_left
thf(fact_732_remdups__adj__rev,axiom,
    ! [Xs: list_a] :
      ( ( remdups_adj_a @ ( rev_a @ Xs ) )
      = ( rev_a @ ( remdups_adj_a @ Xs ) ) ) ).

% remdups_adj_rev
thf(fact_733_zero__less__diff,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( minus_minus_nat @ N @ M ) )
      = ( ord_less_nat @ M @ N ) ) ).

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

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

% diff_is_0_eq'
thf(fact_736_Nat_Oadd__diff__assoc,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( plus_plus_nat @ I @ ( minus_minus_nat @ J @ K ) )
        = ( minus_minus_nat @ ( plus_plus_nat @ I @ J ) @ K ) ) ) ).

% Nat.add_diff_assoc
thf(fact_737_Nat_Oadd__diff__assoc2,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( plus_plus_nat @ ( minus_minus_nat @ J @ K ) @ I )
        = ( minus_minus_nat @ ( plus_plus_nat @ J @ I ) @ K ) ) ) ).

% Nat.add_diff_assoc2
thf(fact_738_Nat_Odiff__diff__right,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( minus_minus_nat @ I @ ( minus_minus_nat @ J @ K ) )
        = ( minus_minus_nat @ ( plus_plus_nat @ I @ K ) @ J ) ) ) ).

% Nat.diff_diff_right
thf(fact_739_hd__append2,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( Xs != nil_a )
     => ( ( hd_a @ ( append_a @ Xs @ Ys ) )
        = ( hd_a @ Xs ) ) ) ).

% hd_append2
thf(fact_740_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_741_diff__Suc__diff__eq2,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( minus_minus_nat @ ( suc @ ( minus_minus_nat @ J @ K ) ) @ I )
        = ( minus_minus_nat @ ( suc @ J ) @ ( plus_plus_nat @ K @ I ) ) ) ) ).

% diff_Suc_diff_eq2
thf(fact_742_diff__Suc__diff__eq1,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( minus_minus_nat @ I @ ( suc @ ( minus_minus_nat @ J @ K ) ) )
        = ( minus_minus_nat @ ( plus_plus_nat @ I @ K ) @ ( suc @ J ) ) ) ) ).

% diff_Suc_diff_eq1
thf(fact_743_Nat_Odiff__cancel,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ K @ M ) @ ( plus_plus_nat @ K @ N ) )
      = ( minus_minus_nat @ M @ N ) ) ).

% Nat.diff_cancel
thf(fact_744_diff__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ M @ K ) @ ( plus_plus_nat @ N @ K ) )
      = ( minus_minus_nat @ M @ N ) ) ).

% diff_cancel2
thf(fact_745_diff__add__inverse,axiom,
    ! [N: nat,M: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ N @ M ) @ N )
      = M ) ).

% diff_add_inverse
thf(fact_746_diff__add__inverse2,axiom,
    ! [M: nat,N: nat] :
      ( ( minus_minus_nat @ ( plus_plus_nat @ M @ N ) @ N )
      = M ) ).

% diff_add_inverse2
thf(fact_747_eq__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ( minus_minus_nat @ M @ K )
            = ( minus_minus_nat @ N @ K ) )
          = ( M = N ) ) ) ) ).

% eq_diff_iff
thf(fact_748_le__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ord_less_eq_nat @ ( minus_minus_nat @ M @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( ord_less_eq_nat @ M @ N ) ) ) ) ).

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

% Nat.diff_diff_eq
thf(fact_750_diff__le__mono,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ M @ L ) @ ( minus_minus_nat @ N @ L ) ) ) ).

% diff_le_mono
thf(fact_751_diff__le__self,axiom,
    ! [M: nat,N: nat] : ( ord_less_eq_nat @ ( minus_minus_nat @ M @ N ) @ M ) ).

% diff_le_self
thf(fact_752_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_753_diff__le__mono2,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ord_less_eq_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M ) ) ) ).

% diff_le_mono2
thf(fact_754_diff__commute,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( minus_minus_nat @ ( minus_minus_nat @ I @ J ) @ K )
      = ( minus_minus_nat @ ( minus_minus_nat @ I @ K ) @ J ) ) ).

% diff_commute
thf(fact_755_diff__less__mono2,axiom,
    ! [M: nat,N: nat,L: nat] :
      ( ( ord_less_nat @ M @ N )
     => ( ( ord_less_nat @ M @ L )
       => ( ord_less_nat @ ( minus_minus_nat @ L @ N ) @ ( minus_minus_nat @ L @ M ) ) ) ) ).

% diff_less_mono2
thf(fact_756_less__imp__diff__less,axiom,
    ! [J: nat,K: nat,N: nat] :
      ( ( ord_less_nat @ J @ K )
     => ( ord_less_nat @ ( minus_minus_nat @ J @ N ) @ K ) ) ).

% less_imp_diff_less
thf(fact_757_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_758_minus__nat_Odiff__0,axiom,
    ! [M: nat] :
      ( ( minus_minus_nat @ M @ zero_zero_nat )
      = M ) ).

% minus_nat.diff_0
thf(fact_759_diffs0__imp__equal,axiom,
    ! [M: nat,N: nat] :
      ( ( ( minus_minus_nat @ M @ N )
        = zero_zero_nat )
     => ( ( ( minus_minus_nat @ N @ M )
          = zero_zero_nat )
       => ( M = N ) ) ) ).

% diffs0_imp_equal
thf(fact_760_longest__common__prefix,axiom,
    ! [Xs: list_a,Ys: list_a] :
    ? [Ps: list_a,Xs3: list_a,Ys6: list_a] :
      ( ( Xs
        = ( append_a @ Ps @ Xs3 ) )
      & ( Ys
        = ( append_a @ Ps @ Ys6 ) )
      & ( ( Xs3 = nil_a )
        | ( Ys6 = nil_a )
        | ( ( hd_a @ Xs3 )
         != ( hd_a @ Ys6 ) ) ) ) ).

% longest_common_prefix
thf(fact_761_hd__append,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( Xs = nil_a )
       => ( ( hd_a @ ( append_a @ Xs @ Ys ) )
          = ( hd_a @ Ys ) ) )
      & ( ( Xs != nil_a )
       => ( ( hd_a @ ( append_a @ Xs @ Ys ) )
          = ( hd_a @ Xs ) ) ) ) ).

% hd_append
thf(fact_762_diff__less,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_nat @ zero_zero_nat @ M )
       => ( ord_less_nat @ ( minus_minus_nat @ M @ N ) @ M ) ) ) ).

% diff_less
thf(fact_763_Suc__diff__Suc,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ N @ M )
     => ( ( suc @ ( minus_minus_nat @ M @ ( suc @ N ) ) )
        = ( minus_minus_nat @ M @ N ) ) ) ).

% Suc_diff_Suc
thf(fact_764_diff__less__Suc,axiom,
    ! [M: nat,N: nat] : ( ord_less_nat @ ( minus_minus_nat @ M @ N ) @ ( suc @ M ) ) ).

% diff_less_Suc
thf(fact_765_Suc__diff__le,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_eq_nat @ N @ M )
     => ( ( minus_minus_nat @ ( suc @ M ) @ N )
        = ( suc @ ( minus_minus_nat @ M @ N ) ) ) ) ).

% Suc_diff_le
thf(fact_766_diff__add__0,axiom,
    ! [N: nat,M: nat] :
      ( ( minus_minus_nat @ N @ ( plus_plus_nat @ N @ M ) )
      = zero_zero_nat ) ).

% diff_add_0
thf(fact_767_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_768_less__diff__iff,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ K @ M )
     => ( ( ord_less_eq_nat @ K @ N )
       => ( ( ord_less_nat @ ( minus_minus_nat @ M @ K ) @ ( minus_minus_nat @ N @ K ) )
          = ( ord_less_nat @ M @ N ) ) ) ) ).

% less_diff_iff
thf(fact_769_add__diff__inverse__nat,axiom,
    ! [M: nat,N: nat] :
      ( ~ ( ord_less_nat @ M @ N )
     => ( ( plus_plus_nat @ N @ ( minus_minus_nat @ M @ N ) )
        = M ) ) ).

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

% less_diff_conv
thf(fact_771_le__diff__conv,axiom,
    ! [J: nat,K: nat,I: nat] :
      ( ( ord_less_eq_nat @ ( minus_minus_nat @ J @ K ) @ I )
      = ( ord_less_eq_nat @ J @ ( plus_plus_nat @ I @ K ) ) ) ).

% le_diff_conv
thf(fact_772_Nat_Ole__diff__conv2,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( ord_less_eq_nat @ I @ ( minus_minus_nat @ J @ K ) )
        = ( ord_less_eq_nat @ ( plus_plus_nat @ I @ K ) @ J ) ) ) ).

% Nat.le_diff_conv2
thf(fact_773_Nat_Odiff__add__assoc,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( minus_minus_nat @ ( plus_plus_nat @ I @ J ) @ K )
        = ( plus_plus_nat @ I @ ( minus_minus_nat @ J @ K ) ) ) ) ).

% Nat.diff_add_assoc
thf(fact_774_Nat_Odiff__add__assoc2,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( minus_minus_nat @ ( plus_plus_nat @ J @ I ) @ K )
        = ( plus_plus_nat @ ( minus_minus_nat @ J @ K ) @ I ) ) ) ).

% Nat.diff_add_assoc2
thf(fact_775_Nat_Ole__imp__diff__is__add,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ( ( minus_minus_nat @ J @ I )
          = K )
        = ( J
          = ( plus_plus_nat @ K @ I ) ) ) ) ).

% Nat.le_imp_diff_is_add
thf(fact_776_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_777_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_778_nat__diff__split__asm,axiom,
    ! [P: nat > $o,A: nat,B: nat] :
      ( ( P @ ( minus_minus_nat @ A @ B ) )
      = ( ~ ( ( ( ord_less_nat @ A @ B )
              & ~ ( P @ zero_zero_nat ) )
            | ? [D: nat] :
                ( ( A
                  = ( plus_plus_nat @ B @ D ) )
                & ~ ( P @ D ) ) ) ) ) ).

% nat_diff_split_asm
thf(fact_779_nat__diff__split,axiom,
    ! [P: nat > $o,A: nat,B: nat] :
      ( ( P @ ( minus_minus_nat @ A @ B ) )
      = ( ( ( ord_less_nat @ A @ B )
         => ( P @ zero_zero_nat ) )
        & ! [D: nat] :
            ( ( A
              = ( plus_plus_nat @ B @ D ) )
           => ( P @ D ) ) ) ) ).

% nat_diff_split
thf(fact_780_less__diff__conv2,axiom,
    ! [K: nat,J: nat,I: nat] :
      ( ( ord_less_eq_nat @ K @ J )
     => ( ( ord_less_nat @ ( minus_minus_nat @ J @ K ) @ I )
        = ( ord_less_nat @ J @ ( plus_plus_nat @ I @ K ) ) ) ) ).

% less_diff_conv2
thf(fact_781_remdups__adj__append__two,axiom,
    ! [Xs: list_a,X: a,Y: a] :
      ( ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X @ ( cons_a @ Y @ nil_a ) ) ) )
      = ( append_a @ ( remdups_adj_a @ ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) ) @ ( if_list_a @ ( X = Y ) @ nil_a @ ( cons_a @ Y @ nil_a ) ) ) ) ).

% remdups_adj_append_two
thf(fact_782_remdups__adj__append,axiom,
    ! [Xs_1: list_a,X: a,Xs_2: list_a] :
      ( ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X @ Xs_2 ) ) )
      = ( append_a @ ( remdups_adj_a @ ( append_a @ Xs_1 @ ( cons_a @ X @ nil_a ) ) ) @ ( tl_a @ ( remdups_adj_a @ ( cons_a @ X @ Xs_2 ) ) ) ) ) ).

% remdups_adj_append
thf(fact_783_take__rev__tl__hd,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( Xs != nil_a )
       => ( ( append_a @ ( common_take_rev_a @ N @ Xs ) @ Ys )
          = ( append_a @ ( common_take_rev_a @ ( minus_minus_nat @ N @ ( suc @ zero_zero_nat ) ) @ ( tl_a @ Xs ) ) @ ( cons_a @ ( hd_a @ Xs ) @ Ys ) ) ) ) ) ).

% take_rev_tl_hd
thf(fact_784_rotate1__hd__tl,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( rotate1_a @ Xs )
        = ( append_a @ ( tl_a @ Xs ) @ ( cons_a @ ( hd_a @ Xs ) @ nil_a ) ) ) ) ).

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

% length_rotate1
thf(fact_786_size__list__append,axiom,
    ! [F: a > nat,Xs: list_a,Ys: list_a] :
      ( ( size_list_a @ F @ ( append_a @ Xs @ Ys ) )
      = ( plus_plus_nat @ ( size_list_a @ F @ Xs ) @ ( size_list_a @ F @ Ys ) ) ) ).

% size_list_append
thf(fact_787_rotate1_Osimps_I2_J,axiom,
    ! [X: a,Xs: list_a] :
      ( ( rotate1_a @ ( cons_a @ X @ Xs ) )
      = ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) ) ).

% rotate1.simps(2)
thf(fact_788_take__rev__step,axiom,
    ! [Xs: list_a,N: nat,Acc: list_a] :
      ( ( Xs != nil_a )
     => ( ( append_a @ ( common_take_rev_a @ N @ ( tl_a @ Xs ) ) @ ( cons_a @ ( hd_a @ Xs ) @ Acc ) )
        = ( append_a @ ( common_take_rev_a @ ( suc @ N ) @ Xs ) @ Acc ) ) ) ).

% take_rev_step
thf(fact_789_remdups__adj__singleton__iff,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ ( remdups_adj_nat @ Xs ) )
        = ( suc @ zero_zero_nat ) )
      = ( ( Xs != nil_nat )
        & ( Xs
          = ( replicate_nat @ ( size_size_list_nat @ Xs ) @ ( hd_nat @ Xs ) ) ) ) ) ).

% remdups_adj_singleton_iff
thf(fact_790_take__rev__nth,axiom,
    ! [N: nat,Xs: list_a,X: a,Ys: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( X
          = ( nth_a @ Xs @ N ) )
       => ( ( cons_a @ X @ ( append_a @ ( common_take_rev_a @ N @ Xs ) @ Ys ) )
          = ( append_a @ ( common_take_rev_a @ ( suc @ N ) @ Xs ) @ Ys ) ) ) ) ).

% take_rev_nth
thf(fact_791_take__rev__nth,axiom,
    ! [N: nat,Xs: list_nat,X: nat,Ys: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( X
          = ( nth_nat @ Xs @ N ) )
       => ( ( cons_nat @ X @ ( append_nat @ ( common_take_rev_nat @ N @ Xs ) @ Ys ) )
          = ( append_nat @ ( common_take_rev_nat @ ( suc @ N ) @ Xs ) @ Ys ) ) ) ) ).

% take_rev_nth
thf(fact_792_hd__drop,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( cons_nat @ ( hd_nat @ ( drop_nat @ N @ Xs ) ) @ ( drop_nat @ ( suc @ N ) @ Xs ) )
        = ( drop_nat @ N @ Xs ) ) ) ).

% hd_drop
thf(fact_793_length__replicate,axiom,
    ! [N: nat,X: nat] :
      ( ( size_size_list_nat @ ( replicate_nat @ N @ X ) )
      = N ) ).

% length_replicate
thf(fact_794_rev__replicate,axiom,
    ! [N: nat,X: a] :
      ( ( rev_a @ ( replicate_a @ N @ X ) )
      = ( replicate_a @ N @ X ) ) ).

% rev_replicate
thf(fact_795_nth__Cons__0,axiom,
    ! [X: nat,Xs: list_nat] :
      ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ zero_zero_nat )
      = X ) ).

% nth_Cons_0
thf(fact_796_nth__Cons__Suc,axiom,
    ! [X: nat,Xs: list_nat,N: nat] :
      ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ ( suc @ N ) )
      = ( nth_nat @ Xs @ N ) ) ).

% nth_Cons_Suc
thf(fact_797_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_798_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_799_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_800_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_801_nth__replicate,axiom,
    ! [I: nat,N: nat,X: nat] :
      ( ( ord_less_nat @ I @ N )
     => ( ( nth_nat @ ( replicate_nat @ N @ X ) @ I )
        = X ) ) ).

% nth_replicate
thf(fact_802_append__take__drop__id,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( append_a @ ( take_a @ N @ Xs ) @ ( drop_a @ N @ Xs ) )
      = Xs ) ).

% append_take_drop_id
thf(fact_803_nth__append__length,axiom,
    ! [Xs: list_a,X: a,Ys: list_a] :
      ( ( nth_a @ ( append_a @ Xs @ ( cons_a @ X @ Ys ) ) @ ( size_size_list_a @ Xs ) )
      = X ) ).

% nth_append_length
thf(fact_804_nth__append__length,axiom,
    ! [Xs: list_nat,X: nat,Ys: list_nat] :
      ( ( nth_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ Ys ) ) @ ( size_size_list_nat @ Xs ) )
      = X ) ).

% nth_append_length
thf(fact_805_nth__append__length__plus,axiom,
    ! [Xs: list_a,Ys: list_a,N: nat] :
      ( ( nth_a @ ( append_a @ Xs @ Ys ) @ ( plus_plus_nat @ ( size_size_list_a @ Xs ) @ N ) )
      = ( nth_a @ Ys @ N ) ) ).

% nth_append_length_plus
thf(fact_806_nth__append__length__plus,axiom,
    ! [Xs: list_nat,Ys: list_nat,N: nat] :
      ( ( nth_nat @ ( append_nat @ Xs @ Ys ) @ ( plus_plus_nat @ ( size_size_list_nat @ Xs ) @ N ) )
      = ( nth_nat @ Ys @ N ) ) ).

% nth_append_length_plus
thf(fact_807_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_808_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_809_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_810_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_811_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_812_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_813_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_814_nth__drop,axiom,
    ! [N: nat,Xs: list_nat,I: nat] :
      ( ( ord_less_eq_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_nat @ ( drop_nat @ N @ Xs ) @ I )
        = ( nth_nat @ Xs @ ( plus_plus_nat @ N @ I ) ) ) ) ).

% nth_drop
thf(fact_815_append__eq__append__conv__if,axiom,
    ! [Xs_1: list_a,Xs_2: list_a,Ys_1: list_a,Ys_2: list_a] :
      ( ( ( append_a @ Xs_1 @ Xs_2 )
        = ( append_a @ Ys_1 @ Ys_2 ) )
      = ( ( ( ord_less_eq_nat @ ( size_size_list_a @ Xs_1 ) @ ( size_size_list_a @ Ys_1 ) )
         => ( ( Xs_1
              = ( take_a @ ( size_size_list_a @ Xs_1 ) @ Ys_1 ) )
            & ( Xs_2
              = ( append_a @ ( drop_a @ ( size_size_list_a @ Xs_1 ) @ Ys_1 ) @ Ys_2 ) ) ) )
        & ( ~ ( ord_less_eq_nat @ ( size_size_list_a @ Xs_1 ) @ ( size_size_list_a @ Ys_1 ) )
         => ( ( ( take_a @ ( size_size_list_a @ Ys_1 ) @ Xs_1 )
              = Ys_1 )
            & ( ( append_a @ ( drop_a @ ( size_size_list_a @ Ys_1 ) @ Xs_1 ) @ Xs_2 )
              = Ys_2 ) ) ) ) ) ).

% append_eq_append_conv_if
thf(fact_816_append__eq__append__conv__if,axiom,
    ! [Xs_1: list_nat,Xs_2: list_nat,Ys_1: list_nat,Ys_2: list_nat] :
      ( ( ( append_nat @ Xs_1 @ Xs_2 )
        = ( append_nat @ Ys_1 @ Ys_2 ) )
      = ( ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs_1 ) @ ( size_size_list_nat @ Ys_1 ) )
         => ( ( Xs_1
              = ( take_nat @ ( size_size_list_nat @ Xs_1 ) @ Ys_1 ) )
            & ( Xs_2
              = ( append_nat @ ( drop_nat @ ( size_size_list_nat @ Xs_1 ) @ Ys_1 ) @ Ys_2 ) ) ) )
        & ( ~ ( ord_less_eq_nat @ ( size_size_list_nat @ Xs_1 ) @ ( size_size_list_nat @ Ys_1 ) )
         => ( ( ( take_nat @ ( size_size_list_nat @ Ys_1 ) @ Xs_1 )
              = Ys_1 )
            & ( ( append_nat @ ( drop_nat @ ( size_size_list_nat @ Ys_1 ) @ Xs_1 ) @ Xs_2 )
              = Ys_2 ) ) ) ) ) ).

% append_eq_append_conv_if
thf(fact_817_drop__rev,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( drop_a @ N @ ( rev_a @ Xs ) )
      = ( rev_a @ ( take_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ N ) @ Xs ) ) ) ).

% drop_rev
thf(fact_818_drop__rev,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( drop_nat @ N @ ( rev_nat @ Xs ) )
      = ( rev_nat @ ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ N ) @ Xs ) ) ) ).

% drop_rev
thf(fact_819_rev__drop,axiom,
    ! [I: nat,Xs: list_a] :
      ( ( rev_a @ ( drop_a @ I @ Xs ) )
      = ( take_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ I ) @ ( rev_a @ Xs ) ) ) ).

% rev_drop
thf(fact_820_rev__drop,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( rev_nat @ ( drop_nat @ I @ Xs ) )
      = ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ I ) @ ( rev_nat @ Xs ) ) ) ).

% rev_drop
thf(fact_821_rev__take,axiom,
    ! [I: nat,Xs: list_a] :
      ( ( rev_a @ ( take_a @ I @ Xs ) )
      = ( drop_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ I ) @ ( rev_a @ Xs ) ) ) ).

% rev_take
thf(fact_822_rev__take,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( rev_nat @ ( take_nat @ I @ Xs ) )
      = ( drop_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ I ) @ ( rev_nat @ Xs ) ) ) ).

% rev_take
thf(fact_823_take__rev,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( take_a @ N @ ( rev_a @ Xs ) )
      = ( rev_a @ ( drop_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ N ) @ Xs ) ) ) ).

% take_rev
thf(fact_824_take__rev,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( take_nat @ N @ ( rev_nat @ Xs ) )
      = ( rev_nat @ ( drop_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ N ) @ Xs ) ) ) ).

% take_rev
thf(fact_825_hd__drop__conv__nth,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( hd_nat @ ( drop_nat @ N @ Xs ) )
        = ( nth_nat @ Xs @ N ) ) ) ).

% hd_drop_conv_nth
thf(fact_826_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_827_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_828_take__add,axiom,
    ! [I: nat,J: nat,Xs: list_a] :
      ( ( take_a @ ( plus_plus_nat @ I @ J ) @ Xs )
      = ( append_a @ ( take_a @ I @ Xs ) @ ( take_a @ J @ ( drop_a @ I @ Xs ) ) ) ) ).

% take_add
thf(fact_829_nth__via__drop,axiom,
    ! [N: nat,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( ( drop_nat @ N @ Xs )
        = ( cons_nat @ Y @ Ys ) )
     => ( ( nth_nat @ Xs @ N )
        = Y ) ) ).

% nth_via_drop
thf(fact_830_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_831_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_832_append__replicate__commute,axiom,
    ! [N: nat,X: a,K: nat] :
      ( ( append_a @ ( replicate_a @ N @ X ) @ ( replicate_a @ K @ X ) )
      = ( append_a @ ( replicate_a @ K @ X ) @ ( replicate_a @ N @ X ) ) ) ).

% append_replicate_commute
thf(fact_833_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 ) )
       => ( ! [I2: nat] :
              ( ( ord_less_nat @ I2 @ K )
             => ( ( nth_nat @ Xs @ I2 )
                = ( nth_nat @ Ys @ I2 ) ) )
         => ( ( take_nat @ K @ Xs )
            = ( take_nat @ K @ Ys ) ) ) ) ) ).

% nth_take_lemma
thf(fact_834_Cons__nth__drop__Suc,axiom,
    ! [I: nat,Xs: list_nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( cons_nat @ ( nth_nat @ Xs @ I ) @ ( drop_nat @ ( suc @ I ) @ Xs ) )
        = ( drop_nat @ I @ Xs ) ) ) ).

% Cons_nth_drop_Suc
thf(fact_835_nth__equalityI,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
           => ( ( nth_nat @ Xs @ I2 )
              = ( nth_nat @ Ys @ I2 ) ) )
       => ( Xs = Ys ) ) ) ).

% nth_equalityI
thf(fact_836_Skolem__list__nth,axiom,
    ! [K: nat,P: nat > nat > $o] :
      ( ( ! [I3: nat] :
            ( ( ord_less_nat @ I3 @ K )
           => ? [X6: nat] : ( P @ I3 @ X6 ) ) )
      = ( ? [Xs4: list_nat] :
            ( ( ( size_size_list_nat @ Xs4 )
              = K )
            & ! [I3: nat] :
                ( ( ord_less_nat @ I3 @ K )
               => ( P @ I3 @ ( nth_nat @ Xs4 @ I3 ) ) ) ) ) ) ).

% Skolem_list_nth
thf(fact_837_list__eq__iff__nth__eq,axiom,
    ( ( ^ [Y7: list_nat,Z4: list_nat] : ( Y7 = Z4 ) )
    = ( ^ [Xs4: list_nat,Ys2: list_nat] :
          ( ( ( size_size_list_nat @ Xs4 )
            = ( size_size_list_nat @ Ys2 ) )
          & ! [I3: nat] :
              ( ( ord_less_nat @ I3 @ ( size_size_list_nat @ Xs4 ) )
             => ( ( nth_nat @ Xs4 @ I3 )
                = ( nth_nat @ Ys2 @ I3 ) ) ) ) ) ) ).

% list_eq_iff_nth_eq
thf(fact_838_replicate__app__Cons__same,axiom,
    ! [N: nat,X: a,Xs: list_a] :
      ( ( append_a @ ( replicate_a @ N @ X ) @ ( cons_a @ X @ Xs ) )
      = ( cons_a @ X @ ( append_a @ ( replicate_a @ N @ X ) @ Xs ) ) ) ).

% replicate_app_Cons_same
thf(fact_839_replicate__add,axiom,
    ! [N: nat,M: nat,X: a] :
      ( ( replicate_a @ ( plus_plus_nat @ N @ M ) @ X )
      = ( append_a @ ( replicate_a @ N @ X ) @ ( replicate_a @ M @ X ) ) ) ).

% replicate_add
thf(fact_840_lex__take__index,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( lex_num @ R ) )
     => ~ ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_num @ Xs ) )
           => ( ( ord_less_nat @ I2 @ ( size_size_list_num @ Ys ) )
             => ( ( ( take_num @ I2 @ Xs )
                  = ( take_num @ I2 @ Ys ) )
               => ~ ( member7279096912039735102um_num @ ( product_Pair_num_num @ ( nth_num @ Xs @ I2 ) @ ( nth_num @ Ys @ I2 ) ) @ R ) ) ) ) ) ).

% lex_take_index
thf(fact_841_lex__take__index,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( lex_int @ R ) )
     => ~ ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_int @ Xs ) )
           => ( ( ord_less_nat @ I2 @ ( size_size_list_int @ Ys ) )
             => ( ( ( take_int @ I2 @ Xs )
                  = ( take_int @ I2 @ Ys ) )
               => ~ ( member5262025264175285858nt_int @ ( product_Pair_int_int @ ( nth_int @ Xs @ I2 ) @ ( nth_int @ Ys @ I2 ) ) @ R ) ) ) ) ) ).

% lex_take_index
thf(fact_842_lex__take__index,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( lex_nat @ R ) )
     => ~ ! [I2: nat] :
            ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Xs ) )
           => ( ( ord_less_nat @ I2 @ ( size_size_list_nat @ Ys ) )
             => ( ( ( take_nat @ I2 @ Xs )
                  = ( take_nat @ I2 @ Ys ) )
               => ~ ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ ( nth_nat @ Xs @ I2 ) @ ( nth_nat @ Ys @ I2 ) ) @ R ) ) ) ) ) ).

% lex_take_index
thf(fact_843_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_844_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_845_hd__conv__nth,axiom,
    ! [Xs: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( hd_nat @ Xs )
        = ( nth_nat @ Xs @ zero_zero_nat ) ) ) ).

% hd_conv_nth
thf(fact_846_replicate__append__same,axiom,
    ! [I: nat,X: a] :
      ( ( append_a @ ( replicate_a @ I @ X ) @ ( cons_a @ X @ nil_a ) )
      = ( cons_a @ X @ ( replicate_a @ I @ X ) ) ) ).

% replicate_append_same
thf(fact_847_take__hd__drop,axiom,
    ! [N: nat,Xs: list_a] :
      ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
     => ( ( append_a @ ( take_a @ N @ Xs ) @ ( cons_a @ ( hd_a @ ( drop_a @ N @ Xs ) ) @ nil_a ) )
        = ( take_a @ ( suc @ N ) @ Xs ) ) ) ).

% take_hd_drop
thf(fact_848_take__hd__drop,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( append_nat @ ( take_nat @ N @ Xs ) @ ( cons_nat @ ( hd_nat @ ( drop_nat @ N @ Xs ) ) @ nil_nat ) )
        = ( take_nat @ ( suc @ N ) @ Xs ) ) ) ).

% take_hd_drop
thf(fact_849_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_850_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_851_nth__tl,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ ( tl_nat @ Xs ) ) )
     => ( ( nth_nat @ ( tl_nat @ Xs ) @ N )
        = ( nth_nat @ Xs @ ( suc @ N ) ) ) ) ).

% nth_tl
thf(fact_852_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_853_remdups__adj__singleton,axiom,
    ! [Xs: list_nat,X: nat] :
      ( ( ( remdups_adj_nat @ Xs )
        = ( cons_nat @ X @ nil_nat ) )
     => ( Xs
        = ( replicate_nat @ ( size_size_list_nat @ Xs ) @ X ) ) ) ).

% remdups_adj_singleton
thf(fact_854_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_855_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_856_take__hd_H,axiom,
    ! [Ys: list_nat,X: nat,Xs: list_nat] :
      ( ( Ys != nil_nat )
     => ( ( ( take_nat @ ( size_size_list_nat @ Ys ) @ ( cons_nat @ X @ Xs ) )
          = ( take_nat @ ( suc @ ( size_size_list_nat @ Xs ) ) @ Ys ) )
       => ( ( hd_nat @ Ys )
          = X ) ) ) ).

% take_hd'
thf(fact_857_take__rev__drop,axiom,
    ! [N: nat,Xs: list_a,Acc: list_a] :
      ( ( append_a @ ( common_take_rev_a @ N @ Xs ) @ Acc )
      = ( append_a @ ( drop_a @ ( minus_minus_nat @ ( size_size_list_a @ Xs ) @ N ) @ ( rev_a @ Xs ) ) @ Acc ) ) ).

% take_rev_drop
thf(fact_858_take__rev__drop,axiom,
    ! [N: nat,Xs: list_nat,Acc: list_nat] :
      ( ( append_nat @ ( common_take_rev_nat @ N @ Xs ) @ Acc )
      = ( append_nat @ ( drop_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ N ) @ ( rev_nat @ Xs ) ) @ Acc ) ) ).

% take_rev_drop
thf(fact_859_take__rev__def,axiom,
    ( common_take_rev_a
    = ( ^ [N2: nat,Xs4: list_a] : ( rev_a @ ( take_a @ N2 @ Xs4 ) ) ) ) ).

% take_rev_def
thf(fact_860_take__last__length,axiom,
    ! [Xs: list_a] :
      ( ( ( take_a @ ( suc @ zero_zero_nat ) @ ( rev_a @ Xs ) )
        = ( cons_a @ ( last_a @ Xs ) @ nil_a ) )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_a @ Xs ) ) ) ).

% take_last_length
thf(fact_861_take__last__length,axiom,
    ! [Xs: list_nat] :
      ( ( ( take_nat @ ( suc @ zero_zero_nat ) @ ( rev_nat @ Xs ) )
        = ( cons_nat @ ( last_nat @ Xs ) @ nil_nat ) )
     => ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( size_size_list_nat @ Xs ) ) ) ).

% take_last_length
thf(fact_862_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_863_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_864_lexord__take__index__conv,axiom,
    ! [X: list_num,Y: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ X @ Y ) @ ( lexord_num @ R ) )
      = ( ( ( ord_less_nat @ ( size_size_list_num @ X ) @ ( size_size_list_num @ Y ) )
          & ( ( take_num @ ( size_size_list_num @ X ) @ Y )
            = X ) )
        | ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( ord_min_nat @ ( size_size_list_num @ X ) @ ( size_size_list_num @ Y ) ) )
            & ( ( take_num @ I3 @ X )
              = ( take_num @ I3 @ Y ) )
            & ( member7279096912039735102um_num @ ( product_Pair_num_num @ ( nth_num @ X @ I3 ) @ ( nth_num @ Y @ I3 ) ) @ R ) ) ) ) ).

% lexord_take_index_conv
thf(fact_865_lexord__take__index__conv,axiom,
    ! [X: list_int,Y: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ X @ Y ) @ ( lexord_int @ R ) )
      = ( ( ( ord_less_nat @ ( size_size_list_int @ X ) @ ( size_size_list_int @ Y ) )
          & ( ( take_int @ ( size_size_list_int @ X ) @ Y )
            = X ) )
        | ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( ord_min_nat @ ( size_size_list_int @ X ) @ ( size_size_list_int @ Y ) ) )
            & ( ( take_int @ I3 @ X )
              = ( take_int @ I3 @ Y ) )
            & ( member5262025264175285858nt_int @ ( product_Pair_int_int @ ( nth_int @ X @ I3 ) @ ( nth_int @ Y @ I3 ) ) @ R ) ) ) ) ).

% lexord_take_index_conv
thf(fact_866_lexord__take__index__conv,axiom,
    ! [X: list_nat,Y: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ X @ Y ) @ ( lexord_nat @ R ) )
      = ( ( ( ord_less_nat @ ( size_size_list_nat @ X ) @ ( size_size_list_nat @ Y ) )
          & ( ( take_nat @ ( size_size_list_nat @ X ) @ Y )
            = X ) )
        | ? [I3: nat] :
            ( ( ord_less_nat @ I3 @ ( ord_min_nat @ ( size_size_list_nat @ X ) @ ( size_size_list_nat @ Y ) ) )
            & ( ( take_nat @ I3 @ X )
              = ( take_nat @ I3 @ Y ) )
            & ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ ( nth_nat @ X @ I3 ) @ ( nth_nat @ Y @ I3 ) ) @ R ) ) ) ) ).

% lexord_take_index_conv
thf(fact_867_min__0R,axiom,
    ! [N: nat] :
      ( ( ord_min_nat @ N @ zero_zero_nat )
      = zero_zero_nat ) ).

% min_0R
thf(fact_868_min__0L,axiom,
    ! [N: nat] :
      ( ( ord_min_nat @ zero_zero_nat @ N )
      = zero_zero_nat ) ).

% min_0L
thf(fact_869_min__Suc__Suc,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_min_nat @ ( suc @ M ) @ ( suc @ N ) )
      = ( suc @ ( ord_min_nat @ M @ N ) ) ) ).

% min_Suc_Suc
thf(fact_870_length__list__update,axiom,
    ! [Xs: list_nat,I: nat,X: nat] :
      ( ( size_size_list_nat @ ( list_update_nat @ Xs @ I @ X ) )
      = ( size_size_list_nat @ Xs ) ) ).

% length_list_update
thf(fact_871_nth__list__update__neq,axiom,
    ! [I: nat,J: nat,Xs: list_nat,X: nat] :
      ( ( I != J )
     => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X ) @ J )
        = ( nth_nat @ Xs @ J ) ) ) ).

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

% list_update_id
thf(fact_873_list__update__beyond,axiom,
    ! [Xs: list_nat,I: nat,X: nat] :
      ( ( ord_less_eq_nat @ ( size_size_list_nat @ Xs ) @ I )
     => ( ( list_update_nat @ Xs @ I @ X )
        = Xs ) ) ).

% list_update_beyond
thf(fact_874_last__appendR,axiom,
    ! [Ys: list_a,Xs: list_a] :
      ( ( Ys != nil_a )
     => ( ( last_a @ ( append_a @ Xs @ Ys ) )
        = ( last_a @ Ys ) ) ) ).

% last_appendR
thf(fact_875_last__appendL,axiom,
    ! [Ys: list_a,Xs: list_a] :
      ( ( Ys = nil_a )
     => ( ( last_a @ ( append_a @ Xs @ Ys ) )
        = ( last_a @ Xs ) ) ) ).

% last_appendL
thf(fact_876_length__take,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( size_size_list_nat @ ( take_nat @ N @ Xs ) )
      = ( ord_min_nat @ ( size_size_list_nat @ Xs ) @ N ) ) ).

% length_take
thf(fact_877_list__update__length,axiom,
    ! [Xs: list_a,X: a,Ys: list_a,Y: a] :
      ( ( list_update_a @ ( append_a @ Xs @ ( cons_a @ X @ Ys ) ) @ ( size_size_list_a @ Xs ) @ Y )
      = ( append_a @ Xs @ ( cons_a @ Y @ Ys ) ) ) ).

% list_update_length
thf(fact_878_list__update__length,axiom,
    ! [Xs: list_nat,X: nat,Ys: list_nat,Y: nat] :
      ( ( list_update_nat @ ( append_nat @ Xs @ ( cons_nat @ X @ Ys ) ) @ ( size_size_list_nat @ Xs ) @ Y )
      = ( append_nat @ Xs @ ( cons_nat @ Y @ Ys ) ) ) ).

% list_update_length
thf(fact_879_last__snoc,axiom,
    ! [Xs: list_a,X: a] :
      ( ( last_a @ ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) )
      = X ) ).

% last_snoc
thf(fact_880_nth__list__update__eq,axiom,
    ! [I: nat,Xs: list_nat,X: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X ) @ I )
        = X ) ) ).

% nth_list_update_eq
thf(fact_881_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_882_Suc__min,axiom,
    ! [X: nat,Y: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ X )
     => ( ( ord_less_nat @ zero_zero_nat @ Y )
       => ( ( suc @ ( ord_min_nat @ ( minus_minus_nat @ X @ ( suc @ zero_zero_nat ) ) @ ( minus_minus_nat @ Y @ ( suc @ zero_zero_nat ) ) ) )
          = ( ord_min_nat @ X @ Y ) ) ) ) ).

% Suc_min
thf(fact_883_min__diff,axiom,
    ! [M: nat,I: nat,N: nat] :
      ( ( ord_min_nat @ ( minus_minus_nat @ M @ I ) @ ( minus_minus_nat @ N @ I ) )
      = ( minus_minus_nat @ ( ord_min_nat @ M @ N ) @ I ) ) ).

% min_diff
thf(fact_884_last__append,axiom,
    ! [Ys: list_a,Xs: list_a] :
      ( ( ( Ys = nil_a )
       => ( ( last_a @ ( append_a @ Xs @ Ys ) )
          = ( last_a @ Xs ) ) )
      & ( ( Ys != nil_a )
       => ( ( last_a @ ( append_a @ Xs @ Ys ) )
          = ( last_a @ Ys ) ) ) ) ).

% last_append
thf(fact_885_longest__common__suffix,axiom,
    ! [Xs: list_a,Ys: list_a] :
    ? [Ss: list_a,Xs3: list_a,Ys6: list_a] :
      ( ( Xs
        = ( append_a @ Xs3 @ Ss ) )
      & ( Ys
        = ( append_a @ Ys6 @ Ss ) )
      & ( ( Xs3 = nil_a )
        | ( Ys6 = nil_a )
        | ( ( last_a @ Xs3 )
         != ( last_a @ Ys6 ) ) ) ) ).

% longest_common_suffix
thf(fact_886_hd__rev,axiom,
    ! [Xs: list_a] :
      ( ( hd_a @ ( rev_a @ Xs ) )
      = ( last_a @ Xs ) ) ).

% hd_rev
thf(fact_887_last__rev,axiom,
    ! [Xs: list_a] :
      ( ( last_a @ ( rev_a @ Xs ) )
      = ( hd_a @ Xs ) ) ).

% last_rev
thf(fact_888_list__update__append1,axiom,
    ! [I: nat,Xs: list_a,Ys: list_a,X: a] :
      ( ( ord_less_nat @ I @ ( size_size_list_a @ Xs ) )
     => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ I @ X )
        = ( append_a @ ( list_update_a @ Xs @ I @ X ) @ Ys ) ) ) ).

% list_update_append1
thf(fact_889_list__update__append1,axiom,
    ! [I: nat,Xs: list_nat,Ys: list_nat,X: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ I @ X )
        = ( append_nat @ ( list_update_nat @ Xs @ I @ X ) @ Ys ) ) ) ).

% list_update_append1
thf(fact_890_nth__list__update,axiom,
    ! [I: nat,Xs: list_nat,J: nat,X: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ( I = J )
         => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X ) @ J )
            = X ) )
        & ( ( I != J )
         => ( ( nth_nat @ ( list_update_nat @ Xs @ I @ X ) @ J )
            = ( nth_nat @ Xs @ J ) ) ) ) ) ).

% nth_list_update
thf(fact_891_list__update__same__conv,axiom,
    ! [I: nat,Xs: list_nat,X: nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ( list_update_nat @ Xs @ I @ X )
          = Xs )
        = ( ( nth_nat @ Xs @ I )
          = X ) ) ) ).

% list_update_same_conv
thf(fact_892_list__update__append,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a,X: a] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ N @ X )
          = ( append_a @ ( list_update_a @ Xs @ N @ X ) @ Ys ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_a @ Xs ) )
       => ( ( list_update_a @ ( append_a @ Xs @ Ys ) @ N @ X )
          = ( append_a @ Xs @ ( list_update_a @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_a @ Xs ) ) @ X ) ) ) ) ) ).

% list_update_append
thf(fact_893_list__update__append,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat,X: nat] :
      ( ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ N @ X )
          = ( append_nat @ ( list_update_nat @ Xs @ N @ X ) @ Ys ) ) )
      & ( ~ ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
       => ( ( list_update_nat @ ( append_nat @ Xs @ Ys ) @ N @ X )
          = ( append_nat @ Xs @ ( list_update_nat @ Ys @ ( minus_minus_nat @ N @ ( size_size_list_nat @ Xs ) ) @ X ) ) ) ) ) ).

% list_update_append
thf(fact_894_remdups__adj__append_H,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( Xs = nil_a )
        | ( Ys = nil_a )
        | ( ( last_a @ Xs )
         != ( hd_a @ Ys ) ) )
     => ( ( remdups_adj_a @ ( append_a @ Xs @ Ys ) )
        = ( append_a @ ( remdups_adj_a @ Xs ) @ ( remdups_adj_a @ Ys ) ) ) ) ).

% remdups_adj_append'
thf(fact_895_listrel1__iff__update,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel1_num @ R ) )
      = ( ? [Y4: num,N2: nat] :
            ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ ( nth_num @ Xs @ N2 ) @ Y4 ) @ R )
            & ( ord_less_nat @ N2 @ ( size_size_list_num @ Xs ) )
            & ( Ys
              = ( list_update_num @ Xs @ N2 @ Y4 ) ) ) ) ) ).

% listrel1_iff_update
thf(fact_896_listrel1__iff__update,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel1_int @ R ) )
      = ( ? [Y4: int,N2: nat] :
            ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ ( nth_int @ Xs @ N2 ) @ Y4 ) @ R )
            & ( ord_less_nat @ N2 @ ( size_size_list_int @ Xs ) )
            & ( Ys
              = ( list_update_int @ Xs @ N2 @ Y4 ) ) ) ) ) ).

% listrel1_iff_update
thf(fact_897_listrel1__iff__update,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel1_nat @ R ) )
      = ( ? [Y4: nat,N2: nat] :
            ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ ( nth_nat @ Xs @ N2 ) @ Y4 ) @ R )
            & ( ord_less_nat @ N2 @ ( size_size_list_nat @ Xs ) )
            & ( Ys
              = ( list_update_nat @ Xs @ N2 @ Y4 ) ) ) ) ) ).

% listrel1_iff_update
thf(fact_898_nth__Cons__pos,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ N )
        = ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% nth_Cons_pos
thf(fact_899_append__butlast__last__id,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( append_a @ ( butlast_a @ Xs ) @ ( cons_a @ ( last_a @ Xs ) @ nil_a ) )
        = Xs ) ) ).

% append_butlast_last_id
thf(fact_900_nth__enumerate__eq,axiom,
    ! [M: nat,Xs: list_nat,N: nat] :
      ( ( ord_less_nat @ M @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_Pr7617993195940197384at_nat @ ( enumerate_nat @ N @ Xs ) @ M )
        = ( product_Pair_nat_nat @ ( plus_plus_nat @ N @ M ) @ ( nth_nat @ Xs @ M ) ) ) ) ).

% nth_enumerate_eq
thf(fact_901_length__enumerate,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( size_s5460976970255530739at_nat @ ( enumerate_nat @ N @ Xs ) )
      = ( size_size_list_nat @ Xs ) ) ).

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

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

% diff_Suc_1
thf(fact_904_butlast__rev,axiom,
    ! [Xs: list_a] :
      ( ( butlast_a @ ( rev_a @ Xs ) )
      = ( rev_a @ ( tl_a @ Xs ) ) ) ).

% butlast_rev
thf(fact_905_length__tl,axiom,
    ! [Xs: list_nat] :
      ( ( size_size_list_nat @ ( tl_nat @ Xs ) )
      = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) ) ).

% length_tl
thf(fact_906_butlast__snoc,axiom,
    ! [Xs: list_a,X: a] :
      ( ( butlast_a @ ( append_a @ Xs @ ( cons_a @ X @ nil_a ) ) )
      = Xs ) ).

% butlast_snoc
thf(fact_907_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_908_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_909_enumerate__simps_I2_J,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( enumerate_nat @ N @ ( cons_nat @ X @ Xs ) )
      = ( cons_P6512896166579812791at_nat @ ( product_Pair_nat_nat @ N @ X ) @ ( enumerate_nat @ ( suc @ N ) @ Xs ) ) ) ).

% enumerate_simps(2)
thf(fact_910_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_911_remaining__steps__decline__sub,axiom,
    ! [States: states_a] :
      ( ( type_i8221491762852169479ates_a @ States )
     => ( ( type_r4519047461186610747ates_a @ ( type_s4923920245906622843ates_a @ States ) )
        = ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ States ) @ one_one_nat ) ) ) ).

% remaining_steps_decline_sub
thf(fact_912_butlast__list__update,axiom,
    ! [K: nat,Xs: list_nat,X: nat] :
      ( ( ( K
          = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
       => ( ( butlast_nat @ ( list_update_nat @ Xs @ K @ X ) )
          = ( butlast_nat @ Xs ) ) )
      & ( ( K
         != ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
       => ( ( butlast_nat @ ( list_update_nat @ Xs @ K @ X ) )
          = ( list_update_nat @ ( butlast_nat @ Xs ) @ K @ X ) ) ) ) ).

% butlast_list_update
thf(fact_913_butlast__conv__take,axiom,
    ( butlast_nat
    = ( ^ [Xs4: list_nat] : ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs4 ) @ one_one_nat ) @ Xs4 ) ) ) ).

% butlast_conv_take
thf(fact_914_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_915_One__nat__def,axiom,
    ( one_one_nat
    = ( suc @ zero_zero_nat ) ) ).

% One_nat_def
thf(fact_916_Suc__eq__plus1,axiom,
    ( suc
    = ( ^ [N2: nat] : ( plus_plus_nat @ N2 @ one_one_nat ) ) ) ).

% Suc_eq_plus1
thf(fact_917_plus__1__eq__Suc,axiom,
    ( ( plus_plus_nat @ one_one_nat )
    = suc ) ).

% plus_1_eq_Suc
thf(fact_918_Suc__eq__plus1__left,axiom,
    ( suc
    = ( plus_plus_nat @ one_one_nat ) ) ).

% Suc_eq_plus1_left
thf(fact_919_diff__Suc__eq__diff__pred,axiom,
    ! [M: nat,N: nat] :
      ( ( minus_minus_nat @ M @ ( suc @ N ) )
      = ( minus_minus_nat @ ( minus_minus_nat @ M @ one_one_nat ) @ N ) ) ).

% diff_Suc_eq_diff_pred
thf(fact_920_Suc__sub,axiom,
    ! [N: nat,M: nat] :
      ( ( ( suc @ N )
        = M )
     => ( N
        = ( minus_minus_nat @ M @ one_one_nat ) ) ) ).

% Suc_sub
thf(fact_921_butlast__append,axiom,
    ! [Ys: list_a,Xs: list_a] :
      ( ( ( Ys = nil_a )
       => ( ( butlast_a @ ( append_a @ Xs @ Ys ) )
          = ( butlast_a @ Xs ) ) )
      & ( ( Ys != nil_a )
       => ( ( butlast_a @ ( append_a @ Xs @ Ys ) )
          = ( append_a @ Xs @ ( butlast_a @ Ys ) ) ) ) ) ).

% butlast_append
thf(fact_922_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_923_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_924_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_925_butlast__power,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( compow6514914278795418604st_nat @ N @ butlast_nat @ Xs )
      = ( take_nat @ ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ N ) @ Xs ) ) ).

% butlast_power
thf(fact_926_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_927_Suc__diff__eq__diff__pred,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( minus_minus_nat @ ( suc @ M ) @ N )
        = ( minus_minus_nat @ M @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ).

% Suc_diff_eq_diff_pred
thf(fact_928_add__eq__if,axiom,
    ( plus_plus_nat
    = ( ^ [M2: nat,N2: nat] : ( if_nat @ ( M2 = zero_zero_nat ) @ N2 @ ( suc @ ( plus_plus_nat @ ( minus_minus_nat @ M2 @ one_one_nat ) @ N2 ) ) ) ) ) ).

% add_eq_if
thf(fact_929_nth__Cons_H,axiom,
    ! [N: nat,X: nat,Xs: list_nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ N )
          = X ) )
      & ( ( N != zero_zero_nat )
       => ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ N )
          = ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) ) ) ) ) ).

% nth_Cons'
thf(fact_930_length__one__hd,axiom,
    ! [Xs: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = one_one_nat )
     => ( Xs
        = ( cons_nat @ ( hd_nat @ Xs ) @ nil_nat ) ) ) ).

% length_one_hd
thf(fact_931_enumerate__append__eq,axiom,
    ! [N: nat,Xs: list_a,Ys: list_a] :
      ( ( enumerate_a @ N @ ( append_a @ Xs @ Ys ) )
      = ( append1694031006427026248_nat_a @ ( enumerate_a @ N @ Xs ) @ ( enumerate_a @ ( plus_plus_nat @ N @ ( size_size_list_a @ Xs ) ) @ Ys ) ) ) ).

% enumerate_append_eq
thf(fact_932_enumerate__append__eq,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat] :
      ( ( enumerate_nat @ N @ ( append_nat @ Xs @ Ys ) )
      = ( append985823374593552924at_nat @ ( enumerate_nat @ N @ Xs ) @ ( enumerate_nat @ ( plus_plus_nat @ N @ ( size_size_list_nat @ Xs ) ) @ Ys ) ) ) ).

% enumerate_append_eq
thf(fact_933_snoc__eq__iff__butlast,axiom,
    ! [Xs: list_a,X: a,Ys: list_a] :
      ( ( ( append_a @ Xs @ ( cons_a @ X @ nil_a ) )
        = Ys )
      = ( ( Ys != nil_a )
        & ( ( butlast_a @ Ys )
          = Xs )
        & ( ( last_a @ Ys )
          = X ) ) ) ).

% snoc_eq_iff_butlast
thf(fact_934_nth__non__equal__first__eq,axiom,
    ! [X: nat,Y: nat,Xs: list_nat,N: nat] :
      ( ( X != Y )
     => ( ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ N )
          = Y )
        = ( ( ( nth_nat @ Xs @ ( minus_minus_nat @ N @ one_one_nat ) )
            = Y )
          & ( ord_less_nat @ zero_zero_nat @ N ) ) ) ) ).

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

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

% rev_update
thf(fact_937_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_938_take__last,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( take_a @ one_one_nat @ ( rev_a @ Xs ) )
        = ( cons_a @ ( last_a @ Xs ) @ nil_a ) ) ) ).

% take_last
thf(fact_939_last__list__update,axiom,
    ! [Xs: list_nat,K: nat,X: nat] :
      ( ( Xs != nil_nat )
     => ( ( ( K
            = ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
         => ( ( last_nat @ ( list_update_nat @ Xs @ K @ X ) )
            = X ) )
        & ( ( K
           != ( minus_minus_nat @ ( size_size_list_nat @ Xs ) @ one_one_nat ) )
         => ( ( last_nat @ ( list_update_nat @ Xs @ K @ X ) )
            = ( last_nat @ Xs ) ) ) ) ) ).

% last_list_update
thf(fact_940_last__drop__rev,axiom,
    ! [Xs: list_a] :
      ( ( Xs != nil_a )
     => ( ( cons_a @ ( last_a @ Xs ) @ ( drop_a @ one_one_nat @ ( rev_a @ Xs ) ) )
        = ( rev_a @ Xs ) ) ) ).

% last_drop_rev
thf(fact_941_nth__zip,axiom,
    ! [I: nat,Xs: list_num,Ys: list_num] :
      ( ( ord_less_nat @ I @ ( size_size_list_num @ Xs ) )
     => ( ( ord_less_nat @ I @ ( size_size_list_num @ Ys ) )
       => ( ( nth_Pr6456567536196504476um_num @ ( zip_num_num @ Xs @ Ys ) @ I )
          = ( product_Pair_num_num @ ( nth_num @ Xs @ I ) @ ( nth_num @ Ys @ I ) ) ) ) ) ).

% nth_zip
thf(fact_942_nth__zip,axiom,
    ! [I: nat,Xs: list_int,Ys: list_int] :
      ( ( ord_less_nat @ I @ ( size_size_list_int @ Xs ) )
     => ( ( ord_less_nat @ I @ ( size_size_list_int @ Ys ) )
       => ( ( nth_Pr4439495888332055232nt_int @ ( zip_int_int @ Xs @ Ys ) @ I )
          = ( product_Pair_int_int @ ( nth_int @ Xs @ I ) @ ( nth_int @ Ys @ I ) ) ) ) ) ).

% nth_zip
thf(fact_943_nth__zip,axiom,
    ! [I: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ord_less_nat @ I @ ( size_size_list_nat @ Xs ) )
     => ( ( ord_less_nat @ I @ ( size_size_list_nat @ Ys ) )
       => ( ( nth_Pr7617993195940197384at_nat @ ( zip_nat_nat @ Xs @ Ys ) @ I )
          = ( product_Pair_nat_nat @ ( nth_nat @ Xs @ I ) @ ( nth_nat @ Ys @ I ) ) ) ) ) ).

% nth_zip
thf(fact_944_listrel__iff__nth,axiom,
    ! [Xs: list_num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel_num_num @ R ) )
      = ( ( ( size_size_list_num @ Xs )
          = ( size_size_list_num @ Ys ) )
        & ! [N2: nat] :
            ( ( ord_less_nat @ N2 @ ( size_size_list_num @ Xs ) )
           => ( member7279096912039735102um_num @ ( product_Pair_num_num @ ( nth_num @ Xs @ N2 ) @ ( nth_num @ Ys @ N2 ) ) @ R ) ) ) ) ).

% listrel_iff_nth
thf(fact_945_listrel__iff__nth,axiom,
    ! [Xs: list_int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel_int_int @ R ) )
      = ( ( ( size_size_list_int @ Xs )
          = ( size_size_list_int @ Ys ) )
        & ! [N2: nat] :
            ( ( ord_less_nat @ N2 @ ( size_size_list_int @ Xs ) )
           => ( member5262025264175285858nt_int @ ( product_Pair_int_int @ ( nth_int @ Xs @ N2 ) @ ( nth_int @ Ys @ N2 ) ) @ R ) ) ) ) ).

% listrel_iff_nth
thf(fact_946_listrel__iff__nth,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel_nat_nat @ R ) )
      = ( ( ( size_size_list_nat @ Xs )
          = ( size_size_list_nat @ Ys ) )
        & ! [N2: nat] :
            ( ( ord_less_nat @ N2 @ ( size_size_list_nat @ Xs ) )
           => ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ ( nth_nat @ Xs @ N2 ) @ ( nth_nat @ Ys @ N2 ) ) @ R ) ) ) ) ).

% listrel_iff_nth
thf(fact_947_distinct__adj__append__iff,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys ) )
      = ( ( distinct_adj_a @ Xs )
        & ( distinct_adj_a @ Ys )
        & ( ( Xs = nil_a )
          | ( Ys = nil_a )
          | ( ( last_a @ Xs )
           != ( hd_a @ Ys ) ) ) ) ) ).

% distinct_adj_append_iff
thf(fact_948_distinct__adj__rev,axiom,
    ! [Xs: list_a] :
      ( ( distinct_adj_a @ ( rev_a @ Xs ) )
      = ( distinct_adj_a @ Xs ) ) ).

% distinct_adj_rev
thf(fact_949_zip__replicate,axiom,
    ! [I: nat,X: num,J: nat,Y: num] :
      ( ( zip_num_num @ ( replicate_num @ I @ X ) @ ( replicate_num @ J @ Y ) )
      = ( replic3074447376738086997um_num @ ( ord_min_nat @ I @ J ) @ ( product_Pair_num_num @ X @ Y ) ) ) ).

% zip_replicate
thf(fact_950_zip__replicate,axiom,
    ! [I: nat,X: nat,J: nat,Y: nat] :
      ( ( zip_nat_nat @ ( replicate_nat @ I @ X ) @ ( replicate_nat @ J @ Y ) )
      = ( replic4235873036481779905at_nat @ ( ord_min_nat @ I @ J ) @ ( product_Pair_nat_nat @ X @ Y ) ) ) ).

% zip_replicate
thf(fact_951_zip__replicate,axiom,
    ! [I: nat,X: int,J: nat,Y: int] :
      ( ( zip_int_int @ ( replicate_int @ I @ X ) @ ( replicate_int @ J @ Y ) )
      = ( replic1057375728873637753nt_int @ ( ord_min_nat @ I @ J ) @ ( product_Pair_int_int @ X @ Y ) ) ) ).

% zip_replicate
thf(fact_952_zip__Cons__Cons,axiom,
    ! [X: num,Xs: list_num,Y: num,Ys: list_num] :
      ( ( zip_num_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ Y @ Ys ) )
      = ( cons_P5351470506836119883um_num @ ( product_Pair_num_num @ X @ Y ) @ ( zip_num_num @ Xs @ Ys ) ) ) ).

% zip_Cons_Cons
thf(fact_953_zip__Cons__Cons,axiom,
    ! [X: nat,Xs: list_nat,Y: nat,Ys: list_nat] :
      ( ( zip_nat_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) )
      = ( cons_P6512896166579812791at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ ( zip_nat_nat @ Xs @ Ys ) ) ) ).

% zip_Cons_Cons
thf(fact_954_zip__Cons__Cons,axiom,
    ! [X: int,Xs: list_int,Y: int,Ys: list_int] :
      ( ( zip_int_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ Y @ Ys ) )
      = ( cons_P3334398858971670639nt_int @ ( product_Pair_int_int @ X @ Y ) @ ( zip_int_int @ Xs @ Ys ) ) ) ).

% zip_Cons_Cons
thf(fact_955_zip__append,axiom,
    ! [Xs: list_a,Us: list_a,Ys: list_a,Vs: list_a] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Us ) )
     => ( ( zip_a_a @ ( append_a @ Xs @ Ys ) @ ( append_a @ Us @ Vs ) )
        = ( append5335208819046833346od_a_a @ ( zip_a_a @ Xs @ Us ) @ ( zip_a_a @ Ys @ Vs ) ) ) ) ).

% zip_append
thf(fact_956_zip__append,axiom,
    ! [Xs: list_a,Us: list_nat,Ys: list_a,Vs: list_nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Us ) )
     => ( ( zip_a_nat @ ( append_a @ Xs @ Ys ) @ ( append_nat @ Us @ Vs ) )
        = ( append7679239579558125090_a_nat @ ( zip_a_nat @ Xs @ Us ) @ ( zip_a_nat @ Ys @ Vs ) ) ) ) ).

% zip_append
thf(fact_957_zip__append,axiom,
    ! [Xs: list_nat,Us: list_a,Ys: list_nat,Vs: list_a] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Us ) )
     => ( ( zip_nat_a @ ( append_nat @ Xs @ Ys ) @ ( append_a @ Us @ Vs ) )
        = ( append1694031006427026248_nat_a @ ( zip_nat_a @ Xs @ Us ) @ ( zip_nat_a @ Ys @ Vs ) ) ) ) ).

% zip_append
thf(fact_958_zip__append,axiom,
    ! [Xs: list_nat,Us: list_nat,Ys: list_nat,Vs: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Us ) )
     => ( ( zip_nat_nat @ ( append_nat @ Xs @ Ys ) @ ( append_nat @ Us @ Vs ) )
        = ( append985823374593552924at_nat @ ( zip_nat_nat @ Xs @ Us ) @ ( zip_nat_nat @ Ys @ Vs ) ) ) ) ).

% zip_append
thf(fact_959_length__zip,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( size_s5460976970255530739at_nat @ ( zip_nat_nat @ Xs @ Ys ) )
      = ( ord_min_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) ) ).

% length_zip
thf(fact_960_zip__eq__ConsE,axiom,
    ! [Xs: list_num,Ys: list_num,Xy: product_prod_num_num,Xys: list_P3744719386663036955um_num] :
      ( ( ( zip_num_num @ Xs @ Ys )
        = ( cons_P5351470506836119883um_num @ Xy @ Xys ) )
     => ~ ! [X5: num,Xs3: list_num] :
            ( ( Xs
              = ( cons_num @ X5 @ Xs3 ) )
           => ! [Y5: num,Ys6: list_num] :
                ( ( Ys
                  = ( cons_num @ Y5 @ Ys6 ) )
               => ( ( Xy
                    = ( product_Pair_num_num @ X5 @ Y5 ) )
                 => ( Xys
                   != ( zip_num_num @ Xs3 @ Ys6 ) ) ) ) ) ) ).

% zip_eq_ConsE
thf(fact_961_zip__eq__ConsE,axiom,
    ! [Xs: list_nat,Ys: list_nat,Xy: product_prod_nat_nat,Xys: list_P6011104703257516679at_nat] :
      ( ( ( zip_nat_nat @ Xs @ Ys )
        = ( cons_P6512896166579812791at_nat @ Xy @ Xys ) )
     => ~ ! [X5: nat,Xs3: list_nat] :
            ( ( Xs
              = ( cons_nat @ X5 @ Xs3 ) )
           => ! [Y5: nat,Ys6: list_nat] :
                ( ( Ys
                  = ( cons_nat @ Y5 @ Ys6 ) )
               => ( ( Xy
                    = ( product_Pair_nat_nat @ X5 @ Y5 ) )
                 => ( Xys
                   != ( zip_nat_nat @ Xs3 @ Ys6 ) ) ) ) ) ) ).

% zip_eq_ConsE
thf(fact_962_zip__eq__ConsE,axiom,
    ! [Xs: list_int,Ys: list_int,Xy: product_prod_int_int,Xys: list_P5707943133018811711nt_int] :
      ( ( ( zip_int_int @ Xs @ Ys )
        = ( cons_P3334398858971670639nt_int @ Xy @ Xys ) )
     => ~ ! [X5: int,Xs3: list_int] :
            ( ( Xs
              = ( cons_int @ X5 @ Xs3 ) )
           => ! [Y5: int,Ys6: list_int] :
                ( ( Ys
                  = ( cons_int @ Y5 @ Ys6 ) )
               => ( ( Xy
                    = ( product_Pair_int_int @ X5 @ Y5 ) )
                 => ( Xys
                   != ( zip_int_int @ Xs3 @ Ys6 ) ) ) ) ) ) ).

% zip_eq_ConsE
thf(fact_963_zip__rev,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( zip_a_a @ ( rev_a @ Xs ) @ ( rev_a @ Ys ) )
        = ( rev_Product_prod_a_a @ ( zip_a_a @ Xs @ Ys ) ) ) ) ).

% zip_rev
thf(fact_964_zip__rev,axiom,
    ! [Xs: list_a,Ys: list_nat] :
      ( ( ( size_size_list_a @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( zip_a_nat @ ( rev_a @ Xs ) @ ( rev_nat @ Ys ) )
        = ( rev_Pr1328451580582734999_a_nat @ ( zip_a_nat @ Xs @ Ys ) ) ) ) ).

% zip_rev
thf(fact_965_zip__rev,axiom,
    ! [Xs: list_nat,Ys: list_a] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_a @ Ys ) )
     => ( ( zip_nat_a @ ( rev_nat @ Xs ) @ ( rev_a @ Ys ) )
        = ( rev_Pr4566615044306411965_nat_a @ ( zip_nat_a @ Xs @ Ys ) ) ) ) ).

% zip_rev
thf(fact_966_zip__rev,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) )
     => ( ( zip_nat_nat @ ( rev_nat @ Xs ) @ ( rev_nat @ Ys ) )
        = ( rev_Pr6102188148953555047at_nat @ ( zip_nat_nat @ Xs @ Ys ) ) ) ) ).

% zip_rev
thf(fact_967_zip__update,axiom,
    ! [Xs: list_num,I: nat,X: num,Ys: list_num,Y: num] :
      ( ( zip_num_num @ ( list_update_num @ Xs @ I @ X ) @ ( list_update_num @ Ys @ I @ Y ) )
      = ( list_u5019416030170028035um_num @ ( zip_num_num @ Xs @ Ys ) @ I @ ( product_Pair_num_num @ X @ Y ) ) ) ).

% zip_update
thf(fact_968_zip__update,axiom,
    ! [Xs: list_nat,I: nat,X: nat,Ys: list_nat,Y: nat] :
      ( ( zip_nat_nat @ ( list_update_nat @ Xs @ I @ X ) @ ( list_update_nat @ Ys @ I @ Y ) )
      = ( list_u6180841689913720943at_nat @ ( zip_nat_nat @ Xs @ Ys ) @ I @ ( product_Pair_nat_nat @ X @ Y ) ) ) ).

% zip_update
thf(fact_969_zip__update,axiom,
    ! [Xs: list_int,I: nat,X: int,Ys: list_int,Y: int] :
      ( ( zip_int_int @ ( list_update_int @ Xs @ I @ X ) @ ( list_update_int @ Ys @ I @ Y ) )
      = ( list_u3002344382305578791nt_int @ ( zip_int_int @ Xs @ Ys ) @ I @ ( product_Pair_int_int @ X @ Y ) ) ) ).

% zip_update
thf(fact_970_distinct__adj__appendD2,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys ) )
     => ( distinct_adj_a @ Ys ) ) ).

% distinct_adj_appendD2
thf(fact_971_distinct__adj__appendD1,axiom,
    ! [Xs: list_a,Ys: list_a] :
      ( ( distinct_adj_a @ ( append_a @ Xs @ Ys ) )
     => ( distinct_adj_a @ Xs ) ) ).

% distinct_adj_appendD1
thf(fact_972_listrel__eq__len,axiom,
    ! [Xs: list_nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel_nat_nat @ R ) )
     => ( ( size_size_list_nat @ Xs )
        = ( size_size_list_nat @ Ys ) ) ) ).

% listrel_eq_len
thf(fact_973_hd__zip,axiom,
    ! [Xs: list_num,Ys: list_num] :
      ( ( Xs != nil_num )
     => ( ( Ys != nil_num )
       => ( ( hd_Pro2299184553731507200um_num @ ( zip_num_num @ Xs @ Ys ) )
          = ( product_Pair_num_num @ ( hd_num @ Xs ) @ ( hd_num @ Ys ) ) ) ) ) ).

% hd_zip
thf(fact_974_hd__zip,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( Ys != nil_nat )
       => ( ( hd_Pro3460610213475200108at_nat @ ( zip_nat_nat @ Xs @ Ys ) )
          = ( product_Pair_nat_nat @ ( hd_nat @ Xs ) @ ( hd_nat @ Ys ) ) ) ) ) ).

% hd_zip
thf(fact_975_hd__zip,axiom,
    ! [Xs: list_int,Ys: list_int] :
      ( ( Xs != nil_int )
     => ( ( Ys != nil_int )
       => ( ( hd_Pro282112905867057956nt_int @ ( zip_int_int @ Xs @ Ys ) )
          = ( product_Pair_int_int @ ( hd_int @ Xs ) @ ( hd_int @ Ys ) ) ) ) ) ).

% hd_zip
thf(fact_976_zip__obtain__same__length,axiom,
    ! [Xs: list_nat,Ys: list_nat,P: list_P6011104703257516679at_nat > $o] :
      ( ! [Zs2: list_nat,Ws2: list_nat,N3: nat] :
          ( ( ( size_size_list_nat @ Zs2 )
            = ( size_size_list_nat @ Ws2 ) )
         => ( ( N3
              = ( ord_min_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) )
           => ( ( Zs2
                = ( take_nat @ N3 @ Xs ) )
             => ( ( Ws2
                  = ( take_nat @ N3 @ Ys ) )
               => ( P @ ( zip_nat_nat @ Zs2 @ Ws2 ) ) ) ) ) )
     => ( P @ ( zip_nat_nat @ Xs @ Ys ) ) ) ).

% zip_obtain_same_length
thf(fact_977_listrel_OCons,axiom,
    ! [X: num,Y: num,R: set_Pr8218934625190621173um_num,Xs: list_num,Ys: list_num] :
      ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X @ Y ) @ R )
     => ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ Ys ) @ ( listrel_num_num @ R ) )
       => ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ X @ Xs ) @ ( cons_num @ Y @ Ys ) ) @ ( listrel_num_num @ R ) ) ) ) ).

% listrel.Cons
thf(fact_978_listrel_OCons,axiom,
    ! [X: nat,Y: nat,R: set_Pr1261947904930325089at_nat,Xs: list_nat,Ys: list_nat] :
      ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X @ Y ) @ R )
     => ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ Ys ) @ ( listrel_nat_nat @ R ) )
       => ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ X @ Xs ) @ ( cons_nat @ Y @ Ys ) ) @ ( listrel_nat_nat @ R ) ) ) ) ).

% listrel.Cons
thf(fact_979_listrel_OCons,axiom,
    ! [X: int,Y: int,R: set_Pr958786334691620121nt_int,Xs: list_int,Ys: list_int] :
      ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X @ Y ) @ R )
     => ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ Ys ) @ ( listrel_int_int @ R ) )
       => ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ X @ Xs ) @ ( cons_int @ Y @ Ys ) ) @ ( listrel_int_int @ R ) ) ) ) ).

% listrel.Cons
thf(fact_980_listrel__Cons1,axiom,
    ! [Y: num,Ys: list_num,Xs: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ ( cons_num @ Y @ Ys ) @ Xs ) @ ( listrel_num_num @ R ) )
     => ~ ! [Y5: num,Ys4: list_num] :
            ( ( Xs
              = ( cons_num @ Y5 @ Ys4 ) )
           => ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ Y @ Y5 ) @ R )
             => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Ys @ Ys4 ) @ ( listrel_num_num @ R ) ) ) ) ) ).

% listrel_Cons1
thf(fact_981_listrel__Cons1,axiom,
    ! [Y: nat,Ys: list_nat,Xs: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ ( cons_nat @ Y @ Ys ) @ Xs ) @ ( listrel_nat_nat @ R ) )
     => ~ ! [Y5: nat,Ys4: list_nat] :
            ( ( Xs
              = ( cons_nat @ Y5 @ Ys4 ) )
           => ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ Y @ Y5 ) @ R )
             => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Ys @ Ys4 ) @ ( listrel_nat_nat @ R ) ) ) ) ) ).

% listrel_Cons1
thf(fact_982_listrel__Cons1,axiom,
    ! [Y: int,Ys: list_int,Xs: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ ( cons_int @ Y @ Ys ) @ Xs ) @ ( listrel_int_int @ R ) )
     => ~ ! [Y5: int,Ys4: list_int] :
            ( ( Xs
              = ( cons_int @ Y5 @ Ys4 ) )
           => ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ Y @ Y5 ) @ R )
             => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Ys @ Ys4 ) @ ( listrel_int_int @ R ) ) ) ) ) ).

% listrel_Cons1
thf(fact_983_listrel__Cons2,axiom,
    ! [Xs: list_num,Y: num,Ys: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs @ ( cons_num @ Y @ Ys ) ) @ ( listrel_num_num @ R ) )
     => ~ ! [X5: num,Xs2: list_num] :
            ( ( Xs
              = ( cons_num @ X5 @ Xs2 ) )
           => ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y ) @ R )
             => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs2 @ Ys ) @ ( listrel_num_num @ R ) ) ) ) ) ).

% listrel_Cons2
thf(fact_984_listrel__Cons2,axiom,
    ! [Xs: list_nat,Y: nat,Ys: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs @ ( cons_nat @ Y @ Ys ) ) @ ( listrel_nat_nat @ R ) )
     => ~ ! [X5: nat,Xs2: list_nat] :
            ( ( Xs
              = ( cons_nat @ X5 @ Xs2 ) )
           => ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y ) @ R )
             => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs2 @ Ys ) @ ( listrel_nat_nat @ R ) ) ) ) ) ).

% listrel_Cons2
thf(fact_985_listrel__Cons2,axiom,
    ! [Xs: list_int,Y: int,Ys: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs @ ( cons_int @ Y @ Ys ) ) @ ( listrel_int_int @ R ) )
     => ~ ! [X5: int,Xs2: list_int] :
            ( ( Xs
              = ( cons_int @ X5 @ Xs2 ) )
           => ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y ) @ R )
             => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs2 @ Ys ) @ ( listrel_int_int @ R ) ) ) ) ) ).

% listrel_Cons2
thf(fact_986_last__zip,axiom,
    ! [Xs: list_num,Ys: list_num] :
      ( ( Xs != nil_num )
     => ( ( Ys != nil_num )
       => ( ( ( size_size_list_num @ Xs )
            = ( size_size_list_num @ Ys ) )
         => ( ( last_P5322758169597293236um_num @ ( zip_num_num @ Xs @ Ys ) )
            = ( product_Pair_num_num @ ( last_num @ Xs ) @ ( last_num @ Ys ) ) ) ) ) ) ).

% last_zip
thf(fact_987_last__zip,axiom,
    ! [Xs: list_int,Ys: list_int] :
      ( ( Xs != nil_int )
     => ( ( Ys != nil_int )
       => ( ( ( size_size_list_int @ Xs )
            = ( size_size_list_int @ Ys ) )
         => ( ( last_P3305686521732843992nt_int @ ( zip_int_int @ Xs @ Ys ) )
            = ( product_Pair_int_int @ ( last_int @ Xs ) @ ( last_int @ Ys ) ) ) ) ) ) ).

% last_zip
thf(fact_988_last__zip,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( Xs != nil_nat )
     => ( ( Ys != nil_nat )
       => ( ( ( size_size_list_nat @ Xs )
            = ( size_size_list_nat @ Ys ) )
         => ( ( last_P6484183829340986144at_nat @ ( zip_nat_nat @ Xs @ Ys ) )
            = ( product_Pair_nat_nat @ ( last_nat @ Xs ) @ ( last_nat @ Ys ) ) ) ) ) ) ).

% last_zip
thf(fact_989_listrel_Ocases,axiom,
    ! [A1: list_num,A22: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ A1 @ A22 ) @ ( listrel_num_num @ R ) )
     => ( ( ( A1 = nil_num )
         => ( A22 != nil_num ) )
       => ~ ! [X5: num,Y5: num,Xs2: list_num] :
              ( ( A1
                = ( cons_num @ X5 @ Xs2 ) )
             => ! [Ys4: list_num] :
                  ( ( A22
                    = ( cons_num @ Y5 @ Ys4 ) )
                 => ( ( member7279096912039735102um_num @ ( product_Pair_num_num @ X5 @ Y5 ) @ R )
                   => ~ ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs2 @ Ys4 ) @ ( listrel_num_num @ R ) ) ) ) ) ) ) ).

% listrel.cases
thf(fact_990_listrel_Ocases,axiom,
    ! [A1: list_nat,A22: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ A1 @ A22 ) @ ( listrel_nat_nat @ R ) )
     => ( ( ( A1 = nil_nat )
         => ( A22 != nil_nat ) )
       => ~ ! [X5: nat,Y5: nat,Xs2: list_nat] :
              ( ( A1
                = ( cons_nat @ X5 @ Xs2 ) )
             => ! [Ys4: list_nat] :
                  ( ( A22
                    = ( cons_nat @ Y5 @ Ys4 ) )
                 => ( ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X5 @ Y5 ) @ R )
                   => ~ ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs2 @ Ys4 ) @ ( listrel_nat_nat @ R ) ) ) ) ) ) ) ).

% listrel.cases
thf(fact_991_listrel_Ocases,axiom,
    ! [A1: list_int,A22: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ A1 @ A22 ) @ ( listrel_int_int @ R ) )
     => ( ( ( A1 = nil_int )
         => ( A22 != nil_int ) )
       => ~ ! [X5: int,Y5: int,Xs2: list_int] :
              ( ( A1
                = ( cons_int @ X5 @ Xs2 ) )
             => ! [Ys4: list_int] :
                  ( ( A22
                    = ( cons_int @ Y5 @ Ys4 ) )
                 => ( ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X5 @ Y5 ) @ R )
                   => ~ ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs2 @ Ys4 ) @ ( listrel_int_int @ R ) ) ) ) ) ) ) ).

% listrel.cases
thf(fact_992_listrel_Osimps,axiom,
    ! [A1: list_num,A22: list_num,R: set_Pr8218934625190621173um_num] :
      ( ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ A1 @ A22 ) @ ( listrel_num_num @ R ) )
      = ( ( ( A1 = nil_num )
          & ( A22 = nil_num ) )
        | ? [X4: num,Y4: num,Xs4: list_num,Ys2: list_num] :
            ( ( A1
              = ( cons_num @ X4 @ Xs4 ) )
            & ( A22
              = ( cons_num @ Y4 @ Ys2 ) )
            & ( member7279096912039735102um_num @ ( product_Pair_num_num @ X4 @ Y4 ) @ R )
            & ( member6410205366452994526st_num @ ( produc6756297649562724717st_num @ Xs4 @ Ys2 ) @ ( listrel_num_num @ R ) ) ) ) ) ).

% listrel.simps
thf(fact_993_listrel_Osimps,axiom,
    ! [A1: list_nat,A22: list_nat,R: set_Pr1261947904930325089at_nat] :
      ( ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ A1 @ A22 ) @ ( listrel_nat_nat @ R ) )
      = ( ( ( A1 = nil_nat )
          & ( A22 = nil_nat ) )
        | ? [X4: nat,Y4: nat,Xs4: list_nat,Ys2: list_nat] :
            ( ( A1
              = ( cons_nat @ X4 @ Xs4 ) )
            & ( A22
              = ( cons_nat @ Y4 @ Ys2 ) )
            & ( member8440522571783428010at_nat @ ( product_Pair_nat_nat @ X4 @ Y4 ) @ R )
            & ( member7340969449405702474st_nat @ ( produc2694037385005941721st_nat @ Xs4 @ Ys2 ) @ ( listrel_nat_nat @ R ) ) ) ) ) ).

% listrel.simps
thf(fact_994_listrel_Osimps,axiom,
    ! [A1: list_int,A22: list_int,R: set_Pr958786334691620121nt_int] :
      ( ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ A1 @ A22 ) @ ( listrel_int_int @ R ) )
      = ( ( ( A1 = nil_int )
          & ( A22 = nil_int ) )
        | ? [X4: int,Y4: int,Xs4: list_int,Ys2: list_int] :
            ( ( A1
              = ( cons_int @ X4 @ Xs4 ) )
            & ( A22
              = ( cons_int @ Y4 @ Ys2 ) )
            & ( member5262025264175285858nt_int @ ( product_Pair_int_int @ X4 @ Y4 ) @ R )
            & ( member6698963635872716290st_int @ ( produc364263696895485585st_int @ Xs4 @ Ys2 ) @ ( listrel_int_int @ R ) ) ) ) ) ).

% listrel.simps
thf(fact_995_sorted__rev__iff__nth__mono,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( rev_nat @ Xs ) )
      = ( ! [I3: nat,J3: nat] :
            ( ( ord_less_eq_nat @ I3 @ J3 )
           => ( ( ord_less_nat @ J3 @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ J3 ) @ ( nth_nat @ Xs @ I3 ) ) ) ) ) ) ).

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

% sorted_rev_nth_mono
thf(fact_997_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_998_sorted__wrt_Osimps_I1_J,axiom,
    ! [P: nat > nat > $o] : ( sorted_wrt_nat @ P @ nil_nat ) ).

% sorted_wrt.simps(1)
thf(fact_999_sorted__wrt1,axiom,
    ! [P: nat > nat > $o,X: nat] : ( sorted_wrt_nat @ P @ ( cons_nat @ X @ nil_nat ) ) ).

% sorted_wrt1
thf(fact_1000_strict__sorted__simps_I1_J,axiom,
    sorted_wrt_nat @ ord_less_nat @ nil_nat ).

% strict_sorted_simps(1)
thf(fact_1001_sorted0,axiom,
    sorted_wrt_nat @ ord_less_eq_nat @ nil_nat ).

% sorted0
thf(fact_1002_sorted2,axiom,
    ! [X: nat,Y: nat,Zs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ X @ ( cons_nat @ Y @ Zs ) ) )
      = ( ( ord_less_eq_nat @ X @ Y )
        & ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ Y @ Zs ) ) ) ) ).

% sorted2
thf(fact_1003_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_1004_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_1005_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_1006_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_1007_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_1008_sorted__replicate,axiom,
    ! [N: nat,X: nat] : ( sorted_wrt_nat @ ord_less_eq_nat @ ( replicate_nat @ N @ X ) ) ).

% sorted_replicate
thf(fact_1009_sorted__tl,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( sorted_wrt_nat @ ord_less_eq_nat @ ( tl_nat @ Xs ) ) ) ).

% sorted_tl
thf(fact_1010_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_1011_sorted1,axiom,
    ! [X: nat] : ( sorted_wrt_nat @ ord_less_eq_nat @ ( cons_nat @ X @ nil_nat ) ) ).

% sorted1
thf(fact_1012_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_1013_sorted__wrt__nth__less,axiom,
    ! [P: nat > nat > $o,Xs: list_nat,I: nat,J: nat] :
      ( ( sorted_wrt_nat @ P @ Xs )
     => ( ( ord_less_nat @ I @ J )
       => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
         => ( P @ ( nth_nat @ Xs @ I ) @ ( nth_nat @ Xs @ J ) ) ) ) ) ).

% sorted_wrt_nth_less
thf(fact_1014_sorted__wrt__iff__nth__less,axiom,
    ( sorted_wrt_nat
    = ( ^ [P3: nat > nat > $o,Xs4: list_nat] :
        ! [I3: nat,J3: nat] :
          ( ( ord_less_nat @ I3 @ J3 )
         => ( ( ord_less_nat @ J3 @ ( size_size_list_nat @ Xs4 ) )
           => ( P3 @ ( nth_nat @ Xs4 @ I3 ) @ ( nth_nat @ Xs4 @ J3 ) ) ) ) ) ) ).

% sorted_wrt_iff_nth_less
thf(fact_1015_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_1016_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_1017_sorted__iff__nth__mono__less,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I3: nat,J3: nat] :
            ( ( ord_less_nat @ I3 @ J3 )
           => ( ( ord_less_nat @ J3 @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I3 ) @ ( nth_nat @ Xs @ J3 ) ) ) ) ) ) ).

% sorted_iff_nth_mono_less
thf(fact_1018_sorted__iff__nth__Suc,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I3: nat] :
            ( ( ord_less_nat @ ( suc @ I3 ) @ ( size_size_list_nat @ Xs ) )
           => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I3 ) @ ( nth_nat @ Xs @ ( suc @ I3 ) ) ) ) ) ) ).

% sorted_iff_nth_Suc
thf(fact_1019_sorted__nth__mono,axiom,
    ! [Xs: list_nat,I: nat,J: nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
     => ( ( ord_less_eq_nat @ I @ J )
       => ( ( ord_less_nat @ J @ ( size_size_list_nat @ Xs ) )
         => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I ) @ ( nth_nat @ Xs @ J ) ) ) ) ) ).

% sorted_nth_mono
thf(fact_1020_sorted__iff__nth__mono,axiom,
    ! [Xs: list_nat] :
      ( ( sorted_wrt_nat @ ord_less_eq_nat @ Xs )
      = ( ! [I3: nat,J3: nat] :
            ( ( ord_less_eq_nat @ I3 @ J3 )
           => ( ( ord_less_nat @ J3 @ ( size_size_list_nat @ Xs ) )
             => ( ord_less_eq_nat @ ( nth_nat @ Xs @ I3 ) @ ( nth_nat @ Xs @ J3 ) ) ) ) ) ) ).

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

% sorted_rev_iff_nth_Suc
thf(fact_1022_nth__Cons__numeral,axiom,
    ! [X: nat,Xs: list_nat,V: num] :
      ( ( nth_nat @ ( cons_nat @ X @ Xs ) @ ( numeral_numeral_nat @ V ) )
      = ( nth_nat @ Xs @ ( minus_minus_nat @ ( numeral_numeral_nat @ V ) @ one_one_nat ) ) ) ).

% nth_Cons_numeral
thf(fact_1023_numeral__unfold__funpow,axiom,
    ( numeral_numeral_nat
    = ( ^ [K3: num] : ( compow_nat_nat @ ( numeral_numeral_nat @ K3 ) @ ( plus_plus_nat @ one_one_nat ) @ zero_zero_nat ) ) ) ).

% numeral_unfold_funpow
thf(fact_1024_numeral__unfold__funpow,axiom,
    ( numeral_numeral_int
    = ( ^ [K3: num] : ( compow_int_int @ ( numeral_numeral_nat @ K3 ) @ ( plus_plus_int @ one_one_int ) @ zero_zero_int ) ) ) ).

% numeral_unfold_funpow
thf(fact_1025_numeral__add__unfold__funpow,axiom,
    ! [K: num,A: nat] :
      ( ( plus_plus_nat @ ( numeral_numeral_nat @ K ) @ A )
      = ( compow_nat_nat @ ( numeral_numeral_nat @ K ) @ ( plus_plus_nat @ one_one_nat ) @ A ) ) ).

% numeral_add_unfold_funpow
thf(fact_1026_numeral__add__unfold__funpow,axiom,
    ! [K: num,A: int] :
      ( ( plus_plus_int @ ( numeral_numeral_int @ K ) @ A )
      = ( compow_int_int @ ( numeral_numeral_nat @ K ) @ ( plus_plus_int @ one_one_int ) @ A ) ) ).

% numeral_add_unfold_funpow
thf(fact_1027_step__4__pop__small__size__ok,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
             => ( states_size_ok_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) ) ) ) ) ) ) ) ).

% step_4_pop_small_size_ok
thf(fact_1028_step__4__pop__big__size__ok,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
             => ( states_size_ok_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) ) ) ) ) ) ) ) ).

% step_4_pop_big_size_ok
thf(fact_1029_Suc__numeral,axiom,
    ! [N: num] :
      ( ( suc @ ( numeral_numeral_nat @ N ) )
      = ( numeral_numeral_nat @ ( plus_plus_num @ N @ one ) ) ) ).

% Suc_numeral
thf(fact_1030_add__2__eq__Suc_H,axiom,
    ! [N: nat] :
      ( ( plus_plus_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
      = ( suc @ ( suc @ N ) ) ) ).

% add_2_eq_Suc'
thf(fact_1031_add__2__eq__Suc,axiom,
    ! [N: nat] :
      ( ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N )
      = ( suc @ ( suc @ N ) ) ) ).

% add_2_eq_Suc
thf(fact_1032_Suc__1,axiom,
    ( ( suc @ one_one_nat )
    = ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ).

% Suc_1
thf(fact_1033_step__4__remaining__steps__push__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
            = ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) ) ) ) ).

% step_4_remaining_steps_push_big
thf(fact_1034_step__4__remaining__steps__push__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
            = ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) ) ) ) ).

% step_4_remaining_steps_push_small
thf(fact_1035_numeral__2__eq__2,axiom,
    ( ( numeral_numeral_nat @ ( bit0 @ one ) )
    = ( suc @ ( suc @ zero_zero_nat ) ) ) ).

% numeral_2_eq_2
thf(fact_1036_less__2__cases,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
     => ( ( N = zero_zero_nat )
        | ( N
          = ( suc @ zero_zero_nat ) ) ) ) ).

% less_2_cases
thf(fact_1037_less__2__cases__iff,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
      = ( ( N = zero_zero_nat )
        | ( N
          = ( suc @ zero_zero_nat ) ) ) ) ).

% less_2_cases_iff
thf(fact_1038_num_Osize_I5_J,axiom,
    ! [X2: num] :
      ( ( size_size_num @ ( bit0 @ X2 ) )
      = ( plus_plus_nat @ ( size_size_num @ X2 ) @ ( suc @ zero_zero_nat ) ) ) ).

% num.size(5)
thf(fact_1039_numeral__1__eq__Suc__0,axiom,
    ( ( numeral_numeral_nat @ one )
    = ( suc @ zero_zero_nat ) ) ).

% numeral_1_eq_Suc_0
thf(fact_1040_Suc__nat__number__of__add,axiom,
    ! [V: num,N: nat] :
      ( ( suc @ ( plus_plus_nat @ ( numeral_numeral_nat @ V ) @ N ) )
      = ( plus_plus_nat @ ( numeral_numeral_nat @ ( plus_plus_num @ V @ one ) ) @ N ) ) ).

% Suc_nat_number_of_add
thf(fact_1041_step__4__push__big__size__ok,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
         => ( states_size_ok_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) ) @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) ) ) ) ) ) ) ).

% step_4_push_big_size_ok
thf(fact_1042_step__4__push__small__size__ok,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( states_size_ok_a @ ( states_a2 @ Dir @ Big @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
         => ( states_size_ok_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) ) @ ( type_r4519047461186610747ates_a @ ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) ) ) ) ) ) ) ).

% step_4_push_small_size_ok
thf(fact_1043_step__4__remaining__steps__pop__big,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) ) ) ) ) ) ).

% step_4_remaining_steps_pop_big
thf(fact_1044_step__4__remaining__steps__pop__small,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ord_less_eq_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) ) ) ) ) ) ).

% step_4_remaining_steps_pop_small
thf(fact_1045_step__4__pop__small__size__ok__2,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_small_size_ok_2
thf(fact_1046_step__4__pop__big__size__ok__1,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_1
thf(fact_1047_mult__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ( times_times_nat @ M @ K )
        = ( times_times_nat @ N @ K ) )
      = ( ( M = N )
        | ( K = zero_zero_nat ) ) ) ).

% mult_cancel2
thf(fact_1048_mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times_nat @ K @ M )
        = ( times_times_nat @ K @ N ) )
      = ( ( M = N )
        | ( K = zero_zero_nat ) ) ) ).

% mult_cancel1
thf(fact_1049_mult__0__right,axiom,
    ! [M: nat] :
      ( ( times_times_nat @ M @ zero_zero_nat )
      = zero_zero_nat ) ).

% mult_0_right
thf(fact_1050_mult__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times_nat @ M @ N )
        = zero_zero_nat )
      = ( ( M = zero_zero_nat )
        | ( N = zero_zero_nat ) ) ) ).

% mult_is_0
thf(fact_1051_nat__mult__eq__1__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times_nat @ M @ N )
        = one_one_nat )
      = ( ( M = one_one_nat )
        & ( N = one_one_nat ) ) ) ).

% nat_mult_eq_1_iff
thf(fact_1052_nat__1__eq__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( one_one_nat
        = ( times_times_nat @ M @ N ) )
      = ( ( M = one_one_nat )
        & ( N = one_one_nat ) ) ) ).

% nat_1_eq_mult_iff
thf(fact_1053_mult__eq__1__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times_nat @ M @ N )
        = ( suc @ zero_zero_nat ) )
      = ( ( M
          = ( suc @ zero_zero_nat ) )
        & ( N
          = ( suc @ zero_zero_nat ) ) ) ) ).

% mult_eq_1_iff
thf(fact_1054_one__eq__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( suc @ zero_zero_nat )
        = ( times_times_nat @ M @ N ) )
      = ( ( M
          = ( suc @ zero_zero_nat ) )
        & ( N
          = ( suc @ zero_zero_nat ) ) ) ) ).

% one_eq_mult_iff
thf(fact_1055_mult__less__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_nat @ ( times_times_nat @ M @ K ) @ ( times_times_nat @ N @ K ) )
      = ( ( ord_less_nat @ zero_zero_nat @ K )
        & ( ord_less_nat @ M @ N ) ) ) ).

% mult_less_cancel2
thf(fact_1056_nat__0__less__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ ( times_times_nat @ M @ N ) )
      = ( ( ord_less_nat @ zero_zero_nat @ M )
        & ( ord_less_nat @ zero_zero_nat @ N ) ) ) ).

% nat_0_less_mult_iff
thf(fact_1057_mult__Suc__right,axiom,
    ! [M: nat,N: nat] :
      ( ( times_times_nat @ M @ ( suc @ N ) )
      = ( plus_plus_nat @ M @ ( times_times_nat @ M @ N ) ) ) ).

% mult_Suc_right
thf(fact_1058_one__le__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ ( times_times_nat @ M @ N ) )
      = ( ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ M )
        & ( ord_less_eq_nat @ ( suc @ zero_zero_nat ) @ N ) ) ) ).

% one_le_mult_iff
thf(fact_1059_mult__le__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( times_times_nat @ M @ K ) @ ( times_times_nat @ N @ K ) )
      = ( ( ord_less_nat @ zero_zero_nat @ K )
       => ( ord_less_eq_nat @ M @ N ) ) ) ).

% mult_le_cancel2
thf(fact_1060_funpow__mult,axiom,
    ! [N: nat,M: nat,F: nat > nat] :
      ( ( compow_nat_nat @ N @ ( compow_nat_nat @ M @ F ) )
      = ( compow_nat_nat @ ( times_times_nat @ M @ N ) @ F ) ) ).

% funpow_mult
thf(fact_1061_Suc__mult__less__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_nat @ ( times_times_nat @ ( suc @ K ) @ M ) @ ( times_times_nat @ ( suc @ K ) @ N ) )
      = ( ord_less_nat @ M @ N ) ) ).

% Suc_mult_less_cancel1
thf(fact_1062_Suc__mult__le__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq_nat @ ( times_times_nat @ ( suc @ K ) @ M ) @ ( times_times_nat @ ( suc @ K ) @ N ) )
      = ( ord_less_eq_nat @ M @ N ) ) ).

% Suc_mult_le_cancel1
thf(fact_1063_nat__mult__min__left,axiom,
    ! [M: nat,N: nat,Q2: nat] :
      ( ( times_times_nat @ ( ord_min_nat @ M @ N ) @ Q2 )
      = ( ord_min_nat @ ( times_times_nat @ M @ Q2 ) @ ( times_times_nat @ N @ Q2 ) ) ) ).

% nat_mult_min_left
thf(fact_1064_nat__mult__min__right,axiom,
    ! [M: nat,N: nat,Q2: nat] :
      ( ( times_times_nat @ M @ ( ord_min_nat @ N @ Q2 ) )
      = ( ord_min_nat @ ( times_times_nat @ M @ N ) @ ( times_times_nat @ M @ Q2 ) ) ) ).

% nat_mult_min_right
thf(fact_1065_Suc__mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times_nat @ ( suc @ K ) @ M )
        = ( times_times_nat @ ( suc @ K ) @ N ) )
      = ( M = N ) ) ).

% Suc_mult_cancel1
thf(fact_1066_le__cube,axiom,
    ! [M: nat] : ( ord_less_eq_nat @ M @ ( times_times_nat @ M @ ( times_times_nat @ M @ M ) ) ) ).

% le_cube
thf(fact_1067_le__square,axiom,
    ! [M: nat] : ( ord_less_eq_nat @ M @ ( times_times_nat @ M @ M ) ) ).

% le_square
thf(fact_1068_mult__le__mono,axiom,
    ! [I: nat,J: nat,K: nat,L: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ( ord_less_eq_nat @ K @ L )
       => ( ord_less_eq_nat @ ( times_times_nat @ I @ K ) @ ( times_times_nat @ J @ L ) ) ) ) ).

% mult_le_mono
thf(fact_1069_mult__le__mono1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ord_less_eq_nat @ ( times_times_nat @ I @ K ) @ ( times_times_nat @ J @ K ) ) ) ).

% mult_le_mono1
thf(fact_1070_mult__le__mono2,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_eq_nat @ I @ J )
     => ( ord_less_eq_nat @ ( times_times_nat @ K @ I ) @ ( times_times_nat @ K @ J ) ) ) ).

% mult_le_mono2
thf(fact_1071_diff__mult__distrib,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( times_times_nat @ ( minus_minus_nat @ M @ N ) @ K )
      = ( minus_minus_nat @ ( times_times_nat @ M @ K ) @ ( times_times_nat @ N @ K ) ) ) ).

% diff_mult_distrib
thf(fact_1072_diff__mult__distrib2,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( times_times_nat @ K @ ( minus_minus_nat @ M @ N ) )
      = ( minus_minus_nat @ ( times_times_nat @ K @ M ) @ ( times_times_nat @ K @ N ) ) ) ).

% diff_mult_distrib2
thf(fact_1073_nat__mult__1__right,axiom,
    ! [N: nat] :
      ( ( times_times_nat @ N @ one_one_nat )
      = N ) ).

% nat_mult_1_right
thf(fact_1074_nat__mult__1,axiom,
    ! [N: nat] :
      ( ( times_times_nat @ one_one_nat @ N )
      = N ) ).

% nat_mult_1
thf(fact_1075_mult__0,axiom,
    ! [N: nat] :
      ( ( times_times_nat @ zero_zero_nat @ N )
      = zero_zero_nat ) ).

% mult_0
thf(fact_1076_add__mult__distrib2,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( times_times_nat @ K @ ( plus_plus_nat @ M @ N ) )
      = ( plus_plus_nat @ ( times_times_nat @ K @ M ) @ ( times_times_nat @ K @ N ) ) ) ).

% add_mult_distrib2
thf(fact_1077_add__mult__distrib,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( times_times_nat @ ( plus_plus_nat @ M @ N ) @ K )
      = ( plus_plus_nat @ ( times_times_nat @ M @ K ) @ ( times_times_nat @ N @ K ) ) ) ).

% add_mult_distrib
thf(fact_1078_mult__eq__self__implies__10,axiom,
    ! [M: nat,N: nat] :
      ( ( M
        = ( times_times_nat @ M @ N ) )
     => ( ( N = one_one_nat )
        | ( M = zero_zero_nat ) ) ) ).

% mult_eq_self_implies_10
thf(fact_1079_mult__Suc,axiom,
    ! [M: nat,N: nat] :
      ( ( times_times_nat @ ( suc @ M ) @ N )
      = ( plus_plus_nat @ N @ ( times_times_nat @ M @ N ) ) ) ).

% mult_Suc
thf(fact_1080_mult__less__mono1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_nat @ I @ J )
     => ( ( ord_less_nat @ zero_zero_nat @ K )
       => ( ord_less_nat @ ( times_times_nat @ I @ K ) @ ( times_times_nat @ J @ K ) ) ) ) ).

% mult_less_mono1
thf(fact_1081_mult__less__mono2,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less_nat @ I @ J )
     => ( ( ord_less_nat @ zero_zero_nat @ K )
       => ( ord_less_nat @ ( times_times_nat @ K @ I ) @ ( times_times_nat @ K @ J ) ) ) ) ).

% mult_less_mono2
thf(fact_1082_one__less__mult,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ N )
     => ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ M )
       => ( ord_less_nat @ ( suc @ zero_zero_nat ) @ ( times_times_nat @ M @ N ) ) ) ) ).

% one_less_mult
thf(fact_1083_n__less__m__mult__n,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ M )
       => ( ord_less_nat @ N @ ( times_times_nat @ M @ N ) ) ) ) ).

% n_less_m_mult_n
thf(fact_1084_n__less__n__mult__m,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ M )
       => ( ord_less_nat @ N @ ( times_times_nat @ N @ M ) ) ) ) ).

% n_less_n_mult_m
thf(fact_1085_mult__eq__if,axiom,
    ( times_times_nat
    = ( ^ [M2: nat,N2: nat] : ( if_nat @ ( M2 = zero_zero_nat ) @ zero_zero_nat @ ( plus_plus_nat @ N2 @ ( times_times_nat @ ( minus_minus_nat @ M2 @ one_one_nat ) @ N2 ) ) ) ) ) ).

% mult_eq_if
thf(fact_1086_step__size__ok__4,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big2 ) ) ) ) ) ) ).

% step_size_ok_4
thf(fact_1087_step__size__ok__3,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small2 ) ) ) ) ) ) ).

% step_size_ok_3
thf(fact_1088_step__4__push__big__size__ok__2,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big2 ) ) ) ) ) ) ) ).

% step_4_push_big_size_ok_2
thf(fact_1089_step__4__push__small__size__ok__2,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big2 ) ) ) ) ) ) ) ).

% step_4_push_small_size_ok_2
thf(fact_1090_step__4__push__big__size__ok__1,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small2 ) ) ) ) ) ) ) ).

% step_4_push_big_size_ok_1
thf(fact_1091_step__4__push__small__size__ok__1,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small2 ) ) ) ) ) ) ) ).

% step_4_push_small_size_ok_1
thf(fact_1092_step__4__pop__big__size__ok__2,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_2
thf(fact_1093_step__4__pop__small__size__ok__1,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_small_size_ok_1
thf(fact_1094_nat__bit__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ zero_zero_nat )
     => ( ! [N3: nat] :
            ( ( P @ N3 )
           => ( ( ord_less_nat @ zero_zero_nat @ N3 )
             => ( P @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N3 ) ) ) )
       => ( ! [N3: nat] :
              ( ( P @ N3 )
             => ( P @ ( suc @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N3 ) ) ) )
         => ( P @ N ) ) ) ) ).

% nat_bit_induct
thf(fact_1095_step__4__pop__small__size__ok__4,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_small_size_ok_4
thf(fact_1096_xor__num_Ocases,axiom,
    ! [X: product_prod_num_num] :
      ( ( X
       != ( product_Pair_num_num @ one @ one ) )
     => ( ! [N3: num] :
            ( X
           != ( product_Pair_num_num @ one @ ( bit0 @ N3 ) ) )
       => ( ! [N3: num] :
              ( X
             != ( product_Pair_num_num @ one @ ( bit1 @ N3 ) ) )
         => ( ! [M6: num] :
                ( X
               != ( product_Pair_num_num @ ( bit0 @ M6 ) @ one ) )
           => ( ! [M6: num,N3: num] :
                  ( X
                 != ( product_Pair_num_num @ ( bit0 @ M6 ) @ ( bit0 @ N3 ) ) )
             => ( ! [M6: num,N3: num] :
                    ( X
                   != ( product_Pair_num_num @ ( bit0 @ M6 ) @ ( bit1 @ N3 ) ) )
               => ( ! [M6: num] :
                      ( X
                     != ( product_Pair_num_num @ ( bit1 @ M6 ) @ one ) )
                 => ( ! [M6: num,N3: num] :
                        ( X
                       != ( product_Pair_num_num @ ( bit1 @ M6 ) @ ( bit0 @ N3 ) ) )
                   => ~ ! [M6: num,N3: num] :
                          ( X
                         != ( product_Pair_num_num @ ( bit1 @ M6 ) @ ( bit1 @ N3 ) ) ) ) ) ) ) ) ) ) ) ).

% xor_num.cases
thf(fact_1097_eval__nat__numeral_I3_J,axiom,
    ! [N: num] :
      ( ( numeral_numeral_nat @ ( bit1 @ N ) )
      = ( suc @ ( numeral_numeral_nat @ ( bit0 @ N ) ) ) ) ).

% eval_nat_numeral(3)
thf(fact_1098_numeral__3__eq__3,axiom,
    ( ( numeral_numeral_nat @ ( bit1 @ one ) )
    = ( suc @ ( suc @ ( suc @ zero_zero_nat ) ) ) ) ).

% numeral_3_eq_3
thf(fact_1099_Suc3__eq__add__3,axiom,
    ! [N: nat] :
      ( ( suc @ ( suc @ ( suc @ N ) ) )
      = ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ N ) ) ).

% Suc3_eq_add_3
thf(fact_1100_num_Osize_I6_J,axiom,
    ! [X3: num] :
      ( ( size_size_num @ ( bit1 @ X3 ) )
      = ( plus_plus_nat @ ( size_size_num @ X3 ) @ ( suc @ zero_zero_nat ) ) ) ).

% num.size(6)
thf(fact_1101_step__4__push__small__size__ok__4__aux,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( suc @ ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ) ).

% step_4_push_small_size_ok_4_aux
thf(fact_1102_step__4__push__small__size__ok__3__aux,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( suc @ ( type_s6404775287138157491tate_a @ Small ) ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ).

% step_4_push_small_size_ok_3_aux
thf(fact_1103_step__4__push__big__size__ok__4__aux,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( suc @ ( type_s6530235180886170618tate_a @ Big ) ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ).

% step_4_push_big_size_ok_4_aux
thf(fact_1104_step__4__push__big__size__ok__3__aux,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a] :
      ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
     => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
       => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( suc @ ( type_s6530235180886170618tate_a @ Big ) ) ) ) ) ) ).

% step_4_push_big_size_ok_3_aux
thf(fact_1105_step__size__ok__2,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big2 ) ) ) ) ) ) ).

% step_size_ok_2
thf(fact_1106_step__size__ok__1,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ( type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
          = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small2 ) ) ) ) ) ) ).

% step_size_ok_1
thf(fact_1107_size__ok_H_Osimps,axiom,
    ! [Uu2: direction,Big: state_a2,Small: state_a,Steps2: nat] :
      ( ( states_size_ok_a @ ( states_a2 @ Uu2 @ Big @ Small ) @ Steps2 )
      = ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ Steps2 ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
        & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ Steps2 ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
        & ( ord_less_eq_nat @ ( plus_plus_nat @ Steps2 @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small ) ) )
        & ( ord_less_eq_nat @ ( plus_plus_nat @ Steps2 @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big ) ) ) ) ) ).

% size_ok'.simps
thf(fact_1108_size__ok_H_Oelims_I1_J,axiom,
    ! [X: states_a,Xa: nat,Y: $o] :
      ( ( ( states_size_ok_a @ X @ Xa )
        = Y )
     => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
            ( ( X
              = ( states_a2 @ Uu @ Big3 @ Small3 ) )
           => ( Y
              = ( ~ ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) ) ) ) ) ).

% size_ok'.elims(1)
thf(fact_1109_size__ok_H_Oelims_I2_J,axiom,
    ! [X: states_a,Xa: nat] :
      ( ( states_size_ok_a @ X @ Xa )
     => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
            ( ( X
              = ( states_a2 @ Uu @ Big3 @ Small3 ) )
           => ~ ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
                & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
                & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
                & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) ) ) ).

% size_ok'.elims(2)
thf(fact_1110_size__ok_H_Oelims_I3_J,axiom,
    ! [X: states_a,Xa: nat] :
      ( ~ ( states_size_ok_a @ X @ Xa )
     => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
            ( ( X
              = ( states_a2 @ Uu @ Big3 @ Small3 ) )
           => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
              & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
              & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
              & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) ) ) ).

% size_ok'.elims(3)
thf(fact_1111_step__4__push__big__size__ok__4,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small2 ) ) ) ) ) ) ) ).

% step_4_push_big_size_ok_4
thf(fact_1112_step__4__push__big__size__ok__3,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ ( push_a @ X @ Big ) @ Small ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big2 ) ) ) ) ) ) ) ).

% step_4_push_big_size_ok_3
thf(fact_1113_step__4__push__small__size__ok__4,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small2 ) ) ) ) ) ) ) ).

% step_4_push_small_size_ok_4
thf(fact_1114_step__4__push__small__size__ok__3,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ ( push_a2 @ X @ Small ) ) )
            = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
         => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
           => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big2 ) ) ) ) ) ) ) ).

% step_4_push_small_size_ok_3
thf(fact_1115_step__4__pop__big__size__ok__4__aux,axiom,
    ! [Big: state_a2,Dir: direction,Small: state_a] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( minus_minus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ one_one_nat ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_4_aux
thf(fact_1116_step__4__pop__big__size__ok__3__aux,axiom,
    ! [Big: state_a2,Dir: direction,Small: state_a] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( minus_minus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ one_one_nat ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_3_aux
thf(fact_1117_step__4__pop__small__size__ok__4__aux,axiom,
    ! [Small: state_a,Dir: direction,Big: state_a2] :
      ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
     => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) )
       => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
         => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( minus_minus_nat @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( minus_minus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ one_one_nat ) ) ) ) ) ) ).

% step_4_pop_small_size_ok_4_aux
thf(fact_1118_step__4__pop__big__size__ok__3,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_3
thf(fact_1119_step__4__pop__big__size__ok__4,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,BigP: state_a2,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a @ Big ) )
       => ( ( ( pop_a @ Big )
            = ( produc8641956578966763338tate_a @ X @ BigP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ BigP @ Small ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ BigP @ Small ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_big_size_ok_4
thf(fact_1120_step__4__pop__small__size__ok__3,axiom,
    ! [Dir: direction,Big: state_a2,Small: state_a,X: a,SmallP: state_a,Dir2: direction,Big2: state_a2,Small2: state_a] :
      ( ( type_i8221491762852169479ates_a @ ( states_a2 @ Dir @ Big @ Small ) )
     => ( ( ord_less_nat @ zero_zero_nat @ ( size_size_state_a2 @ Small ) )
       => ( ( ( pop_a2 @ Small )
            = ( produc1224139502141355779tate_a @ X @ SmallP ) )
         => ( ( ord_less_eq_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) ) )
           => ( ( ( compow495008222514391794ates_a @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ type_s4923920245906622843ates_a @ ( states_a2 @ Dir @ Big @ SmallP ) )
                = ( states_a2 @ Dir2 @ Big2 @ Small2 ) )
             => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir @ Big @ Small ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big ) ) )
               => ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small2 ) @ ( type_r4519047461186610747ates_a @ ( states_a2 @ Dir2 @ Big2 @ Small2 ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big2 ) ) ) ) ) ) ) ) ) ).

% step_4_pop_small_size_ok_3
thf(fact_1121_Suc__double__not__eq__double,axiom,
    ! [M: nat,N: nat] :
      ( ( suc @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ M ) )
     != ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N ) ) ).

% Suc_double_not_eq_double
thf(fact_1122_double__not__eq__Suc__double,axiom,
    ! [M: nat,N: nat] :
      ( ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ M )
     != ( suc @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N ) ) ) ).

% double_not_eq_Suc_double
thf(fact_1123_divides__aux__eq,axiom,
    ! [Q2: int,R: int] :
      ( ( unique5329631941980267465ux_int @ ( product_Pair_int_int @ Q2 @ R ) )
      = ( R = zero_zero_int ) ) ).

% divides_aux_eq
thf(fact_1124_divides__aux__eq,axiom,
    ! [Q2: nat,R: nat] :
      ( ( unique5332122412489317741ux_nat @ ( product_Pair_nat_nat @ Q2 @ R ) )
      = ( R = zero_zero_nat ) ) ).

% divides_aux_eq
thf(fact_1125_size__ok_H_Opelims_I1_J,axiom,
    ! [X: states_a,Xa: nat,Y: $o] :
      ( ( ( states_size_ok_a @ X @ Xa )
        = Y )
     => ( ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ X @ Xa ) )
       => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ Uu @ Big3 @ Small3 ) )
             => ( ( Y
                  = ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) )
               => ~ ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ ( states_a2 @ Uu @ Big3 @ Small3 ) @ Xa ) ) ) ) ) ) ).

% size_ok'.pelims(1)
thf(fact_1126_size__ok_H_Opelims_I3_J,axiom,
    ! [X: states_a,Xa: nat] :
      ( ~ ( states_size_ok_a @ X @ Xa )
     => ( ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ X @ Xa ) )
       => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ Uu @ Big3 @ Small3 ) )
             => ( ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ ( states_a2 @ Uu @ Big3 @ Small3 ) @ Xa ) )
               => ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
                  & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
                  & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
                  & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) ) ) ) ) ).

% size_ok'.pelims(3)
thf(fact_1127_size__ok_H_Opelims_I2_J,axiom,
    ! [X: states_a,Xa: nat] :
      ( ( states_size_ok_a @ X @ Xa )
     => ( ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ X @ Xa ) )
       => ~ ! [Uu: direction,Big3: state_a2,Small3: state_a] :
              ( ( X
                = ( states_a2 @ Uu @ Big3 @ Small3 ) )
             => ( ( accp_P8670043419270033210_a_nat @ states_size_ok_rel_a @ ( produc1877401315875745917_a_nat @ ( states_a2 @ Uu @ Big3 @ Small3 ) @ Xa ) )
               => ~ ( ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6404775287138157491tate_a @ Small3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6530235180886170618tate_a @ Big3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ ( plus_plus_nat @ ( type_s6530235180886170618tate_a @ Big3 ) @ Xa ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ ( type_s6404775287138157491tate_a @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a2 @ Small3 ) ) )
                    & ( ord_less_eq_nat @ ( plus_plus_nat @ Xa @ one_one_nat ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) @ ( size_size_state_a @ Big3 ) ) ) ) ) ) ) ) ).

% size_ok'.pelims(2)
thf(fact_1128_length__product,axiom,
    ! [Xs: list_nat,Ys: list_nat] :
      ( ( size_s5460976970255530739at_nat @ ( product_nat_nat @ Xs @ Ys ) )
      = ( times_times_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) ) ).

% length_product
thf(fact_1129_num_Osize__gen_I3_J,axiom,
    ! [X3: num] :
      ( ( size_num @ ( bit1 @ X3 ) )
      = ( plus_plus_nat @ ( size_num @ X3 ) @ ( suc @ zero_zero_nat ) ) ) ).

% num.size_gen(3)
thf(fact_1130_num_Osize__gen_I2_J,axiom,
    ! [X2: num] :
      ( ( size_num @ ( bit0 @ X2 ) )
      = ( plus_plus_nat @ ( size_num @ X2 ) @ ( suc @ zero_zero_nat ) ) ) ).

% num.size_gen(2)
thf(fact_1131_divmod__algorithm__code_I3_J,axiom,
    ! [N: num] :
      ( ( unique5405566460079783412od_nat @ one @ ( bit1 @ N ) )
      = ( product_Pair_nat_nat @ zero_zero_nat @ ( numeral_numeral_nat @ one ) ) ) ).

% divmod_algorithm_code(3)
thf(fact_1132_divmod__algorithm__code_I3_J,axiom,
    ! [N: num] :
      ( ( unique5403075989570733136od_int @ one @ ( bit1 @ N ) )
      = ( product_Pair_int_int @ zero_zero_int @ ( numeral_numeral_int @ one ) ) ) ).

% divmod_algorithm_code(3)
thf(fact_1133_divmod__algorithm__code_I2_J,axiom,
    ! [N: num] :
      ( ( unique5405566460079783412od_nat @ one @ ( bit0 @ N ) )
      = ( product_Pair_nat_nat @ zero_zero_nat @ ( numeral_numeral_nat @ one ) ) ) ).

% divmod_algorithm_code(2)
thf(fact_1134_divmod__algorithm__code_I2_J,axiom,
    ! [N: num] :
      ( ( unique5403075989570733136od_int @ one @ ( bit0 @ N ) )
      = ( product_Pair_int_int @ zero_zero_int @ ( numeral_numeral_int @ one ) ) ) ).

% divmod_algorithm_code(2)
thf(fact_1135_divmod__algorithm__code_I1_J,axiom,
    ! [M: num] :
      ( ( unique5405566460079783412od_nat @ M @ one )
      = ( product_Pair_nat_nat @ ( numeral_numeral_nat @ M ) @ zero_zero_nat ) ) ).

% divmod_algorithm_code(1)
thf(fact_1136_divmod__algorithm__code_I1_J,axiom,
    ! [M: num] :
      ( ( unique5403075989570733136od_int @ M @ one )
      = ( product_Pair_int_int @ ( numeral_numeral_int @ M ) @ zero_zero_int ) ) ).

% divmod_algorithm_code(1)
thf(fact_1137_divmod__algorithm__code_I6_J,axiom,
    ! [M: num,N: num] :
      ( ( ( ord_less_eq_num @ M @ N )
       => ( ( unique5405566460079783412od_nat @ ( bit0 @ M ) @ ( bit1 @ N ) )
          = ( product_Pair_nat_nat @ zero_zero_nat @ ( numeral_numeral_nat @ ( bit0 @ M ) ) ) ) )
      & ( ~ ( ord_less_eq_num @ M @ N )
       => ( ( unique5405566460079783412od_nat @ ( bit0 @ M ) @ ( bit1 @ N ) )
          = ( unique4036640087844771520ep_nat @ ( numeral_numeral_nat @ ( bit1 @ N ) ) @ ( unique5405566460079783412od_nat @ ( bit0 @ M ) @ ( bit0 @ ( bit1 @ N ) ) ) ) ) ) ) ).

% divmod_algorithm_code(6)
thf(fact_1138_divmod__algorithm__code_I6_J,axiom,
    ! [M: num,N: num] :
      ( ( ( ord_less_eq_num @ M @ N )
       => ( ( unique5403075989570733136od_int @ ( bit0 @ M ) @ ( bit1 @ N ) )
          = ( product_Pair_int_int @ zero_zero_int @ ( numeral_numeral_int @ ( bit0 @ M ) ) ) ) )
      & ( ~ ( ord_less_eq_num @ M @ N )
       => ( ( unique5403075989570733136od_int @ ( bit0 @ M ) @ ( bit1 @ N ) )
          = ( unique4034149617335721244ep_int @ ( numeral_numeral_int @ ( bit1 @ N ) ) @ ( unique5403075989570733136od_int @ ( bit0 @ M ) @ ( bit0 @ ( bit1 @ N ) ) ) ) ) ) ) ).

% divmod_algorithm_code(6)
thf(fact_1139_divmod__algorithm__code_I7_J,axiom,
    ! [M: num,N: num] :
      ( ( ( ord_less_num @ M @ N )
       => ( ( unique5405566460079783412od_nat @ ( bit1 @ M ) @ ( bit1 @ N ) )
          = ( product_Pair_nat_nat @ zero_zero_nat @ ( numeral_numeral_nat @ ( bit1 @ M ) ) ) ) )
      & ( ~ ( ord_less_num @ M @ N )
       => ( ( unique5405566460079783412od_nat @ ( bit1 @ M ) @ ( bit1 @ N ) )
          = ( unique4036640087844771520ep_nat @ ( numeral_numeral_nat @ ( bit1 @ N ) ) @ ( unique5405566460079783412od_nat @ ( bit1 @ M ) @ ( bit0 @ ( bit1 @ N ) ) ) ) ) ) ) ).

% divmod_algorithm_code(7)
thf(fact_1140_divmod__algorithm__code_I7_J,axiom,
    ! [M: num,N: num] :
      ( ( ( ord_less_num @ M @ N )
       => ( ( unique5403075989570733136od_int @ ( bit1 @ M ) @ ( bit1 @ N ) )
          = ( product_Pair_int_int @ zero_zero_int @ ( numeral_numeral_int @ ( bit1 @ M ) ) ) ) )
      & ( ~ ( ord_less_num @ M @ N )
       => ( ( unique5403075989570733136od_int @ ( bit1 @ M ) @ ( bit1 @ N ) )
          = ( unique4034149617335721244ep_int @ ( numeral_numeral_int @ ( bit1 @ N ) ) @ ( unique5403075989570733136od_int @ ( bit1 @ M ) @ ( bit0 @ ( bit1 @ N ) ) ) ) ) ) ) ).

% divmod_algorithm_code(7)
thf(fact_1141_divmod__divmod__step,axiom,
    ( unique5405566460079783412od_nat
    = ( ^ [M2: num,N2: num] : ( if_Pro6206227464963214023at_nat @ ( ord_less_num @ M2 @ N2 ) @ ( product_Pair_nat_nat @ zero_zero_nat @ ( numeral_numeral_nat @ M2 ) ) @ ( unique4036640087844771520ep_nat @ ( numeral_numeral_nat @ N2 ) @ ( unique5405566460079783412od_nat @ M2 @ ( bit0 @ N2 ) ) ) ) ) ) ).

% divmod_divmod_step
thf(fact_1142_divmod__divmod__step,axiom,
    ( unique5403075989570733136od_int
    = ( ^ [M2: num,N2: num] : ( if_Pro3027730157355071871nt_int @ ( ord_less_num @ M2 @ N2 ) @ ( product_Pair_int_int @ zero_zero_int @ ( numeral_numeral_int @ M2 ) ) @ ( unique4034149617335721244ep_int @ ( numeral_numeral_int @ N2 ) @ ( unique5403075989570733136od_int @ M2 @ ( bit0 @ N2 ) ) ) ) ) ) ).

% divmod_divmod_step
thf(fact_1143_divmod__step__def,axiom,
    ! [L: nat,R: nat,Q2: nat] :
      ( ( ( ord_less_eq_nat @ ( euclid4777050414544973029ze_nat @ L ) @ ( euclid4777050414544973029ze_nat @ R ) )
       => ( ( unique4036640087844771520ep_nat @ L @ ( product_Pair_nat_nat @ Q2 @ R ) )
          = ( product_Pair_nat_nat @ ( plus_plus_nat @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ Q2 ) @ one_one_nat ) @ ( minus_minus_nat @ R @ L ) ) ) )
      & ( ~ ( ord_less_eq_nat @ ( euclid4777050414544973029ze_nat @ L ) @ ( euclid4777050414544973029ze_nat @ R ) )
       => ( ( unique4036640087844771520ep_nat @ L @ ( product_Pair_nat_nat @ Q2 @ R ) )
          = ( product_Pair_nat_nat @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ Q2 ) @ R ) ) ) ) ).

% divmod_step_def
thf(fact_1144_divmod__step__def,axiom,
    ! [L: int,R: int,Q2: int] :
      ( ( ( ord_less_eq_nat @ ( euclid4774559944035922753ze_int @ L ) @ ( euclid4774559944035922753ze_int @ R ) )
       => ( ( unique4034149617335721244ep_int @ L @ ( product_Pair_int_int @ Q2 @ R ) )
          = ( product_Pair_int_int @ ( plus_plus_int @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ Q2 ) @ one_one_int ) @ ( minus_minus_int @ R @ L ) ) ) )
      & ( ~ ( ord_less_eq_nat @ ( euclid4774559944035922753ze_int @ L ) @ ( euclid4774559944035922753ze_int @ R ) )
       => ( ( unique4034149617335721244ep_int @ L @ ( product_Pair_int_int @ Q2 @ R ) )
          = ( product_Pair_int_int @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ Q2 ) @ R ) ) ) ) ).

% divmod_step_def
thf(fact_1145_odd__Suc__minus__one,axiom,
    ! [N: nat] :
      ( ~ ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N )
     => ( ( suc @ ( minus_minus_nat @ N @ ( suc @ zero_zero_nat ) ) )
        = N ) ) ).

% odd_Suc_minus_one
thf(fact_1146_nat__dvd__1__iff__1,axiom,
    ! [M: nat] :
      ( ( dvd_dvd_nat @ M @ one_one_nat )
      = ( M = one_one_nat ) ) ).

% nat_dvd_1_iff_1
thf(fact_1147_dvd__1__left,axiom,
    ! [K: nat] : ( dvd_dvd_nat @ ( suc @ zero_zero_nat ) @ K ) ).

% dvd_1_left
thf(fact_1148_dvd__1__iff__1,axiom,
    ! [M: nat] :
      ( ( dvd_dvd_nat @ M @ ( suc @ zero_zero_nat ) )
      = ( M
        = ( suc @ zero_zero_nat ) ) ) ).

% dvd_1_iff_1
thf(fact_1149_even__Suc,axiom,
    ! [N: nat] :
      ( ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( suc @ N ) )
      = ( ~ ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N ) ) ) ).

% even_Suc
thf(fact_1150_even__Suc__Suc__iff,axiom,
    ! [N: nat] :
      ( ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( suc @ ( suc @ N ) ) )
      = ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N ) ) ).

% even_Suc_Suc_iff
thf(fact_1151_dvd__minus__self,axiom,
    ! [M: nat,N: nat] :
      ( ( dvd_dvd_nat @ M @ ( minus_minus_nat @ N @ M ) )
      = ( ( ord_less_nat @ N @ M )
        | ( dvd_dvd_nat @ M @ N ) ) ) ).

% dvd_minus_self
thf(fact_1152_less__eq__dvd__minus,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq_nat @ M @ N )
     => ( ( dvd_dvd_nat @ M @ N )
        = ( dvd_dvd_nat @ M @ ( minus_minus_nat @ N @ M ) ) ) ) ).

% less_eq_dvd_minus
thf(fact_1153_dvd__diffD1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( dvd_dvd_nat @ K @ ( minus_minus_nat @ M @ N ) )
     => ( ( dvd_dvd_nat @ K @ M )
       => ( ( ord_less_eq_nat @ N @ M )
         => ( dvd_dvd_nat @ K @ N ) ) ) ) ).

% dvd_diffD1
thf(fact_1154_dvd__diffD,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( dvd_dvd_nat @ K @ ( minus_minus_nat @ M @ N ) )
     => ( ( dvd_dvd_nat @ K @ N )
       => ( ( ord_less_eq_nat @ N @ M )
         => ( dvd_dvd_nat @ K @ M ) ) ) ) ).

% dvd_diffD
thf(fact_1155_nat__dvd__not__less,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ M )
     => ( ( ord_less_nat @ M @ N )
       => ~ ( dvd_dvd_nat @ N @ M ) ) ) ).

% nat_dvd_not_less
thf(fact_1156_dvd__diff__nat,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( dvd_dvd_nat @ K @ M )
     => ( ( dvd_dvd_nat @ K @ N )
       => ( dvd_dvd_nat @ K @ ( minus_minus_nat @ M @ N ) ) ) ) ).

% dvd_diff_nat
thf(fact_1157_dvd__antisym,axiom,
    ! [M: nat,N: nat] :
      ( ( dvd_dvd_nat @ M @ N )
     => ( ( dvd_dvd_nat @ N @ M )
       => ( M = N ) ) ) ).

% dvd_antisym
thf(fact_1158_dvd__imp__le,axiom,
    ! [K: nat,N: nat] :
      ( ( dvd_dvd_nat @ K @ N )
     => ( ( ord_less_nat @ zero_zero_nat @ N )
       => ( ord_less_eq_nat @ K @ N ) ) ) ).

% dvd_imp_le
thf(fact_1159_dvd__mult__cancel,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( dvd_dvd_nat @ ( times_times_nat @ K @ M ) @ ( times_times_nat @ K @ N ) )
     => ( ( ord_less_nat @ zero_zero_nat @ K )
       => ( dvd_dvd_nat @ M @ N ) ) ) ).

% dvd_mult_cancel
thf(fact_1160_dvd__minus__add,axiom,
    ! [Q2: nat,N: nat,R: nat,M: nat] :
      ( ( ord_less_eq_nat @ Q2 @ N )
     => ( ( ord_less_eq_nat @ Q2 @ ( times_times_nat @ R @ M ) )
       => ( ( dvd_dvd_nat @ M @ ( minus_minus_nat @ N @ Q2 ) )
          = ( dvd_dvd_nat @ M @ ( plus_plus_nat @ N @ ( minus_minus_nat @ ( times_times_nat @ R @ M ) @ Q2 ) ) ) ) ) ) ).

% dvd_minus_add
thf(fact_1161_dvd__mult__cancel1,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ M )
     => ( ( dvd_dvd_nat @ ( times_times_nat @ M @ N ) @ M )
        = ( N = one_one_nat ) ) ) ).

% dvd_mult_cancel1
thf(fact_1162_dvd__mult__cancel2,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ M )
     => ( ( dvd_dvd_nat @ ( times_times_nat @ N @ M ) @ M )
        = ( N = one_one_nat ) ) ) ).

% dvd_mult_cancel2
thf(fact_1163_bit__sum__mult__2__cases,axiom,
    ! [A: nat,B: nat,N: nat] :
      ( ! [J2: nat] :
          ~ ( bit_se1148574629649215175it_nat @ A @ ( suc @ J2 ) )
     => ( ( bit_se1148574629649215175it_nat @ ( plus_plus_nat @ A @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ B ) ) @ N )
        = ( ( ( N = zero_zero_nat )
           => ~ ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ A ) )
          & ( ( N != zero_zero_nat )
           => ( bit_se1148574629649215175it_nat @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ B ) @ N ) ) ) ) ) ).

% bit_sum_mult_2_cases
thf(fact_1164_bit__sum__mult__2__cases,axiom,
    ! [A: int,B: int,N: nat] :
      ( ! [J2: nat] :
          ~ ( bit_se1146084159140164899it_int @ A @ ( suc @ J2 ) )
     => ( ( bit_se1146084159140164899it_int @ ( plus_plus_int @ A @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ B ) ) @ N )
        = ( ( ( N = zero_zero_nat )
           => ~ ( dvd_dvd_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ A ) )
          & ( ( N != zero_zero_nat )
           => ( bit_se1146084159140164899it_int @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ B ) @ N ) ) ) ) ) ).

% bit_sum_mult_2_cases
thf(fact_1165_take__bit__Suc__bit1,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2925701944663578781it_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ ( bit1 @ K ) ) )
      = ( plus_plus_nat @ ( times_times_nat @ ( bit_se2925701944663578781it_nat @ N @ ( numeral_numeral_nat @ K ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ one_one_nat ) ) ).

% take_bit_Suc_bit1
thf(fact_1166_take__bit__Suc__bit1,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ ( numeral_numeral_int @ ( bit1 @ K ) ) )
      = ( plus_plus_int @ ( times_times_int @ ( bit_se2923211474154528505it_int @ N @ ( numeral_numeral_int @ K ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ one_one_int ) ) ).

% take_bit_Suc_bit1
thf(fact_1167_take__bit__Suc__1,axiom,
    ! [N: nat] :
      ( ( bit_se2925701944663578781it_nat @ ( suc @ N ) @ one_one_nat )
      = one_one_nat ) ).

% take_bit_Suc_1
thf(fact_1168_take__bit__Suc__1,axiom,
    ! [N: nat] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ one_one_int )
      = one_one_int ) ).

% take_bit_Suc_1
thf(fact_1169_bit__numeral__Bit0__Suc__iff,axiom,
    ! [M: num,N: nat] :
      ( ( bit_se1148574629649215175it_nat @ ( numeral_numeral_nat @ ( bit0 @ M ) ) @ ( suc @ N ) )
      = ( bit_se1148574629649215175it_nat @ ( numeral_numeral_nat @ M ) @ N ) ) ).

% bit_numeral_Bit0_Suc_iff
thf(fact_1170_bit__numeral__Bit0__Suc__iff,axiom,
    ! [M: num,N: nat] :
      ( ( bit_se1146084159140164899it_int @ ( numeral_numeral_int @ ( bit0 @ M ) ) @ ( suc @ N ) )
      = ( bit_se1146084159140164899it_int @ ( numeral_numeral_int @ M ) @ N ) ) ).

% bit_numeral_Bit0_Suc_iff
thf(fact_1171_bit__numeral__Bit1__Suc__iff,axiom,
    ! [M: num,N: nat] :
      ( ( bit_se1148574629649215175it_nat @ ( numeral_numeral_nat @ ( bit1 @ M ) ) @ ( suc @ N ) )
      = ( bit_se1148574629649215175it_nat @ ( numeral_numeral_nat @ M ) @ N ) ) ).

% bit_numeral_Bit1_Suc_iff
thf(fact_1172_bit__numeral__Bit1__Suc__iff,axiom,
    ! [M: num,N: nat] :
      ( ( bit_se1146084159140164899it_int @ ( numeral_numeral_int @ ( bit1 @ M ) ) @ ( suc @ N ) )
      = ( bit_se1146084159140164899it_int @ ( numeral_numeral_int @ M ) @ N ) ) ).

% bit_numeral_Bit1_Suc_iff
thf(fact_1173_not__bit__Suc__0__numeral,axiom,
    ! [N: num] :
      ~ ( bit_se1148574629649215175it_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ N ) ) ).

% not_bit_Suc_0_numeral
thf(fact_1174_bit__Suc__0__iff,axiom,
    ! [N: nat] :
      ( ( bit_se1148574629649215175it_nat @ ( suc @ zero_zero_nat ) @ N )
      = ( N = zero_zero_nat ) ) ).

% bit_Suc_0_iff
thf(fact_1175_not__bit__Suc__0__Suc,axiom,
    ! [N: nat] :
      ~ ( bit_se1148574629649215175it_nat @ ( suc @ zero_zero_nat ) @ ( suc @ N ) ) ).

% not_bit_Suc_0_Suc
thf(fact_1176_not__bit__1__Suc,axiom,
    ! [N: nat] :
      ~ ( bit_se1148574629649215175it_nat @ one_one_nat @ ( suc @ N ) ) ).

% not_bit_1_Suc
thf(fact_1177_not__bit__1__Suc,axiom,
    ! [N: nat] :
      ~ ( bit_se1146084159140164899it_int @ one_one_int @ ( suc @ N ) ) ).

% not_bit_1_Suc
thf(fact_1178_take__bit__Suc__bit0,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2925701944663578781it_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ ( bit0 @ K ) ) )
      = ( times_times_nat @ ( bit_se2925701944663578781it_nat @ N @ ( numeral_numeral_nat @ K ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ).

% take_bit_Suc_bit0
thf(fact_1179_take__bit__Suc__bit0,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ ( numeral_numeral_int @ ( bit0 @ K ) ) )
      = ( times_times_int @ ( bit_se2923211474154528505it_int @ N @ ( numeral_numeral_int @ K ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ).

% take_bit_Suc_bit0
thf(fact_1180_take__bit__Suc__0,axiom,
    ! [A: nat] :
      ( ( bit_se2925701944663578781it_nat @ ( suc @ zero_zero_nat ) @ A )
      = ( modulo_modulo_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ).

% take_bit_Suc_0
thf(fact_1181_take__bit__Suc__0,axiom,
    ! [A: int] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ zero_zero_nat ) @ A )
      = ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ).

% take_bit_Suc_0
thf(fact_1182_push__bit__Suc,axiom,
    ! [N: nat,A: nat] :
      ( ( bit_se547839408752420682it_nat @ ( suc @ N ) @ A )
      = ( bit_se547839408752420682it_nat @ N @ ( times_times_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% push_bit_Suc
thf(fact_1183_push__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_se545348938243370406it_int @ ( suc @ N ) @ A )
      = ( bit_se545348938243370406it_int @ N @ ( times_times_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ).

% push_bit_Suc
thf(fact_1184_Suc__0__mod__numeral_I1_J,axiom,
    ( ( modulo_modulo_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ one ) )
    = zero_zero_nat ) ).

% Suc_0_mod_numeral(1)
thf(fact_1185_push__bit__Suc__numeral,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se547839408752420682it_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ K ) )
      = ( bit_se547839408752420682it_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ K ) ) ) ) ).

% push_bit_Suc_numeral
thf(fact_1186_push__bit__Suc__numeral,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se545348938243370406it_int @ ( suc @ N ) @ ( numeral_numeral_int @ K ) )
      = ( bit_se545348938243370406it_int @ N @ ( numeral_numeral_int @ ( bit0 @ K ) ) ) ) ).

% push_bit_Suc_numeral
thf(fact_1187_not__mod2__eq__Suc__0__eq__0,axiom,
    ! [N: nat] :
      ( ( ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
       != ( suc @ zero_zero_nat ) )
      = ( ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
        = zero_zero_nat ) ) ).

% not_mod2_eq_Suc_0_eq_0
thf(fact_1188_Suc__0__mod__numeral_I2_J,axiom,
    ! [N: num] :
      ( ( modulo_modulo_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit0 @ N ) ) )
      = one_one_nat ) ).

% Suc_0_mod_numeral(2)
thf(fact_1189_Suc__0__mod__numeral_I3_J,axiom,
    ! [N: num] :
      ( ( modulo_modulo_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit1 @ N ) ) )
      = one_one_nat ) ).

% Suc_0_mod_numeral(3)
thf(fact_1190_nth__rotate1,axiom,
    ! [N: nat,Xs: list_nat] :
      ( ( ord_less_nat @ N @ ( size_size_list_nat @ Xs ) )
     => ( ( nth_nat @ ( rotate1_nat @ Xs ) @ N )
        = ( nth_nat @ Xs @ ( modulo_modulo_nat @ ( suc @ N ) @ ( size_size_list_nat @ Xs ) ) ) ) ) ).

% nth_rotate1
thf(fact_1191_Suc__mod__eq__add3__mod__numeral,axiom,
    ! [M: nat,V: num] :
      ( ( modulo_modulo_nat @ ( suc @ ( suc @ ( suc @ M ) ) ) @ ( numeral_numeral_nat @ V ) )
      = ( modulo_modulo_nat @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ M ) @ ( numeral_numeral_nat @ V ) ) ) ).

% Suc_mod_eq_add3_mod_numeral
thf(fact_1192_mod__Suc__eq__mod__add3,axiom,
    ! [M: nat,N: nat] :
      ( ( modulo_modulo_nat @ M @ ( suc @ ( suc @ ( suc @ N ) ) ) )
      = ( modulo_modulo_nat @ M @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ N ) ) ) ).

% mod_Suc_eq_mod_add3
thf(fact_1193_mod__by__Suc__0,axiom,
    ! [M: nat] :
      ( ( modulo_modulo_nat @ M @ ( suc @ zero_zero_nat ) )
      = zero_zero_nat ) ).

% mod_by_Suc_0
thf(fact_1194_Suc__mod__mult__self4,axiom,
    ! [N: nat,K: nat,M: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( plus_plus_nat @ ( times_times_nat @ N @ K ) @ M ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ M ) @ N ) ) ).

% Suc_mod_mult_self4
thf(fact_1195_Suc__mod__mult__self3,axiom,
    ! [K: nat,N: nat,M: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( plus_plus_nat @ ( times_times_nat @ K @ N ) @ M ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ M ) @ N ) ) ).

% Suc_mod_mult_self3
thf(fact_1196_Suc__mod__mult__self2,axiom,
    ! [M: nat,N: nat,K: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( plus_plus_nat @ M @ ( times_times_nat @ N @ K ) ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ M ) @ N ) ) ).

% Suc_mod_mult_self2
thf(fact_1197_Suc__mod__mult__self1,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( plus_plus_nat @ M @ ( times_times_nat @ K @ N ) ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ M ) @ N ) ) ).

% Suc_mod_mult_self1
thf(fact_1198_mod2__Suc__Suc,axiom,
    ! [M: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( suc @ M ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
      = ( modulo_modulo_nat @ M @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ).

% mod2_Suc_Suc
thf(fact_1199_Suc__times__numeral__mod__eq,axiom,
    ! [K: num,N: nat] :
      ( ( ( numeral_numeral_nat @ K )
       != one_one_nat )
     => ( ( modulo_modulo_nat @ ( suc @ ( times_times_nat @ ( numeral_numeral_nat @ K ) @ N ) ) @ ( numeral_numeral_nat @ K ) )
        = one_one_nat ) ) ).

% Suc_times_numeral_mod_eq
thf(fact_1200_mod__Suc__Suc__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( suc @ ( modulo_modulo_nat @ M @ N ) ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ ( suc @ M ) ) @ N ) ) ).

% mod_Suc_Suc_eq
thf(fact_1201_mod__Suc__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( modulo_modulo_nat @ M @ N ) ) @ N )
      = ( modulo_modulo_nat @ ( suc @ M ) @ N ) ) ).

% mod_Suc_eq
thf(fact_1202_funpow__mod__eq,axiom,
    ! [N: nat,F: nat > nat,X: nat,M: nat] :
      ( ( ( compow_nat_nat @ N @ F @ X )
        = X )
     => ( ( compow_nat_nat @ ( modulo_modulo_nat @ M @ N ) @ F @ X )
        = ( compow_nat_nat @ M @ F @ X ) ) ) ).

% funpow_mod_eq
thf(fact_1203_mod__Suc,axiom,
    ! [M: nat,N: nat] :
      ( ( ( ( suc @ ( modulo_modulo_nat @ M @ N ) )
          = N )
       => ( ( modulo_modulo_nat @ ( suc @ M ) @ N )
          = zero_zero_nat ) )
      & ( ( ( suc @ ( modulo_modulo_nat @ M @ N ) )
         != N )
       => ( ( modulo_modulo_nat @ ( suc @ M ) @ N )
          = ( suc @ ( modulo_modulo_nat @ M @ N ) ) ) ) ) ).

% mod_Suc
thf(fact_1204_mod__induct,axiom,
    ! [P: nat > $o,N: nat,P2: nat,M: nat] :
      ( ( P @ N )
     => ( ( ord_less_nat @ N @ P2 )
       => ( ( ord_less_nat @ M @ P2 )
         => ( ! [N3: nat] :
                ( ( ord_less_nat @ N3 @ P2 )
               => ( ( P @ N3 )
                 => ( P @ ( modulo_modulo_nat @ ( suc @ N3 ) @ P2 ) ) ) )
           => ( P @ M ) ) ) ) ) ).

% mod_induct
thf(fact_1205_mod__Suc__le__divisor,axiom,
    ! [M: nat,N: nat] : ( ord_less_eq_nat @ ( modulo_modulo_nat @ M @ ( suc @ N ) ) @ N ) ).

% mod_Suc_le_divisor
thf(fact_1206_Suc__mod__eq__add3__mod,axiom,
    ! [M: nat,N: nat] :
      ( ( modulo_modulo_nat @ ( suc @ ( suc @ ( suc @ M ) ) ) @ N )
      = ( modulo_modulo_nat @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ M ) @ N ) ) ).

% Suc_mod_eq_add3_mod
thf(fact_1207_Suc__times__mod__eq,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ M )
     => ( ( modulo_modulo_nat @ ( suc @ ( times_times_nat @ M @ N ) ) @ M )
        = one_one_nat ) ) ).

% Suc_times_mod_eq
thf(fact_1208_product__nth,axiom,
    ! [N: nat,Xs: list_num,Ys: list_num] :
      ( ( ord_less_nat @ N @ ( times_times_nat @ ( size_size_list_num @ Xs ) @ ( size_size_list_num @ Ys ) ) )
     => ( ( nth_Pr6456567536196504476um_num @ ( product_num_num @ Xs @ Ys ) @ N )
        = ( product_Pair_num_num @ ( nth_num @ Xs @ ( divide_divide_nat @ N @ ( size_size_list_num @ Ys ) ) ) @ ( nth_num @ Ys @ ( modulo_modulo_nat @ N @ ( size_size_list_num @ Ys ) ) ) ) ) ) ).

% product_nth
thf(fact_1209_product__nth,axiom,
    ! [N: nat,Xs: list_int,Ys: list_int] :
      ( ( ord_less_nat @ N @ ( times_times_nat @ ( size_size_list_int @ Xs ) @ ( size_size_list_int @ Ys ) ) )
     => ( ( nth_Pr4439495888332055232nt_int @ ( product_int_int @ Xs @ Ys ) @ N )
        = ( product_Pair_int_int @ ( nth_int @ Xs @ ( divide_divide_nat @ N @ ( size_size_list_int @ Ys ) ) ) @ ( nth_int @ Ys @ ( modulo_modulo_nat @ N @ ( size_size_list_int @ Ys ) ) ) ) ) ) ).

% product_nth
thf(fact_1210_product__nth,axiom,
    ! [N: nat,Xs: list_nat,Ys: list_nat] :
      ( ( ord_less_nat @ N @ ( times_times_nat @ ( size_size_list_nat @ Xs ) @ ( size_size_list_nat @ Ys ) ) )
     => ( ( nth_Pr7617993195940197384at_nat @ ( product_nat_nat @ Xs @ Ys ) @ N )
        = ( product_Pair_nat_nat @ ( nth_nat @ Xs @ ( divide_divide_nat @ N @ ( size_size_list_nat @ Ys ) ) ) @ ( nth_nat @ Ys @ ( modulo_modulo_nat @ N @ ( size_size_list_nat @ Ys ) ) ) ) ) ) ).

% product_nth
thf(fact_1211_take__bit__Suc,axiom,
    ! [N: nat,A: nat] :
      ( ( bit_se2925701944663578781it_nat @ ( suc @ N ) @ A )
      = ( plus_plus_nat @ ( times_times_nat @ ( bit_se2925701944663578781it_nat @ N @ ( divide_divide_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( modulo_modulo_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% take_bit_Suc
thf(fact_1212_take__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ A )
      = ( plus_plus_int @ ( times_times_int @ ( bit_se2923211474154528505it_int @ N @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ).

% take_bit_Suc
thf(fact_1213_div__by__Suc__0,axiom,
    ! [M: nat] :
      ( ( divide_divide_nat @ M @ ( suc @ zero_zero_nat ) )
      = M ) ).

% div_by_Suc_0
thf(fact_1214_div2__Suc__Suc,axiom,
    ! [M: nat] :
      ( ( divide_divide_nat @ ( suc @ ( suc @ M ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
      = ( suc @ ( divide_divide_nat @ M @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% div2_Suc_Suc
thf(fact_1215_Suc__0__div__numeral_I2_J,axiom,
    ! [N: num] :
      ( ( divide_divide_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit0 @ N ) ) )
      = zero_zero_nat ) ).

% Suc_0_div_numeral(2)
thf(fact_1216_Suc__0__div__numeral_I3_J,axiom,
    ! [N: num] :
      ( ( divide_divide_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit1 @ N ) ) )
      = zero_zero_nat ) ).

% Suc_0_div_numeral(3)
thf(fact_1217_Suc__div__eq__add3__div__numeral,axiom,
    ! [M: nat,V: num] :
      ( ( divide_divide_nat @ ( suc @ ( suc @ ( suc @ M ) ) ) @ ( numeral_numeral_nat @ V ) )
      = ( divide_divide_nat @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ M ) @ ( numeral_numeral_nat @ V ) ) ) ).

% Suc_div_eq_add3_div_numeral
thf(fact_1218_div__Suc__eq__div__add3,axiom,
    ! [M: nat,N: nat] :
      ( ( divide_divide_nat @ M @ ( suc @ ( suc @ ( suc @ N ) ) ) )
      = ( divide_divide_nat @ M @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ N ) ) ) ).

% div_Suc_eq_div_add3
thf(fact_1219_odd__Suc__div__two,axiom,
    ! [N: nat] :
      ( ~ ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N )
     => ( ( divide_divide_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
        = ( suc @ ( divide_divide_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ) ).

% odd_Suc_div_two
thf(fact_1220_even__Suc__div__two,axiom,
    ! [N: nat] :
      ( ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ N )
     => ( ( divide_divide_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) )
        = ( divide_divide_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% even_Suc_div_two
thf(fact_1221_Suc__0__div__numeral_I1_J,axiom,
    ( ( divide_divide_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ one ) )
    = one_one_nat ) ).

% Suc_0_div_numeral(1)
thf(fact_1222_div__Suc,axiom,
    ! [M: nat,N: nat] :
      ( ( ( ( modulo_modulo_nat @ ( suc @ M ) @ N )
          = zero_zero_nat )
       => ( ( divide_divide_nat @ ( suc @ M ) @ N )
          = ( suc @ ( divide_divide_nat @ M @ N ) ) ) )
      & ( ( ( modulo_modulo_nat @ ( suc @ M ) @ N )
         != zero_zero_nat )
       => ( ( divide_divide_nat @ ( suc @ M ) @ N )
          = ( divide_divide_nat @ M @ N ) ) ) ) ).

% div_Suc
thf(fact_1223_divmod_H__nat__def,axiom,
    ( unique5405566460079783412od_nat
    = ( ^ [M2: num,N2: num] : ( product_Pair_nat_nat @ ( divide_divide_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) ) @ ( modulo_modulo_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) ) ) ) ) ).

% divmod'_nat_def
thf(fact_1224_Suc__div__le__mono,axiom,
    ! [M: nat,N: nat] : ( ord_less_eq_nat @ ( divide_divide_nat @ M @ N ) @ ( divide_divide_nat @ ( suc @ M ) @ N ) ) ).

% Suc_div_le_mono
thf(fact_1225_div__if,axiom,
    ( divide_divide_nat
    = ( ^ [M2: nat,N2: nat] :
          ( if_nat
          @ ( ( ord_less_nat @ M2 @ N2 )
            | ( N2 = zero_zero_nat ) )
          @ zero_zero_nat
          @ ( suc @ ( divide_divide_nat @ ( minus_minus_nat @ M2 @ N2 ) @ N2 ) ) ) ) ) ).

% div_if
thf(fact_1226_div__nat__eqI,axiom,
    ! [N: nat,Q2: nat,M: nat] :
      ( ( ord_less_eq_nat @ ( times_times_nat @ N @ Q2 ) @ M )
     => ( ( ord_less_nat @ M @ ( times_times_nat @ N @ ( suc @ Q2 ) ) )
       => ( ( divide_divide_nat @ M @ N )
          = Q2 ) ) ) ).

% div_nat_eqI
thf(fact_1227_divmod__def,axiom,
    ( unique5405566460079783412od_nat
    = ( ^ [M2: num,N2: num] : ( product_Pair_nat_nat @ ( divide_divide_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) ) @ ( modulo_modulo_nat @ ( numeral_numeral_nat @ M2 ) @ ( numeral_numeral_nat @ N2 ) ) ) ) ) ).

% divmod_def
thf(fact_1228_divmod__def,axiom,
    ( unique5403075989570733136od_int
    = ( ^ [M2: num,N2: num] : ( product_Pair_int_int @ ( divide_divide_int @ ( numeral_numeral_int @ M2 ) @ ( numeral_numeral_int @ N2 ) ) @ ( modulo_modulo_int @ ( numeral_numeral_int @ M2 ) @ ( numeral_numeral_int @ N2 ) ) ) ) ) ).

% divmod_def
thf(fact_1229_bit__Suc,axiom,
    ! [A: nat,N: nat] :
      ( ( bit_se1148574629649215175it_nat @ A @ ( suc @ N ) )
      = ( bit_se1148574629649215175it_nat @ ( divide_divide_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ N ) ) ).

% bit_Suc
thf(fact_1230_bit__Suc,axiom,
    ! [A: int,N: nat] :
      ( ( bit_se1146084159140164899it_int @ A @ ( suc @ N ) )
      = ( bit_se1146084159140164899it_int @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ N ) ) ).

% bit_Suc
thf(fact_1231_Suc__div__eq__add3__div,axiom,
    ! [M: nat,N: nat] :
      ( ( divide_divide_nat @ ( suc @ ( suc @ ( suc @ M ) ) ) @ N )
      = ( divide_divide_nat @ ( plus_plus_nat @ ( numeral_numeral_nat @ ( bit1 @ one ) ) @ M ) @ N ) ) ).

% Suc_div_eq_add3_div
thf(fact_1232_le__div__geq,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ( ord_less_eq_nat @ N @ M )
       => ( ( divide_divide_nat @ M @ N )
          = ( suc @ ( divide_divide_nat @ ( minus_minus_nat @ M @ N ) @ N ) ) ) ) ) ).

% le_div_geq
thf(fact_1233_split__div_H,axiom,
    ! [P: nat > $o,M: nat,N: nat] :
      ( ( P @ ( divide_divide_nat @ M @ N ) )
      = ( ( ( N = zero_zero_nat )
          & ( P @ zero_zero_nat ) )
        | ? [Q3: nat] :
            ( ( ord_less_eq_nat @ ( times_times_nat @ N @ Q3 ) @ M )
            & ( ord_less_nat @ M @ ( times_times_nat @ N @ ( suc @ Q3 ) ) )
            & ( P @ Q3 ) ) ) ) ).

% split_div'
thf(fact_1234_div__2__gt__zero,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ ( suc @ zero_zero_nat ) @ N )
     => ( ord_less_nat @ zero_zero_nat @ ( divide_divide_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% div_2_gt_zero
thf(fact_1235_Suc__n__div__2__gt__zero,axiom,
    ! [N: nat] :
      ( ( ord_less_nat @ zero_zero_nat @ N )
     => ( ord_less_nat @ zero_zero_nat @ ( divide_divide_nat @ ( suc @ N ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% Suc_n_div_2_gt_zero
thf(fact_1236_euclidean__relation__natI,axiom,
    ! [N: nat,Q2: nat,R: nat,M: nat] :
      ( ( ( N = zero_zero_nat )
       => ( ( Q2 = zero_zero_nat )
          & ( R = M ) ) )
     => ( ( ( ord_less_nat @ zero_zero_nat @ N )
         => ( ( dvd_dvd_nat @ N @ M )
           => ( ( R = zero_zero_nat )
              & ( M
                = ( times_times_nat @ Q2 @ N ) ) ) ) )
       => ( ( ( ord_less_nat @ zero_zero_nat @ N )
           => ( ~ ( dvd_dvd_nat @ N @ M )
             => ( ( ord_less_nat @ R @ N )
                & ( M
                  = ( plus_plus_nat @ ( times_times_nat @ Q2 @ N ) @ R ) ) ) ) )
         => ( ( product_Pair_nat_nat @ ( divide_divide_nat @ M @ N ) @ ( modulo_modulo_nat @ M @ N ) )
            = ( product_Pair_nat_nat @ Q2 @ R ) ) ) ) ) ).

% euclidean_relation_natI
thf(fact_1237_odd__mod__4__div__2,axiom,
    ! [N: nat] :
      ( ( ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) )
        = ( numeral_numeral_nat @ ( bit1 @ one ) ) )
     => ~ ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( divide_divide_nat @ ( minus_minus_nat @ N @ ( suc @ zero_zero_nat ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% odd_mod_4_div_2
thf(fact_1238_even__mod__4__div__2,axiom,
    ! [N: nat] :
      ( ( ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ ( bit0 @ one ) ) ) )
        = ( suc @ zero_zero_nat ) )
     => ( dvd_dvd_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( divide_divide_nat @ ( minus_minus_nat @ N @ ( suc @ zero_zero_nat ) ) @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ).

% even_mod_4_div_2
thf(fact_1239_nat__gcd_Ocases,axiom,
    ! [X: product_prod_nat_nat] :
      ~ ! [X5: nat,Y5: nat] :
          ( X
         != ( product_Pair_nat_nat @ X5 @ Y5 ) ) ).

% nat_gcd.cases
thf(fact_1240_set__bit__Suc,axiom,
    ! [N: nat,A: nat] :
      ( ( bit_se7882103937844011126it_nat @ ( suc @ N ) @ A )
      = ( plus_plus_nat @ ( modulo_modulo_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( bit_se7882103937844011126it_nat @ N @ ( divide_divide_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ) ) ).

% set_bit_Suc
thf(fact_1241_set__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_se7879613467334960850it_int @ ( suc @ N ) @ A )
      = ( plus_plus_int @ ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ ( bit_se7879613467334960850it_int @ N @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ) ) ).

% set_bit_Suc
thf(fact_1242_flip__bit__Suc,axiom,
    ! [N: nat,A: nat] :
      ( ( bit_se2161824704523386999it_nat @ ( suc @ N ) @ A )
      = ( plus_plus_nat @ ( modulo_modulo_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( bit_se2161824704523386999it_nat @ N @ ( divide_divide_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ) ) ).

% flip_bit_Suc
thf(fact_1243_flip__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_se2159334234014336723it_int @ ( suc @ N ) @ A )
      = ( plus_plus_int @ ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ ( bit_se2159334234014336723it_int @ N @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ) ) ).

% flip_bit_Suc
thf(fact_1244_unset__bit__Suc,axiom,
    ! [N: nat,A: nat] :
      ( ( bit_se4205575877204974255it_nat @ ( suc @ N ) @ A )
      = ( plus_plus_nat @ ( modulo_modulo_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) @ ( times_times_nat @ ( numeral_numeral_nat @ ( bit0 @ one ) ) @ ( bit_se4205575877204974255it_nat @ N @ ( divide_divide_nat @ A @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ) ) ) ).

% unset_bit_Suc
thf(fact_1245_unset__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_se4203085406695923979it_int @ ( suc @ N ) @ A )
      = ( plus_plus_int @ ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ ( bit_se4203085406695923979it_int @ N @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ) ) ).

% unset_bit_Suc
thf(fact_1246_euclidean__relationI,axiom,
    ! [B: nat,Q2: nat,R: nat,A: nat] :
      ( ( ( B = zero_zero_nat )
       => ( ( Q2 = zero_zero_nat )
          & ( R = A ) ) )
     => ( ( ( B != zero_zero_nat )
         => ( ( dvd_dvd_nat @ B @ A )
           => ( ( R = zero_zero_nat )
              & ( A
                = ( times_times_nat @ Q2 @ B ) ) ) ) )
       => ( ( ( B != zero_zero_nat )
           => ( ~ ( dvd_dvd_nat @ B @ A )
             => ( ( ( euclid3398187327856392827nt_nat @ R )
                  = ( euclid3398187327856392827nt_nat @ B ) )
                & ( ord_less_nat @ ( euclid4777050414544973029ze_nat @ R ) @ ( euclid4777050414544973029ze_nat @ B ) )
                & ( A
                  = ( plus_plus_nat @ ( times_times_nat @ Q2 @ B ) @ R ) ) ) ) )
         => ( ( product_Pair_nat_nat @ ( divide_divide_nat @ A @ B ) @ ( modulo_modulo_nat @ A @ B ) )
            = ( product_Pair_nat_nat @ Q2 @ R ) ) ) ) ) ).

% euclidean_relationI
thf(fact_1247_euclidean__relationI,axiom,
    ! [B: int,Q2: int,R: int,A: int] :
      ( ( ( B = zero_zero_int )
       => ( ( Q2 = zero_zero_int )
          & ( R = A ) ) )
     => ( ( ( B != zero_zero_int )
         => ( ( dvd_dvd_int @ B @ A )
           => ( ( R = zero_zero_int )
              & ( A
                = ( times_times_int @ Q2 @ B ) ) ) ) )
       => ( ( ( B != zero_zero_int )
           => ( ~ ( dvd_dvd_int @ B @ A )
             => ( ( ( euclid3395696857347342551nt_int @ R )
                  = ( euclid3395696857347342551nt_int @ B ) )
                & ( ord_less_nat @ ( euclid4774559944035922753ze_int @ R ) @ ( euclid4774559944035922753ze_int @ B ) )
                & ( A
                  = ( plus_plus_int @ ( times_times_int @ Q2 @ B ) @ R ) ) ) ) )
         => ( ( product_Pair_int_int @ ( divide_divide_int @ A @ B ) @ ( modulo_modulo_int @ A @ B ) )
            = ( product_Pair_int_int @ Q2 @ R ) ) ) ) ) ).

% euclidean_relationI
thf(fact_1248_Euclidean__Division_Odivmod__nat__def,axiom,
    ( euclidean_divmod_nat
    = ( ^ [M2: nat,N2: nat] : ( product_Pair_nat_nat @ ( divide_divide_nat @ M2 @ N2 ) @ ( modulo_modulo_nat @ M2 @ N2 ) ) ) ) ).

% Euclidean_Division.divmod_nat_def
thf(fact_1249_signed__take__bit__Suc,axiom,
    ! [N: nat,A: int] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ A )
      = ( plus_plus_int @ ( modulo_modulo_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ ( bit_ri631733984087533419it_int @ N @ ( divide_divide_int @ A @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ) ) ) ).

% signed_take_bit_Suc
thf(fact_1250_signed__take__bit__Suc__bit0,axiom,
    ! [N: nat,K: num] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ ( numeral_numeral_int @ ( bit0 @ K ) ) )
      = ( times_times_int @ ( bit_ri631733984087533419it_int @ N @ ( numeral_numeral_int @ K ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ).

% signed_take_bit_Suc_bit0
thf(fact_1251_signed__take__bit__Suc__1,axiom,
    ! [N: nat] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ one_one_int )
      = one_one_int ) ).

% signed_take_bit_Suc_1
thf(fact_1252_signed__take__bit__Suc__bit1,axiom,
    ! [N: nat,K: num] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ ( numeral_numeral_int @ ( bit1 @ K ) ) )
      = ( plus_plus_int @ ( times_times_int @ ( bit_ri631733984087533419it_int @ N @ ( numeral_numeral_int @ K ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ one_one_int ) ) ).

% signed_take_bit_Suc_bit1
thf(fact_1253_signed__take__bit__eq__iff__take__bit__eq,axiom,
    ! [N: nat,A: int,B: int] :
      ( ( ( bit_ri631733984087533419it_int @ N @ A )
        = ( bit_ri631733984087533419it_int @ N @ B ) )
      = ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ A )
        = ( bit_se2923211474154528505it_int @ ( suc @ N ) @ B ) ) ) ).

% signed_take_bit_eq_iff_take_bit_eq
thf(fact_1254_take__bit__signed__take__bit,axiom,
    ! [M: nat,N: nat,A: int] :
      ( ( ord_less_eq_nat @ M @ ( suc @ N ) )
     => ( ( bit_se2923211474154528505it_int @ M @ ( bit_ri631733984087533419it_int @ N @ A ) )
        = ( bit_se2923211474154528505it_int @ M @ A ) ) ) ).

% take_bit_signed_take_bit
thf(fact_1255_and__Suc__0__eq,axiom,
    ! [N: nat] :
      ( ( bit_se727722235901077358nd_nat @ N @ ( suc @ zero_zero_nat ) )
      = ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ).

% and_Suc_0_eq
thf(fact_1256_Suc__0__and__eq,axiom,
    ! [N: nat] :
      ( ( bit_se727722235901077358nd_nat @ ( suc @ zero_zero_nat ) @ N )
      = ( modulo_modulo_nat @ N @ ( numeral_numeral_nat @ ( bit0 @ one ) ) ) ) ).

% Suc_0_and_eq
thf(fact_1257_and__nat__numerals_I3_J,axiom,
    ! [X: num] :
      ( ( bit_se727722235901077358nd_nat @ ( numeral_numeral_nat @ ( bit0 @ X ) ) @ ( suc @ zero_zero_nat ) )
      = zero_zero_nat ) ).

% and_nat_numerals(3)
thf(fact_1258_and__nat__numerals_I1_J,axiom,
    ! [Y: num] :
      ( ( bit_se727722235901077358nd_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit0 @ Y ) ) )
      = zero_zero_nat ) ).

% and_nat_numerals(1)
thf(fact_1259_and__nat__numerals_I2_J,axiom,
    ! [Y: num] :
      ( ( bit_se727722235901077358nd_nat @ ( suc @ zero_zero_nat ) @ ( numeral_numeral_nat @ ( bit1 @ Y ) ) )
      = one_one_nat ) ).

% and_nat_numerals(2)
thf(fact_1260_and__nat__numerals_I4_J,axiom,
    ! [X: num] :
      ( ( bit_se727722235901077358nd_nat @ ( numeral_numeral_nat @ ( bit1 @ X ) ) @ ( suc @ zero_zero_nat ) )
      = one_one_nat ) ).

% and_nat_numerals(4)
thf(fact_1261_divmod__int__def,axiom,
    ( unique5403075989570733136od_int
    = ( ^ [M2: num,N2: num] : ( product_Pair_int_int @ ( divide_divide_int @ ( numeral_numeral_int @ M2 ) @ ( numeral_numeral_int @ N2 ) ) @ ( modulo_modulo_int @ ( numeral_numeral_int @ M2 ) @ ( numeral_numeral_int @ N2 ) ) ) ) ) ).

% divmod_int_def
thf(fact_1262_signed__take__bit__Suc__minus__bit1,axiom,
    ! [N: nat,K: num] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit1 @ K ) ) ) )
      = ( plus_plus_int @ ( times_times_int @ ( bit_ri631733984087533419it_int @ N @ ( minus_minus_int @ ( uminus_uminus_int @ ( numeral_numeral_int @ K ) ) @ one_one_int ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ one_one_int ) ) ).

% signed_take_bit_Suc_minus_bit1
thf(fact_1263_concat__bit__Suc,axiom,
    ! [N: nat,K: int,L: int] :
      ( ( bit_concat_bit @ ( suc @ N ) @ K @ L )
      = ( plus_plus_int @ ( modulo_modulo_int @ K @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ ( times_times_int @ ( numeral_numeral_int @ ( bit0 @ one ) ) @ ( bit_concat_bit @ N @ ( divide_divide_int @ K @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ L ) ) ) ) ).

% concat_bit_Suc
thf(fact_1264_bit__minus__numeral__Bit0__Suc__iff,axiom,
    ! [W: num,N: nat] :
      ( ( bit_se1146084159140164899it_int @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit0 @ W ) ) ) @ ( suc @ N ) )
      = ( bit_se1146084159140164899it_int @ ( uminus_uminus_int @ ( numeral_numeral_int @ W ) ) @ N ) ) ).

% bit_minus_numeral_Bit0_Suc_iff
thf(fact_1265_bit__minus__numeral__Bit1__Suc__iff,axiom,
    ! [W: num,N: nat] :
      ( ( bit_se1146084159140164899it_int @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit1 @ W ) ) ) @ ( suc @ N ) )
      = ( ~ ( bit_se1146084159140164899it_int @ ( numeral_numeral_int @ W ) @ N ) ) ) ).

% bit_minus_numeral_Bit1_Suc_iff
thf(fact_1266_push__bit__Suc__minus__numeral,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se545348938243370406it_int @ ( suc @ N ) @ ( uminus_uminus_int @ ( numeral_numeral_int @ K ) ) )
      = ( bit_se545348938243370406it_int @ N @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit0 @ K ) ) ) ) ) ).

% push_bit_Suc_minus_numeral
thf(fact_1267_signed__take__bit__Suc__minus__bit0,axiom,
    ! [N: nat,K: num] :
      ( ( bit_ri631733984087533419it_int @ ( suc @ N ) @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit0 @ K ) ) ) )
      = ( times_times_int @ ( bit_ri631733984087533419it_int @ N @ ( uminus_uminus_int @ ( numeral_numeral_int @ K ) ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ).

% signed_take_bit_Suc_minus_bit0
thf(fact_1268_take__bit__Suc__minus__bit0,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit0 @ K ) ) ) )
      = ( times_times_int @ ( bit_se2923211474154528505it_int @ N @ ( uminus_uminus_int @ ( numeral_numeral_int @ K ) ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) ) ).

% take_bit_Suc_minus_bit0
thf(fact_1269_take__bit__Suc__minus__bit1,axiom,
    ! [N: nat,K: num] :
      ( ( bit_se2923211474154528505it_int @ ( suc @ N ) @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( bit1 @ K ) ) ) )
      = ( plus_plus_int @ ( times_times_int @ ( bit_se2923211474154528505it_int @ N @ ( uminus_uminus_int @ ( numeral_numeral_int @ ( inc @ K ) ) ) ) @ ( numeral_numeral_int @ ( bit0 @ one ) ) ) @ one_one_int ) ) ).

% take_bit_Suc_minus_bit1
thf(fact_1270_divmod__BitM__2__eq,axiom,
    ! [M: num] :
      ( ( unique5403075989570733136od_int @ ( bitM @ M ) @ ( bit0 @ one ) )
      = ( product_Pair_int_int @ ( minus_minus_int @ ( numeral_numeral_int @ M ) @ one_one_int ) @ one_one_int ) ) ).

% divmod_BitM_2_eq

% Helper facts (9)
thf(help_If_2_1_If_001t__Nat__Onat_T,axiom,
    ! [X: nat,Y: nat] :
      ( ( if_nat @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Nat__Onat_T,axiom,
    ! [X: nat,Y: nat] :
      ( ( if_nat @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X: list_a,Y: list_a] :
      ( ( if_list_a @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__List__Olist_Itf__a_J_T,axiom,
    ! [X: list_a,Y: list_a] :
      ( ( if_list_a @ $true @ X @ Y )
      = X ) ).

thf(help_If_2_1_If_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J_T,axiom,
    ! [X: product_prod_int_int,Y: product_prod_int_int] :
      ( ( if_Pro3027730157355071871nt_int @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Product____Type__Oprod_It__Int__Oint_Mt__Int__Oint_J_T,axiom,
    ! [X: product_prod_int_int,Y: product_prod_int_int] :
      ( ( if_Pro3027730157355071871nt_int @ $true @ X @ Y )
      = X ) ).

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

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

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

% Conjectures (1)
thf(conj_0,conjecture,
    ( ( states_listL_a @ ( type_s4923920245906622843ates_a @ ( states_a2 @ left @ big @ small ) ) )
    = ( append_a @ ( small_list_current_a @ small ) @ ( rev_a @ ( big_list_current_a @ big ) ) ) ) ).

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