TPTP Problem File: SCT169+6.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SCT169+6 : TPTP v8.2.0. Released v5.3.0.
% Domain   : Social Choice Theory
% Problem  : Arrow's Impossibility Theorem line 29, 500 axioms selected
% Version  : Especial.
% English  :

% Refs     : [BN10]  Boehme & Nipkow (2010), Sledgehammer: Judgement Day
%          : [Bla11] Blanchette (2011), Email to Geoff Sutcliffe
% Source   : [Bla11]
% Names    : arrow_500_fofpt_l29 [Bla11]

% Status   : Theorem
% Rating   : 1.00 v5.3.0
% Syntax   : Number of formulae    :  644 ( 283 unt;   0 def)
%            Number of atoms       : 1264 ( 637 equ)
%            Maximal formula atoms :    7 (   1 avg)
%            Number of connectives :  778 ( 158   ~;  30   |;  61   &)
%                                         ( 107 <=>; 422  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   5 avg)
%            Maximal term depth    :   10 (   2 avg)
%            Number of predicates  :   31 (  30 usr;   0 prp; 1-2 aty)
%            Number of functors    :   69 (  69 usr;  11 con; 0-4 aty)
%            Number of variables   : 1635 (1596   !;  39   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2011-08-09 13:58:28
%          : Encoded with polymorphic tags.
%------------------------------------------------------------------------------
%----Explicit typings (68)
fof(tsy_c_COMBB_res,axiom,
    ! [X_b,X_c,X_a] : ti(fun(fun(X_b,X_c),fun(fun(X_a,X_b),fun(X_a,X_c))),combb(X_b,X_c,X_a)) = combb(X_b,X_c,X_a) ).

fof(tsy_c_COMBC_res,axiom,
    ! [X_a,X_b,X_c] : ti(fun(fun(X_a,fun(X_b,X_c)),fun(X_b,fun(X_a,X_c))),combc(X_a,X_b,X_c)) = combc(X_a,X_b,X_c) ).

fof(tsy_c_COMBK_res,axiom,
    ! [X_a,X_b] : ti(fun(X_a,fun(X_b,X_a)),combk(X_a,X_b)) = combk(X_a,X_b) ).

fof(tsy_c_COMBS_res,axiom,
    ! [X_a,X_b,X_c] : ti(fun(fun(X_a,fun(X_b,X_c)),fun(fun(X_a,X_b),fun(X_a,X_c))),combs(X_a,X_b,X_c)) = combs(X_a,X_b,X_c) ).

fof(tsy_c_Groups_Ominus__class_Ominus_res,axiom,
    ! [X_a] :
      ( minus(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),minus_minus(X_a)) = minus_minus(X_a) ) ).

fof(tsy_c_Groups_Oone__class_Oone_res,axiom,
    ! [X_a] :
      ( one(X_a)
     => ti(X_a,one_one(X_a)) = one_one(X_a) ) ).

fof(tsy_c_Groups_Oplus__class_Oplus_0_res,axiom,
    ! [X_a] :
      ( monoid_add(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),plus_plus(X_a)) = plus_plus(X_a) ) ).

fof(tsy_c_Groups_Oplus__class_Oplus_1_res,axiom,
    ! [X_a] :
      ( ab_semigroup_add(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),plus_plus(X_a)) = plus_plus(X_a) ) ).

fof(tsy_c_Groups_Oplus__class_Oplus_2_res,axiom,
    ! [X_a] :
      ( cancel_semigroup_add(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),plus_plus(X_a)) = plus_plus(X_a) ) ).

fof(tsy_c_Groups_Ozero__class_Ozero_res,axiom,
    ! [X_a] :
      ( zero(X_a)
     => ti(X_a,zero_zero(X_a)) = zero_zero(X_a) ) ).

fof(tsy_c_HOL_Oequal__class_Oequal_res,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => ti(fun(X_a,fun(X_a,bool)),equal_equal(X_a)) = equal_equal(X_a) ) ).

fof(tsy_c_HOL_Oundefined_res,axiom,
    ! [X_a] : ti(X_a,undefined(X_a)) = undefined(X_a) ).

fof(tsy_c_Int_Onumber__class_Onumber__of_0_res,axiom,
    ! [X_a] :
      ( number_ring(X_a)
     => ti(fun(int,X_a),number_number_of(X_a)) = number_number_of(X_a) ) ).

fof(tsy_c_Int_Onumber__class_Onumber__of_1_res,axiom,
    ti(fun(int,nat),number_number_of(nat)) = number_number_of(nat) ).

fof(tsy_c_Int_Oring__1__class_OInts_res,axiom,
    ! [X_a] :
      ( ring_1(X_a)
     => ti(fun(X_a,bool),ring_1_Ints(X_a)) = ring_1_Ints(X_a) ) ).

fof(tsy_c_List_OListMem_res,axiom,
    ! [X_a] : ti(fun(X_a,fun(list(X_a),bool)),listMem(X_a)) = listMem(X_a) ).

fof(tsy_c_List_Oappend_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(list(X_a),list(X_a))),append(X_a)) = append(X_a) ).

fof(tsy_c_List_Obutlast_res,axiom,
    ! [X_a] : ti(fun(list(X_a),list(X_a)),butlast(X_a)) = butlast(X_a) ).

fof(tsy_c_List_Odistinct_res,axiom,
    ! [X_a] : ti(fun(list(X_a),bool),distinct(X_a)) = distinct(X_a) ).

fof(tsy_c_List_Odrop_res,axiom,
    ! [X_a] : ti(fun(nat,fun(list(X_a),list(X_a))),drop(X_a)) = drop(X_a) ).

fof(tsy_c_List_OdropWhile_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,bool),fun(list(X_a),list(X_a))),dropWhile(X_a)) = dropWhile(X_a) ).

fof(tsy_c_List_Ofoldr_res,axiom,
    ! [X_b,X_a] : ti(fun(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a))),foldr(X_b,X_a)) = foldr(X_b,X_a) ).

fof(tsy_c_List_Ohd_res,axiom,
    ! [X_a] : ti(fun(list(X_a),X_a),hd(X_a)) = hd(X_a) ).

fof(tsy_c_List_Oinsert_res,axiom,
    ! [X_a] : ti(fun(X_a,fun(list(X_a),list(X_a))),insert(X_a)) = insert(X_a) ).

fof(tsy_c_List_Olast_res,axiom,
    ! [X_a] : ti(fun(list(X_a),X_a),last(X_a)) = last(X_a) ).

fof(tsy_c_List_Olinorder__class_Osorted_res,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ti(fun(list(X_a),bool),linorder_sorted(X_a)) = linorder_sorted(X_a) ) ).

fof(tsy_c_List_Olinorder__class_Osorted__list__of__set_res,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ti(fun(fun(X_a,bool),list(X_a)),linord467138063of_set(X_a)) = linord467138063of_set(X_a) ) ).

fof(tsy_c_List_Olist_OCons_res,axiom,
    ! [X_a] : ti(fun(X_a,fun(list(X_a),list(X_a))),cons(X_a)) = cons(X_a) ).

fof(tsy_c_List_Olist_ONil_res,axiom,
    ! [X_a] : ti(list(X_a),nil(X_a)) = nil(X_a) ).

fof(tsy_c_List_Olist_Olist__case_res,axiom,
    ! [X_a,X_b] : ti(fun(X_a,fun(fun(X_b,fun(list(X_b),X_a)),fun(list(X_b),X_a))),list_case(X_a,X_b)) = list_case(X_a,X_b) ).

fof(tsy_c_List_Olist_Olist__rec_res,axiom,
    ! [X_a,X_b] : ti(fun(X_a,fun(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a))),list_rec(X_a,X_b)) = list_rec(X_a,X_b) ).

fof(tsy_c_List_Olist_Olist__size_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,nat),fun(list(X_a),nat)),list_size(X_a)) = list_size(X_a) ).

fof(tsy_c_List_Olist__ex_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,bool),fun(list(X_a),bool)),list_ex(X_a)) = list_ex(X_a) ).

fof(tsy_c_List_Olist__ex1_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,bool),fun(list(X_a),bool)),list_ex1(X_a)) = list_ex1(X_a) ).

fof(tsy_c_List_Olist__update_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(nat,fun(X_a,list(X_a)))),list_update(X_a)) = list_update(X_a) ).

fof(tsy_c_List_Olistrelp_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool))),listrelp(X_a)) = listrelp(X_a) ).

fof(tsy_c_List_Omap__filter_res,axiom,
    ! [X_b,X_a] : ti(fun(fun(X_b,option(X_a)),fun(list(X_b),list(X_a))),map_filter(X_b,X_a)) = map_filter(X_b,X_a) ).

fof(tsy_c_List_Omaps_res,axiom,
    ! [X_b,X_a] : ti(fun(fun(X_b,list(X_a)),fun(list(X_b),list(X_a))),maps(X_b,X_a)) = maps(X_b,X_a) ).

fof(tsy_c_List_Omember_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(X_a,bool)),member_1(X_a)) = member_1(X_a) ).

fof(tsy_c_List_Onth_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(nat,X_a)),nth(X_a)) = nth(X_a) ).

fof(tsy_c_List_Onull_res,axiom,
    ! [X_a] : ti(fun(list(X_a),bool),null(X_a)) = null(X_a) ).

fof(tsy_c_List_Oreplicate_res,axiom,
    ! [X_a] : ti(fun(nat,fun(X_a,list(X_a))),replicate(X_a)) = replicate(X_a) ).

fof(tsy_c_List_Orev_res,axiom,
    ! [X_a] : ti(fun(list(X_a),list(X_a)),rev(X_a)) = rev(X_a) ).

fof(tsy_c_List_Orotate1_res,axiom,
    ! [X_a] : ti(fun(list(X_a),list(X_a)),rotate1(X_a)) = rotate1(X_a) ).

fof(tsy_c_List_Osplice_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(list(X_a),list(X_a))),splice(X_a)) = splice(X_a) ).

fof(tsy_c_List_Osublist_res,axiom,
    ! [X_a] : ti(fun(list(X_a),fun(fun(nat,bool),list(X_a))),sublist(X_a)) = sublist(X_a) ).

fof(tsy_c_List_Otake_res,axiom,
    ! [X_a] : ti(fun(nat,fun(list(X_a),list(X_a))),take(X_a)) = take(X_a) ).

fof(tsy_c_List_OtakeWhile_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,bool),fun(list(X_a),list(X_a))),takeWhile(X_a)) = takeWhile(X_a) ).

fof(tsy_c_List_Otl_res,axiom,
    ! [X_a] : ti(fun(list(X_a),list(X_a)),tl(X_a)) = tl(X_a) ).

fof(tsy_c_Nat_OSuc_res,axiom,
    ti(fun(nat,nat),suc) = suc ).

fof(tsy_c_Nat_Osize__class_Osize_res,axiom,
    ! [X_a] : ti(fun(list(X_a),nat),size_size(list(X_a))) = size_size(list(X_a)) ).

fof(tsy_c_Orderings_Obot__class_Obot_res,axiom,
    ! [X_b] :
      ( bot(X_b)
     => ti(X_b,bot_bot(X_b)) = bot_bot(X_b) ) ).

fof(tsy_c_Orderings_Oord__class_Oless_res,axiom,
    ! [X_a] :
      ( ord(X_a)
     => ti(fun(X_a,fun(X_a,bool)),ord_less(X_a)) = ord_less(X_a) ) ).

fof(tsy_c_Orderings_Oord__class_Omax_0_res,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),ord_max(X_a)) = ord_max(X_a) ) ).

fof(tsy_c_Orderings_Oord__class_Omax_1_res,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ti(fun(X_a,fun(X_a,X_a)),ord_max(X_a)) = ord_max(X_a) ) ).

fof(tsy_c_Set_OCollect_res,axiom,
    ! [X_a] : ti(fun(fun(X_a,bool),fun(X_a,bool)),collect(X_a)) = collect(X_a) ).

fof(tsy_c_fFalse_res,axiom,
    ti(bool,fFalse) = fFalse ).

fof(tsy_c_fNot_res,axiom,
    ti(fun(bool,bool),fNot) = fNot ).

fof(tsy_c_fTrue_res,axiom,
    ti(bool,fTrue) = fTrue ).

fof(tsy_c_fconj_res,axiom,
    ti(fun(bool,fun(bool,bool)),fconj) = fconj ).

fof(tsy_c_fequal_res,axiom,
    ! [X_a] : ti(fun(X_a,fun(X_a,bool)),fequal(X_a)) = fequal(X_a) ).

fof(tsy_c_hAPP_arg1,axiom,
    ! [X_a,X_c,B_1_1,B_2_1] : hAPP(X_a,X_c,ti(fun(X_a,X_c),B_1_1),B_2_1) = hAPP(X_a,X_c,B_1_1,B_2_1) ).

fof(tsy_c_hAPP_arg2,axiom,
    ! [X_a,X_c,B_1_1,B_2_1] : hAPP(X_a,X_c,B_1_1,ti(X_a,B_2_1)) = hAPP(X_a,X_c,B_1_1,B_2_1) ).

fof(tsy_c_hAPP_res,axiom,
    ! [X_c,X_a,B_1_1,B_2_1] : ti(X_c,hAPP(X_a,X_c,B_1_1,B_2_1)) = hAPP(X_a,X_c,B_1_1,B_2_1) ).

fof(tsy_c_hBOOL_arg1,hypothesis,
    ! [B_1_1] :
      ( hBOOL(ti(bool,B_1_1))
    <=> hBOOL(B_1_1) ) ).

fof(tsy_c_member_res,axiom,
    ! [X_a] : ti(fun(X_a,fun(fun(X_a,bool),bool)),member(X_a)) = member(X_a) ).

fof(tsy_v_a_res,hypothesis,
    ti(arrow_490897120le_alt,a) = a ).

fof(tsy_v_b_res,hypothesis,
    ti(arrow_490897120le_alt,b) = b ).

%----Relevant facts (497)
fof(fact_0_alt3,axiom,
    ? [A_4,B_2,C] : hBOOL(hAPP(list(arrow_490897120le_alt),bool,distinct(arrow_490897120le_alt),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),A_4),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),B_2),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),C),nil(arrow_490897120le_alt)))))) ).

fof(fact_1_distinct_Osimps_I1_J,axiom,
    ! [X_a] : hBOOL(hAPP(list(X_a),bool,distinct(X_a),nil(X_a))) ).

fof(fact_2_list_Osimps_I2_J,axiom,
    ! [X_a,A_5,List_4] : nil(X_a) != hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_5),List_4) ).

fof(fact_3_list_Osimps_I3_J,axiom,
    ! [X_a,A_5,List_4] : hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_5),List_4) != nil(X_a) ).

fof(fact_4_neq__Nil__conv,axiom,
    ! [X_a,Xs_1] :
      ( Xs_1 != nil(X_a)
    <=> ? [Y_1,Ys_2] : Xs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),Ys_2) ) ).

fof(fact_5_list_Oexhaust,axiom,
    ! [X_a,Y] :
      ( Y != nil(X_a)
     => ~ ! [A_4,List_3] : Y != hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_4),List_3) ) ).

fof(fact_6_not__Cons__self,axiom,
    ! [X_a,Xs,X] : Xs != hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs) ).

fof(fact_7_not__Cons__self2,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs) != Xs ).

fof(fact_8_list_Oinject,axiom,
    ! [X_a,Aa,List,A_3,List_2] :
      ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Aa),List) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_3),List_2)
    <=> ( ti(X_a,Aa) = ti(X_a,A_3)
        & List = List_2 ) ) ).

