TPTP Problem File: SCT169+5.p

View Solutions - Solve Problem

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

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

% Status   : Theorem
% Rating   : 1.00 v5.4.0, 0.96 v5.3.0
% Syntax   : Number of formulae    :  137 (  67 unt;   0 def)
%            Number of atoms       :  246 ( 192 equ)
%            Maximal formula atoms :    6 (   1 avg)
%            Number of connectives :  145 (  36   ~;   5   |;  21   &)
%                                         (  31 <=>;  52  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   5 avg)
%            Maximal term depth    :   10 (   2 avg)
%            Number of predicates  :    4 (   3 usr;   0 prp; 1-2 aty)
%            Number of functors    :   30 (  30 usr;   5 con; 0-4 aty)
%            Number of variables   :  371 ( 358   !;  13   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2011-08-09 13:53:47
%          : Encoded with polymorphic tags.
%------------------------------------------------------------------------------
%----Explicit typings (27)
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_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_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_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_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_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_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_Otl_res,axiom,
    ! [X_a] : ti(fun(list(X_a),list(X_a)),tl(X_a)) = tl(X_a) ).

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_b,B_1,B_2] : hAPP(X_a,X_b,ti(fun(X_a,X_b),B_1),B_2) = hAPP(X_a,X_b,B_1,B_2) ).

fof(tsy_c_hAPP_arg2,axiom,
    ! [X_a,X_b,B_1,B_2] : hAPP(X_a,X_b,B_1,ti(X_a,B_2)) = hAPP(X_a,X_b,B_1,B_2) ).

fof(tsy_c_hAPP_res,axiom,
    ! [X_b,X_a,B_1,B_2] : ti(X_b,hAPP(X_a,X_b,B_1,B_2)) = hAPP(X_a,X_b,B_1,B_2) ).

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

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

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

%----Relevant facts (100)
fof(fact_0_alt3,axiom,
    ? [A_2,B,C] : hBOOL(hAPP(list(arrow_1212486748le_alt),bool,distinct(arrow_1212486748le_alt),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),A_2),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),B),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),C),nil(arrow_1212486748le_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_3,List_3] : nil(X_a) != hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),A_3),List_3) ).

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

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

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

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

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

fof(fact_8_list_Oinject,axiom,
    ! [X_a,Aa,List,A_1,List_1] :
      ( 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_1),List_1)
    <=> ( ti(X_a,Aa) = ti(X_a,A_1)
        & List = List_1 ) ) ).

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,Xs] :
      ( Xs != nil(X_a)
     => ( ! [X_2] : hBOOL(hAPP(list(X_a),bool,P,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,Xs_2))
               => hBOOL(hAPP(list(X_a),bool,P,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,Xs)) ) ) ) ).

fof(fact_12_distinct__butlast,axiom,
    ! [X_a,Xs_1] :
      ( Xs_1 != nil(X_a)
     => ( 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),butlast(X_a),Xs_1))) ) ) ).

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_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(X_a,fun(list(X_a),list(X_a)),insert(X_a),X),Xs_1))) ) ).

fof(fact_15_splice_Osimps_I3_J,axiom,
    ! [X_a,X,Xs_1,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_1)),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_1),Ys))) ).

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

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_1] :
      ( ( Xs_1 = 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_1)) = nil(X_a) )
      & ( Xs_1 != 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_1)) = 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_1)) ) ) ).

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] :
      ( Xs = nil(X_a)
    <=> hBOOL(hAPP(list(X_a),bool,null(X_a),Xs)) ) ).

fof(fact_24_List_Onull__def,axiom,
    ! [X_a,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,null(X_a),Xs))
    <=> Xs = 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_1] : ~ 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_1))) ).

fof(fact_27_butlast__snoc,axiom,
    ! [X_a,Xs_1,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_1),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_1 ).