fof(fact_9_splice_Osimps_I2_J,axiom,
    ! [X_a,V,Va] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),V),Va)),nil(X_a)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),V),Va) ).

fof(fact_10_insert__Nil,axiom,
    ! [X_a,X] : hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),insert(X_a),X),nil(X_a)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a)) ).

fof(fact_11_list__nonempty__induct,axiom,
    ! [X_a,P_1,Xs_1] :
      ( Xs_1 != nil(X_a)
     => ( ! [X_2] : hBOOL(hAPP(list(X_a),bool,P_1,hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),nil(X_a))))
       => ( ! [X_2,Xs_2] :
              ( Xs_2 != nil(X_a)
             => ( hBOOL(hAPP(list(X_a),bool,P_1,Xs_2))
               => hBOOL(hAPP(list(X_a),bool,P_1,hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2))) ) )
         => hBOOL(hAPP(list(X_a),bool,P_1,Xs_1)) ) ) ) ).

fof(fact_12_distinct__butlast,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs))
       => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),butlast(X_a),Xs))) ) ) ).

fof(fact_13_butlast_Osimps_I1_J,axiom,
    ! [X_a] : hAPP(list(X_a),list(X_a),butlast(X_a),nil(X_a)) = nil(X_a) ).

fof(fact_14_distinct__insert,axiom,
    ! [X_a,X,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),insert(X_a),X),Xs))) ) ).

fof(fact_15_splice_Osimps_I3_J,axiom,
    ! [X_a,X,Xs,Y,Ys] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),Ys)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),Xs),Ys))) ).

fof(fact_16_splice__Nil2,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),Xs),nil(X_a)) = Xs ).

fof(fact_17_splice_Osimps_I1_J,axiom,
    ! [X_a,Ys] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),nil(X_a)),Ys) = Ys ).

fof(fact_18_butlast_Osimps_I2_J,axiom,
    ! [X_a,X,Xs] :
      ( ( Xs = nil(X_a)
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = nil(X_a) )
      & ( Xs != nil(X_a)
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)) ) ) ).

fof(fact_19_list_Osimps_I4_J,axiom,
    ! [X_b,X_a,F1,F2] : hAPP(list(X_b),X_a,hAPP(fun(X_b,fun(list(X_b),X_a)),fun(list(X_b),X_a),hAPP(X_a,fun(fun(X_b,fun(list(X_b),X_a)),fun(list(X_b),X_a)),list_case(X_a,X_b),F1),F2),nil(X_b)) = ti(X_a,F1) ).

fof(fact_20_list_Osimps_I5_J,axiom,
    ! [X_b,X_a,F1,F2,Aa,List] : hAPP(list(X_b),X_a,hAPP(fun(X_b,fun(list(X_b),X_a)),fun(list(X_b),X_a),hAPP(X_a,fun(fun(X_b,fun(list(X_b),X_a)),fun(list(X_b),X_a)),list_case(X_a,X_b),F1),F2),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),Aa),List)) = hAPP(list(X_b),X_a,hAPP(X_b,fun(list(X_b),X_a),F2,Aa),List) ).

fof(fact_21_list_Orecs_I1_J,axiom,
    ! [X_b,X_a,F1,F2] : hAPP(list(X_b),X_a,hAPP(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a),hAPP(X_a,fun(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a)),list_rec(X_a,X_b),F1),F2),nil(X_b)) = ti(X_a,F1) ).

fof(fact_22_list_Orecs_I2_J,axiom,
    ! [X_b,X_a,F1,F2,Aa,List] : hAPP(list(X_b),X_a,hAPP(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a),hAPP(X_a,fun(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a)),list_rec(X_a,X_b),F1),F2),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),Aa),List)) = hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(X_b,fun(list(X_b),fun(X_a,X_a)),F2,Aa),List),hAPP(list(X_b),X_a,hAPP(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a),hAPP(X_a,fun(fun(X_b,fun(list(X_b),fun(X_a,X_a))),fun(list(X_b),X_a)),list_rec(X_a,X_b),F1),F2),List)) ).

fof(fact_23_eq__Nil__null,axiom,
    ! [X_a,Xs_1] :
      ( Xs_1 = nil(X_a)
    <=> hBOOL(hAPP(list(X_a),bool,null(X_a),Xs_1)) ) ).

fof(fact_24_List_Onull__def,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,null(X_a),Xs_1))
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_25_null__rec_I2_J,axiom,
    ! [X_b] : hBOOL(hAPP(list(X_b),bool,null(X_b),nil(X_b))) ).

fof(fact_26_null__rec_I1_J,axiom,
    ! [X_a,X,Xs] : ~ hBOOL(hAPP(list(X_a),bool,null(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs))) ).

fof(fact_27_butlast__snoc,axiom,
    ! [X_a,Xs,X] : hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a)))) = Xs ).

fof(fact_28_maps__simps_I2_J,axiom,
    ! [X_b,X_a,F] : hAPP(list(X_b),list(X_a),hAPP(fun(X_b,list(X_a)),fun(list(X_b),list(X_a)),maps(X_b,X_a),F),nil(X_b)) = nil(X_a) ).

fof(fact_29_sorted__single,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X] : hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a)))) ) ).

fof(fact_30_sorted_ONil,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),nil(X_a))) ) ).

fof(fact_31_append__assoc,axiom,
    ! [X_a,Xs,Ys,Zs_2] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),Zs_2) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys),Zs_2)) ).

fof(fact_32_append__eq__append__conv2,axiom,
    ! [X_a,Xs_1,Ys_1,Zs,Ts] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs),Ts)
    <=> ? [Us_1] :
          ( ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs),Us_1)
            & hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Us_1),Ys_1) = Ts )
          | ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Us_1) = Zs
            & Ys_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Us_1),Ts) ) ) ) ).

fof(fact_33_same__append__eq,axiom,
    ! [X_a,Xs_1,Ys_1,Zs] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Zs)
    <=> Ys_1 = Zs ) ).

fof(fact_34_append__same__eq,axiom,
    ! [X_a,Ys_1,Xs_1,Zs] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs),Xs_1)
    <=> Ys_1 = Zs ) ).

fof(fact_35_append__eq__appendI,axiom,
    ! [X_a,Ys,Us,Xs,Xs1,Zs_2] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Xs1) = Zs_2
     => ( Ys = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs1),Us)
       => hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs_2),Us) ) ) ).

fof(fact_36_maps__simps_I1_J,axiom,
    ! [X_b,X_a,F,X_1,Xs_1] : hAPP(list(X_b),list(X_a),hAPP(fun(X_b,list(X_a)),fun(list(X_b),list(X_a)),maps(X_b,X_a),F),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),X_1),Xs_1)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_b,list(X_a),F,X_1)),hAPP(list(X_b),list(X_a),hAPP(fun(X_b,list(X_a)),fun(list(X_b),list(X_a)),maps(X_b,X_a),F),Xs_1)) ).

fof(fact_37_append__Cons,axiom,
    ! [X_a,X,Xs,Ys] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),Ys) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) ).

fof(fact_38_Cons__eq__appendI,axiom,
    ! [X_a,Xs,Zs_2,X,Xs1,Ys] :
      ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs1) = Ys
     => ( Xs = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs1),Zs_2)
       => hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys),Zs_2) ) ) ).

fof(fact_39_append__Nil,axiom,
    ! [X_a,Ys] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),nil(X_a)),Ys) = Ys ).

fof(fact_40_Nil__is__append__conv,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( nil(X_a) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1)
    <=> ( Xs_1 = nil(X_a)
        & Ys_1 = nil(X_a) ) ) ).

fof(fact_41_append__Nil2,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),nil(X_a)) = Xs ).

fof(fact_42_self__append__conv,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1)
    <=> Ys_1 = nil(X_a) ) ).

fof(fact_43_self__append__conv2,axiom,
    ! [X_a,Ys_1,Xs_1] :
      ( Ys_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_44_append__is__Nil__conv,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = nil(X_a)
    <=> ( Xs_1 = nil(X_a)
        & Ys_1 = nil(X_a) ) ) ).

fof(fact_45_append__self__conv,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = Xs_1
    <=> Ys_1 = nil(X_a) ) ).

fof(fact_46_append__self__conv2,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = Ys_1
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_47_eq__Nil__appendI,axiom,
    ! [X_a,Xs,Ys] :
      ( Xs = Ys
     => Xs = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),nil(X_a)),Ys) ) ).

fof(fact_48_append__eq__Cons__conv,axiom,
    ! [X_a,Ys_1,Zs,X_1,Xs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Zs) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)
    <=> ( ( Ys_1 = nil(X_a)
          & Zs = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1) )
        | ? [Ys_3] :
            ( Ys_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Ys_3)
            & hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_3),Zs) = Xs_1 ) ) ) ).

fof(fact_49_Cons__eq__append__conv,axiom,
    ! [X_a,X_1,Xs_1,Ys_1,Zs] :
      ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Zs)
    <=> ( ( Ys_1 = nil(X_a)
          & hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1) = Zs )
        | ? [Ys_3] :
            ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Ys_3) = Ys_1
            & Xs_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_3),Zs) ) ) ) ).

fof(fact_50_append1__eq__conv,axiom,
    ! [X_a,Xs_1,X_1,Ys_1,Y_2] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a))) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),nil(X_a)))
    <=> ( Xs_1 = Ys_1
        & ti(X_a,X_1) = ti(X_a,Y_2) ) ) ).

fof(fact_51_butlast__append,axiom,
    ! [X_a,Xs,Ys] :
      ( ( Ys = nil(X_a)
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),butlast(X_a),Xs) )
      & ( Ys != nil(X_a)
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),butlast(X_a),Ys)) ) ) ).

fof(fact_52_sorted__butlast,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [Xs] :
          ( Xs != nil(X_a)
         => ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs))
           => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),butlast(X_a),Xs))) ) ) ) ).

fof(fact_53_rev__induct,axiom,
    ! [X_a,Xs_1,P_1] :
      ( hBOOL(hAPP(list(X_a),bool,P_1,nil(X_a)))
     => ( ! [X_2,Xs_2] :
            ( hBOOL(hAPP(list(X_a),bool,P_1,Xs_2))
           => hBOOL(hAPP(list(X_a),bool,P_1,hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_2),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),nil(X_a))))) )
       => hBOOL(hAPP(list(X_a),bool,P_1,Xs_1)) ) ) ).

fof(fact_54_rev__cases,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => ~ ! [Ys_2,Y_1] : Xs != hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_2),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),nil(X_a))) ) ).

fof(fact_55_equal__Nil__null,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),equal_equal(list(X_a)),Xs_1),nil(X_a)))
    <=> hBOOL(hAPP(list(X_a),bool,null(X_a),Xs_1)) ) ).

fof(fact_56_snoc__eq__iff__butlast,axiom,
    ! [X_a,Xs_1,X_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a))) = Ys_1
    <=> ( Ys_1 != nil(X_a)
        & hAPP(list(X_a),list(X_a),butlast(X_a),Ys_1) = Xs_1
        & hAPP(list(X_a),X_a,last(X_a),Ys_1) = ti(X_a,X_1) ) ) ).

fof(fact_57_append__butlast__last__id,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(list(X_a),X_a,last(X_a),Xs)),nil(X_a))) = Xs ) ).

fof(fact_58_rotate__simps,axiom,
    ! [X_b,X_a,X,Xs] :
      ( hAPP(list(X_a),list(X_a),rotate1(X_a),nil(X_a)) = nil(X_a)
      & hAPP(list(X_b),list(X_b),rotate1(X_b),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),X),Xs)) = hAPP(list(X_b),list(X_b),hAPP(list(X_b),fun(list(X_b),list(X_b)),append(X_b),Xs),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),X),nil(X_b))) ) ).

fof(fact_59_last__snoc,axiom,
    ! [X_a,Xs,X] : hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a)))) = ti(X_a,X) ).

fof(fact_60_not__distinct__decomp,axiom,
    ! [X_a,Ws] :
      ( ~ hBOOL(hAPP(list(X_a),bool,distinct(X_a),Ws))
     => ? [Xs_2,Ys_2,Zs_1,Y_1] : Ws = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_2),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),nil(X_a))),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_2),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),nil(X_a))),Zs_1)))) ) ).

fof(fact_61_replicate__append__same,axiom,
    ! [X_a,I_1,X] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),I_1),X)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a))) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),I_1),X)) ).

fof(fact_62_rev_Osimps_I2_J,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a))) ).

fof(fact_63_rev__is__rev__conv,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs_1) = hAPP(list(X_a),list(X_a),rev(X_a),Ys_1)
    <=> Xs_1 = Ys_1 ) ).

fof(fact_64_rev__swap,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs_1) = Ys_1
    <=> Xs_1 = hAPP(list(X_a),list(X_a),rev(X_a),Ys_1) ) ).

fof(fact_65_rev__replicate,axiom,
    ! [X_a,N,X] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X) ).

fof(fact_66_rev__rev__ident,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) = Xs ).

fof(fact_67_equal__list__def,axiom,
    ! [X_a,X_1,Y_2] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),equal_equal(list(X_a)),X_1),Y_2))
    <=> X_1 = Y_2 ) ).

fof(fact_68_rev__is__Nil__conv,axiom,
    ! [X_a,Xs_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs_1) = nil(X_a)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_69_Nil__is__rev__conv,axiom,
    ! [X_a,Xs_1] :
      ( nil(X_a) = hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_70_rev_Osimps_I1_J,axiom,
    ! [X_a] : hAPP(list(X_a),list(X_a),rev(X_a),nil(X_a)) = nil(X_a) ).

fof(fact_71_rev__append,axiom,
    ! [X_a,Xs,Ys] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Ys)),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) ).

fof(fact_72_distinct__rev,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)))
    <=> hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1)) ) ).

fof(fact_73_append__replicate__commute,axiom,
    ! [X_a,N,X,K] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),K),X)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),K),X)),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) ).

fof(fact_74_rotate1__is__Nil__conv,axiom,
    ! [X_a,Xs_1] :
      ( hAPP(list(X_a),list(X_a),rotate1(X_a),Xs_1) = nil(X_a)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_75_ext,axiom,
    ! [X_a,X_b,F,G] :
      ( ! [X_2] : hAPP(X_a,X_b,F,X_2) = hAPP(X_a,X_b,G,X_2)
     => ti(fun(X_a,X_b),F) = ti(fun(X_a,X_b),G) ) ).

fof(fact_76_mem__def,axiom,
    ! [X_a,X_1,A_1] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),X_1),A_1))
    <=> hBOOL(hAPP(X_a,bool,A_1,X_1)) ) ).

fof(fact_77_Collect__def,axiom,
    ! [X_a,P_1] : hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),P_1) = ti(fun(X_a,bool),P_1) ).

fof(fact_78_distinct1__rotate,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),rotate1(X_a),Xs_1)))
    <=> hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1)) ) ).

fof(fact_79_singleton__rev__conv,axiom,
    ! [X_a,X_1,Xs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a)) = hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)
    <=> Xs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a)) ) ).

fof(fact_80_rev__singleton__conv,axiom,
    ! [X_a,Xs_1,X_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a))
    <=> Xs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a)) ) ).

fof(fact_81_replicate__app__Cons__same,axiom,
    ! [X_a,N,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)),Xs)) ).

fof(fact_82_last__ConsL,axiom,
    ! [X_a,X,Xs] :
      ( Xs = nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = ti(X_a,X) ) ).

fof(fact_83_last__ConsR,axiom,
    ! [X_a,X,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ).

fof(fact_84_last_Osimps,axiom,
    ! [X_a,X,Xs] :
      ( ( Xs = nil(X_a)
       => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = ti(X_a,X) )
      & ( Xs != nil(X_a)
       => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ) ).

fof(fact_85_last__append,axiom,
    ! [X_a,Xs,Ys] :
      ( ( Ys = nil(X_a)
       => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,last(X_a),Xs) )
      & ( Ys != nil(X_a)
       => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,last(X_a),Ys) ) ) ).

fof(fact_86_last__appendR,axiom,
    ! [X_a,Xs,Ys] :
      ( Ys != nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,last(X_a),Ys) ) ).

fof(fact_87_last__appendL,axiom,
    ! [X_a,Xs,Ys] :
      ( Ys = nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ).

fof(fact_88_rev__eq__Cons__iff,axiom,
    ! [X_a,Xs_1,Y_2,Ys_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),Ys_1)
    <=> Xs_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Ys_1)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),nil(X_a))) ) ).

fof(fact_89_last__rev,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) = hAPP(list(X_a),X_a,hd(X_a),Xs) ) ).

fof(fact_90_hd__rev,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ).

fof(fact_91_equal,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => equal_equal(X_a) = fequal(X_a) ) ).

fof(fact_92_equal__refl,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => ! [X] : hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),equal_equal(X_a),X),X)) ) ).

fof(fact_93_equal__eq,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => ! [X_1,Y_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),equal_equal(X_a),X_1),Y_2))
        <=> ti(X_a,X_1) = ti(X_a,Y_2) ) ) ).

fof(fact_94_eq__equal,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => fequal(X_a) = equal_equal(X_a) ) ).

fof(fact_95_hd__append,axiom,
    ! [X_a,Ys,Xs] :
      ( ( Xs = nil(X_a)
       => hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Ys) )
      & ( Xs != nil(X_a)
       => hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Xs) ) ) ).

fof(fact_96_hd__append2,axiom,
    ! [X_a,Ys,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Xs) ) ).

fof(fact_97_rotate1__hd__tl,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),list(X_a),rotate1(X_a),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),tl(X_a),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(list(X_a),X_a,hd(X_a),Xs)),nil(X_a))) ) ).

fof(fact_98_tl_Osimps_I2_J,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = Xs ).

fof(fact_99_tl_Osimps_I1_J,axiom,
    ! [X_a] : hAPP(list(X_a),list(X_a),tl(X_a),nil(X_a)) = nil(X_a) ).

fof(fact_100_hd_Osimps,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = ti(X_a,X) ).

fof(fact_101_distinct__tl,axiom,
    ! [X_a,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),tl(X_a),Xs))) ) ).

fof(fact_102_sorted__tl,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [Xs] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs))
         => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),tl(X_a),Xs))) ) ) ).

fof(fact_103_tl__append2,axiom,
    ! [X_a,Ys,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),tl(X_a),Xs)),Ys) ) ).

fof(fact_104_hd__dropWhile,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1) != nil(X_a)
     => ~ hBOOL(hAPP(X_a,bool,P_1,hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1)))) ) ).

fof(fact_105_member__rec_I2_J,axiom,
    ! [X_a,Y] : ~ hBOOL(hAPP(X_a,bool,hAPP(list(X_a),fun(X_a,bool),member_1(X_a),nil(X_a)),Y)) ).

fof(fact_106_list__ex1__simps_I1_J,axiom,
    ! [X_a,P_1] : ~ hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex1(X_a),P_1),nil(X_a))) ).

fof(fact_107_elem,axiom,
    ! [X_a,X,Xs] : hBOOL(hAPP(list(X_a),bool,hAPP(X_a,fun(list(X_a),bool),listMem(X_a),X),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs))) ).

fof(fact_108_member__rec_I1_J,axiom,
    ! [X_a,X_1,Xs_1,Y_2] :
      ( hBOOL(hAPP(X_a,bool,hAPP(list(X_a),fun(X_a,bool),member_1(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)),Y_2))
    <=> ( ti(X_a,X_1) = ti(X_a,Y_2)
        | hBOOL(hAPP(X_a,bool,hAPP(list(X_a),fun(X_a,bool),member_1(X_a),Xs_1),Y_2)) ) ) ).

fof(fact_109_insert,axiom,
    ! [X_a,Y,X,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(X_a,fun(list(X_a),bool),listMem(X_a),X),Xs))
     => hBOOL(hAPP(list(X_a),bool,hAPP(X_a,fun(list(X_a),bool),listMem(X_a),X),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),Xs))) ) ).

fof(fact_110_hd__replicate,axiom,
    ! [X_a,X,N] :
      ( N != zero_zero(nat)
     => hAPP(list(X_a),X_a,hd(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) = ti(X_a,X) ) ).

fof(fact_111_last__replicate,axiom,
    ! [X_a,X,N] :
      ( N != zero_zero(nat)
     => hAPP(list(X_a),X_a,last(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) = ti(X_a,X) ) ).

fof(fact_112_replicate__eq__replicate,axiom,
    ! [X_a,M_1,X_1,N_2,Y_2] :
      ( hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),M_1),X_1) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N_2),Y_2)
    <=> ( M_1 = N_2
        & ( M_1 != zero_zero(nat)
         => ti(X_a,X_1) = ti(X_a,Y_2) ) ) ) ).

fof(fact_113_dropWhile_Osimps_I2_J,axiom,
    ! [X_a,Xs_1,P_1,X_1] :
      ( ( hBOOL(hAPP(X_a,bool,P_1,X_1))
       => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)) = hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1) )
      & ( ~ hBOOL(hAPP(X_a,bool,P_1,X_1))
       => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1) ) ) ).

fof(fact_114_dropWhile_Osimps_I1_J,axiom,
    ! [X_a,P_1] : hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),nil(X_a)) = nil(X_a) ).

fof(fact_115_distinct__dropWhile,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1))) ) ).

fof(fact_116_sorted__dropWhile,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [P_1,Xs_1] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs_1))
         => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1))) ) ) ).

fof(fact_117_replicate__0,axiom,
    ! [X_a,X] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),zero_zero(nat)),X) = nil(X_a) ).

fof(fact_118_empty__replicate,axiom,
    ! [X_a,N_2,X_1] :
      ( nil(X_a) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N_2),X_1)
    <=> N_2 = zero_zero(nat) ) ).

fof(fact_119_replicate__empty,axiom,
    ! [X_a,N_2,X_1] :
      ( hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N_2),X_1) = nil(X_a)
    <=> N_2 = zero_zero(nat) ) ).

fof(fact_120_sublist__singleton,axiom,
    ! [X_a,X_1,A_1] :
      ( ( hBOOL(hAPP(fun(nat,bool),bool,hAPP(nat,fun(fun(nat,bool),bool),member(nat),zero_zero(nat)),A_1))
       => hAPP(fun(nat,bool),list(X_a),hAPP(list(X_a),fun(fun(nat,bool),list(X_a)),sublist(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a))),A_1) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a)) )
      & ( ~ hBOOL(hAPP(fun(nat,bool),bool,hAPP(nat,fun(fun(nat,bool),bool),member(nat),zero_zero(nat)),A_1))
       => hAPP(fun(nat,bool),list(X_a),hAPP(list(X_a),fun(fun(nat,bool),list(X_a)),sublist(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),nil(X_a))),A_1) = nil(X_a) ) ) ).

fof(fact_121_dropWhile__eq__Cons__conv,axiom,
    ! [X_a,P_1,Xs_1,Y_2,Ys_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),Ys_1)
    <=> ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),Ys_1))
        & ~ hBOOL(hAPP(X_a,bool,P_1,Y_2)) ) ) ).

fof(fact_122_list_Osize_I1_J,axiom,
    ! [X_a,Fa] : hAPP(list(X_a),nat,hAPP(fun(X_a,nat),fun(list(X_a),nat),list_size(X_a),Fa),nil(X_a)) = zero_zero(nat) ).

fof(fact_123_ListMem_Osimps,axiom,
    ! [X_a,A1,A2] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(X_a,fun(list(X_a),bool),listMem(X_a),A1),A2))
    <=> ( ? [X_2,Xs_2] :
            ( ti(X_a,A1) = ti(X_a,X_2)
            & A2 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2) )
        | ? [X_2,Xs_2,Y_1] :
            ( ti(X_a,A1) = ti(X_a,X_2)
            & A2 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),Xs_2)
            & hBOOL(hAPP(list(X_a),bool,hAPP(X_a,fun(list(X_a),bool),listMem(X_a),X_2),Xs_2)) ) ) ) ).

fof(fact_124_zero__reorient,axiom,
    ! [X_a] :
      ( zero(X_a)
     => ! [X_1] :
          ( zero_zero(X_a) = ti(X_a,X_1)
        <=> ti(X_a,X_1) = zero_zero(X_a) ) ) ).

fof(fact_125_hd__conv__nth,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,hd(X_a),Xs) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),zero_zero(nat)) ) ).

fof(fact_126_takeWhile_Osimps_I1_J,axiom,
    ! [X_a,P_1] : hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),nil(X_a)) = nil(X_a) ).

fof(fact_127_distinct__takeWhile,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))) ) ).

fof(fact_128_sorted__takeWhile,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [P_1,Xs_1] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs_1))
         => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))) ) ) ).

fof(fact_129_sublist__nil,axiom,
    ! [X_a,A_1] : hAPP(fun(nat,bool),list(X_a),hAPP(list(X_a),fun(fun(nat,bool),list(X_a)),sublist(X_a),nil(X_a)),A_1) = nil(X_a) ).

fof(fact_130_distinct__sublistI,axiom,
    ! [X_a,I_4,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(fun(nat,bool),list(X_a),hAPP(list(X_a),fun(fun(nat,bool),list(X_a)),sublist(X_a),Xs_1),I_4))) ) ).

fof(fact_131_nth__Cons__0,axiom,
    ! [X_a,X,Xs] : hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),zero_zero(nat)) = ti(X_a,X) ).

fof(fact_132_takeWhile_Osimps_I2_J,axiom,
    ! [X_a,Xs_1,P_1,X_1] :
      ( ( hBOOL(hAPP(X_a,bool,P_1,X_1))
       => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1)) )
      & ( ~ hBOOL(hAPP(X_a,bool,P_1,X_1))
       => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)) = nil(X_a) ) ) ).

fof(fact_133_takeWhile__tail,axiom,
    ! [X_a,Xs_1,L_1,P_1,X_1] :
      ( ~ hBOOL(hAPP(X_a,bool,P_1,X_1))
     => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),L_1))) = hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1) ) ).

fof(fact_134_takeWhile__dropWhile__id,axiom,
    ! [X_a,P_1,Xs_1] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1)) = Xs_1 ).

fof(fact_135_nth__append__length,axiom,
    ! [X_a,Xs,X,Ys] : hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Ys))),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)) = ti(X_a,X) ).

fof(fact_136_foldr__max__sorted,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [Y_2,Xs_1] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)))
         => ( ( Xs_1 = nil(X_a)
             => hAPP(X_a,X_a,hAPP(list(X_a),fun(X_a,X_a),hAPP(fun(X_a,fun(X_a,X_a)),fun(list(X_a),fun(X_a,X_a)),foldr(X_a,X_a),ord_max(X_a)),Xs_1),Y_2) = ti(X_a,Y_2) )
            & ( Xs_1 != nil(X_a)
             => hAPP(X_a,X_a,hAPP(list(X_a),fun(X_a,X_a),hAPP(fun(X_a,fun(X_a,X_a)),fun(list(X_a),fun(X_a,X_a)),foldr(X_a,X_a),ord_max(X_a)),Xs_1),Y_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),zero_zero(nat))),Y_2) ) ) ) ) ).

fof(fact_137_list__induct2_H,axiom,
    ! [X_b,X_a,Xs_1,Ys_1,P_1] :
      ( hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,nil(X_a)),nil(X_b)))
     => ( ! [X_2,Xs_2] : hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2)),nil(X_b)))
       => ( ! [Y_1,Ys_2] : hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,nil(X_a)),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),Y_1),Ys_2)))
         => ( ! [X_2,Xs_2,Y_1,Ys_2] :
                ( hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,Xs_2),Ys_2))
               => hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2)),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),Y_1),Ys_2))) )
           => hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,Xs_1),Ys_1)) ) ) ) ) ).

fof(fact_138_map__filter__simps_I2_J,axiom,
    ! [X_b,X_a,F] : hAPP(list(X_b),list(X_a),hAPP(fun(X_b,option(X_a)),fun(list(X_b),list(X_a)),map_filter(X_b,X_a),F),nil(X_b)) = nil(X_a) ).

fof(fact_139_listrelp_ONil,axiom,
    ! [X_a,R_1] : hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),hAPP(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool)),listrelp(X_a),R_1),nil(X_a)),nil(X_a))) ).

fof(fact_140_listrelp_OCons,axiom,
    ! [X_a,Xs_1,Ys_1,R_1,X_1,Y_2] :
      ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),R_1,X_1),Y_2))
     => ( hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),hAPP(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool)),listrelp(X_a),R_1),Xs_1),Ys_1))
       => hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),hAPP(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool)),listrelp(X_a),R_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_2),Ys_1))) ) ) ).

fof(fact_141_sublist__empty,axiom,
    ! [X_a,Xs_1] : hAPP(fun(nat,bool),list(X_a),hAPP(list(X_a),fun(fun(nat,bool),list(X_a)),sublist(X_a),Xs_1),bot_bot(fun(nat,bool))) = nil(X_a) ).

fof(fact_142_neq__if__length__neq,axiom,
    ! [X_a,Xs,Ys] :
      ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs) != hAPP(list(X_a),nat,size_size(list(X_a)),Ys)
     => Xs != Ys ) ).

fof(fact_143_length__rev,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) = hAPP(list(X_a),nat,size_size(list(X_a)),Xs) ).

fof(fact_144_length__replicate,axiom,
    ! [X_a,N,X] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) = N ).

fof(fact_145_length__rotate1,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),rotate1(X_a),Xs)) = hAPP(list(X_a),nat,size_size(list(X_a)),Xs) ).

fof(fact_146_foldr_Osimps_I2_J,axiom,
    ! [X_a,X_b,F,X_1,Xs_1,Aa] : hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),X_1),Xs_1)),Aa) = hAPP(X_a,X_a,hAPP(X_b,fun(X_a,X_a),F,X_1),hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),Xs_1),Aa)) ).

fof(fact_147_foldr_Osimps_I1_J,axiom,
    ! [X_a,X_b,F,Aa] : hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),nil(X_b)),Aa) = ti(X_a,Aa) ).

fof(fact_148_foldr__append,axiom,
    ! [X_a,X_b,F,Xs_1,Ys_1,Aa] : hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),hAPP(list(X_b),list(X_b),hAPP(list(X_b),fun(list(X_b),list(X_b)),append(X_b),Xs_1),Ys_1)),Aa) = hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),Xs_1),hAPP(X_a,X_a,hAPP(list(X_b),fun(X_a,X_a),hAPP(fun(X_b,fun(X_a,X_a)),fun(list(X_b),fun(X_a,X_a)),foldr(X_b,X_a),F),Ys_1),Aa)) ).

fof(fact_149_length__0__conv,axiom,
    ! [X_a,Xs_1] :
      ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1) = zero_zero(nat)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_150_list_Osize_I3_J,axiom,
    ! [X_a] : hAPP(list(X_a),nat,size_size(list(X_a)),nil(X_a)) = zero_zero(nat) ).