fof(fact_28_append__assoc,axiom,
    ! [X_a,Xs_1,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_1),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_1),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_29_append__eq__append__conv2,axiom,
    ! [X_a,Xs,Ys_1,Zs_1,Ts] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs_1),Ts)
    <=> ? [Us_1] :
          ( ( Xs = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs_1),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),Us_1) = Zs_1
            & 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_30_same__append__eq,axiom,
    ! [X_a,Xs,Ys_1,Zs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Ys_1) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Xs),Zs_1)
    <=> Ys_1 = Zs_1 ) ).

fof(fact_31_append__same__eq,axiom,
    ! [X_a,Ys_1,Xs,Zs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Zs_1),Xs)
    <=> Ys_1 = Zs_1 ) ).

fof(fact_32_append__eq__appendI,axiom,
    ! [X_a,Ys,Us,Xs_1,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_1),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_1),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_33_append__Cons,axiom,
    ! [X_a,X,Xs_1,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_1)),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_1),Ys)) ).

fof(fact_34_Cons__eq__appendI,axiom,
    ! [X_a,Xs_1,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_1 = 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_1) = 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_35_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_36_Nil__is__append__conv,axiom,
    ! [X_a,Xs,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),Ys_1)
    <=> ( Xs = nil(X_a)
        & Ys_1 = nil(X_a) ) ) ).

fof(fact_37_append__Nil2,axiom,
    ! [X_a,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),nil(X_a)) = Xs_1 ).

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

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

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

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

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

fof(fact_43_eq__Nil__appendI,axiom,
    ! [X_a,Xs_1,Ys] :
      ( Xs_1 = Ys
     => Xs_1 = 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_44_append__eq__Cons__conv,axiom,
    ! [X_a,Ys_1,Zs_1,X_1,Xs] :
      ( hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Zs_1) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs)
    <=> ( ( Ys_1 = nil(X_a)
          & Zs_1 = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs) )
        | ? [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_1) = Xs ) ) ) ).

fof(fact_45_Cons__eq__append__conv,axiom,
    ! [X_a,X_1,Xs,Ys_1,Zs_1] :
      ( hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs) = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_1),Zs_1)
    <=> ( ( 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) = Zs_1 )
        | ? [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 = hAPP(list(X_a),list(X_a),hAPP(list(X_a),fun(list(X_a),list(X_a)),append(X_a),Ys_3),Zs_1) ) ) ) ).

fof(fact_46_append1__eq__conv,axiom,
    ! [X_a,Xs,X_1,Ys_1,Y_1] :
      ( 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_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_1),nil(X_a)))
    <=> ( Xs = Ys_1
        & ti(X_a,X_1) = ti(X_a,Y_1) ) ) ).

fof(fact_47_butlast__append,axiom,
    ! [X_a,Xs_1,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_1),Ys)) = hAPP(list(X_a),list(X_a),butlast(X_a),Xs_1) )
      & ( 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_1),Ys)) = 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),butlast(X_a),Ys)) ) ) ).

fof(fact_48_rev__induct,axiom,
    ! [X_a,Xs,P] :
      ( hBOOL(hAPP(list(X_a),bool,P,nil(X_a)))
     => ( ! [X_2,Xs_2] :
            ( hBOOL(hAPP(list(X_a),bool,P,Xs_2))
           => hBOOL(hAPP(list(X_a),bool,P,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,Xs)) ) ) ).

fof(fact_49_rev__cases,axiom,
    ! [X_a,Xs_1] :
      ( Xs_1 != nil(X_a)
     => ~ ! [Ys_2,Y_2] : Xs_1 != 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_2),nil(X_a))) ) ).

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

fof(fact_51_snoc__eq__iff__butlast,axiom,
    ! [X_a,Xs,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),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
        & hAPP(list(X_a),X_a,last(X_a),Ys_1) = ti(X_a,X_1) ) ) ).