fof(fact_151_list__induct2,axiom,
    ! [X_a,X_b,P_1,Xs_1,Ys_1] :
      ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1) = hAPP(list(X_b),nat,size_size(list(X_b)),Ys_1)
     => ( hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,nil(X_a)),nil(X_b)))
       => ( ! [X_2,Xs_2,Y_1,Ys_2] :
              ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_2) = hAPP(list(X_b),nat,size_size(list(X_b)),Ys_2)
             => ( hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,Xs_2),Ys_2))
               => hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2)),hAPP(list(X_b),list(X_b),hAPP(X_b,fun(list(X_b),list(X_b)),cons(X_b),Y_1),Ys_2))) ) )
         => hBOOL(hAPP(list(X_b),bool,hAPP(list(X_a),fun(list(X_b),bool),P_1,Xs_1),Ys_1)) ) ) ) ).

fof(fact_152_emptyE,axiom,
    ! [X_a,Aa] : ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Aa),bot_bot(fun(X_a,bool)))) ).

fof(fact_153_bot__fun__def,axiom,
    ! [X_a,X_b] :
      ( bot(X_b)
     => ! [X_2] : hAPP(X_a,X_b,bot_bot(fun(X_a,X_b)),X_2) = bot_bot(X_b) ) ).

fof(fact_154_bot__apply,axiom,
    ! [X_b,X_a] :
      ( bot(X_a)
     => ! [X_1] : hAPP(X_b,X_a,bot_bot(fun(X_b,X_a)),X_1) = bot_bot(X_a) ) ).

fof(fact_155_Ex__list__of__length,axiom,
    ! [X_a,N] :
    ? [Xs_2] : hAPP(list(X_a),nat,size_size(list(X_a)),Xs_2) = N ).

fof(fact_156_listrelp_Osimps,axiom,
    ! [X_a,R_1,A1,A2] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),hAPP(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool)),listrelp(X_a),R_1),A1),A2))
    <=> ( ( A1 = nil(X_a)
          & A2 = nil(X_a) )
        | ? [X_2,Y_1,Xs_2,Ys_2] :
            ( A1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_2),Xs_2)
            & A2 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),Ys_2)
            & hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),R_1,X_2),Y_1))
            & hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),hAPP(fun(X_a,fun(X_a,bool)),fun(list(X_a),fun(list(X_a),bool)),listrelp(X_a),R_1),Xs_2),Ys_2)) ) ) ) ).

fof(fact_157_equals0D,axiom,
    ! [X_a,Aa,A_1] :
      ( ti(fun(X_a,bool),A_1) = bot_bot(fun(X_a,bool))
     => ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Aa),A_1)) ) ).

fof(fact_158_Collect__empty__eq,axiom,
    ! [X_a,P_1] :
      ( hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),P_1) = bot_bot(fun(X_a,bool))
    <=> ! [X_2] : ~ hBOOL(hAPP(X_a,bool,P_1,X_2)) ) ).

fof(fact_159_empty__iff,axiom,
    ! [X_a,C_1] : ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),bot_bot(fun(X_a,bool)))) ).

fof(fact_160_empty__Collect__eq,axiom,
    ! [X_a,P_1] :
      ( bot_bot(fun(X_a,bool)) = hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),P_1)
    <=> ! [X_2] : ~ hBOOL(hAPP(X_a,bool,P_1,X_2)) ) ).

fof(fact_161_ex__in__conv,axiom,
    ! [X_a,A_1] :
      ( ? [X_2] : hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),X_2),A_1))
    <=> ti(fun(X_a,bool),A_1) != bot_bot(fun(X_a,bool)) ) ).

fof(fact_162_all__not__in__conv,axiom,
    ! [X_a,A_1] :
      ( ! [X_2] : ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),X_2),A_1))
    <=> ti(fun(X_a,bool),A_1) = bot_bot(fun(X_a,bool)) ) ).

fof(fact_163_empty__def,axiom,
    ! [X_a] : bot_bot(fun(X_a,bool)) = hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),hAPP(bool,fun(X_a,bool),combk(bool,X_a),fFalse)) ).

fof(fact_164_equals0I,axiom,
    ! [X_a,A_1] :
      ( ! [Y_1] : ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Y_1),A_1))
     => ti(fun(X_a,bool),A_1) = bot_bot(fun(X_a,bool)) ) ).

fof(fact_165_sorted__list__of__set__empty,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => hAPP(fun(X_a,bool),list(X_a),linord467138063of_set(X_a),bot_bot(fun(X_a,bool))) = nil(X_a) ) ).

fof(fact_166_min__max_Osup__assoc,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y,Z] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y)),Z) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),Y),Z)) ) ).

fof(fact_167_min__max_Osup_Oassoc,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [A_2,B_1,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1)),C_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),B_1),C_2)) ) ).

fof(fact_168_min__max_Osup__left__commute,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y,Z] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),Y),Z)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),Y),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Z)) ) ).

fof(fact_169_min__max_Osup_Oleft__commute,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [B_1,A_2,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),B_1),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),C_2)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),B_1),C_2)) ) ).

fof(fact_170_min__max_Osup_Oidem,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),A_2) = ti(X_a,A_2) ) ).

fof(fact_171_min__max_Osup_Ocommute,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [A_2,B_1] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),B_1),A_2) ) ).

fof(fact_172_min__max_Osup__commute,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),Y),X) ) ).

fof(fact_173_min__max_Osup_Oleft__idem,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [A_2,B_1] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1) ) ).

fof(fact_174_min__max_Osup__left__idem,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y) ) ).

fof(fact_175_Max_Oidem,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),X) = ti(X_a,X) ) ).

fof(fact_176_dropWhile__eq__drop,axiom,
    ! [X_a,P_1,Xs_1] : hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))),Xs_1) ).

fof(fact_177_nth__length__takeWhile,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
     => ~ hBOOL(hAPP(X_a,bool,P_1,hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))))) ) ).

fof(fact_178_takeWhile__nth,axiom,
    ! [X_a,J_1,P_1,Xs_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J_1),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1)),J_1) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),J_1) ) ).

fof(fact_179_list__update__length,axiom,
    ! [X_a,Xs,X,Ys,Y] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Ys))),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),Y) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),Ys)) ).

fof(fact_180_max__0L,axiom,
    ! [N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),ord_max(nat),zero_zero(nat)),N) = N ).

fof(fact_181_less__zeroE,axiom,
    ! [N] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),zero_zero(nat))) ).

fof(fact_182_list__update__overwrite,axiom,
    ! [X_a,Xs,I_1,X,Y] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),I_1),Y) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),Y) ).

fof(fact_183_list__update__swap,axiom,
    ! [X_a,Xs,X,X_3,I_1,I_3] :
      ( I_1 != I_3
     => hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),I_3),X_3) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_3),X_3)),I_1),X) ) ).

fof(fact_184_nat__less__cases,axiom,
    ! [P_1,M_1,N_2] :
      ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),P_1,N_2),M_1)) )
     => ( ( M_1 = N_2
         => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),P_1,N_2),M_1)) )
       => ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),M_1))
           => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),P_1,N_2),M_1)) )
         => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),P_1,N_2),M_1)) ) ) ) ).

fof(fact_185_less__not__refl3,axiom,
    ! [S,T_3] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),S),T_3))
     => S != T_3 ) ).

fof(fact_186_less__not__refl2,axiom,
    ! [N,M] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),M))
     => M != N ) ).

fof(fact_187_less__irrefl__nat,axiom,
    ! [N] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),N)) ).

fof(fact_188_linorder__neqE__nat,axiom,
    ! [X,Y] :
      ( X != Y
     => ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),X),Y))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),Y),X)) ) ) ).

fof(fact_189_nat__neq__iff,axiom,
    ! [M_1,N_2] :
      ( M_1 != N_2
    <=> ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2))
        | hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),M_1)) ) ) ).

fof(fact_190_less__not__refl,axiom,
    ! [N] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),N)) ).

fof(fact_191_gr0I,axiom,
    ! [N] :
      ( N != zero_zero(nat)
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N)) ) ).

fof(fact_192_gr__implies__not0,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => N != zero_zero(nat) ) ).

fof(fact_193_less__nat__zero__code,axiom,
    ! [N] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),zero_zero(nat))) ).

fof(fact_194_neq0__conv,axiom,
    ! [N_2] :
      ( N_2 != zero_zero(nat)
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N_2)) ) ).

fof(fact_195_not__less0,axiom,
    ! [N] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),zero_zero(nat))) ).

fof(fact_196_order__less__irrefl,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [X] : ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),X)) ) ).

fof(fact_197_linorder__neq__iff,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X_1,Y_2] :
          ( ti(X_a,X_1) != ti(X_a,Y_2)
        <=> ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X_1),Y_2))
            | hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y_2),X_1)) ) ) ) ).

fof(fact_198_not__less__iff__gr__or__eq,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X_1,Y_2] :
          ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X_1),Y_2))
        <=> ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y_2),X_1))
            | ti(X_a,X_1) = ti(X_a,Y_2) ) ) ) ).

fof(fact_199_linorder__less__linear,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
          | ti(X_a,X) = ti(X_a,Y)
          | hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ).

fof(fact_200_linorder__antisym__conv3,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [Y_2,X_1] :
          ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y_2),X_1))
         => ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X_1),Y_2))
          <=> ti(X_a,X_1) = ti(X_a,Y_2) ) ) ) ).

fof(fact_201_linorder__neqE,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y] :
          ( ti(X_a,X) != ti(X_a,Y)
         => ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ) ).

fof(fact_202_less__imp__neq,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => X != Y ) ) ).

fof(fact_203_order__less__not__sym,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ).

fof(fact_204_order__less__imp__not__less,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ).

fof(fact_205_order__less__imp__not__eq,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => X != Y ) ) ).

fof(fact_206_order__less__imp__not__eq2,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => Y != X ) ) ).

fof(fact_207_order__less__imp__triv,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [P_1,X_1,Y_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X_1),Y_2))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y_2),X_1))
           => hBOOL(P_1) ) ) ) ).

fof(fact_208_order__less__asym_H,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1))
         => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),A_2)) ) ) ).

fof(fact_209_xt1_I9_J,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [B_1,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),A_2))
         => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1)) ) ) ).

fof(fact_210_ord__eq__less__trans,axiom,
    ! [X_a] :
      ( ord(X_a)
     => ! [C_2,A_2,B_1] :
          ( A_2 = B_1
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),C_2))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),C_2)) ) ) ) ).

fof(fact_211_xt1_I1_J,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [C_2,A_2,B_1] :
          ( A_2 = B_1
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),C_2),B_1))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),C_2),A_2)) ) ) ) ).

fof(fact_212_ord__less__eq__trans,axiom,
    ! [X_a] :
      ( ord(X_a)
     => ! [C_2,A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1))
         => ( B_1 = C_2
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),C_2)) ) ) ) ).

fof(fact_213_xt1_I2_J,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [C_2,B_1,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),A_2))
         => ( B_1 = C_2
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),C_2),A_2)) ) ) ) ).

fof(fact_214_order__less__trans,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [Z,X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),Z))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Z)) ) ) ) ).

fof(fact_215_xt1_I10_J,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [Z,Y,X] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Z),Y))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Z),X)) ) ) ) ).

fof(fact_216_order__less__asym,axiom,
    ! [X_a] :
      ( preorder(X_a)
     => ! [X,Y] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ).

fof(fact_217_linorder__cases,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X,Y] :
          ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
         => ( ti(X_a,X) != ti(X_a,Y)
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ) ).

fof(fact_218_list__update__append1,axiom,
    ! [X_a,Ys,X,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),I_1),X) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),Ys) ) ).

fof(fact_219_nth__list__update,axiom,
    ! [X_a,X,J,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => ( ( I_1 = J
         => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),J) = ti(X_a,X) )
        & ( I_1 != J
         => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),J) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),J) ) ) ) ).

fof(fact_220_list__update__same__conv,axiom,
    ! [X_a,X_1,I,Xs_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
     => ( hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs_1),I),X_1) = Xs_1
      <=> hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),I) = ti(X_a,X_1) ) ) ).

fof(fact_221_nth__list__update__eq,axiom,
    ! [X_a,X,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),I_1) = ti(X_a,X) ) ).

fof(fact_222_last__drop,axiom,
    ! [X_a,N,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),X_a,last(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ).

fof(fact_223_not__less__bot,axiom,
    ! [X_a] :
      ( bot(X_a)
     => ! [A_2] : ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),bot_bot(X_a))) ) ).

fof(fact_224_bot__less,axiom,
    ! [X_a] :
      ( bot(X_a)
     => ! [Aa] :
          ( ti(X_a,Aa) != bot_bot(X_a)
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),bot_bot(X_a)),Aa)) ) ) ).

fof(fact_225_drop__0,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),zero_zero(nat)),Xs) = Xs ).

fof(fact_226_drop__Nil,axiom,
    ! [X_a,N] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),nil(X_a)) = nil(X_a) ).

fof(fact_227_less__max__iff__disj,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [Z_1,X_1,Y_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Z_1),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X_1),Y_2)))
        <=> ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Z_1),X_1))
            | hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Z_1),Y_2)) ) ) ) ).

fof(fact_228_max__less__iff__conj,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [X_1,Y_2,Z_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X_1),Y_2)),Z_1))
        <=> ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X_1),Z_1))
            & hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y_2),Z_1)) ) ) ) ).

fof(fact_229_min__max_Oless__supI1,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [B_1,X,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),A_2))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1))) ) ) ).

fof(fact_230_min__max_Oless__supI2,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [A_2,X,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),B_1))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),A_2),B_1))) ) ) ).

fof(fact_231_distinct__drop,axiom,
    ! [X_a,I_1,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),I_1),Xs))) ) ).

fof(fact_232_sorted__drop,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [N,Xs] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs))
         => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs))) ) ) ).

fof(fact_233_list__update__nonempty,axiom,
    ! [X_a,Xs_1,K_1,X_1] :
      ( hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs_1),K_1),X_1) = nil(X_a)
    <=> Xs_1 = nil(X_a) ) ).

fof(fact_234_list__update_Osimps_I1_J,axiom,
    ! [X_a,I_1,V] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),nil(X_a)),I_1),V) = nil(X_a) ).

fof(fact_235_list__update__code_I1_J,axiom,
    ! [X_a,I_1,Y] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),nil(X_a)),I_1),Y) = nil(X_a) ).

fof(fact_236_length__list__update,axiom,
    ! [X_a,Xs,I_1,X] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)) = hAPP(list(X_a),nat,size_size(list(X_a)),Xs) ).

fof(fact_237_list__update__id,axiom,
    ! [X_a,Xs,I_1] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_1)) = Xs ).

fof(fact_238_nth__list__update__neq,axiom,
    ! [X_a,Xs,X,I_1,J] :
      ( I_1 != J
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),X)),J) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),J) ) ).

fof(fact_239_drop__butlast,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)) = hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) ).

fof(fact_240_butlast__drop,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)) ).

fof(fact_241_tl__drop,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) ).

fof(fact_242_drop__tl,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) = hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) ).

fof(fact_243_hd__drop__conv__nth,axiom,
    ! [X_a,N,Xs] :
      ( Xs != nil(X_a)
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
       => hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),N) ) ) ).

fof(fact_244_nth__via__drop,axiom,
    ! [X_a,N,Xs,Y,Ys] :
      ( hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),Ys)
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),N) = ti(X_a,Y) ) ).

fof(fact_245_list__eq__iff__nth__eq,axiom,
    ! [X_a,Xs_1,Ys_1] :
      ( Xs_1 = Ys_1
    <=> ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1) = hAPP(list(X_a),nat,size_size(list(X_a)),Ys_1)
        & ! [I_2] :
            ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
           => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),I_2) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Ys_1),I_2) ) ) ) ).

fof(fact_246_list__update__code_I2_J,axiom,
    ! [X_a,X,Xs,Y] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),zero_zero(nat)),Y) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y),Xs) ).

fof(fact_247_nth__replicate,axiom,
    ! [X_a,X,I_1,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),N))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)),I_1) = ti(X_a,X) ) ).

fof(fact_248_length__greater__0__conv,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
    <=> Xs_1 != nil(X_a) ) ).

fof(fact_249_distinct__conv__nth,axiom,
    ! [X_a,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1))
    <=> ! [I_2] :
          ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
         => ! [J_2] :
              ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
             => ( I_2 != J_2
               => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),I_2) != hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),J_2) ) ) ) ) ).

fof(fact_250_nth__eq__iff__index__eq,axiom,
    ! [X_a,J_1,I,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs_1))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
       => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
         => ( hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),I) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),J_1)
          <=> I = J_1 ) ) ) ) ).

fof(fact_251_bot__nat__def,axiom,
    bot_bot(nat) = zero_zero(nat) ).

fof(fact_252_max__0R,axiom,
    ! [N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),ord_max(nat),N),zero_zero(nat)) = N ).

fof(fact_253_nth__equalityI,axiom,
    ! [X_a,Xs,Ys] :
      ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs) = hAPP(list(X_a),nat,size_size(list(X_a)),Ys)
     => ( ! [I_2] :
            ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
           => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_2) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Ys),I_2) )
       => Xs = Ys ) ) ).

fof(fact_254_Skolem__list__nth,axiom,
    ! [X_a,P_1,K_1] :
      ( ! [I_2] :
          ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),K_1))
         => ? [X1] : hBOOL(hAPP(X_a,bool,hAPP(nat,fun(X_a,bool),P_1,I_2),X1)) )
    <=> ? [Xs_2] :
          ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_2) = K_1
          & ! [I_2] :
              ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),K_1))
             => hBOOL(hAPP(X_a,bool,hAPP(nat,fun(X_a,bool),P_1,I_2),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_2),I_2))) ) ) ) ).

fof(fact_255_dropWhile__nth,axiom,
    ! [X_a,J_1,P_1,Xs_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J_1),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1))))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P_1),Xs_1)),J_1) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J_1),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1)))) ) ).

fof(fact_256_nth__drop_H,axiom,
    ! [X_a,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_1)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,suc,I_1)),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),I_1),Xs) ) ).

fof(fact_257_list__ex__length,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),Xs_1))
    <=> ? [N_1] :
          ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
          & hBOOL(hAPP(X_a,bool,P_1,hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),N_1))) ) ) ).

fof(fact_258_lessI,axiom,
    ! [N] : hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(nat,nat,suc,N))) ).

fof(fact_259_Suc__mono,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,M)),hAPP(nat,nat,suc,N))) ) ).

fof(fact_260_zero__less__Suc,axiom,
    ! [N] : hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),hAPP(nat,nat,suc,N))) ).

fof(fact_261_Suc__inject,axiom,
    ! [X,Y] :
      ( hAPP(nat,nat,suc,X) = hAPP(nat,nat,suc,Y)
     => X = Y ) ).

fof(fact_262_nat__add__right__cancel,axiom,
    ! [M_1,K_1,N_2] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),K_1) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N_2),K_1)
    <=> M_1 = N_2 ) ).

fof(fact_263_nat__add__left__cancel,axiom,
    ! [K_1,M_1,N_2] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K_1),M_1) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K_1),N_2)
    <=> M_1 = N_2 ) ).

fof(fact_264_nat__add__assoc,axiom,
    ! [M,N,K] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N)),K) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),K)) ).

fof(fact_265_nat_Oinject,axiom,
    ! [Nat_4,Nat_3] :
      ( hAPP(nat,nat,suc,Nat_4) = hAPP(nat,nat,suc,Nat_3)
    <=> Nat_4 = Nat_3 ) ).

fof(fact_266_add__Suc__shift,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,suc,M)),N) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),hAPP(nat,nat,suc,N)) ).

fof(fact_267_add__Suc,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,suc,M)),N) = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N)) ).

fof(fact_268_nat__add__left__commute,axiom,
    ! [X,Y,Z] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),X),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Y),Z)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Y),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),X),Z)) ).

fof(fact_269_add__Suc__right,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),hAPP(nat,nat,suc,N)) = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N)) ).

fof(fact_270_nat__add__commute,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M) ).

fof(fact_271_less__iff__Suc__add,axiom,
    ! [M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2))
    <=> ? [K_2] : N_2 = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),K_2)) ) ).

fof(fact_272_less__add__Suc2,axiom,
    ! [I_1,M] : hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),I_1)))) ).

fof(fact_273_less__add__Suc1,axiom,
    ! [I_1,M] : hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),M)))) ).

fof(fact_274_Suc__n__not__n,axiom,
    ! [N] : hAPP(nat,nat,suc,N) != N ).

fof(fact_275_n__not__Suc__n,axiom,
    ! [N] : N != hAPP(nat,nat,suc,N) ).

fof(fact_276_add__is__1,axiom,
    ! [M_1,N_2] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),N_2) = hAPP(nat,nat,suc,zero_zero(nat))
    <=> ( ( M_1 = hAPP(nat,nat,suc,zero_zero(nat))
          & N_2 = zero_zero(nat) )
        | ( M_1 = zero_zero(nat)
          & N_2 = hAPP(nat,nat,suc,zero_zero(nat)) ) ) ) ).

fof(fact_277_one__is__add,axiom,
    ! [M_1,N_2] :
      ( hAPP(nat,nat,suc,zero_zero(nat)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),N_2)
    <=> ( ( M_1 = hAPP(nat,nat,suc,zero_zero(nat))
          & N_2 = zero_zero(nat) )
        | ( M_1 = zero_zero(nat)
          & N_2 = hAPP(nat,nat,suc,zero_zero(nat)) ) ) ) ).

fof(fact_278_add__right__imp__eq,axiom,
    ! [X_a] :
      ( cancel_semigroup_add(X_a)
     => ! [B_1,A_2,C_2] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),A_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),A_2)
         => ti(X_a,B_1) = ti(X_a,C_2) ) ) ).

fof(fact_279_add__imp__eq,axiom,
    ! [X_a] :
      ( cancel146912293up_add(X_a)
     => ! [A_2,B_1,C_2] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)
         => ti(X_a,B_1) = ti(X_a,C_2) ) ) ).

fof(fact_280_add__left__imp__eq,axiom,
    ! [X_a] :
      ( cancel_semigroup_add(X_a)
     => ! [A_2,B_1,C_2] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)
         => ti(X_a,B_1) = ti(X_a,C_2) ) ) ).

fof(fact_281_add__right__cancel,axiom,
    ! [X_a] :
      ( cancel_semigroup_add(X_a)
     => ! [Ba,Aa,C_1] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Ba),Aa) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_1),Aa)
        <=> ti(X_a,Ba) = ti(X_a,C_1) ) ) ).

fof(fact_282_add__left__cancel,axiom,
    ! [X_a] :
      ( cancel_semigroup_add(X_a)
     => ! [Aa,Ba,C_1] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Ba) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),C_1)
        <=> ti(X_a,Ba) = ti(X_a,C_1) ) ) ).

fof(fact_283_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
    ! [X_a] :
      ( ab_semigroup_add(X_a)
     => ! [A_2,B_1,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),C_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),C_2)) ) ).

fof(fact_284_add_Ocomm__neutral,axiom,
    ! [X_a] :
      ( comm_monoid_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),zero_zero(X_a)) = ti(X_a,A_2) ) ).

fof(fact_285_add__0__right,axiom,
    ! [X_a] :
      ( monoid_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),zero_zero(X_a)) = ti(X_a,A_2) ) ).

fof(fact_286_double__zero__sym,axiom,
    ! [X_a] :
      ( linord219039673up_add(X_a)
     => ! [Aa] :
          ( zero_zero(X_a) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Aa)
        <=> ti(X_a,Aa) = zero_zero(X_a) ) ) ).

fof(fact_287_add__0,axiom,
    ! [X_a] :
      ( comm_monoid_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),zero_zero(X_a)),A_2) = ti(X_a,A_2) ) ).

fof(fact_288_add__0__left,axiom,
    ! [X_a] :
      ( monoid_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),zero_zero(X_a)),A_2) = ti(X_a,A_2) ) ).

fof(fact_289_add__less__imp__less__left,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ! [C_2,A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),A_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),B_1)))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1)) ) ) ).

fof(fact_290_add__less__imp__less__right,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ! [A_2,C_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),C_2)))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1)) ) ) ).

fof(fact_291_add__strict__mono,axiom,
    ! [X_a] :
      ( ordere223160158up_add(X_a)
     => ! [C_2,D_2,A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),C_2),D_2))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),D_2))) ) ) ) ).

fof(fact_292_add__strict__left__mono,axiom,
    ! [X_a] :
      ( ordere223160158up_add(X_a)
     => ! [C_2,A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),A_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),B_1))) ) ) ).

fof(fact_293_add__strict__right__mono,axiom,
    ! [X_a] :
      ( ordere223160158up_add(X_a)
     => ! [C_2,A_2,B_1] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),B_1))
         => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),C_2))) ) ) ).

fof(fact_294_add__less__cancel__left,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ! [C_1,Aa,Ba] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_1),Aa)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_1),Ba)))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),Ba)) ) ) ).

fof(fact_295_add__less__cancel__right,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ! [Aa,C_1,Ba] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),C_1)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Ba),C_1)))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),Ba)) ) ) ).

fof(fact_296_Zero__not__Suc,axiom,
    ! [M] : zero_zero(nat) != hAPP(nat,nat,suc,M) ).

fof(fact_297_nat_Osimps_I2_J,axiom,
    ! [Nat_2] : zero_zero(nat) != hAPP(nat,nat,suc,Nat_2) ).

fof(fact_298_Suc__not__Zero,axiom,
    ! [M] : hAPP(nat,nat,suc,M) != zero_zero(nat) ).

fof(fact_299_nat_Osimps_I3_J,axiom,
    ! [Nat_1] : hAPP(nat,nat,suc,Nat_1) != zero_zero(nat) ).

fof(fact_300_Zero__neq__Suc,axiom,
    ! [M] : zero_zero(nat) != hAPP(nat,nat,suc,M) ).

fof(fact_301_Suc__neq__Zero,axiom,
    ! [M] : hAPP(nat,nat,suc,M) != zero_zero(nat) ).

fof(fact_302_not__less__eq,axiom,
    ! [M_1,N_2] :
      ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2))
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),hAPP(nat,nat,suc,M_1))) ) ).

fof(fact_303_less__Suc__eq,axiom,
    ! [M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),hAPP(nat,nat,suc,N_2)))
    <=> ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2))
        | M_1 = N_2 ) ) ).

fof(fact_304_Suc__less__eq,axiom,
    ! [M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,M_1)),hAPP(nat,nat,suc,N_2)))
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2)) ) ).

fof(fact_305_not__less__less__Suc__eq,axiom,
    ! [N_2,M_1] :
      ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),M_1))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),hAPP(nat,nat,suc,M_1)))
      <=> N_2 = M_1 ) ) ).

fof(fact_306_less__antisym,axiom,
    ! [N,M] :
      ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),M))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(nat,nat,suc,M)))
       => M = N ) ) ).

fof(fact_307_less__SucI,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),hAPP(nat,nat,suc,N))) ) ).

fof(fact_308_Suc__lessI,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => ( hAPP(nat,nat,suc,M) != N
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,M)),N)) ) ) ).

fof(fact_309_less__trans__Suc,axiom,
    ! [K,I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J),K))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,I_1)),K)) ) ) ).

fof(fact_310_less__SucE,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),hAPP(nat,nat,suc,N)))
     => ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
       => M = N ) ) ).

fof(fact_311_Suc__lessD,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,M)),N))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N)) ) ).

fof(fact_312_Suc__less__SucD,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,M)),hAPP(nat,nat,suc,N)))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N)) ) ).

fof(fact_313_not__psubset__empty,axiom,
    ! [X_a,A_1] : ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(fun(X_a,bool),fun(fun(X_a,bool),bool),ord_less(fun(X_a,bool)),A_1),bot_bot(fun(X_a,bool)))) ).

fof(fact_314_plus__nat_Oadd__0,axiom,
    ! [N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),zero_zero(nat)),N) = N ).

fof(fact_315_Nat_Oadd__0__right,axiom,
    ! [M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),zero_zero(nat)) = M ).

fof(fact_316_add__is__0,axiom,
    ! [M_1,N_2] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),N_2) = zero_zero(nat)
    <=> ( M_1 = zero_zero(nat)
        & N_2 = zero_zero(nat) ) ) ).

fof(fact_317_add__eq__self__zero,axiom,
    ! [M,N] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N) = M
     => N = zero_zero(nat) ) ).

fof(fact_318_not__add__less1,axiom,
    ! [I_1,J] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),J)),I_1)) ).

fof(fact_319_not__add__less2,axiom,
    ! [J,I_1] : ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J),I_1)),I_1)) ).

fof(fact_320_nat__add__left__cancel__less,axiom,
    ! [K_1,M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K_1),M_1)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K_1),N_2)))
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2)) ) ).

fof(fact_321_trans__less__add1,axiom,
    ! [M,I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J),M))) ) ).

fof(fact_322_trans__less__add2,axiom,
    ! [M,I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),J))) ) ).

fof(fact_323_add__less__mono1,axiom,
    ! [K,I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),K)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J),K))) ) ).

fof(fact_324_add__less__mono,axiom,
    ! [K,L,I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),K),L))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),K)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J),L))) ) ) ).

fof(fact_325_less__add__eq__less,axiom,
    ! [M,N,K,L] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),K),L))
     => ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),L) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K),N)
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N)) ) ) ).

fof(fact_326_add__lessD1,axiom,
    ! [I_1,J,K] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),J)),K))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),K)) ) ).

fof(fact_327_max__add__distrib__left,axiom,
    ! [X_a] :
      ( ordere236663937imp_le(X_a)
     => ! [X,Y,Z] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y)),Z) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),X),Z)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Y),Z)) ) ).

fof(fact_328_drop__drop,axiom,
    ! [X_a,N,M,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),M),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M)),Xs) ).

fof(fact_329_max__Suc__Suc,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),ord_max(nat),hAPP(nat,nat,suc,M)),hAPP(nat,nat,suc,N)) = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),ord_max(nat),M),N)) ).

fof(fact_330_list_Osize_I4_J,axiom,
    ! [X_a,A_2,List_1] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_2),List_1)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),List_1)),hAPP(nat,nat,suc,zero_zero(nat))) ).

fof(fact_331_list_Osize_I2_J,axiom,
    ! [X_a,Fa,Aa,List] : hAPP(list(X_a),nat,hAPP(fun(X_a,nat),fun(list(X_a),nat),list_size(X_a),Fa),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Aa),List)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(X_a,nat,Fa,Aa)),hAPP(list(X_a),nat,hAPP(fun(X_a,nat),fun(list(X_a),nat),list_size(X_a),Fa),List))),hAPP(nat,nat,suc,zero_zero(nat))) ).

fof(fact_332_list__ex__simps_I1_J,axiom,
    ! [X_a,P_1,X_1,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs_1)))
    <=> ( hBOOL(hAPP(X_a,bool,P_1,X_1))
        | hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),Xs_1)) ) ) ).

fof(fact_333_list__ex__simps_I2_J,axiom,
    ! [X_a,P_1] : ~ hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),nil(X_a))) ).