fof(fact_52_append__butlast__last__id,axiom,
    ! [X_a,Xs_1] :
      ( Xs_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),hAPP(list(X_a),list(X_a),butlast(X_a),Xs_1)),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_1)),nil(X_a))) = Xs_1 ) ).

fof(fact_53_rotate__simps,axiom,
    ! [X_b,X_a,X,Xs_1] :
      ( 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_1)) = hAPP(list(X_b),list(X_b),hAPP(list(X_b),fun(list(X_b),list(X_b)),append(X_b),Xs_1),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_54_equal__list__def,axiom,
    ! [X_a,X_1,Y_1] :
      ( hBOOL(hAPP(list(X_a),bool,hAPP(list(X_a),fun(list(X_a),bool),equal_equal(list(X_a)),X_1),Y_1))
    <=> X_1 = Y_1 ) ).

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

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

fof(fact_57_last__ConsL,axiom,
    ! [X_a,X,Xs_1] :
      ( Xs_1 = 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_1)) = ti(X_a,X) ) ).

fof(fact_58_last__ConsR,axiom,
    ! [X_a,X,Xs_1] :
      ( Xs_1 != 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_1)) = hAPP(list(X_a),X_a,last(X_a),Xs_1) ) ).

fof(fact_59_last_Osimps,axiom,
    ! [X_a,X,Xs_1] :
      ( ( Xs_1 = 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_1)) = ti(X_a,X) )
      & ( Xs_1 != 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_1)) = hAPP(list(X_a),X_a,last(X_a),Xs_1) ) ) ).

fof(fact_60_last__appendL,axiom,
    ! [X_a,Xs_1,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_1),Ys)) = hAPP(list(X_a),X_a,last(X_a),Xs_1) ) ).

fof(fact_61_last__appendR,axiom,
    ! [X_a,Xs_1,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_1),Ys)) = hAPP(list(X_a),X_a,last(X_a),Ys) ) ).

fof(fact_62_last__append,axiom,
    ! [X_a,Xs_1,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_1),Ys)) = hAPP(list(X_a),X_a,last(X_a),Xs_1) )
      & ( 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_1),Ys)) = hAPP(list(X_a),X_a,last(X_a),Ys) ) ) ).

fof(fact_63_last__snoc,axiom,
    ! [X_a,Xs_1,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_1),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_64_maps__simps_I1_J,axiom,
    ! [X_b,X_a,F,X_1,Xs] : 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)) = 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)) ).

fof(fact_65_not__distinct__decomp,axiom,
    ! [X_a,Ws] :
      ( ~ hBOOL(hAPP(list(X_a),bool,distinct(X_a),Ws))
     => ? [Xs_2,Ys_2,Zs,Y_2] : 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_2),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_2),nil(X_a))),Zs)))) ) ).

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

fof(fact_67_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_68_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_69_eq__equal,axiom,
    ! [X_a] :
      ( cl_HOL_Oequal(X_a)
     => fequal(X_a) = equal_equal(X_a) ) ).

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

fof(fact_71_replicate__append__same,axiom,
    ! [X_a,I,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),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),X)) ).

fof(fact_72_rev_Osimps_I2_J,axiom,
    ! [X_a,X,Xs_1] : 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_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),Xs_1)),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_73_rev__eq__Cons__iff,axiom,
    ! [X_a,Xs,Y_1,Ys_1] :
      ( 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),Y_1),Ys_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),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_1),nil(X_a))) ) ).

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

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_rev__swap,axiom,
    ! [X_a,Xs,Ys_1] :
      ( hAPP(list(X_a),list(X_a),rev(X_a),Xs) = Ys_1
    <=> Xs = hAPP(list(X_a),list(X_a),rev(X_a),Ys_1) ) ).

fof(fact_77_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_78_rev__rev__ident,axiom,
    ! [X_a,Xs_1] : hAPP(list(X_a),list(X_a),rev(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs_1)) = Xs_1 ).