fof(fact_334_list__ex__append,axiom,
    ! [X_a,P_1,Xs_1,Ys_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1)))
    <=> ( hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),Xs_1))
        | hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),Ys_1)) ) ) ).

fof(fact_335_zero__less__double__add__iff__zero__less__single__add,axiom,
    ! [X_a] :
      ( linord219039673up_add(X_a)
     => ! [Aa] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Aa)))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),Aa)) ) ) ).

fof(fact_336_double__add__less__zero__iff__single__add__less__zero,axiom,
    ! [X_a] :
      ( linord219039673up_add(X_a)
     => ! [Aa] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Aa)),zero_zero(X_a)))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),zero_zero(X_a))) ) ) ).

fof(fact_337_add__pos__pos,axiom,
    ! [X_a] :
      ( ordere216010020id_add(X_a)
     => ! [B_1,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),A_2))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),B_1))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1))) ) ) ) ).

fof(fact_338_add__neg__neg,axiom,
    ! [X_a] :
      ( ordere216010020id_add(X_a)
     => ! [B_1,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),zero_zero(X_a)))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),zero_zero(X_a)))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),zero_zero(X_a))) ) ) ) ).

fof(fact_339_list__ex__rev,axiom,
    ! [X_a,P_1,Xs_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)))
    <=> hBOOL(hAPP(list(X_a),bool,hAPP(fun(X_a,bool),fun(list(X_a),bool),list_ex(X_a),P_1),Xs_1)) ) ).

fof(fact_340_gr0__conv__Suc,axiom,
    ! [N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N_2))
    <=> ? [M_2] : N_2 = hAPP(nat,nat,suc,M_2) ) ).

fof(fact_341_less__Suc0,axiom,
    ! [N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),hAPP(nat,nat,suc,zero_zero(nat))))
    <=> N_2 = zero_zero(nat) ) ).

fof(fact_342_less__Suc__eq__0__disj,axiom,
    ! [M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),hAPP(nat,nat,suc,N_2)))
    <=> ( M_1 = zero_zero(nat)
        | ? [J_2] :
            ( M_1 = hAPP(nat,nat,suc,J_2)
            & hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J_2),N_2)) ) ) ) ).

fof(fact_343_add__gr__0,axiom,
    ! [M_1,N_2] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M_1),N_2)))
    <=> ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),M_1))
        | hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N_2)) ) ) ).

fof(fact_344_nth__Cons__Suc,axiom,
    ! [X_a,X,Xs,N] : hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),hAPP(nat,nat,suc,N)) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),N) ).

fof(fact_345_length__append,axiom,
    ! [X_a,Xs,Ys] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),hAPP(list(X_a),nat,size_size(list(X_a)),Ys)) ).

fof(fact_346_drop__Suc__Cons,axiom,
    ! [X_a,N,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,suc,N)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs) ).

fof(fact_347_list__update__code_I3_J,axiom,
    ! [X_a,X,Xs,I_1,Y] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),hAPP(nat,nat,suc,I_1)),Y) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),Y)) ).

fof(fact_348_replicate__Suc,axiom,
    ! [X_a,N,X] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),hAPP(nat,nat,suc,N)),X) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) ).

fof(fact_349_replicate__add,axiom,
    ! [X_a,N,M,X] : hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M)),X) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),M),X)) ).

fof(fact_350_drop__Suc,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,suc,N)),Xs) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) ).

fof(fact_351_length__splice,axiom,
    ! [X_a,Xs,Ys] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),splice(X_a),Xs),Ys)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),hAPP(list(X_a),nat,size_size(list(X_a)),Ys)) ).

fof(fact_352_nth__append__length__plus,axiom,
    ! [X_a,Xs,Ys,N] : hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),N)) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Ys),N) ).

fof(fact_353_less__imp__Suc__add,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => ? [K_2] : N = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),K_2)) ) ).

fof(fact_354_length__Suc__conv,axiom,
    ! [X_a,Xs_1,N_2] :
      ( hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1) = hAPP(nat,nat,suc,N_2)
    <=> ? [Y_1,Ys_2] :
          ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),Ys_2)
          & hAPP(list(X_a),nat,size_size(list(X_a)),Ys_2) = N_2 ) ) ).

fof(fact_355_Suc__length__conv,axiom,
    ! [X_a,N_2,Xs_1] :
      ( hAPP(nat,nat,suc,N_2) = hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)
    <=> ? [Y_1,Ys_2] :
          ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),Y_1),Ys_2)
          & hAPP(list(X_a),nat,size_size(list(X_a)),Ys_2) = N_2 ) ) ).

fof(fact_356_less__imp__add__positive,axiom,
    ! [I_1,J] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J))
     => ? [K_2] :
          ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),K_2))
          & hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),K_2) = J ) ) ).

fof(fact_357_psubsetD,axiom,
    ! [X_a,C_1,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(fun(X_a,bool),fun(fun(X_a,bool),bool),ord_less(fun(X_a,bool)),A_1),B))
     => ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),A_1))
       => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),B)) ) ) ).

fof(fact_358_psubset__trans,axiom,
    ! [X_a,C_3,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(fun(X_a,bool),fun(fun(X_a,bool),bool),ord_less(fun(X_a,bool)),A_1),B))
     => ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(fun(X_a,bool),fun(fun(X_a,bool),bool),ord_less(fun(X_a,bool)),B),C_3))
       => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(fun(X_a,bool),fun(fun(X_a,bool),bool),ord_less(fun(X_a,bool)),A_1),C_3)) ) ) ).

fof(fact_359_gr0__implies__Suc,axiom,
    ! [N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => ? [M_2] : N = hAPP(nat,nat,suc,M_2) ) ).

fof(fact_360_lift__Suc__mono__less,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [N_2,N_3,F] :
          ( ! [N_1] : hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(nat,X_a,F,N_1)),hAPP(nat,X_a,F,hAPP(nat,nat,suc,N_1))))
         => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),N_3))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(nat,X_a,F,N_2)),hAPP(nat,X_a,F,N_3))) ) ) ) ).

fof(fact_361_lift__Suc__mono__less__iff,axiom,
    ! [X_a] :
      ( order(X_a)
     => ! [N_2,M_1,F] :
          ( ! [N_1] : hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(nat,X_a,F,N_1)),hAPP(nat,X_a,F,hAPP(nat,nat,suc,N_1))))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(nat,X_a,F,N_2)),hAPP(nat,X_a,F,M_1)))
          <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),M_1)) ) ) ) ).

fof(fact_362_even__less__0__iff,axiom,
    ! [X_a] :
      ( linordered_idom(X_a)
     => ! [Aa] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Aa)),zero_zero(X_a)))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),zero_zero(X_a))) ) ) ).

fof(fact_363_pos__add__strict,axiom,
    ! [X_a] :
      ( linordered_semidom(X_a)
     => ! [B_1,C_2,A_2] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),A_2))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),C_2))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),B_1),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2))) ) ) ) ).

fof(fact_364_linorder__neqE__linordered__idom,axiom,
    ! [X_a] :
      ( linordered_idom(X_a)
     => ! [X,Y] :
          ( ti(X_a,X) != ti(X_a,Y)
         => ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),X),Y))
           => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Y),X)) ) ) ) ).

fof(fact_365_double__eq__0__iff,axiom,
    ! [X_a] :
      ( linord219039673up_add(X_a)
     => ! [Aa] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Aa),Aa) = zero_zero(X_a)
        <=> ti(X_a,Aa) = zero_zero(X_a) ) ) ).

fof(fact_366_lessE,axiom,
    ! [I_1,K] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),K))
     => ( K != hAPP(nat,nat,suc,I_1)
       => ~ ! [J_2] :
              ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J_2))
             => K != hAPP(nat,nat,suc,J_2) ) ) ) ).

fof(fact_367_Suc__lessE,axiom,
    ! [I_1,K] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,suc,I_1)),K))
     => ~ ! [J_2] :
            ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),J_2))
           => K != hAPP(nat,nat,suc,J_2) ) ) ).

fof(fact_368_nat_Oexhaust,axiom,
    ! [Y] :
      ( Y != zero_zero(nat)
     => ~ ! [Nat] : Y != hAPP(nat,nat,suc,Nat) ) ).

fof(fact_369_not0__implies__Suc,axiom,
    ! [N] :
      ( N != zero_zero(nat)
     => ? [M_2] : N = hAPP(nat,nat,suc,M_2) ) ).

fof(fact_370_nat__induct,axiom,
    ! [N_2,P_1] :
      ( hBOOL(hAPP(nat,bool,P_1,zero_zero(nat)))
     => ( ! [N_1] :
            ( hBOOL(hAPP(nat,bool,P_1,N_1))
           => hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,suc,N_1))) )
       => hBOOL(hAPP(nat,bool,P_1,N_2)) ) ) ).

fof(fact_371_zero__induct,axiom,
    ! [P_1,K_1] :
      ( hBOOL(hAPP(nat,bool,P_1,K_1))
     => ( ! [N_1] :
            ( hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,suc,N_1)))
           => hBOOL(hAPP(nat,bool,P_1,N_1)) )
       => hBOOL(hAPP(nat,bool,P_1,zero_zero(nat))) ) ) ).

fof(fact_372_take__hd__drop,axiom,
    ! [X_a,N,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(list(X_a),X_a,hd(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs))),nil(X_a))) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,suc,N)),Xs) ) ).

fof(fact_373_take__tl,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) = hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,suc,N)),Xs)) ).

fof(fact_374_take__Nil,axiom,
    ! [X_a,N] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),nil(X_a)) = nil(X_a) ).

fof(fact_375_distinct__take,axiom,
    ! [X_a,I_1,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs))
     => hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs))) ) ).

fof(fact_376_sorted__take,axiom,
    ! [X_a] :
      ( linorder(X_a)
     => ! [N,Xs] :
          ( hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),Xs))
         => hBOOL(hAPP(list(X_a),bool,linorder_sorted(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs))) ) ) ).

fof(fact_377_takeWhile__eq__take,axiom,
    ! [X_a,P_1,Xs_1] : hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1))),Xs_1) ).

fof(fact_378_append__take__drop__id,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = Xs ).

fof(fact_379_take__drop,axiom,
    ! [X_a,N,M,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),M),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),M),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M)),Xs)) ).

fof(fact_380_nth__take,axiom,
    ! [X_a,Xs,I_1,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),N))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)),I_1) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_1) ) ).

fof(fact_381_take__Suc__Cons,axiom,
    ! [X_a,N,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,suc,N)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)) ).

fof(fact_382_take__eq__Nil,axiom,
    ! [X_a,N_2,Xs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N_2),Xs_1) = nil(X_a)
    <=> ( N_2 = zero_zero(nat)
        | Xs_1 = nil(X_a) ) ) ).

fof(fact_383_take__0,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),zero_zero(nat)),Xs) = nil(X_a) ).

fof(fact_384_append__eq__conv__conj,axiom,
    ! [X_a,Xs_1,Ys_1,Zs] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs_1),Ys_1) = Zs
    <=> ( Xs_1 = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)),Zs)
        & Ys_1 = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)),Zs) ) ) ).

fof(fact_385_take__add,axiom,
    ! [X_a,I_1,J,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I_1),J)),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),J),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),I_1),Xs))) ).

fof(fact_386_take__butlast,axiom,
    ! [X_a,N,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs) ) ).

fof(fact_387_take__Suc,axiom,
    ! [X_a,N,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,suc,N)),Xs) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(list(X_a),X_a,hd(X_a),Xs)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),tl(X_a),Xs))) ) ).

fof(fact_388_take__Suc__conv__app__nth,axiom,
    ! [X_a,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,suc,I_1)),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_1)),nil(X_a))) ) ).

fof(fact_389_id__take__nth__drop,axiom,
    ! [X_a,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => Xs = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),I_1)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,suc,I_1)),Xs))) ) ).

fof(fact_390_upd__conv__take__nth__drop,axiom,
    ! [X_a,A_2,I_1,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_1),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),I_1),A_2) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_2),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,suc,I_1)),Xs))) ) ).

fof(fact_391_takeWhile__eq__take__P__nth,axiom,
    ! [X_a,P_1,Xs_1,N_2] :
      ( ! [I_2] :
          ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),N_2))
         => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
           => hBOOL(hAPP(X_a,bool,P_1,hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),I_2))) ) )
     => ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N_2),hAPP(list(X_a),nat,size_size(list(X_a)),Xs_1)))
         => ~ hBOOL(hAPP(X_a,bool,P_1,hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs_1),N_2))) )
       => hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),takeWhile(X_a),P_1),Xs_1) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N_2),Xs_1) ) ) ).

fof(fact_392_termination__basic__simps_I1_J,axiom,
    ! [Z,X,Y] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),X),Y))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),X),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Y),Z))) ) ).

fof(fact_393_termination__basic__simps_I2_J,axiom,
    ! [Y,X,Z] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),X),Z))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),X),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Y),Z))) ) ).

fof(fact_394_comm__semiring__1__class_Onormalizing__semiring__rules_I5_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),zero_zero(X_a)),A_2) = ti(X_a,A_2) ) ).

fof(fact_395_comm__semiring__1__class_Onormalizing__semiring__rules_I6_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),zero_zero(X_a)) = ti(X_a,A_2) ) ).

fof(fact_396_comm__semiring__1__class_Onormalizing__semiring__rules_I20_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,B_1,C_2,D_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),D_2)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),D_2)) ) ).

fof(fact_397_comm__semiring__1__class_Onormalizing__semiring__rules_I23_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,B_1,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),C_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),B_1) ) ).

fof(fact_398_comm__semiring__1__class_Onormalizing__semiring__rules_I21_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,B_1,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),C_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),B_1),C_2)) ) ).

fof(fact_399_comm__semiring__1__class_Onormalizing__semiring__rules_I25_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,C_2,D_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),D_2)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2)),D_2) ) ).

fof(fact_400_comm__semiring__1__class_Onormalizing__semiring__rules_I22_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,C_2,D_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),D_2)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),D_2)) ) ).

fof(fact_401_comm__semiring__1__class_Onormalizing__semiring__rules_I24_J,axiom,
    ! [X_a] :
      ( comm_semiring_1(X_a)
     => ! [A_2,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),C_2) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),C_2),A_2) ) ).

fof(fact_402_add__0__iff,axiom,
    ! [X_a] :
      ( semiri456707255roduct(X_a)
     => ! [Ba,Aa] :
          ( ti(X_a,Ba) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),Ba),Aa)
        <=> ti(X_a,Aa) = zero_zero(X_a) ) ) ).

fof(fact_403_rev__nth,axiom,
    ! [X_a,N,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)),N) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),hAPP(nat,nat,suc,N))) ) ).

fof(fact_404_take__equalityI,axiom,
    ! [X_a,Xs,Ys] :
      ( ! [I_2] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_2),Xs) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_2),Ys)
     => Xs = Ys ) ).

fof(fact_405_drop__take,axiom,
    ! [X_a,N,M,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),M),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) ).

fof(fact_406_drop__replicate,axiom,
    ! [X_a,I_1,K,X] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),I_1),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),K),X)) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),K),I_1)),X) ).

fof(fact_407_diff__cancel2,axiom,
    ! [M,K,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),K)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),K)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N) ).

fof(fact_408_diff__cancel,axiom,
    ! [K,M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K),M)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),K),N)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N) ).

fof(fact_409_diff__diff__left,axiom,
    ! [I_1,J,K] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),I_1),J)),K) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),I_1),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),J),K)) ).

fof(fact_410_diff__add__inverse,axiom,
    ! [N,M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M)),N) = M ).

fof(fact_411_diff__add__inverse2,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N)),N) = M ).

fof(fact_412_diff__eq__diff__less,axiom,
    ! [X_a] :
      ( ordered_ab_group_add(X_a)
     => ! [Aa,Ba,C_1,D_1] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),C_1),D_1)
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),Ba))
          <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),C_1),D_1)) ) ) ) ).

fof(fact_413_add__diff__cancel,axiom,
    ! [X_a] :
      ( group_add(X_a)
     => ! [A_2,B_1] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),B_1)),B_1) = ti(X_a,A_2) ) ).

fof(fact_414_diff__add__cancel,axiom,
    ! [X_a] :
      ( group_add(X_a)
     => ! [A_2,B_1] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),A_2),B_1)),B_1) = ti(X_a,A_2) ) ).

fof(fact_415_less__imp__diff__less,axiom,
    ! [N,J,K] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),J),K))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),J),N)),K)) ) ).

fof(fact_416_diff__less__mono2,axiom,
    ! [L,M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),L))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),L),N)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),L),M))) ) ) ).

fof(fact_417_less__iff__diff__less__0,axiom,
    ! [X_a] :
      ( ordered_ab_group_add(X_a)
     => ! [Aa,Ba] :
          ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),Ba))
        <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba)),zero_zero(X_a))) ) ) ).

fof(fact_418_diff__less,axiom,
    ! [M,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),M))
       => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N)),M)) ) ) ).

fof(fact_419_zero__less__diff,axiom,
    ! [N_2,M_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N_2),M_1)))
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M_1),N_2)) ) ).

fof(fact_420_diff__less__Suc,axiom,
    ! [M,N] : hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N)),hAPP(nat,nat,suc,M))) ).

fof(fact_421_diff__add__0,axiom,
    ! [N,M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),M)) = zero_zero(nat) ).

fof(fact_422_less__diff__conv,axiom,
    ! [I,J_1,K_1] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),I),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),J_1),K_1)))
    <=> hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),I),K_1)),J_1)) ) ).

fof(fact_423_add__diff__inverse,axiom,
    ! [M,N] :
      ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),M),N))
     => hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N)) = M ) ).

fof(fact_424_length__drop,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),N) ).

fof(fact_425_diff__commute,axiom,
    ! [I_1,J,K] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),I_1),J)),K) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),I_1),K)),J) ).

fof(fact_426_max__diff__distrib__left,axiom,
    ! [X_a] :
      ( ordered_ab_group_add(X_a)
     => ! [X,Y,Z] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),X),Y)),Z) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),ord_max(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),X),Z)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Y),Z)) ) ).

fof(fact_427_diff__eq__diff__eq,axiom,
    ! [X_a] :
      ( ab_group_add(X_a)
     => ! [Aa,Ba,C_1,D_1] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),C_1),D_1)
         => ( ti(X_a,Aa) = ti(X_a,Ba)
          <=> ti(X_a,C_1) = ti(X_a,D_1) ) ) ) ).

fof(fact_428_diff__0__right,axiom,
    ! [X_a] :
      ( group_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),A_2),zero_zero(X_a)) = ti(X_a,A_2) ) ).

fof(fact_429_diff__self,axiom,
    ! [X_a] :
      ( group_add(X_a)
     => ! [A_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),A_2),A_2) = zero_zero(X_a) ) ).

fof(fact_430_eq__iff__diff__eq__0,axiom,
    ! [X_a] :
      ( ab_group_add(X_a)
     => ! [Aa,Ba] :
          ( ti(X_a,Aa) = ti(X_a,Ba)
        <=> hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba) = zero_zero(X_a) ) ) ).

fof(fact_431_right__minus__eq,axiom,
    ! [X_a] :
      ( group_add(X_a)
     => ! [Aa,Ba] :
          ( hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba) = zero_zero(X_a)
        <=> ti(X_a,Aa) = ti(X_a,Ba) ) ) ).

fof(fact_432_minus__apply,axiom,
    ! [X_b,X_a] :
      ( minus(X_a)
     => ! [A_1,B,X_1] : hAPP(X_b,X_a,hAPP(fun(X_b,X_a),fun(X_b,X_a),hAPP(fun(X_b,X_a),fun(fun(X_b,X_a),fun(X_b,X_a)),minus_minus(fun(X_b,X_a)),A_1),B),X_1) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(X_b,X_a,A_1,X_1)),hAPP(X_b,X_a,B,X_1)) ) ).

fof(fact_433_fun__diff__def,axiom,
    ! [X_a,X_b] :
      ( minus(X_b)
     => ! [A_1,B,X_2] : hAPP(X_a,X_b,hAPP(fun(X_a,X_b),fun(X_a,X_b),hAPP(fun(X_a,X_b),fun(fun(X_a,X_b),fun(X_a,X_b)),minus_minus(fun(X_a,X_b)),A_1),B),X_2) = hAPP(X_b,X_b,hAPP(X_b,fun(X_b,X_b),minus_minus(X_b),hAPP(X_a,X_b,A_1,X_2)),hAPP(X_a,X_b,B,X_2)) ) ).

fof(fact_434_diffs0__imp__equal,axiom,
    ! [M,N] :
      ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N) = zero_zero(nat)
     => ( hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),M) = zero_zero(nat)
       => M = N ) ) ).

fof(fact_435_diff__self__eq__0,axiom,
    ! [M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),M) = zero_zero(nat) ).

fof(fact_436_minus__nat_Odiff__0,axiom,
    ! [M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),zero_zero(nat)) = M ).

fof(fact_437_diff__0__eq__0,axiom,
    ! [N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),zero_zero(nat)),N) = zero_zero(nat) ).

fof(fact_438_diff__Suc__Suc,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,suc,M)),hAPP(nat,nat,suc,N)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N) ).

fof(fact_439_Suc__diff__diff,axiom,
    ! [M,N,K] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,suc,M)),N)),hAPP(nat,nat,suc,K)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),N)),K) ).

fof(fact_440_nat__minus__add__max,axiom,
    ! [N,M] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),M)),M) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),ord_max(nat),N),M) ).

fof(fact_441_diff__Suc__less,axiom,
    ! [I_1,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(nat,nat,suc,I_1))),N)) ) ).

fof(fact_442_Suc__pred,axiom,
    ! [N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(nat,nat,suc,zero_zero(nat)))) = N ) ).

fof(fact_443_nat__diff__split,axiom,
    ! [P_1,Aa,Ba] :
      ( hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),Aa),Ba)))
    <=> ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),Aa),Ba))
         => hBOOL(hAPP(nat,bool,P_1,zero_zero(nat))) )
        & ! [D] :
            ( Aa = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Ba),D)
           => hBOOL(hAPP(nat,bool,P_1,D)) ) ) ) ).

fof(fact_444_nat__diff__split__asm,axiom,
    ! [P_1,Aa,Ba] :
      ( hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),Aa),Ba)))
    <=> ~ ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),Aa),Ba))
            & ~ hBOOL(hAPP(nat,bool,P_1,zero_zero(nat))) )
          | ? [D] :
              ( Aa = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),Ba),D)
              & ~ hBOOL(hAPP(nat,bool,P_1,D)) ) ) ) ).

fof(fact_445_take__append,axiom,
    ! [X_a,N,Xs,Ys] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs))),Ys)) ).

fof(fact_446_drop__append,axiom,
    ! [X_a,N,Xs,Ys] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),Xs)),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs))),Ys)) ).

fof(fact_447_nth__append,axiom,
    ! [X_a,Ys,N,Xs] :
      ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
       => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),N) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),N) )
      & ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
       => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),N) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Ys),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs))) ) ) ).

fof(fact_448_list__update__append,axiom,
    ! [X_a,Ys,X,N,Xs] :
      ( ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
       => hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),N),X) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),N),X)),Ys) )
      & ( ~ hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
       => hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys)),N),X) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Ys),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),hAPP(list(X_a),nat,size_size(list(X_a)),Xs))),X)) ) ) ).

fof(fact_449_rev__drop,axiom,
    ! [X_a,I_1,Xs] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),I_1),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),I_1)),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) ).

fof(fact_450_rev__take,axiom,
    ! [X_a,I_1,Xs] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),I_1),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),I_1)),hAPP(list(X_a),list(X_a),rev(X_a),Xs)) ).

fof(fact_451_zero__induct__lemma,axiom,
    ! [I,P_1,K_1] :
      ( hBOOL(hAPP(nat,bool,P_1,K_1))
     => ( ! [N_1] :
            ( hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,suc,N_1)))
           => hBOOL(hAPP(nat,bool,P_1,N_1)) )
       => hBOOL(hAPP(nat,bool,P_1,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),K_1),I))) ) ) ).

fof(fact_452_last__list__update,axiom,
    ! [X_a,X,K,Xs] :
      ( Xs != nil(X_a)
     => ( ( K = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))
         => hAPP(list(X_a),X_a,last(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),K),X)) = ti(X_a,X) )
        & ( K != hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))
         => hAPP(list(X_a),X_a,last(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),K),X)) = hAPP(list(X_a),X_a,last(X_a),Xs) ) ) ) ).

fof(fact_453_empty__Diff,axiom,
    ! [X_a,A_1] : hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),bot_bot(fun(X_a,bool))),A_1) = bot_bot(fun(X_a,bool)) ).

fof(fact_454_Diff__empty,axiom,
    ! [X_a,A_1] : hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),bot_bot(fun(X_a,bool))) = ti(fun(X_a,bool),A_1) ).

fof(fact_455_Diff__cancel,axiom,
    ! [X_a,A_1] : hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),A_1) = bot_bot(fun(X_a,bool)) ).

fof(fact_456_diff__Suc__1,axiom,
    ! [N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,suc,N)),one_one(nat)) = N ).

fof(fact_457_diff__Suc__eq__diff__pred,axiom,
    ! [M,N] : hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),hAPP(nat,nat,suc,N)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),one_one(nat))),N) ).

fof(fact_458_Suc__eq__plus1__left,axiom,
    ! [N] : hAPP(nat,nat,suc,N) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),one_one(nat)),N) ).

fof(fact_459_Suc__eq__plus1,axiom,
    ! [N] : hAPP(nat,nat,suc,N) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),N),one_one(nat)) ).

fof(fact_460_drop__1__Cons,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),one_one(nat)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = Xs ).

fof(fact_461_one__reorient,axiom,
    ! [X_a] :
      ( one(X_a)
     => ! [X_1] :
          ( one_one(X_a) = ti(X_a,X_1)
        <=> ti(X_a,X_1) = one_one(X_a) ) ) ).

fof(fact_462_One__nat__def,axiom,
    one_one(nat) = hAPP(nat,nat,suc,zero_zero(nat)) ).

fof(fact_463_less__add__one,axiom,
    ! [X_a] :
      ( linordered_semidom(X_a)
     => ! [A_2] : hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),A_2),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),A_2),one_one(X_a)))) ) ).

fof(fact_464_not__one__less__zero,axiom,
    ! [X_a] :
      ( linordered_semidom(X_a)
     => ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),one_one(X_a)),zero_zero(X_a))) ) ).

fof(fact_465_zero__less__one,axiom,
    ! [X_a] :
      ( linordered_semidom(X_a)
     => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),one_one(X_a))) ) ).

fof(fact_466_one__neq__zero,axiom,
    ! [X_a] :
      ( zero_neq_one(X_a)
     => one_one(X_a) != zero_zero(X_a) ) ).

fof(fact_467_zero__neq__one,axiom,
    ! [X_a] :
      ( zero_neq_one(X_a)
     => zero_zero(X_a) != one_one(X_a) ) ).

fof(fact_468_zero__less__two,axiom,
    ! [X_a] :
      ( linordered_semidom(X_a)
     => hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),zero_zero(X_a)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),one_one(X_a)),one_one(X_a)))) ) ).

fof(fact_469_take__1__Cons,axiom,
    ! [X_a,X,Xs] : hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),one_one(nat)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),nil(X_a)) ).

fof(fact_470_length__butlast,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat)) ).

fof(fact_471_length__tl,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),nat,size_size(list(X_a)),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat)) ).

fof(fact_472_tl__take,axiom,
    ! [X_a,N,Xs] : hAPP(list(X_a),list(X_a),tl(X_a),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))),hAPP(list(X_a),list(X_a),tl(X_a),Xs)) ).

fof(fact_473_Suc__pred_H,axiom,
    ! [N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => N = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))) ) ).

fof(fact_474_Suc__diff__1,axiom,
    ! [N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))) = N ) ).

fof(fact_475_add__eq__if,axiom,
    ! [N,M] :
      ( ( M = zero_zero(nat)
       => hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N) = N )
      & ( M != zero_zero(nat)
       => hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),M),N) = hAPP(nat,nat,suc,hAPP(nat,nat,hAPP(nat,fun(nat,nat),plus_plus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),M),one_one(nat))),N)) ) ) ).

fof(fact_476_nth__Cons_H,axiom,
    ! [X_a,X,Xs,N] :
      ( ( N = zero_zero(nat)
       => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),N) = ti(X_a,X) )
      & ( N != zero_zero(nat)
       => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),N) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))) ) ) ).

fof(fact_477_drop__Cons_H,axiom,
    ! [X_a,X,Xs,N] :
      ( ( N = zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs) )
      & ( N != zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),N),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),drop(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))),Xs) ) ) ).

fof(fact_478_butlast__conv__take,axiom,
    ! [X_a,Xs] : hAPP(list(X_a),list(X_a),butlast(X_a),Xs) = hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))),Xs) ).

fof(fact_479_butlast__list__update,axiom,
    ! [X_a,X,K,Xs] :
      ( ( K = hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),K),X)) = hAPP(list(X_a),list(X_a),butlast(X_a),Xs) )
      & ( K != hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))
       => hAPP(list(X_a),list(X_a),butlast(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),K),X)) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),butlast(X_a),Xs)),K),X) ) ) ).

fof(fact_480_tl__replicate,axiom,
    ! [X_a,X,N] :
      ( N != zero_zero(nat)
     => hAPP(list(X_a),list(X_a),tl(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),N),X)) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),replicate(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))),X) ) ).

fof(fact_481_nth__Cons__pos,axiom,
    ! [X_a,X,Xs,N] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),zero_zero(nat)),N))
     => hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)),N) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))) ) ).

fof(fact_482_take__Cons_H,axiom,
    ! [X_a,X,Xs,N] :
      ( ( N = zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = nil(X_a) )
      & ( N != zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),N),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),N),one_one(nat))),Xs)) ) ) ).

fof(fact_483_rev__update,axiom,
    ! [X_a,Y,K,Xs] :
      ( hBOOL(hAPP(nat,bool,hAPP(nat,fun(nat,bool),ord_less(nat),K),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)))
     => hAPP(list(X_a),list(X_a),rev(X_a),hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),Xs),K),Y)) = hAPP(X_a,list(X_a),hAPP(nat,fun(X_a,list(X_a)),hAPP(list(X_a),fun(nat,fun(X_a,list(X_a))),list_update(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),K)),one_one(nat))),Y) ) ).

fof(fact_484_last__conv__nth,axiom,
    ! [X_a,Xs] :
      ( Xs != nil(X_a)
     => hAPP(list(X_a),X_a,last(X_a),Xs) = hAPP(nat,X_a,hAPP(list(X_a),fun(nat,X_a),nth(X_a),Xs),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(list(X_a),nat,size_size(list(X_a)),Xs)),one_one(nat))) ) ).