fof(fact_79_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_80_distinct__rev,axiom,
    ! [X_a,Xs] :
      ( hBOOL(hAPP(list(X_a),bool,distinct(X_a),hAPP(list(X_a),list(X_a),rev(X_a),Xs)))
    <=> hBOOL(hAPP(list(X_a),bool,distinct(X_a),Xs)) ) ).

fof(fact_81_rev__append,axiom,
    ! [X_a,Xs_1,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_1),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_1)) ).

fof(fact_82_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_83_Nil__is__rev__conv,axiom,
    ! [X_a,Xs] :
      ( nil(X_a) = hAPP(list(X_a),list(X_a),rev(X_a),Xs)
    <=> Xs = nil(X_a) ) ).

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

fof(fact_85_singleton__rev__conv,axiom,
    ! [X_a,X_1,Xs] :
      ( 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)
    <=> Xs = 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_86_rev__singleton__conv,axiom,
    ! [X_a,Xs,X_1] :
      ( 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_1),nil(X_a))
    <=> Xs = 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_87_replicate__app__Cons__same,axiom,
    ! [X_a,N,X,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_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_1)) = 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_1)) ).

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

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

fof(fact_90_hd_Osimps,axiom,
    ! [X_a,X,Xs_1] : 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_1)) = ti(X_a,X) ).

fof(fact_91_hd__append,axiom,
    ! [X_a,Ys,Xs_1] :
      ( ( Xs_1 = 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_1),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Ys) )
      & ( Xs_1 != 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_1),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Xs_1) ) ) ).

fof(fact_92_hd__append2,axiom,
    ! [X_a,Ys,Xs_1] :
      ( Xs_1 != 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_1),Ys)) = hAPP(list(X_a),X_a,hd(X_a),Xs_1) ) ).

fof(fact_93_rotate1__hd__tl,axiom,
    ! [X_a,Xs_1] :
      ( Xs_1 != nil(X_a)
     => hAPP(list(X_a),list(X_a),rotate1(X_a),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),tl(X_a),Xs_1)),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_1)),nil(X_a))) ) ).

fof(fact_94_hd__dropWhile,axiom,
    ! [X_a,P,Xs] :
      ( hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P),Xs) != nil(X_a)
     => ~ hBOOL(hAPP(X_a,bool,P,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),Xs)))) ) ).

fof(fact_95_tl__append2,axiom,
    ! [X_a,Ys,Xs_1] :
      ( Xs_1 != 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_1),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_1)),Ys) ) ).

fof(fact_96_distinct__tl,axiom,
    ! [X_a,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),tl(X_a),Xs_1))) ) ).

fof(fact_97_distinct__dropWhile,axiom,
    ! [X_a,P,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(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P),Xs))) ) ).

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

fof(fact_99_dropWhile_Osimps_I2_J,axiom,
    ! [X_a,Xs,P,X_1] :
      ( ( hBOOL(hAPP(X_a,bool,P,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),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs)) = hAPP(list(X_a),list(X_a),hAPP(fun(X_a,bool),fun(list(X_a),list(X_a)),dropWhile(X_a),P),Xs) )
      & ( ~ hBOOL(hAPP(X_a,bool,P,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),hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs)) = hAPP(list(X_a),list(X_a),hAPP(X_a,fun(list(X_a),list(X_a)),cons(X_a),X_1),Xs) ) ) ).

%----Arities (5)
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___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_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 (3)
fof(help_ti_idem,axiom,
    ! [T,A] : ti(T,ti(T,A)) = ti(T,A) ).

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_1212486748le_alt),bool,distinct(arrow_1212486748le_alt),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),a),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),b),hAPP(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt),hAPP(arrow_1212486748le_alt,fun(list(arrow_1212486748le_alt),list(arrow_1212486748le_alt)),cons(arrow_1212486748le_alt),C),nil(arrow_1212486748le_alt)))))) ).

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