fof(fact_485_take__Cons__number__of,axiom,
    ! [X_a,X,Xs,V] :
      ( ( hAPP(int,nat,number_number_of(nat),V) = zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(int,nat,number_number_of(nat),V)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = nil(X_a) )
      & ( hAPP(int,nat,number_number_of(nat),V) != zero_zero(nat)
       => hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(int,nat,number_number_of(nat),V)),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X),hAPP(list(X_a),list(X_a),hAPP(nat,fun(list(X_a),list(X_a)),take(X_a),hAPP(nat,nat,hAPP(nat,fun(nat,nat),minus_minus(nat),hAPP(int,nat,number_number_of(nat),V)),one_one(nat))),Xs)) ) ) ).

fof(fact_486_Ints__odd__less__0,axiom,
    ! [X_a] :
      ( linordered_idom(X_a)
     => ! [Aa] :
          ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Aa),ring_1_Ints(X_a)))
         => ( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),one_one(X_a)),Aa)),Aa)),zero_zero(X_a)))
          <=> hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),ord_less(X_a),Aa),zero_zero(X_a))) ) ) ) ).

fof(fact_487_DiffE,axiom,
    ! [X_a,C_1,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B)))
     => ~ ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),A_1))
         => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),B)) ) ) ).

fof(fact_488_DiffI,axiom,
    ! [X_a,B,C_1,A_1] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),A_1))
     => ( ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),B))
       => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B))) ) ) ).

fof(fact_489_Ints__diff,axiom,
    ! [X_a] :
      ( ring_1(X_a)
     => ! [Ba,Aa] :
          ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Aa),ring_1_Ints(X_a)))
         => ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),Ba),ring_1_Ints(X_a)))
           => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),Aa),Ba)),ring_1_Ints(X_a))) ) ) ) ).

fof(fact_490_number__of__diff,axiom,
    ! [X_a] :
      ( number_ring(X_a)
     => ! [V,W] : hAPP(int,X_a,number_number_of(X_a),hAPP(int,int,hAPP(int,fun(int,int),minus_minus(int),V),W)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(int,X_a,number_number_of(X_a),V)),hAPP(int,X_a,number_number_of(X_a),W)) ) ).

fof(fact_491_add__number__of__diff1,axiom,
    ! [X_a] :
      ( number_ring(X_a)
     => ! [V,W,C_2] : hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),plus_plus(X_a),hAPP(int,X_a,number_number_of(X_a),V)),hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(int,X_a,number_number_of(X_a),W)),C_2)) = hAPP(X_a,X_a,hAPP(X_a,fun(X_a,X_a),minus_minus(X_a),hAPP(int,X_a,number_number_of(X_a),hAPP(int,int,hAPP(int,fun(int,int),plus_plus(int),V),W))),C_2) ) ).

fof(fact_492_DiffD2,axiom,
    ! [X_a,C_1,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B)))
     => ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),B)) ) ).

fof(fact_493_DiffD1,axiom,
    ! [X_a,C_1,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B)))
     => hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),A_1)) ) ).

fof(fact_494_Diff__idemp,axiom,
    ! [X_a,A_1,B] : hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B)),B) = hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B) ).

fof(fact_495_Diff__iff,axiom,
    ! [X_a,C_1,A_1,B] :
      ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B)))
    <=> ( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),A_1))
        & ~ hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),C_1),B)) ) ) ).

fof(fact_496_set__diff__eq,axiom,
    ! [X_a,A_1,B] : hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,bool),fun(fun(X_a,bool),fun(X_a,bool)),minus_minus(fun(X_a,bool)),A_1),B) = hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,fun(bool,bool)),fun(fun(X_a,bool),fun(X_a,bool)),combs(X_a,bool,bool),hAPP(fun(X_a,bool),fun(X_a,fun(bool,bool)),hAPP(fun(bool,fun(bool,bool)),fun(fun(X_a,bool),fun(X_a,fun(bool,bool))),combb(bool,fun(bool,bool),X_a),fconj),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,fun(fun(X_a,bool),bool)),fun(fun(X_a,bool),fun(X_a,bool)),combc(X_a,fun(X_a,bool),bool),member(X_a)),A_1))),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(bool,bool),fun(fun(X_a,bool),fun(X_a,bool)),combb(bool,bool,X_a),fNot),hAPP(fun(X_a,bool),fun(X_a,bool),hAPP(fun(X_a,fun(fun(X_a,bool),bool)),fun(fun(X_a,bool),fun(X_a,bool)),combc(X_a,fun(X_a,bool),bool),member(X_a)),B)))) ).

%----Arities (63)
fof(arity_HOL_Obool___Enum_Oenum,axiom,
    enum(bool) ).

fof(arity_fun___Enum_Oenum,axiom,
    ! [T_2,T_1] :
      ( ( enum(T_1)
        & enum(T_2) )
     => enum(fun(T_2,T_1)) ) ).

fof(arity_fun___Orderings_Opreorder,axiom,
    ! [T_2,T_1] :
      ( preorder(T_1)
     => preorder(fun(T_2,T_1)) ) ).

fof(arity_fun___Orderings_Oorder,axiom,
    ! [T_2,T_1] :
      ( order(T_1)
     => order(fun(T_2,T_1)) ) ).

fof(arity_fun___Orderings_Oord,axiom,
    ! [T_2,T_1] :
      ( ord(T_1)
     => ord(fun(T_2,T_1)) ) ).

fof(arity_fun___Orderings_Obot,axiom,
    ! [T_2,T_1] :
      ( bot(T_1)
     => bot(fun(T_2,T_1)) ) ).

fof(arity_fun___Groups_Ominus,axiom,
    ! [T_2,T_1] :
      ( minus(T_1)
     => minus(fun(T_2,T_1)) ) ).

fof(arity_fun___HOL_Oequal,axiom,
    ! [T_2,T_1] :
      ( ( cl_HOL_Oequal(T_1)
        & enum(T_2) )
     => cl_HOL_Oequal(fun(T_2,T_1)) ) ).

fof(arity_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduc,axiom,
    semiri456707255roduct(int) ).

fof(arity_Int_Oint___Groups_Oordered__cancel__ab__semigroup__add,axiom,
    ordere223160158up_add(int) ).

fof(arity_Int_Oint___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    ordere236663937imp_le(int) ).

fof(arity_Int_Oint___Groups_Oordered__comm__monoid__add,axiom,
    ordere216010020id_add(int) ).

fof(arity_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
    linord219039673up_add(int) ).

fof(arity_Int_Oint___Groups_Ocancel__ab__semigroup__add,axiom,
    cancel146912293up_add(int) ).

fof(arity_Int_Oint___Groups_Oordered__ab__group__add,axiom,
    ordered_ab_group_add(int) ).

fof(arity_Int_Oint___Groups_Ocancel__semigroup__add,axiom,
    cancel_semigroup_add(int) ).

fof(arity_Int_Oint___Rings_Olinordered__semidom,axiom,
    linordered_semidom(int) ).

fof(arity_Int_Oint___Groups_Oab__semigroup__add,axiom,
    ab_semigroup_add(int) ).

fof(arity_Int_Oint___Groups_Ocomm__monoid__add,axiom,
    comm_monoid_add(int) ).

fof(arity_Int_Oint___Rings_Olinordered__idom,axiom,
    linordered_idom(int) ).

fof(arity_Int_Oint___Rings_Ocomm__semiring__1,axiom,
    comm_semiring_1(int) ).

fof(arity_Int_Oint___Groups_Oab__group__add,axiom,
    ab_group_add(int) ).

fof(arity_Int_Oint___Rings_Ozero__neq__one,axiom,
    zero_neq_one(int) ).

fof(arity_Int_Oint___Orderings_Opreorder,axiom,
    preorder(int) ).

fof(arity_Int_Oint___Orderings_Olinorder,axiom,
    linorder(int) ).

fof(arity_Int_Oint___Groups_Omonoid__add,axiom,
    monoid_add(int) ).

fof(arity_Int_Oint___Groups_Ogroup__add,axiom,
    group_add(int) ).

fof(arity_Int_Oint___Orderings_Oorder,axiom,
    order(int) ).

fof(arity_Int_Oint___Int_Onumber__ring,axiom,
    number_ring(int) ).

fof(arity_Int_Oint___Orderings_Oord,axiom,
    ord(int) ).

fof(arity_Int_Oint___Rings_Oring__1,axiom,
    ring_1(int) ).

fof(arity_Int_Oint___Groups_Ominus,axiom,
    minus(int) ).

fof(arity_Int_Oint___Groups_Ozero,axiom,
    zero(int) ).

fof(arity_Int_Oint___Groups_Oone,axiom,
    one(int) ).

fof(arity_Int_Oint___HOL_Oequal,axiom,
    cl_HOL_Oequal(int) ).

fof(arity_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduc,axiom,
    semiri456707255roduct(nat) ).

fof(arity_Nat_Onat___Groups_Oordered__cancel__ab__semigroup__add,axiom,
    ordere223160158up_add(nat) ).

fof(arity_Nat_Onat___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    ordere236663937imp_le(nat) ).

fof(arity_Nat_Onat___Groups_Oordered__comm__monoid__add,axiom,
    ordere216010020id_add(nat) ).

fof(arity_Nat_Onat___Groups_Ocancel__ab__semigroup__add,axiom,
    cancel146912293up_add(nat) ).

fof(arity_Nat_Onat___Groups_Ocancel__semigroup__add,axiom,
    cancel_semigroup_add(nat) ).

fof(arity_Nat_Onat___Rings_Olinordered__semidom,axiom,
    linordered_semidom(nat) ).

fof(arity_Nat_Onat___Groups_Oab__semigroup__add,axiom,
    ab_semigroup_add(nat) ).

fof(arity_Nat_Onat___Groups_Ocomm__monoid__add,axiom,
    comm_monoid_add(nat) ).

fof(arity_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
    comm_semiring_1(nat) ).

fof(arity_Nat_Onat___Rings_Ozero__neq__one,axiom,
    zero_neq_one(nat) ).

fof(arity_Nat_Onat___Orderings_Opreorder,axiom,
    preorder(nat) ).

fof(arity_Nat_Onat___Orderings_Olinorder,axiom,
    linorder(nat) ).

fof(arity_Nat_Onat___Groups_Omonoid__add,axiom,
    monoid_add(nat) ).

fof(arity_Nat_Onat___Orderings_Oorder,axiom,
    order(nat) ).

fof(arity_Nat_Onat___Orderings_Oord,axiom,
    ord(nat) ).

fof(arity_Nat_Onat___Orderings_Obot,axiom,
    bot(nat) ).

fof(arity_Nat_Onat___Groups_Ominus,axiom,
    minus(nat) ).

fof(arity_Nat_Onat___Groups_Ozero,axiom,
    zero(nat) ).

fof(arity_Nat_Onat___Groups_Oone,axiom,
    one(nat) ).

fof(arity_Nat_Onat___HOL_Oequal,axiom,
    cl_HOL_Oequal(nat) ).

fof(arity_HOL_Obool___Orderings_Opreorder,axiom,
    preorder(bool) ).

fof(arity_HOL_Obool___Orderings_Oorder,axiom,
    order(bool) ).

fof(arity_HOL_Obool___Orderings_Oord,axiom,
    ord(bool) ).

fof(arity_HOL_Obool___Orderings_Obot,axiom,
    bot(bool) ).

fof(arity_HOL_Obool___Groups_Ominus,axiom,
    minus(bool) ).

fof(arity_HOL_Obool___HOL_Oequal,axiom,
    cl_HOL_Oequal(bool) ).

fof(arity_List_Olist___HOL_Oequal,axiom,
    ! [T_1] : cl_HOL_Oequal(list(T_1)) ).

%----Helper facts (14)
fof(help_ti_idem,axiom,
    ! [T,A] : ti(T,ti(T,A)) = ti(T,A) ).

fof(help_fNot_1_1_U,axiom,
    ! [P] :
      ( ~ hBOOL(hAPP(bool,bool,fNot,P))
      | ~ hBOOL(P) ) ).

fof(help_fNot_2_1_U,axiom,
    ! [P] :
      ( hBOOL(P)
      | hBOOL(hAPP(bool,bool,fNot,P)) ) ).

fof(help_COMBB_1_1_U,axiom,
    ! [X_a,X_c,X_b,P,Q,R] : hAPP(X_a,X_c,hAPP(fun(X_a,X_b),fun(X_a,X_c),hAPP(fun(X_b,X_c),fun(fun(X_a,X_b),fun(X_a,X_c)),combb(X_b,X_c,X_a),P),Q),R) = hAPP(X_b,X_c,P,hAPP(X_a,X_b,Q,R)) ).

fof(help_COMBC_1_1_U,axiom,
    ! [X_a,X_c,X_b,P,Q,R] : hAPP(X_a,X_c,hAPP(X_b,fun(X_a,X_c),hAPP(fun(X_a,fun(X_b,X_c)),fun(X_b,fun(X_a,X_c)),combc(X_a,X_b,X_c),P),Q),R) = hAPP(X_b,X_c,hAPP(X_a,fun(X_b,X_c),P,R),Q) ).

fof(help_COMBK_1_1_U,axiom,
    ! [X_b,X_a,P,Q] : hAPP(X_b,X_a,hAPP(X_a,fun(X_b,X_a),combk(X_a,X_b),P),Q) = ti(X_a,P) ).

fof(help_COMBS_1_1_U,axiom,
    ! [X_a,X_c,X_b,P,Q,R] : hAPP(X_a,X_c,hAPP(fun(X_a,X_b),fun(X_a,X_c),hAPP(fun(X_a,fun(X_b,X_c)),fun(fun(X_a,X_b),fun(X_a,X_c)),combs(X_a,X_b,X_c),P),Q),R) = hAPP(X_b,X_c,hAPP(X_a,fun(X_b,X_c),P,R),hAPP(X_a,X_b,Q,R)) ).

fof(help_fconj_1_1_U,axiom,
    ! [Q,P] :
      ( ~ hBOOL(P)
      | ~ hBOOL(Q)
      | hBOOL(hAPP(bool,bool,hAPP(bool,fun(bool,bool),fconj,P),Q)) ) ).

fof(help_fconj_2_1_U,axiom,
    ! [P,Q] :
      ( ~ hBOOL(hAPP(bool,bool,hAPP(bool,fun(bool,bool),fconj,P),Q))
      | hBOOL(P) ) ).

fof(help_fconj_3_1_U,axiom,
    ! [P,Q] :
      ( ~ hBOOL(hAPP(bool,bool,hAPP(bool,fun(bool,bool),fconj,P),Q))
      | hBOOL(Q) ) ).

fof(help_fFalse_1_1_U,axiom,
    ~ hBOOL(fFalse) ).

fof(help_fFalse_1_1_T,axiom,
    ! [P] :
      ( ti(bool,P) = fTrue
      | ti(bool,P) = fFalse ) ).

fof(help_fequal_1_1_T,axiom,
    ! [X_a,X,Y] :
      ( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),fequal(X_a),X),Y))
      | ti(X_a,X) = ti(X_a,Y) ) ).

fof(help_fequal_2_1_T,axiom,
    ! [X_a,X,Y] :
      ( ti(X_a,X) != ti(X_a,Y)
      | hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),fequal(X_a),X),Y)) ) ).

%----Conjectures (2)
fof(conj_0,hypothesis,
    a != b ).

fof(conj_1,conjecture,
    ? [C] : hBOOL(hAPP(list(arrow_490897120le_alt),bool,distinct(arrow_490897120le_alt),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),a),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),b),hAPP(list(arrow_490897120le_alt),list(arrow_490897120le_alt),hAPP(arrow_490897120le_alt,fun(list(arrow_490897120le_alt),list(arrow_490897120le_alt)),cons(arrow_490897120le_alt),C),nil(arrow_490897120le_alt)))))) ).

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