TPTP Problem File: SCT102+1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SCT102+1 : TPTP v8.2.0. Released v5.2.0.
% Domain   : Social Choice Theory
% Problem  : Arrow's Impossibility Theorem 432241, 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_432241.500 [Bla11]

% Status   : ContradictoryAxioms
% Rating   : 0.81 v8.2.0, 0.83 v8.1.0, 0.81 v7.5.0, 0.91 v7.4.0, 0.90 v7.3.0, 0.93 v7.1.0, 0.91 v7.0.0, 0.83 v6.4.0, 0.85 v6.3.0, 0.92 v6.1.0, 0.97 v6.0.0, 0.96 v5.4.0, 1.00 v5.2.0
% Syntax   : Number of formulae    :  575 ( 242 unt;   0 def)
%            Number of atoms       : 1124 ( 538 equ)
%            Maximal formula atoms :    7 (   1 avg)
%            Number of connectives :  679 ( 130   ~;  33   |;  46   &)
%                                         ( 110 <=>; 360  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   5 avg)
%            Maximal term depth    :   10 (   2 avg)
%            Number of predicates  :   36 (  35 usr;   0 prp; 1-3 aty)
%            Number of functors    :   61 (  61 usr;  11 con; 0-5 aty)
%            Number of variables   : 1543 (1528   !;  15   ?)
% SPC      : FOF_CAX_RFO_SEQ

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2011-03-01 11:06:03
%          : Renamed from SWW104+1 
%------------------------------------------------------------------------------
%----Relevant facts (498)
fof(fact_ext,axiom,
    ! [V_g_2,V_f_2] :
      ( ! [B_x] : hAPP(V_f_2,B_x) = hAPP(V_g_2,B_x)
     => V_f_2 = V_g_2 ) ).

fof(fact_alt3,axiom,
    ? [B_a,B_b,B_c] : c_List_Odistinct(tc_Arrow__Order__Mirabelle_Oalt,hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),B_a),hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),B_b),hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),B_c),c_List_Olist_ONil(tc_Arrow__Order__Mirabelle_Oalt))))) ).

fof(fact_distinct_Osimps_I1_J,axiom,
    ! [T_a] : c_List_Odistinct(T_a,c_List_Olist_ONil(T_a)) ).

fof(fact_list_Osimps_I2_J,axiom,
    ! [V_list_H,V_a_H,T_a] : c_List_Olist_ONil(T_a) != hAPP(hAPP(c_List_Olist_OCons(T_a),V_a_H),V_list_H) ).

fof(fact_list_Osimps_I3_J,axiom,
    ! [V_list_H,V_a_H,T_a] : hAPP(hAPP(c_List_Olist_OCons(T_a),V_a_H),V_list_H) != c_List_Olist_ONil(T_a) ).

fof(fact_not__Cons__self,axiom,
    ! [V_x,T_a,V_xs] : V_xs != hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs) ).

fof(fact_not__Cons__self2,axiom,
    ! [V_xs,V_x,T_a] : hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs) != V_xs ).

fof(fact_list_Oinject,axiom,
    ! [V_list_H_2,V_a_H_2,V_list_2,V_aa_2,T_a] :
      ( hAPP(hAPP(c_List_Olist_OCons(T_a),V_aa_2),V_list_2) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_a_H_2),V_list_H_2)
    <=> ( V_aa_2 = V_a_H_2
        & V_list_2 = V_list_H_2 ) ) ).

fof(fact_splice_Osimps_I2_J,axiom,
    ! [V_va,V_v,T_a] : c_List_Osplice(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_v),V_va),c_List_Olist_ONil(T_a)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_v),V_va) ).

fof(fact_insert__Nil,axiom,
    ! [V_x,T_a] : c_List_Oinsert(T_a,V_x,c_List_Olist_ONil(T_a)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a)) ).

fof(fact_distinct__butlast,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => ( c_List_Odistinct(T_a,V_xs)
       => c_List_Odistinct(T_a,c_List_Obutlast(T_a,V_xs)) ) ) ).

fof(fact_sorted__single,axiom,
    ! [V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osorted(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a))) ) ).

fof(fact_last_Osimps,axiom,
    ! [V_x,T_a,V_xs] :
      ( ( V_xs = c_List_Olist_ONil(T_a)
       => c_List_Olast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = V_x )
      & ( V_xs != c_List_Olist_ONil(T_a)
       => c_List_Olast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = c_List_Olast(T_a,V_xs) ) ) ).

fof(fact_sorted_ONil,axiom,
    ! [T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osorted(T_a,c_List_Olist_ONil(T_a)) ) ).

fof(fact_sorted__butlast,axiom,
    ! [V_xs,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( V_xs != c_List_Olist_ONil(T_a)
       => ( c_List_Olinorder__class_Osorted(T_a,V_xs)
         => c_List_Olinorder__class_Osorted(T_a,c_List_Obutlast(T_a,V_xs)) ) ) ) ).

fof(fact_sorted_Oequations_I1_J,axiom,
    ! [T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osorted(T_a,c_List_Olist_ONil(T_a)) ) ).

fof(fact_butlast_Osimps_I1_J,axiom,
    ! [T_a] : c_List_Obutlast(T_a,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_distinct__insert,axiom,
    ! [V_x,V_xs,T_a] :
      ( c_List_Odistinct(T_a,V_xs)
     => c_List_Odistinct(T_a,c_List_Oinsert(T_a,V_x,V_xs)) ) ).

fof(fact_splice_Osimps_I3_J,axiom,
    ! [V_ys,V_y,V_xs,V_x,T_a] : c_List_Osplice(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y),V_ys)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y),c_List_Osplice(T_a,V_xs,V_ys))) ).

fof(fact_splice__Nil2,axiom,
    ! [V_xs,T_a] : c_List_Osplice(T_a,V_xs,c_List_Olist_ONil(T_a)) = V_xs ).

fof(fact_splice_Osimps_I1_J,axiom,
    ! [V_ys,T_a] : c_List_Osplice(T_a,c_List_Olist_ONil(T_a),V_ys) = V_ys ).

fof(fact_butlast_Osimps_I2_J,axiom,
    ! [V_x,T_a,V_xs] :
      ( ( V_xs = c_List_Olist_ONil(T_a)
       => c_List_Obutlast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = c_List_Olist_ONil(T_a) )
      & ( V_xs != c_List_Olist_ONil(T_a)
       => c_List_Obutlast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Obutlast(T_a,V_xs)) ) ) ).

fof(fact_last__ConsL,axiom,
    ! [V_x,T_a,V_xs] :
      ( V_xs = c_List_Olist_ONil(T_a)
     => c_List_Olast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = V_x ) ).

fof(fact_last__ConsR,axiom,
    ! [V_x,T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Olast(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = c_List_Olast(T_a,V_xs) ) ).

fof(fact_list_Osimps_I4_J,axiom,
    ! [V_f2_2,V_f1_2,T_b,T_a] : c_List_Olist_Olist__case(T_a,T_b,V_f1_2,V_f2_2,c_List_Olist_ONil(T_b)) = V_f1_2 ).

fof(fact_list_Osimps_I5_J,axiom,
    ! [V_list_2,V_aa_2,V_f2_2,V_f1_2,T_b,T_a] : c_List_Olist_Olist__case(T_a,T_b,V_f1_2,V_f2_2,hAPP(hAPP(c_List_Olist_OCons(T_b),V_aa_2),V_list_2)) = hAPP(hAPP(V_f2_2,V_aa_2),V_list_2) ).

fof(fact_append__butlast__last__id,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => hAPP(hAPP(c_List_Oappend(T_a),c_List_Obutlast(T_a,V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),c_List_Olast(T_a,V_xs)),c_List_Olist_ONil(T_a))) = V_xs ) ).

fof(fact_snoc__eq__iff__butlast,axiom,
    ! [V_ys_2,V_x_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a))) = V_ys_2
    <=> ( V_ys_2 != c_List_Olist_ONil(T_a)
        & c_List_Obutlast(T_a,V_ys_2) = V_xs_2
        & c_List_Olast(T_a,V_ys_2) = V_x_2 ) ) ).

fof(fact_list_Orecs_I1_J,axiom,
    ! [V_f2_2,V_f1_2,T_b,T_a] : c_List_Olist_Olist__rec(T_a,T_b,V_f1_2,V_f2_2,c_List_Olist_ONil(T_b)) = V_f1_2 ).

fof(fact_list_Orecs_I2_J,axiom,
    ! [V_list_2,V_aa_2,V_f2_2,V_f1_2,T_b,T_a] : c_List_Olist_Olist__rec(T_a,T_b,V_f1_2,V_f2_2,hAPP(hAPP(c_List_Olist_OCons(T_b),V_aa_2),V_list_2)) = hAPP(hAPP(hAPP(V_f2_2,V_aa_2),V_list_2),c_List_Olist_Olist__rec(T_a,T_b,V_f1_2,V_f2_2,V_list_2)) ).

fof(fact_eq__Nil__null,axiom,
    ! [T_a,V_xs_2] :
      ( V_xs_2 = c_List_Olist_ONil(T_a)
    <=> c_List_Onull(T_a,V_xs_2) ) ).

fof(fact_List_Onull__def,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Onull(T_a,V_xs_2)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_null__rec_I2_J,axiom,
    ! [T_b] : c_List_Onull(T_b,c_List_Olist_ONil(T_b)) ).

fof(fact_null__rec_I1_J,axiom,
    ! [V_xs,V_x,T_a] : ~ c_List_Onull(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) ).

fof(fact_last__snoc,axiom,
    ! [V_x,V_xs,T_a] : c_List_Olast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a)))) = V_x ).

fof(fact_append__assoc,axiom,
    ! [V_zs,V_ys,V_xs,T_a] : hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_zs) = hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Oappend(T_a),V_ys),V_zs)) ).

fof(fact_append__eq__append__conv2,axiom,
    ! [V_ts_2,V_zs_2,V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = hAPP(hAPP(c_List_Oappend(T_a),V_zs_2),V_ts_2)
    <=> ? [B_us] :
          ( ( V_xs_2 = hAPP(hAPP(c_List_Oappend(T_a),V_zs_2),B_us)
            & hAPP(hAPP(c_List_Oappend(T_a),B_us),V_ys_2) = V_ts_2 )
          | ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),B_us) = V_zs_2
            & V_ys_2 = hAPP(hAPP(c_List_Oappend(T_a),B_us),V_ts_2) ) ) ) ).

fof(fact_same__append__eq,axiom,
    ! [V_zs_2,V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_zs_2)
    <=> V_ys_2 = V_zs_2 ) ).

fof(fact_append__same__eq,axiom,
    ! [V_zs_2,V_xs_2,V_ys_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_ys_2),V_xs_2) = hAPP(hAPP(c_List_Oappend(T_a),V_zs_2),V_xs_2)
    <=> V_ys_2 = V_zs_2 ) ).

fof(fact_append__eq__appendI,axiom,
    ! [V_us,V_ys,V_zs,V_xs1,V_xs,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_xs1) = V_zs
     => ( V_ys = hAPP(hAPP(c_List_Oappend(T_a),V_xs1),V_us)
       => hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys) = hAPP(hAPP(c_List_Oappend(T_a),V_zs),V_us) ) ) ).

fof(fact_append__Cons,axiom,
    ! [V_ys,V_xs,V_x,T_a] : hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)),V_ys) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) ).

fof(fact_Cons__eq__appendI,axiom,
    ! [V_zs,V_xs,V_ys,V_xs1,V_x,T_a] :
      ( hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs1) = V_ys
     => ( V_xs = hAPP(hAPP(c_List_Oappend(T_a),V_xs1),V_zs)
       => hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs) = hAPP(hAPP(c_List_Oappend(T_a),V_ys),V_zs) ) ) ).

fof(fact_append__Nil,axiom,
    ! [V_ys,T_a] : hAPP(hAPP(c_List_Oappend(T_a),c_List_Olist_ONil(T_a)),V_ys) = V_ys ).

fof(fact_Nil__is__append__conv,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( c_List_Olist_ONil(T_a) = hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2)
    <=> ( V_xs_2 = c_List_Olist_ONil(T_a)
        & V_ys_2 = c_List_Olist_ONil(T_a) ) ) ).

fof(fact_append__Nil2,axiom,
    ! [V_xs,T_a] : hAPP(hAPP(c_List_Oappend(T_a),V_xs),c_List_Olist_ONil(T_a)) = V_xs ).

fof(fact_self__append__conv,axiom,
    ! [V_ys_2,T_a,V_xs_2] :
      ( V_xs_2 = hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2)
    <=> V_ys_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_self__append__conv2,axiom,
    ! [V_xs_2,T_a,V_ys_2] :
      ( V_ys_2 = hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_append__is__Nil__conv,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = c_List_Olist_ONil(T_a)
    <=> ( V_xs_2 = c_List_Olist_ONil(T_a)
        & V_ys_2 = c_List_Olist_ONil(T_a) ) ) ).

fof(fact_append__self__conv,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = V_xs_2
    <=> V_ys_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_append__self__conv2,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = V_ys_2
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_eq__Nil__appendI,axiom,
    ! [T_a,V_ys,V_xs] :
      ( V_xs = V_ys
     => V_xs = hAPP(hAPP(c_List_Oappend(T_a),c_List_Olist_ONil(T_a)),V_ys) ) ).

fof(fact_append__eq__Cons__conv,axiom,
    ! [V_xs_2,V_x_2,V_zs_2,V_ys_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_ys_2),V_zs_2) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)
    <=> ( ( V_ys_2 = c_List_Olist_ONil(T_a)
          & V_zs_2 = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2) )
        | ? [B_ys_H] :
            ( V_ys_2 = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),B_ys_H)
            & hAPP(hAPP(c_List_Oappend(T_a),B_ys_H),V_zs_2) = V_xs_2 ) ) ) ).

fof(fact_Cons__eq__append__conv,axiom,
    ! [V_zs_2,V_ys_2,V_xs_2,V_x_2,T_a] :
      ( hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2) = hAPP(hAPP(c_List_Oappend(T_a),V_ys_2),V_zs_2)
    <=> ( ( V_ys_2 = c_List_Olist_ONil(T_a)
          & hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2) = V_zs_2 )
        | ? [B_ys_H] :
            ( hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),B_ys_H) = V_ys_2
            & V_xs_2 = hAPP(hAPP(c_List_Oappend(T_a),B_ys_H),V_zs_2) ) ) ) ).

fof(fact_append1__eq__conv,axiom,
    ! [V_y_2,V_ys_2,V_x_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a))) = hAPP(hAPP(c_List_Oappend(T_a),V_ys_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y_2),c_List_Olist_ONil(T_a)))
    <=> ( V_xs_2 = V_ys_2
        & V_x_2 = V_y_2 ) ) ).

fof(fact_butlast__append,axiom,
    ! [V_xs,T_a,V_ys] :
      ( ( V_ys = c_List_Olist_ONil(T_a)
       => c_List_Obutlast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Obutlast(T_a,V_xs) )
      & ( V_ys != c_List_Olist_ONil(T_a)
       => c_List_Obutlast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_List_Oappend(T_a),V_xs),c_List_Obutlast(T_a,V_ys)) ) ) ).

fof(fact_last__appendL,axiom,
    ! [V_xs,T_a,V_ys] :
      ( V_ys = c_List_Olist_ONil(T_a)
     => c_List_Olast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Olast(T_a,V_xs) ) ).

fof(fact_last__appendR,axiom,
    ! [V_xs,T_a,V_ys] :
      ( V_ys != c_List_Olist_ONil(T_a)
     => c_List_Olast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Olast(T_a,V_ys) ) ).

fof(fact_last__append,axiom,
    ! [V_xs,T_a,V_ys] :
      ( ( V_ys = c_List_Olist_ONil(T_a)
       => c_List_Olast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Olast(T_a,V_xs) )
      & ( V_ys != c_List_Olist_ONil(T_a)
       => c_List_Olast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Olast(T_a,V_ys) ) ) ).

fof(fact_butlast__snoc,axiom,
    ! [V_x,V_xs,T_a] : c_List_Obutlast(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a)))) = V_xs ).

fof(fact_equal__Nil__null,axiom,
    ! [V_xs_2,T_a] :
      ( hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(tc_List_Olist(T_a)),V_xs_2),c_List_Olist_ONil(T_a)))
    <=> c_List_Onull(T_a,V_xs_2) ) ).

fof(fact_rotate__simps,axiom,
    ! [V_xs,V_x,T_b,T_a] :
      ( c_List_Orotate1(T_a,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a)
      & c_List_Orotate1(T_b,hAPP(hAPP(c_List_Olist_OCons(T_b),V_x),V_xs)) = hAPP(hAPP(c_List_Oappend(T_b),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_b),V_x),c_List_Olist_ONil(T_b))) ) ).

fof(fact_maps__simps_I1_J,axiom,
    ! [V_xs_2,V_x_2,V_f_2,T_a,T_b] : c_List_Omaps(T_b,T_a,V_f_2,hAPP(hAPP(c_List_Olist_OCons(T_b),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(V_f_2,V_x_2)),c_List_Omaps(T_b,T_a,V_f_2,V_xs_2)) ).

fof(fact_rev__induct,axiom,
    ! [V_xs_2,T_a,V_P_2] :
      ( hBOOL(hAPP(V_P_2,c_List_Olist_ONil(T_a)))
     => ( ! [B_x,B_xs] :
            ( hBOOL(hAPP(V_P_2,B_xs))
           => hBOOL(hAPP(V_P_2,hAPP(hAPP(c_List_Oappend(T_a),B_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),B_x),c_List_Olist_ONil(T_a))))) )
       => hBOOL(hAPP(V_P_2,V_xs_2)) ) ) ).

fof(fact_rev__cases,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => ~ ! [B_ys,B_y] : V_xs != hAPP(hAPP(c_List_Oappend(T_a),B_ys),hAPP(hAPP(c_List_Olist_OCons(T_a),B_y),c_List_Olist_ONil(T_a))) ) ).

fof(fact_replicate__append__same,axiom,
    ! [V_x,V_i,T_a] : hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_i,V_x)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a))) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Oreplicate(T_a,V_i,V_x)) ).

fof(fact_rev_Osimps_I2_J,axiom,
    ! [V_xs,V_x,T_a] : c_List_Orev(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Orev(T_a,V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Olist_ONil(T_a))) ).

fof(fact_rev__eq__Cons__iff,axiom,
    ! [V_ys_2,V_y_2,V_xs_2,T_a] :
      ( c_List_Orev(T_a,V_xs_2) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_y_2),V_ys_2)
    <=> V_xs_2 = hAPP(hAPP(c_List_Oappend(T_a),c_List_Orev(T_a,V_ys_2)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y_2),c_List_Olist_ONil(T_a))) ) ).

fof(fact_hd__append2,axiom,
    ! [V_ys,T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Ohd(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Ohd(T_a,V_xs) ) ).

fof(fact_hd__append,axiom,
    ! [V_ys,T_a,V_xs] :
      ( ( V_xs = c_List_Olist_ONil(T_a)
       => c_List_Ohd(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Ohd(T_a,V_ys) )
      & ( V_xs != c_List_Olist_ONil(T_a)
       => c_List_Ohd(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = c_List_Ohd(T_a,V_xs) ) ) ).

fof(fact_rev__is__rev__conv,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( c_List_Orev(T_a,V_xs_2) = c_List_Orev(T_a,V_ys_2)
    <=> V_xs_2 = V_ys_2 ) ).

fof(fact_rev__swap,axiom,
    ! [V_ys_2,V_xs_2,T_a] :
      ( c_List_Orev(T_a,V_xs_2) = V_ys_2
    <=> V_xs_2 = c_List_Orev(T_a,V_ys_2) ) ).

fof(fact_rev__replicate,axiom,
    ! [V_x,V_n,T_a] : c_List_Orev(T_a,c_List_Oreplicate(T_a,V_n,V_x)) = c_List_Oreplicate(T_a,V_n,V_x) ).

fof(fact_rev__rev__ident,axiom,
    ! [V_xs,T_a] : c_List_Orev(T_a,c_List_Orev(T_a,V_xs)) = V_xs ).

fof(fact_equal__list__def,axiom,
    ! [V_y_2,V_x_2,T_a] :
      ( hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(tc_List_Olist(T_a)),V_x_2),V_y_2))
    <=> V_x_2 = V_y_2 ) ).

fof(fact_rev__is__Nil__conv,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Orev(T_a,V_xs_2) = c_List_Olist_ONil(T_a)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_Nil__is__rev__conv,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Olist_ONil(T_a) = c_List_Orev(T_a,V_xs_2)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_rev_Osimps_I1_J,axiom,
    ! [T_a] : c_List_Orev(T_a,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_rev__append,axiom,
    ! [V_ys,V_xs,T_a] : c_List_Orev(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Orev(T_a,V_ys)),c_List_Orev(T_a,V_xs)) ).

fof(fact_distinct__rev,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,c_List_Orev(T_a,V_xs_2))
    <=> c_List_Odistinct(T_a,V_xs_2) ) ).

fof(fact_hd__rev,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Ohd(T_a,c_List_Orev(T_a,V_xs)) = c_List_Olast(T_a,V_xs) ) ).

fof(fact_last__rev,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Olast(T_a,c_List_Orev(T_a,V_xs)) = c_List_Ohd(T_a,V_xs) ) ).

fof(fact_append__replicate__commute,axiom,
    ! [V_k,V_x,V_n,T_a] : hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_n,V_x)),c_List_Oreplicate(T_a,V_k,V_x)) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_k,V_x)),c_List_Oreplicate(T_a,V_n,V_x)) ).

fof(fact_hd_Osimps,axiom,
    ! [V_xs,V_x,T_a] : c_List_Ohd(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = V_x ).

fof(fact_rotate1__is__Nil__conv,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Orotate1(T_a,V_xs_2) = c_List_Olist_ONil(T_a)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_distinct1__rotate,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,c_List_Orotate1(T_a,V_xs_2))
    <=> c_List_Odistinct(T_a,V_xs_2) ) ).

fof(fact_singleton__rev__conv,axiom,
    ! [V_xs_2,V_x_2,T_a] :
      ( hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a)) = c_List_Orev(T_a,V_xs_2)
    <=> V_xs_2 = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a)) ) ).

fof(fact_rev__singleton__conv,axiom,
    ! [V_x_2,V_xs_2,T_a] :
      ( c_List_Orev(T_a,V_xs_2) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a))
    <=> V_xs_2 = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a)) ) ).

fof(fact_replicate__app__Cons__same,axiom,
    ! [V_xs,V_x,V_n,T_a] : hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_n,V_x)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_n,V_x)),V_xs)) ).

fof(fact_maps__simps_I2_J,axiom,
    ! [V_f_2,T_a,T_b] : c_List_Omaps(T_b,T_a,V_f_2,c_List_Olist_ONil(T_b)) = c_List_Olist_ONil(T_a) ).

fof(fact_rotate1__hd__tl,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Orotate1(T_a,V_xs) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Otl(T_a,V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),c_List_Ohd(T_a,V_xs)),c_List_Olist_ONil(T_a))) ) ).

fof(fact_equal,axiom,
    ! [T_a] :
      ( class_HOL_Oequal(T_a)
     => c_HOL_Oequal__class_Oequal(T_a) = c_fequal ) ).

fof(fact_equal__refl,axiom,
    ! [V_x,T_a] :
      ( class_HOL_Oequal(T_a)
     => hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(T_a),V_x),V_x)) ) ).

fof(fact_equal__eq,axiom,
    ! [V_y_2,V_x_2,T_a] :
      ( class_HOL_Oequal(T_a)
     => ( hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(T_a),V_x_2),V_y_2))
      <=> V_x_2 = V_y_2 ) ) ).

fof(fact_eq__equal,axiom,
    ! [T_a] :
      ( class_HOL_Oequal(T_a)
     => c_fequal = c_HOL_Oequal__class_Oequal(T_a) ) ).

fof(fact_hd__dropWhile,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( c_List_OdropWhile(T_a,V_P_2,V_xs_2) != c_List_Olist_ONil(T_a)
     => ~ hBOOL(hAPP(V_P_2,c_List_Ohd(T_a,c_List_OdropWhile(T_a,V_P_2,V_xs_2)))) ) ).

fof(fact_tl__append2,axiom,
    ! [V_ys,T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Otl(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Otl(T_a,V_xs)),V_ys) ) ).

fof(fact_list__ex1__simps_I1_J,axiom,
    ! [V_P_2,T_a] : ~ c_List_Olist__ex1(T_a,V_P_2,c_List_Olist_ONil(T_a)) ).

fof(fact_member__rec_I2_J,axiom,
    ! [V_y,T_a] : ~ c_List_Omember(T_a,c_List_Olist_ONil(T_a),V_y) ).

fof(fact_tl_Osimps_I2_J,axiom,
    ! [V_xs,V_x,T_a] : c_List_Otl(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = V_xs ).

fof(fact_tl_Osimps_I1_J,axiom,
    ! [T_a] : c_List_Otl(T_a,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_dropWhile_Osimps_I2_J,axiom,
    ! [V_xs_2,T_a,V_x_2,V_P_2] :
      ( ( hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_OdropWhile(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = c_List_OdropWhile(T_a,V_P_2,V_xs_2) )
      & ( ~ hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_OdropWhile(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2) ) ) ).

fof(fact_dropWhile_Osimps_I1_J,axiom,
    ! [V_P_2,T_a] : c_List_OdropWhile(T_a,V_P_2,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_distinct__tl,axiom,
    ! [V_xs,T_a] :
      ( c_List_Odistinct(T_a,V_xs)
     => c_List_Odistinct(T_a,c_List_Otl(T_a,V_xs)) ) ).

fof(fact_distinct__dropWhile,axiom,
    ! [V_P_2,V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,V_xs_2)
     => c_List_Odistinct(T_a,c_List_OdropWhile(T_a,V_P_2,V_xs_2)) ) ).

fof(fact_sorted__tl,axiom,
    ! [V_xs,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs)
       => c_List_Olinorder__class_Osorted(T_a,c_List_Otl(T_a,V_xs)) ) ) ).

fof(fact_sorted__dropWhile,axiom,
    ! [V_P_2,V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs_2)
       => c_List_Olinorder__class_Osorted(T_a,c_List_OdropWhile(T_a,V_P_2,V_xs_2)) ) ) ).

fof(fact_member__rec_I1_J,axiom,
    ! [V_y_2,V_xs_2,V_x_2,T_a] :
      ( c_List_Omember(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2),V_y_2)
    <=> ( V_x_2 = V_y_2
        | c_List_Omember(T_a,V_xs_2,V_y_2) ) ) ).

fof(fact_dropWhile__eq__Cons__conv,axiom,
    ! [V_ys_2,V_y_2,V_xs_2,V_P_2,T_a] :
      ( c_List_OdropWhile(T_a,V_P_2,V_xs_2) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_y_2),V_ys_2)
    <=> ( V_xs_2 = hAPP(hAPP(c_List_Oappend(T_a),c_List_OtakeWhile(T_a,V_P_2,V_xs_2)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y_2),V_ys_2))
        & ~ hBOOL(hAPP(V_P_2,V_y_2)) ) ) ).

fof(fact_takeWhile__dropWhile__id,axiom,
    ! [V_xs_2,V_P_2,T_a] : hAPP(hAPP(c_List_Oappend(T_a),c_List_OtakeWhile(T_a,V_P_2,V_xs_2)),c_List_OdropWhile(T_a,V_P_2,V_xs_2)) = V_xs_2 ).

fof(fact_hd__replicate,axiom,
    ! [V_x,T_a,V_n] :
      ( V_n != c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
     => c_List_Ohd(T_a,c_List_Oreplicate(T_a,V_n,V_x)) = V_x ) ).

fof(fact_last__replicate,axiom,
    ! [V_x,T_a,V_n] :
      ( V_n != c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
     => c_List_Olast(T_a,c_List_Oreplicate(T_a,V_n,V_x)) = V_x ) ).

fof(fact_neq__Nil__conv,axiom,
    ! [T_a,V_xs_2] :
      ( V_xs_2 != c_List_Olist_ONil(T_a)
    <=> ? [B_y,B_ys] : V_xs_2 = hAPP(hAPP(c_List_Olist_OCons(T_a),B_y),B_ys) ) ).

fof(fact_list_Oexhaust,axiom,
    ! [T_a,V_y] :
      ( V_y != c_List_Olist_ONil(T_a)
     => ~ ! [B_a,B_list] : V_y != hAPP(hAPP(c_List_Olist_OCons(T_a),B_a),B_list) ) ).

fof(fact_map__filter__simps_I2_J,axiom,
    ! [V_f_2,T_a,T_b] : c_List_Omap__filter(T_b,T_a,V_f_2,c_List_Olist_ONil(T_b)) = c_List_Olist_ONil(T_a) ).

fof(fact_takeWhile__tail,axiom,
    ! [V_l_2,V_xs_2,T_a,V_x_2,V_P_2] :
      ( ~ hBOOL(hAPP(V_P_2,V_x_2))
     => c_List_OtakeWhile(T_a,V_P_2,hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_l_2))) = c_List_OtakeWhile(T_a,V_P_2,V_xs_2) ) ).

fof(fact_takeWhile_Osimps_I1_J,axiom,
    ! [V_P_2,T_a] : c_List_OtakeWhile(T_a,V_P_2,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_replicate__eq__replicate,axiom,
    ! [V_y_2,V_n_2,V_x_2,V_m_2,T_a] :
      ( c_List_Oreplicate(T_a,V_m_2,V_x_2) = c_List_Oreplicate(T_a,V_n_2,V_y_2)
    <=> ( V_m_2 = V_n_2
        & ( V_m_2 != c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
         => V_x_2 = V_y_2 ) ) ) ).

fof(fact_distinct__takeWhile,axiom,
    ! [V_P_2,V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,V_xs_2)
     => c_List_Odistinct(T_a,c_List_OtakeWhile(T_a,V_P_2,V_xs_2)) ) ).

fof(fact_sorted__takeWhile,axiom,
    ! [V_P_2,V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs_2)
       => c_List_Olinorder__class_Osorted(T_a,c_List_OtakeWhile(T_a,V_P_2,V_xs_2)) ) ) ).

fof(fact_replicate__0,axiom,
    ! [V_x,T_a] : c_List_Oreplicate(T_a,c_Groups_Ozero__class_Ozero(tc_Nat_Onat),V_x) = c_List_Olist_ONil(T_a) ).

fof(fact_empty__replicate,axiom,
    ! [V_x_2,V_n_2,T_a] :
      ( c_List_Olist_ONil(T_a) = c_List_Oreplicate(T_a,V_n_2,V_x_2)
    <=> V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_replicate__empty,axiom,
    ! [V_x_2,V_n_2,T_a] :
      ( c_List_Oreplicate(T_a,V_n_2,V_x_2) = c_List_Olist_ONil(T_a)
    <=> V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_takeWhile_Osimps_I2_J,axiom,
    ! [V_xs_2,T_a,V_x_2,V_P_2] :
      ( ( hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_OtakeWhile(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_OtakeWhile(T_a,V_P_2,V_xs_2)) )
      & ( ~ hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_OtakeWhile(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = c_List_Olist_ONil(T_a) ) ) ).

fof(fact_list_Osize_I1_J,axiom,
    ! [V_fa_2,T_a] : c_List_Olist_Olist__size(T_a,V_fa_2,c_List_Olist_ONil(T_a)) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_zero__reorient,axiom,
    ! [V_x_2,T_a] :
      ( class_Groups_Ozero(T_a)
     => ( c_Groups_Ozero__class_Ozero(T_a) = V_x_2
      <=> V_x_2 = c_Groups_Ozero__class_Ozero(T_a) ) ) ).

fof(fact_hd__conv__nth,axiom,
    ! [T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => c_List_Ohd(T_a,V_xs) = hAPP(c_List_Onth(T_a,V_xs),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) ) ).

fof(fact_insort__key_Osimps_I1_J,axiom,
    ! [V_x_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_b,V_f_2),V_x_2),c_List_Olist_ONil(T_a)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Olist_ONil(T_a)) ) ).

fof(fact_takeWhile__not__last,axiom,
    ! [T_a,V_xs_2] :
      ( V_xs_2 != c_List_Olist_ONil(T_a)
     => ( c_List_Odistinct(T_a,V_xs_2)
       => c_List_OtakeWhile(T_a,c_COMBB(tc_HOL_Obool,tc_HOL_Obool,T_a,c_fNot,hAPP(c_COMBC(T_a,T_a,tc_HOL_Obool,c_fequal),c_List_Olast(T_a,V_xs_2))),V_xs_2) = c_List_Obutlast(T_a,V_xs_2) ) ) ).

fof(fact_listsum__simps_I1_J,axiom,
    ! [T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(c_List_Omonoid__add__class_Olistsum(T_a),c_List_Olist_ONil(T_a)) = c_Groups_Ozero__class_Ozero(T_a) ) ).

fof(fact_sorted__insort,axiom,
    ! [V_xs_2,V_x_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a)),V_x_2),V_xs_2))
      <=> c_List_Olinorder__class_Osorted(T_a,V_xs_2) ) ) ).

fof(fact_insort__left__comm,axiom,
    ! [V_xs_2,V_y_2,V_x_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a)),V_x_2),hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a)),V_y_2),V_xs_2)) = hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a)),V_y_2),hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a)),V_x_2),V_xs_2)) ) ).

fof(fact_insort__key__left__comm,axiom,
    ! [V_xs_2,T_b,V_y_2,V_x_2,V_f_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hAPP(V_f_2,V_x_2) != hAPP(V_f_2,V_y_2)
       => hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_b,T_a,V_f_2),V_y_2),hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_b,T_a,V_f_2),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_b,T_a,V_f_2),V_x_2),hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_b,T_a,V_f_2),V_y_2),V_xs_2)) ) ) ).

fof(fact_tl__append,axiom,
    ! [V_ys_2,V_xs_2,T_a] : c_List_Otl(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2)) = c_List_Olist_Olist__case(tc_List_Olist(T_a),T_a,c_List_Otl(T_a,V_ys_2),c_COMBK(tc_fun(tc_List_Olist(T_a),tc_List_Olist(T_a)),T_a,hAPP(c_COMBC(tc_List_Olist(T_a),tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Oappend(T_a)),V_ys_2)),V_xs_2) ).

fof(fact_insort__not__Nil,axiom,
    ! [V_xs_2,V_aa_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_b,V_f_2),V_aa_2),V_xs_2) != c_List_Olist_ONil(T_a) ) ).

fof(fact_listsum__rev,axiom,
    ! [V_xs,T_a] :
      ( class_Groups_Ocomm__monoid__add(T_a)
     => hAPP(c_List_Omonoid__add__class_Olistsum(T_a),c_List_Orev(T_a,V_xs)) = hAPP(c_List_Omonoid__add__class_Olistsum(T_a),V_xs) ) ).

fof(fact_rotate1__def,axiom,
    ! [V_xs_2,T_a] : c_List_Orotate1(T_a,V_xs_2) = c_List_Olist_Olist__case(tc_List_Olist(T_a),T_a,c_List_Olist_ONil(T_a),c_COMBB(tc_List_Olist(T_a),tc_fun(tc_List_Olist(T_a),tc_List_Olist(T_a)),T_a,c_COMBC(tc_List_Olist(T_a),tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Oappend(T_a)),hAPP(c_COMBC(T_a,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Olist_OCons(T_a)),c_List_Olist_ONil(T_a))),V_xs_2) ).

fof(fact_nth__Cons__0,axiom,
    ! [V_xs,V_x,T_a] : hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = V_x ).

fof(fact_map__filter__simps_I1_J,axiom,
    ! [V_xs_2,V_x_2,V_f_2,T_a,T_b] : c_List_Omap__filter(T_b,T_a,V_f_2,hAPP(hAPP(c_List_Olist_OCons(T_b),V_x_2),V_xs_2)) = c_Option_Ooption_Ooption__case(tc_List_Olist(T_a),T_a,c_List_Omap__filter(T_b,T_a,V_f_2,V_xs_2),hAPP(c_COMBC(T_a,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Olist_OCons(T_a)),c_List_Omap__filter(T_b,T_a,V_f_2,V_xs_2)),hAPP(V_f_2,V_x_2)) ).

fof(fact_nth_Osimps,axiom,
    ! [V_n_2,V_xs_2,V_x_2,T_a] : hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)),V_n_2) = c_Nat_Onat_Onat__case(T_a,V_x_2,c_List_Onth(T_a,V_xs_2),V_n_2) ).

fof(fact_list__ex1__simps_I2_J,axiom,
    ! [V_xs_2,V_x_2,V_P_2,T_a] :
      ( c_List_Olist__ex1(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2))
    <=> ( ( hBOOL(hAPP(V_P_2,V_x_2))
         => c_List_Olist__all(T_a,c_COMBS(T_a,tc_HOL_Obool,tc_HOL_Obool,c_COMBB(tc_HOL_Obool,tc_fun(tc_HOL_Obool,tc_HOL_Obool),T_a,c_fdisj,c_COMBB(tc_HOL_Obool,tc_HOL_Obool,T_a,c_fNot,V_P_2)),hAPP(c_fequal,V_x_2)),V_xs_2) )
        & ( ~ hBOOL(hAPP(V_P_2,V_x_2))
         => c_List_Olist__ex1(T_a,V_P_2,V_xs_2) ) ) ) ).

fof(fact_rev__foldl__cons,axiom,
    ! [V_xs_2,T_a] : c_List_Orev(T_a,V_xs_2) = hAPP(c_List_Ofoldl(tc_List_Olist(T_a),T_a,c_COMBC(T_a,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Olist_OCons(T_a)),c_List_Olist_ONil(T_a)),V_xs_2) ).

fof(fact_sort__key__simps_I2_J,axiom,
    ! [V_xs_2,V_x_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_b,V_f_2),V_x_2),c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,V_xs_2)) ) ).

fof(fact_nth__append__length,axiom,
    ! [V_ys,V_x,V_xs,T_a] : hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_ys))),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)) = V_x ).

fof(fact_sorted__insort__insert,axiom,
    ! [V_x_2,V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs_2)
       => c_List_Olinorder__class_Osorted(T_a,c_List_Olinorder__class_Oinsort__insert__key(T_a,T_a,c_COMBI(T_a),V_x_2,V_xs_2)) ) ) ).

fof(fact_neq__if__length__neq,axiom,
    ! [V_ys,V_xs,T_a] :
      ( hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs) != hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_ys)
     => V_xs != V_ys ) ).

fof(fact_length__sort,axiom,
    ! [V_xs_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,V_xs_2)) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2) ) ).

fof(fact_length__rev,axiom,
    ! [V_xs,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Orev(T_a,V_xs)) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs) ).

fof(fact_foldl__Cons,axiom,
    ! [V_xs_2,V_x_2,V_aa_2,V_f_2,T_b,T_a] : hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,V_aa_2),hAPP(hAPP(c_List_Olist_OCons(T_b),V_x_2),V_xs_2)) = hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,hAPP(hAPP(V_f_2,V_aa_2),V_x_2)),V_xs_2) ).

fof(fact_length__replicate,axiom,
    ! [V_x,V_n,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Oreplicate(T_a,V_n,V_x)) = V_n ).

fof(fact_foldl__Nil,axiom,
    ! [V_aa_2,V_f_2,T_b,T_a] : hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,V_aa_2),c_List_Olist_ONil(T_b)) = V_aa_2 ).

fof(fact_foldl__append,axiom,
    ! [V_ys_2,V_xs_2,V_aa_2,V_f_2,T_b,T_a] : hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,V_aa_2),hAPP(hAPP(c_List_Oappend(T_b),V_xs_2),V_ys_2)) = hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,V_aa_2),V_xs_2)),V_ys_2) ).

fof(fact_length__rotate1,axiom,
    ! [V_xs,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Orotate1(T_a,V_xs)) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs) ).

fof(fact_sort__foldl__insort,axiom,
    ! [V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osort__key(T_a,T_a,c_COMBI(T_a),V_xs_2) = hAPP(c_List_Ofoldl(tc_List_Olist(T_a),T_a,c_COMBC(T_a,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Olinorder__class_Oinsort__key(T_a,T_a,c_COMBI(T_a))),c_List_Olist_ONil(T_a)),V_xs_2) ) ).

fof(fact_list__all__simps_I1_J,axiom,
    ! [V_xs_2,V_x_2,V_P_2,T_a] :
      ( c_List_Olist__all(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2))
    <=> ( hBOOL(hAPP(V_P_2,V_x_2))
        & c_List_Olist__all(T_a,V_P_2,V_xs_2) ) ) ).

fof(fact_list__all__simps_I2_J,axiom,
    ! [V_P_2,T_a] : c_List_Olist__all(T_a,V_P_2,c_List_Olist_ONil(T_a)) ).

fof(fact_list__all__append,axiom,
    ! [V_ys_2,V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__all(T_a,V_P_2,hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2))
    <=> ( c_List_Olist__all(T_a,V_P_2,V_xs_2)
        & c_List_Olist__all(T_a,V_P_2,V_ys_2) ) ) ).

fof(fact_sort__key__simps_I1_J,axiom,
    ! [V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ) ).

fof(fact_list__all__rev,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__all(T_a,V_P_2,c_List_Orev(T_a,V_xs_2))
    <=> c_List_Olist__all(T_a,V_P_2,V_xs_2) ) ).

fof(fact_distinct__sort,axiom,
    ! [V_xs_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => ( c_List_Odistinct(T_a,c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,V_xs_2))
      <=> c_List_Odistinct(T_a,V_xs_2) ) ) ).

fof(fact_length__0__conv,axiom,
    ! [V_xs_2,T_a] :
      ( hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_list_Osize_I3_J,axiom,
    ! [T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Olist_ONil(T_a)) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_distinct__insort__insert,axiom,
    ! [V_x_2,V_f_2,V_xs_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => ( c_List_Odistinct(T_a,V_xs_2)
       => c_List_Odistinct(T_a,c_List_Olinorder__class_Oinsort__insert__key(T_a,T_b,V_f_2,V_x_2,V_xs_2)) ) ) ).

fof(fact_sorted__sort,axiom,
    ! [V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osorted(T_a,c_List_Olinorder__class_Osort__key(T_a,T_a,c_COMBI(T_a),V_xs_2)) ) ).

fof(fact_nat__case__0,axiom,
    ! [V_f2_2,V_f1_2,T_a] : c_Nat_Onat_Onat__case(T_a,V_f1_2,V_f2_2,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = V_f1_2 ).

fof(fact_foldr__foldl,axiom,
    ! [V_aa_2,V_xs_2,V_f_2,T_a,T_b] : c_List_Ofoldr(T_b,T_a,V_f_2,V_xs_2,V_aa_2) = hAPP(c_List_Ofoldl(T_a,T_b,c_COMBC(T_b,T_a,T_a,V_f_2),V_aa_2),c_List_Orev(T_b,V_xs_2)) ).

fof(fact_foldl__foldr,axiom,
    ! [V_xs_2,V_aa_2,V_f_2,T_b,T_a] : hAPP(c_List_Ofoldl(T_a,T_b,V_f_2,V_aa_2),V_xs_2) = c_List_Ofoldr(T_b,T_a,c_COMBC(T_a,T_b,T_a,V_f_2),c_List_Orev(T_b,V_xs_2),V_aa_2) ).

fof(fact_list__induct2,axiom,
    ! [V_P_2,V_ys_2,T_b,V_xs_2,T_a] :
      ( hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_b)),V_ys_2)
     => ( hBOOL(hAPP(hAPP(V_P_2,c_List_Olist_ONil(T_a)),c_List_Olist_ONil(T_b)))
       => ( ! [B_x,B_xs,B_y,B_ys] :
              ( hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),B_xs) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_b)),B_ys)
             => ( hBOOL(hAPP(hAPP(V_P_2,B_xs),B_ys))
               => hBOOL(hAPP(hAPP(V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),B_x),B_xs)),hAPP(hAPP(c_List_Olist_OCons(T_b),B_y),B_ys))) ) )
         => hBOOL(hAPP(hAPP(V_P_2,V_xs_2),V_ys_2)) ) ) ) ).

fof(fact_list__all__length,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__all(T_a,V_P_2,V_xs_2)
    <=> ! [B_n] :
          ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
         => hBOOL(hAPP(V_P_2,hAPP(c_List_Onth(T_a,V_xs_2),B_n))) ) ) ).

fof(fact_dropWhile__eq__drop,axiom,
    ! [V_xs_2,V_P_2,T_a] : c_List_OdropWhile(T_a,V_P_2,V_xs_2) = hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2))),V_xs_2) ).

fof(fact_less__zeroE,axiom,
    ! [V_n] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) ).

fof(fact_nat__less__cases,axiom,
    ! [V_P_2,V_n_2,V_m_2] :
      ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2))
       => hBOOL(hAPP(hAPP(V_P_2,V_n_2),V_m_2)) )
     => ( ( V_m_2 = V_n_2
         => hBOOL(hAPP(hAPP(V_P_2,V_n_2),V_m_2)) )
       => ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),V_m_2))
           => hBOOL(hAPP(hAPP(V_P_2,V_n_2),V_m_2)) )
         => hBOOL(hAPP(hAPP(V_P_2,V_n_2),V_m_2)) ) ) ) ).

fof(fact_less__not__refl3,axiom,
    ! [V_t,V_s] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_s),V_t))
     => V_s != V_t ) ).

fof(fact_less__not__refl2,axiom,
    ! [V_m,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),V_m))
     => V_m != V_n ) ).

fof(fact_less__irrefl__nat,axiom,
    ! [V_n] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),V_n)) ).

fof(fact_linorder__neqE__nat,axiom,
    ! [V_y,V_x] :
      ( V_x != V_y
     => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x),V_y))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_y),V_x)) ) ) ).

fof(fact_nat__neq__iff,axiom,
    ! [V_n_2,V_m_2] :
      ( V_m_2 != V_n_2
    <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2))
        | hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),V_m_2)) ) ) ).

fof(fact_less__not__refl,axiom,
    ! [V_n] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),V_n)) ).

fof(fact_gr0I,axiom,
    ! [V_n] :
      ( V_n != c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n)) ) ).

fof(fact_gr__implies__not0,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => V_n != c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_less__nat__zero__code,axiom,
    ! [V_n] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) ).

fof(fact_neq0__conv,axiom,
    ! [V_n_2] :
      ( V_n_2 != c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n_2)) ) ).

fof(fact_not__less0,axiom,
    ! [V_n] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) ).

fof(fact_last__drop,axiom,
    ! [V_xs,T_a,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => c_List_Olast(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = c_List_Olast(T_a,V_xs) ) ).

fof(fact_drop__0,axiom,
    ! [V_xs,T_a] : hAPP(hAPP(c_List_Odrop(T_a),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_xs) = V_xs ).

fof(fact_drop__Nil,axiom,
    ! [V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_distinct__drop,axiom,
    ! [V_i,V_xs,T_a] :
      ( c_List_Odistinct(T_a,V_xs)
     => c_List_Odistinct(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_i),V_xs)) ) ).

fof(fact_sorted__drop,axiom,
    ! [V_n,V_xs,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs)
       => c_List_Olinorder__class_Osorted(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) ) ) ).

fof(fact_drop__butlast,axiom,
    ! [V_xs,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Obutlast(T_a,V_xs)) = c_List_Obutlast(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) ).

fof(fact_butlast__drop,axiom,
    ! [V_xs,V_n,T_a] : c_List_Obutlast(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Obutlast(T_a,V_xs)) ).

fof(fact_tl__drop,axiom,
    ! [V_xs,V_n,T_a] : c_List_Otl(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Otl(T_a,V_xs)) ).

fof(fact_drop__tl,axiom,
    ! [V_xs,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Otl(T_a,V_xs)) = c_List_Otl(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) ).

fof(fact_drop__Cons,axiom,
    ! [V_xs_2,V_x_2,V_n_2,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = c_Nat_Onat_Onat__case(tc_List_Olist(T_a),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2),hAPP(c_COMBC(tc_Nat_Onat,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Odrop(T_a)),V_xs_2),V_n_2) ).

fof(fact_foldr_Osimps_I2_J,axiom,
    ! [V_aa_2,V_xs_2,V_x_2,V_f_2,T_a,T_b] : c_List_Ofoldr(T_b,T_a,V_f_2,hAPP(hAPP(c_List_Olist_OCons(T_b),V_x_2),V_xs_2),V_aa_2) = hAPP(hAPP(V_f_2,V_x_2),c_List_Ofoldr(T_b,T_a,V_f_2,V_xs_2,V_aa_2)) ).

fof(fact_foldr_Osimps_I1_J,axiom,
    ! [V_aa_2,V_f_2,T_a,T_b] : c_List_Ofoldr(T_b,T_a,V_f_2,c_List_Olist_ONil(T_b),V_aa_2) = V_aa_2 ).

fof(fact_foldr__append,axiom,
    ! [V_aa_2,V_ys_2,V_xs_2,V_f_2,T_a,T_b] : c_List_Ofoldr(T_b,T_a,V_f_2,hAPP(hAPP(c_List_Oappend(T_b),V_xs_2),V_ys_2),V_aa_2) = c_List_Ofoldr(T_b,T_a,V_f_2,V_xs_2,c_List_Ofoldr(T_b,T_a,V_f_2,V_ys_2,V_aa_2)) ).

fof(fact_hd__drop__conv__nth,axiom,
    ! [V_n,T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
       => c_List_Ohd(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = hAPP(c_List_Onth(T_a,V_xs),V_n) ) ) ).

fof(fact_nth__via__drop,axiom,
    ! [V_ys,V_y,V_xs,V_n,T_a] :
      ( hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_y),V_ys)
     => hAPP(c_List_Onth(T_a,V_xs),V_n) = V_y ) ).

fof(fact_list__eq__iff__nth__eq,axiom,
    ! [T_a,V_ys_2,V_xs_2] :
      ( V_xs_2 = V_ys_2
    <=> ( hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_ys_2)
        & ! [B_i] :
            ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
           => hAPP(c_List_Onth(T_a,V_xs_2),B_i) = hAPP(c_List_Onth(T_a,V_ys_2),B_i) ) ) ) ).

fof(fact_nth__replicate,axiom,
    ! [V_x,T_a,V_n,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_n))
     => hAPP(c_List_Onth(T_a,c_List_Oreplicate(T_a,V_n,V_x)),V_i) = V_x ) ).

fof(fact_length__greater__0__conv,axiom,
    ! [V_xs_2,T_a] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
    <=> V_xs_2 != c_List_Olist_ONil(T_a) ) ).

fof(fact_distinct__conv__nth,axiom,
    ! [V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,V_xs_2)
    <=> ! [B_i] :
          ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
         => ! [B_j] :
              ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_j),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
             => ( B_i != B_j
               => hAPP(c_List_Onth(T_a,V_xs_2),B_i) != hAPP(c_List_Onth(T_a,V_xs_2),B_j) ) ) ) ) ).

fof(fact_nth__eq__iff__index__eq,axiom,
    ! [V_j_2,V_i_2,V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,V_xs_2)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
         => ( hAPP(c_List_Onth(T_a,V_xs_2),V_i_2) = hAPP(c_List_Onth(T_a,V_xs_2),V_j_2)
          <=> V_i_2 = V_j_2 ) ) ) ) ).

fof(fact_nth__length__takeWhile,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2))),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
     => ~ hBOOL(hAPP(V_P_2,hAPP(c_List_Onth(T_a,V_xs_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2))))) ) ).

fof(fact_takeWhile__nth,axiom,
    ! [V_xs_2,V_P_2,T_a,V_j_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2))))
     => hAPP(c_List_Onth(T_a,c_List_OtakeWhile(T_a,V_P_2,V_xs_2)),V_j_2) = hAPP(c_List_Onth(T_a,V_xs_2),V_j_2) ) ).

fof(fact_foldr__max__sorted,axiom,
    ! [V_y_2,V_xs_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,c_List_Orev(T_a,V_xs_2))
       => ( ( V_xs_2 = c_List_Olist_ONil(T_a)
           => c_List_Ofoldr(T_a,T_a,c_Orderings_Oord__class_Omax(T_a),V_xs_2,V_y_2) = V_y_2 )
          & ( V_xs_2 != c_List_Olist_ONil(T_a)
           => c_List_Ofoldr(T_a,T_a,c_Orderings_Oord__class_Omax(T_a),V_xs_2,V_y_2) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),hAPP(c_List_Onth(T_a,V_xs_2),c_Groups_Ozero__class_Ozero(tc_Nat_Onat))),V_y_2) ) ) ) ) ).

fof(fact_dropWhile__nth,axiom,
    ! [V_xs_2,V_P_2,T_a,V_j_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OdropWhile(T_a,V_P_2,V_xs_2))))
     => hAPP(c_List_Onth(T_a,c_List_OdropWhile(T_a,V_P_2,V_xs_2)),V_j_2) = hAPP(c_List_Onth(T_a,V_xs_2),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2)))) ) ).

fof(fact_nth__drop_H,axiom,
    ! [V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Olist_OCons(T_a),hAPP(c_List_Onth(T_a,V_xs),V_i)),hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_OSuc,V_i)),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),V_i),V_xs) ) ).

fof(fact_list__ex__length,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__ex(T_a,V_P_2,V_xs_2)
    <=> ? [B_n] :
          ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
          & hBOOL(hAPP(V_P_2,hAPP(c_List_Onth(T_a,V_xs_2),B_n))) ) ) ).

fof(fact_of__nat__0__less__iff,axiom,
    ! [V_n_2,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n_2)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n_2)) ) ) ).

fof(fact_nth__append,axiom,
    ! [V_ys,V_xs,T_a,V_n] :
      ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
       => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_n) = hAPP(c_List_Onth(T_a,V_xs),V_n) )
      & ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
       => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_n) = hAPP(c_List_Onth(T_a,V_ys),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs))) ) ) ).

fof(fact_lessI,axiom,
    ! [V_n] : hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_OSuc,V_n))) ).

fof(fact_Suc__mono,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_m)),hAPP(c_Nat_OSuc,V_n))) ) ).

fof(fact_zero__less__Suc,axiom,
    ! [V_n] : hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),hAPP(c_Nat_OSuc,V_n))) ).

fof(fact_diff__Suc,axiom,
    ! [V_n_2,V_m_2] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m_2),hAPP(c_Nat_OSuc,V_n_2)) = c_Nat_Onat_Onat__case(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat),c_COMBI(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m_2),V_n_2)) ).

fof(fact_max__Suc1,axiom,
    ! [V_m_2,V_n_2] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_n_2)),V_m_2) = c_Nat_Onat_Onat__case(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_n_2),c_COMBB(tc_Nat_Onat,tc_Nat_Onat,tc_Nat_Onat,c_Nat_OSuc,hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),V_n_2)),V_m_2) ).

fof(fact_max__Suc2,axiom,
    ! [V_n_2,V_m_2] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),V_m_2),hAPP(c_Nat_OSuc,V_n_2)) = c_Nat_Onat_Onat__case(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_n_2),c_COMBB(tc_Nat_Onat,tc_Nat_Onat,tc_Nat_Onat,c_Nat_OSuc,hAPP(c_COMBC(tc_Nat_Onat,tc_Nat_Onat,tc_Nat_Onat,c_Orderings_Oord__class_Omax(tc_Nat_Onat)),V_n_2)),V_m_2) ).

fof(fact_Suc__inject,axiom,
    ! [V_y,V_x] :
      ( hAPP(c_Nat_OSuc,V_x) = hAPP(c_Nat_OSuc,V_y)
     => V_x = V_y ) ).

fof(fact_add__diff__inverse,axiom,
    ! [V_n,V_m] :
      ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n)) = V_m ) ).

fof(fact_Suc__diff__diff,axiom,
    ! [V_k,V_n,V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_m)),V_n)),hAPP(c_Nat_OSuc,V_k)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n)),V_k) ).

fof(fact_diff__cancel2,axiom,
    ! [V_n,V_k,V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_k)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_k)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n) ).

fof(fact_diff__cancel,axiom,
    ! [V_n,V_m,V_k] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k),V_m)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k),V_n)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n) ).

fof(fact_nat__add__right__cancel,axiom,
    ! [V_n_2,V_k_2,V_m_2] :
      ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),V_k_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n_2),V_k_2)
    <=> V_m_2 = V_n_2 ) ).

fof(fact_nat__add__left__cancel,axiom,
    ! [V_n_2,V_m_2,V_k_2] :
      ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k_2),V_m_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k_2),V_n_2)
    <=> V_m_2 = V_n_2 ) ).

fof(fact_diff__commute,axiom,
    ! [V_k,V_j,V_i] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_i),V_j)),V_k) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_i),V_k)),V_j) ).

fof(fact_diff__diff__left,axiom,
    ! [V_k,V_j,V_i] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_i),V_j)),V_k) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_i),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j),V_k)) ).

fof(fact_nat__add__assoc,axiom,
    ! [V_k,V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)),V_k) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_k)) ).

fof(fact_nat__minus__add__max,axiom,
    ! [V_m,V_n] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),V_m)),V_m) = hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),V_n),V_m) ).

fof(fact_diff__add__inverse,axiom,
    ! [V_m,V_n] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m)),V_n) = V_m ).

fof(fact_diff__add__inverse2,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)),V_n) = V_m ).

fof(fact_diff__Suc__Suc,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_m)),hAPP(c_Nat_OSuc,V_n)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n) ).

fof(fact_of__nat__eq__iff,axiom,
    ! [V_n_2,V_m_2,T_a] :
      ( class_Nat_Osemiring__char__0(T_a)
     => ( c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m_2) = c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n_2)
      <=> V_m_2 = V_n_2 ) ) ).

fof(fact_nat_Oinject,axiom,
    ! [V_nat_H_2,V_nat_2] :
      ( hAPP(c_Nat_OSuc,V_nat_2) = hAPP(c_Nat_OSuc,V_nat_H_2)
    <=> V_nat_2 = V_nat_H_2 ) ).

fof(fact_max__Suc__Suc,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_m)),hAPP(c_Nat_OSuc,V_n)) = hAPP(c_Nat_OSuc,hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),V_m),V_n)) ).

fof(fact_add__Suc__shift,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_m)),V_n) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),hAPP(c_Nat_OSuc,V_n)) ).

fof(fact_add__Suc,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_OSuc,V_m)),V_n) = hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)) ).

fof(fact_less__diff__conv,axiom,
    ! [V_k_2,V_j_2,V_i_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i_2),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_j_2),V_k_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i_2),V_k_2)),V_j_2)) ) ).

fof(fact_nat__add__left__commute,axiom,
    ! [V_z,V_y,V_x] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_x),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_y),V_z)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_y),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_x),V_z)) ).

fof(fact_add__Suc__right,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),hAPP(c_Nat_OSuc,V_n)) = hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)) ).

fof(fact_nat__add__commute,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m) ).

fof(fact_less__iff__Suc__add,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2))
    <=> ? [B_k] : V_n_2 = hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),B_k)) ) ).

fof(fact_diff__less__Suc,axiom,
    ! [V_n,V_m] : hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n)),hAPP(c_Nat_OSuc,V_m))) ).

fof(fact_of__nat__add,axiom,
    ! [V_n,V_m,T_a] :
      ( class_Rings_Osemiring__1(T_a)
     => c_Nat_Osemiring__1__class_Oof__nat(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m)),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n)) ) ).

fof(fact_less__add__Suc2,axiom,
    ! [V_m,V_i] : hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_i)))) ).

fof(fact_less__add__Suc1,axiom,
    ! [V_m,V_i] : hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i),V_m)))) ).

fof(fact_Suc__n__not__n,axiom,
    ! [V_n] : hAPP(c_Nat_OSuc,V_n) != V_n ).

fof(fact_n__not__Suc__n,axiom,
    ! [V_n] : V_n != hAPP(c_Nat_OSuc,V_n) ).

fof(fact_diff__eq__diff__less,axiom,
    ! [V_d_2,V_c_2,V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Oordered__ab__group__add(T_a)
     => ( hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_aa_2),V_ba_2) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_c_2),V_d_2)
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),V_ba_2))
        <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_c_2),V_d_2)) ) ) ) ).

fof(fact_diff__Suc__less,axiom,
    ! [V_i,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_OSuc,V_i))),V_n)) ) ).

fof(fact_Suc__pred,axiom,
    ! [V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n))
     => hAPP(c_Nat_OSuc,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)))) = V_n ) ).

fof(fact_add__is__1,axiom,
    ! [V_n_2,V_m_2] :
      ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),V_n_2) = hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))
    <=> ( ( V_m_2 = hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))
          & V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) )
        | ( V_m_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
          & V_n_2 = hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) ) ) ) ).

fof(fact_one__is__add,axiom,
    ! [V_n_2,V_m_2] :
      ( hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),V_n_2)
    <=> ( ( V_m_2 = hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))
          & V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) )
        | ( V_m_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
          & V_n_2 = hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) ) ) ) ).

fof(fact_diff__add__0,axiom,
    ! [V_m,V_n] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m)) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_nat__diff__split,axiom,
    ! [V_ba_2,V_aa_2,V_P_2] :
      ( hBOOL(hAPP(V_P_2,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_aa_2),V_ba_2)))
    <=> ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_aa_2),V_ba_2))
         => hBOOL(hAPP(V_P_2,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) )
        & ! [B_d] :
            ( V_aa_2 = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_ba_2),B_d)
           => hBOOL(hAPP(V_P_2,B_d)) ) ) ) ).

fof(fact_nat__diff__split__asm,axiom,
    ! [V_ba_2,V_aa_2,V_P_2] :
      ( hBOOL(hAPP(V_P_2,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_aa_2),V_ba_2)))
    <=> ~ ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_aa_2),V_ba_2))
            & ~ hBOOL(hAPP(V_P_2,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) )
          | ? [B_d] :
              ( V_aa_2 = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_ba_2),B_d)
              & ~ hBOOL(hAPP(V_P_2,B_d)) ) ) ) ).

fof(fact_diff__0__right,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Ogroup__add(T_a)
     => hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_a),c_Groups_Ozero__class_Ozero(T_a)) = V_a ) ).

fof(fact_diff__self,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Ogroup__add(T_a)
     => hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_a),V_a) = c_Groups_Ozero__class_Ozero(T_a) ) ).

fof(fact_eq__iff__diff__eq__0,axiom,
    ! [V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Oab__group__add(T_a)
     => ( V_aa_2 = V_ba_2
      <=> hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_aa_2),V_ba_2) = c_Groups_Ozero__class_Ozero(T_a) ) ) ).

fof(fact_right__minus__eq,axiom,
    ! [V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Ogroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_aa_2),V_ba_2) = c_Groups_Ozero__class_Ozero(T_a)
      <=> V_aa_2 = V_ba_2 ) ) ).

fof(fact_diff__eq__diff__eq,axiom,
    ! [V_d_2,V_c_2,V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Oab__group__add(T_a)
     => ( hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_aa_2),V_ba_2) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_c_2),V_d_2)
       => ( V_aa_2 = V_ba_2
        <=> V_c_2 = V_d_2 ) ) ) ).

fof(fact_add__right__imp__eq,axiom,
    ! [V_c,V_a,V_b,T_a] :
      ( class_Groups_Ocancel__semigroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_a) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_a)
       => V_b = V_c ) ) ).

fof(fact_add__imp__eq,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Groups_Ocancel__ab__semigroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)
       => V_b = V_c ) ) ).

fof(fact_add__left__imp__eq,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Groups_Ocancel__semigroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)
       => V_b = V_c ) ) ).

fof(fact_add__right__cancel,axiom,
    ! [V_c_2,V_aa_2,V_ba_2,T_a] :
      ( class_Groups_Ocancel__semigroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_ba_2),V_aa_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c_2),V_aa_2)
      <=> V_ba_2 = V_c_2 ) ) ).

fof(fact_add__left__cancel,axiom,
    ! [V_c_2,V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Ocancel__semigroup__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_ba_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_c_2)
      <=> V_ba_2 = V_c_2 ) ) ).

fof(fact_max__diff__distrib__left,axiom,
    ! [V_z,V_y,V_x,T_a] :
      ( class_Groups_Oordered__ab__group__add(T_a)
     => hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y)),V_z) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_x),V_z)),hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_y),V_z)) ) ).

fof(fact_max__add__distrib__left,axiom,
    ! [V_z,V_y,V_x,T_a] :
      ( class_Groups_Oordered__ab__semigroup__add__imp__le(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y)),V_z) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_x),V_z)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_y),V_z)) ) ).

fof(fact_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Groups_Oab__semigroup__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),V_c) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_c)) ) ).

fof(fact_add__diff__cancel,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Groups_Ogroup__add(T_a)
     => hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),V_b) = V_a ) ).

fof(fact_diff__add__cancel,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Groups_Ogroup__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_a),V_b)),V_b) = V_a ) ).

fof(fact_max__0L,axiom,
    ! [V_n] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n) = V_n ).

fof(fact_max__0R,axiom,
    ! [V_n] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),V_n),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = V_n ).

fof(fact_add_Ocomm__neutral,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Ocomm__monoid__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),c_Groups_Ozero__class_Ozero(T_a)) = V_a ) ).

fof(fact_add__0__right,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),c_Groups_Ozero__class_Ozero(T_a)) = V_a ) ).

fof(fact_double__zero__sym,axiom,
    ! [V_aa_2,T_a] :
      ( class_Groups_Olinordered__ab__group__add(T_a)
     => ( c_Groups_Ozero__class_Ozero(T_a) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_aa_2)
      <=> V_aa_2 = c_Groups_Ozero__class_Ozero(T_a) ) ) ).

fof(fact_add__0,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Ocomm__monoid__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)),V_a) = V_a ) ).

fof(fact_add__0__left,axiom,
    ! [V_a,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)),V_a) = V_a ) ).

fof(fact_add__less__imp__less__left,axiom,
    ! [V_b,V_a,V_c,T_a] :
      ( class_Groups_Oordered__ab__semigroup__add__imp__le(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_a)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_b)))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b)) ) ) ).

fof(fact_add__less__imp__less__right,axiom,
    ! [V_b,V_c,V_a,T_a] :
      ( class_Groups_Oordered__ab__semigroup__add__imp__le(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_c)))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b)) ) ) ).

fof(fact_add__strict__mono,axiom,
    ! [V_d,V_c,V_b,V_a,T_a] :
      ( class_Groups_Oordered__cancel__ab__semigroup__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_c),V_d))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_d))) ) ) ) ).

fof(fact_add__strict__left__mono,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Groups_Oordered__cancel__ab__semigroup__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_a)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_b))) ) ) ).

fof(fact_add__strict__right__mono,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Groups_Oordered__cancel__ab__semigroup__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_c))) ) ) ).

fof(fact_add__less__cancel__left,axiom,
    ! [V_ba_2,V_aa_2,V_c_2,T_a] :
      ( class_Groups_Oordered__ab__semigroup__add__imp__le(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c_2),V_aa_2)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c_2),V_ba_2)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),V_ba_2)) ) ) ).

fof(fact_add__less__cancel__right,axiom,
    ! [V_ba_2,V_c_2,V_aa_2,T_a] :
      ( class_Groups_Oordered__ab__semigroup__add__imp__le(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_c_2)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_ba_2),V_c_2)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),V_ba_2)) ) ) ).

fof(fact_diff__0__eq__0,axiom,
    ! [V_n] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_minus__nat_Odiff__0,axiom,
    ! [V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = V_m ).

fof(fact_diff__self__eq__0,axiom,
    ! [V_m] : hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_m) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_diffs0__imp__equal,axiom,
    ! [V_n,V_m] :
      ( hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
     => ( hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),V_m) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
       => V_m = V_n ) ) ).

fof(fact_less__imp__diff__less,axiom,
    ! [V_n,V_k,V_j] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j),V_k))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_j),V_n)),V_k)) ) ).

fof(fact_diff__less__mono2,axiom,
    ! [V_l,V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_l))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_l),V_n)),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_l),V_m))) ) ) ).

fof(fact_Zero__not__Suc,axiom,
    ! [V_m] : c_Groups_Ozero__class_Ozero(tc_Nat_Onat) != hAPP(c_Nat_OSuc,V_m) ).

fof(fact_nat_Osimps_I2_J,axiom,
    ! [V_nat_H] : c_Groups_Ozero__class_Ozero(tc_Nat_Onat) != hAPP(c_Nat_OSuc,V_nat_H) ).

fof(fact_Suc__not__Zero,axiom,
    ! [V_m] : hAPP(c_Nat_OSuc,V_m) != c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_nat_Osimps_I3_J,axiom,
    ! [V_nat_H_1] : hAPP(c_Nat_OSuc,V_nat_H_1) != c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_Zero__neq__Suc,axiom,
    ! [V_m] : c_Groups_Ozero__class_Ozero(tc_Nat_Onat) != hAPP(c_Nat_OSuc,V_m) ).

fof(fact_Suc__neq__Zero,axiom,
    ! [V_m] : hAPP(c_Nat_OSuc,V_m) != c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ).

fof(fact_not__less__eq,axiom,
    ! [V_n_2,V_m_2] :
      ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),hAPP(c_Nat_OSuc,V_m_2))) ) ).

fof(fact_less__Suc__eq,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),hAPP(c_Nat_OSuc,V_n_2)))
    <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2))
        | V_m_2 = V_n_2 ) ) ).

fof(fact_Suc__less__eq,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_m_2)),hAPP(c_Nat_OSuc,V_n_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2)) ) ).

fof(fact_not__less__less__Suc__eq,axiom,
    ! [V_m_2,V_n_2] :
      ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),V_m_2))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),hAPP(c_Nat_OSuc,V_m_2)))
      <=> V_n_2 = V_m_2 ) ) ).

fof(fact_less__antisym,axiom,
    ! [V_m,V_n] :
      ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),V_m))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_OSuc,V_m)))
       => V_m = V_n ) ) ).

fof(fact_less__SucI,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),hAPP(c_Nat_OSuc,V_n))) ) ).

fof(fact_Suc__lessI,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
     => ( hAPP(c_Nat_OSuc,V_m) != V_n
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_m)),V_n)) ) ) ).

fof(fact_less__trans__Suc,axiom,
    ! [V_k,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_j))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j),V_k))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_i)),V_k)) ) ) ).

fof(fact_less__SucE,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),hAPP(c_Nat_OSuc,V_n)))
     => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
       => V_m = V_n ) ) ).

fof(fact_Suc__lessD,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_m)),V_n))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n)) ) ).

fof(fact_Suc__less__SucD,axiom,
    ! [V_n,V_m] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(c_Nat_OSuc,V_m)),hAPP(c_Nat_OSuc,V_n)))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n)) ) ).

fof(fact_plus__nat_Oadd__0,axiom,
    ! [V_n] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n) = V_n ).

fof(fact_Nat_Oadd__0__right,axiom,
    ! [V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = V_m ).

fof(fact_add__is__0,axiom,
    ! [V_n_2,V_m_2] :
      ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),V_n_2) = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
    <=> ( V_m_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
        & V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ) ).

fof(fact_add__eq__self__zero,axiom,
    ! [V_n,V_m] :
      ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n) = V_m
     => V_n = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_not__add__less1,axiom,
    ! [V_j,V_i] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i),V_j)),V_i)) ).

fof(fact_not__add__less2,axiom,
    ! [V_i,V_j] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j),V_i)),V_i)) ).

fof(fact_nat__add__left__cancel__less,axiom,
    ! [V_n_2,V_m_2,V_k_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k_2),V_m_2)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k_2),V_n_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2)) ) ).

fof(fact_trans__less__add1,axiom,
    ! [V_m,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_j))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j),V_m))) ) ).

fof(fact_trans__less__add2,axiom,
    ! [V_m,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_j))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_j))) ) ).

fof(fact_add__less__mono1,axiom,
    ! [V_k,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_j))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i),V_k)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j),V_k))) ) ).

fof(fact_add__less__mono,axiom,
    ! [V_l,V_k,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_j))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_k),V_l))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i),V_k)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_j),V_l))) ) ) ).

fof(fact_less__add__eq__less,axiom,
    ! [V_n,V_m,V_l,V_k] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_k),V_l))
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_l) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_k),V_n)
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n)) ) ) ).

fof(fact_add__lessD1,axiom,
    ! [V_k,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_i),V_j)),V_k))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_k)) ) ).

fof(fact_foldl__assoc,axiom,
    ! [V_zs_2,V_y_2,V_x_2,T_a] :
      ( class_Groups_Osemigroup__add(T_a)
     => hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_x_2),V_y_2)),V_zs_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_x_2),hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_y_2),V_zs_2)) ) ).

fof(fact_drop__drop,axiom,
    ! [V_xs,V_m,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),hAPP(hAPP(c_List_Odrop(T_a),V_m),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m)),V_xs) ).

fof(fact_nat__case__Suc,axiom,
    ! [V_nat_2,V_f2_2,V_f1_2,T_a] : c_Nat_Onat_Onat__case(T_a,V_f1_2,V_f2_2,hAPP(c_Nat_OSuc,V_nat_2)) = hAPP(V_f2_2,V_nat_2) ).

fof(fact_list_Osize_I4_J,axiom,
    ! [V_list,V_a,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_a),V_list)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_list)),hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) ).

fof(fact_list_Osize_I2_J,axiom,
    ! [V_list_2,V_aa_2,V_fa_2,T_a] : c_List_Olist_Olist__size(T_a,V_fa_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_aa_2),V_list_2)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(V_fa_2,V_aa_2)),c_List_Olist_Olist__size(T_a,V_fa_2,V_list_2))),hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) ).

fof(fact_less__iff__diff__less__0,axiom,
    ! [V_ba_2,V_aa_2,T_a] :
      ( class_Groups_Oordered__ab__group__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),V_ba_2))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),V_aa_2),V_ba_2)),c_Groups_Ozero__class_Ozero(T_a))) ) ) ).

fof(fact_list__ex__simps_I1_J,axiom,
    ! [V_xs_2,V_x_2,V_P_2,T_a] :
      ( c_List_Olist__ex(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2))
    <=> ( hBOOL(hAPP(V_P_2,V_x_2))
        | c_List_Olist__ex(T_a,V_P_2,V_xs_2) ) ) ).

fof(fact_list__ex__simps_I2_J,axiom,
    ! [V_P_2,T_a] : ~ c_List_Olist__ex(T_a,V_P_2,c_List_Olist_ONil(T_a)) ).

fof(fact_list__ex__append,axiom,
    ! [V_ys_2,V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__ex(T_a,V_P_2,hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2))
    <=> ( c_List_Olist__ex(T_a,V_P_2,V_xs_2)
        | c_List_Olist__ex(T_a,V_P_2,V_ys_2) ) ) ).

fof(fact_rev__nth,axiom,
    ! [V_xs,T_a,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(c_List_Onth(T_a,c_List_Orev(T_a,V_xs)),V_n) = hAPP(c_List_Onth(T_a,V_xs),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),hAPP(c_Nat_OSuc,V_n))) ) ).

fof(fact_zero__less__double__add__iff__zero__less__single__add,axiom,
    ! [V_aa_2,T_a] :
      ( class_Groups_Olinordered__ab__group__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_aa_2)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),V_aa_2)) ) ) ).

fof(fact_double__add__less__zero__iff__single__add__less__zero,axiom,
    ! [V_aa_2,T_a] :
      ( class_Groups_Olinordered__ab__group__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_aa_2)),c_Groups_Ozero__class_Ozero(T_a)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),c_Groups_Ozero__class_Ozero(T_a))) ) ) ).

fof(fact_add__pos__pos,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Groups_Oordered__comm__monoid__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),V_a))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),V_b))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b))) ) ) ) ).

fof(fact_add__neg__neg,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Groups_Oordered__comm__monoid__add(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),c_Groups_Ozero__class_Ozero(T_a)))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),c_Groups_Ozero__class_Ozero(T_a)))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),c_Groups_Ozero__class_Ozero(T_a))) ) ) ) ).

fof(fact_zero__less__diff,axiom,
    ! [V_m_2,V_n_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n_2),V_m_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2)) ) ).

fof(fact_diff__less,axiom,
    ! [V_m,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_m))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n)),V_m)) ) ) ).

fof(fact_list__ex__rev,axiom,
    ! [V_xs_2,V_P_2,T_a] :
      ( c_List_Olist__ex(T_a,V_P_2,c_List_Orev(T_a,V_xs_2))
    <=> c_List_Olist__ex(T_a,V_P_2,V_xs_2) ) ).

fof(fact_of__nat__less__0__iff,axiom,
    ! [V_m,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m)),c_Groups_Ozero__class_Ozero(T_a))) ) ).

fof(fact_gr0__conv__Suc,axiom,
    ! [V_n_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n_2))
    <=> ? [B_m] : V_n_2 = hAPP(c_Nat_OSuc,B_m) ) ).

fof(fact_less__Suc0,axiom,
    ! [V_n_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))))
    <=> V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_less__Suc__eq__0__disj,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),hAPP(c_Nat_OSuc,V_n_2)))
    <=> ( V_m_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
        | ? [B_j] :
            ( V_m_2 = hAPP(c_Nat_OSuc,B_j)
            & hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_j),V_n_2)) ) ) ) ).

fof(fact_of__nat__0,axiom,
    ! [T_a] :
      ( class_Rings_Osemiring__1(T_a)
     => c_Nat_Osemiring__1__class_Oof__nat(T_a,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = c_Groups_Ozero__class_Ozero(T_a) ) ).

fof(fact_add__gr__0,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m_2),V_n_2)))
    <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_m_2))
        | hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n_2)) ) ) ).

fof(fact_of__nat__less__iff,axiom,
    ! [V_n_2,V_m_2,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m_2)),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n_2)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2)) ) ) ).

fof(fact_less__imp__of__nat__less,axiom,
    ! [V_n,V_m,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m)),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n))) ) ) ).

fof(fact_of__nat__less__imp__less,axiom,
    ! [V_n,V_m,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Nat_Osemiring__1__class_Oof__nat(T_a,V_m)),c_Nat_Osemiring__1__class_Oof__nat(T_a,V_n)))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m),V_n)) ) ) ).

fof(fact_foldl__absorb0,axiom,
    ! [V_zs_2,V_x_2,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_x_2),hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)),V_zs_2)) = hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_x_2),V_zs_2) ) ).

fof(fact_nth__Cons__Suc,axiom,
    ! [V_n,V_xs,V_x,T_a] : hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)),hAPP(c_Nat_OSuc,V_n)) = hAPP(c_List_Onth(T_a,V_xs),V_n) ).

fof(fact_length__drop,axiom,
    ! [V_xs,V_n,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),V_n) ).

fof(fact_length__append,axiom,
    ! [V_ys,V_xs,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_ys)) ).

fof(fact_drop__Suc__Cons,axiom,
    ! [V_xs,V_x,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_OSuc,V_n)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs) ).

fof(fact_listsum__simps_I2_J,axiom,
    ! [V_xs,V_x,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(c_List_Omonoid__add__class_Olistsum(T_a),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_x),hAPP(c_List_Omonoid__add__class_Olistsum(T_a),V_xs)) ) ).

fof(fact_replicate__Suc,axiom,
    ! [V_x,V_n,T_a] : c_List_Oreplicate(T_a,hAPP(c_Nat_OSuc,V_n),V_x) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),c_List_Oreplicate(T_a,V_n,V_x)) ).

fof(fact_listsum__append,axiom,
    ! [V_ys,V_xs,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(c_List_Omonoid__add__class_Olistsum(T_a),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(c_List_Omonoid__add__class_Olistsum(T_a),V_xs)),hAPP(c_List_Omonoid__add__class_Olistsum(T_a),V_ys)) ) ).

fof(fact_length__insort,axiom,
    ! [V_xs_2,V_x_2,V_f_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_b,V_f_2),V_x_2),V_xs_2)) = hAPP(c_Nat_OSuc,hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)) ) ).

fof(fact_drop__replicate,axiom,
    ! [V_x,V_k,V_i,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_i),c_List_Oreplicate(T_a,V_k,V_x)) = c_List_Oreplicate(T_a,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_k),V_i),V_x) ).

fof(fact_replicate__add,axiom,
    ! [V_x,V_m,V_n,T_a] : c_List_Oreplicate(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m),V_x) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Oreplicate(T_a,V_n,V_x)),c_List_Oreplicate(T_a,V_m,V_x)) ).

fof(fact_drop__Suc,axiom,
    ! [V_xs,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_OSuc,V_n)),V_xs) = hAPP(hAPP(c_List_Odrop(T_a),V_n),c_List_Otl(T_a,V_xs)) ).

fof(fact_foldr__conv__foldl,axiom,
    ! [V_aa_2,V_xs_2,T_a] :
      ( class_Groups_Oab__semigroup__add(T_a)
     => c_List_Ofoldr(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_xs_2,V_aa_2) = hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_xs_2) ) ).

fof(fact_length__splice,axiom,
    ! [V_ys,V_xs,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Osplice(T_a,V_xs,V_ys)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_ys)) ).

fof(fact_drop__append,axiom,
    ! [V_ys,V_xs,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)),hAPP(hAPP(c_List_Odrop(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs))),V_ys)) ).

fof(fact_nth__append__length__plus,axiom,
    ! [V_n,V_ys,V_xs,T_a] : hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),V_n)) = hAPP(c_List_Onth(T_a,V_ys),V_n) ).

fof(fact_listsum__foldl,axiom,
    ! [T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => c_List_Omonoid__add__class_Olistsum(T_a) = c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)) ) ).

fof(fact_foldl__foldr1__lemma,axiom,
    ! [V_xs_2,V_aa_2,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_xs_2) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),c_List_Ofoldr(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_xs_2,c_Groups_Ozero__class_Ozero(T_a))) ) ).

fof(fact_foldl__foldr1,axiom,
    ! [V_xs_2,T_a] :
      ( class_Groups_Omonoid__add(T_a)
     => hAPP(c_List_Ofoldl(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)),V_xs_2) = c_List_Ofoldr(T_a,T_a,c_Groups_Oplus__class_Oplus(T_a),V_xs_2,c_Groups_Ozero__class_Ozero(T_a)) ) ).

fof(fact_even__less__0__iff,axiom,
    ! [V_aa_2,T_a] :
      ( class_Rings_Olinordered__idom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_aa_2)),c_Groups_Ozero__class_Ozero(T_a)))
      <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_aa_2),c_Groups_Ozero__class_Ozero(T_a))) ) ) ).

fof(fact_pos__add__strict,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Rings_Olinordered__semidom(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,c_Groups_Ozero__class_Ozero(T_a)),V_a))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),V_c))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c))) ) ) ) ).

fof(fact_take__hd__drop,axiom,
    ! [V_xs,T_a,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),c_List_Ohd(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs))),c_List_Olist_ONil(T_a))) = hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_OSuc,V_n)),V_xs) ) ).

fof(fact_termination__basic__simps_I2_J,axiom,
    ! [V_y,V_z,V_x] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x),V_z))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_y),V_z))) ) ).

fof(fact_zless__iff__Suc__zadd,axiom,
    ! [V_z_2,V_w_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,V_w_2),V_z_2))
    <=> ? [B_n] : V_z_2 = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_w_2),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,hAPP(c_Nat_OSuc,B_n))) ) ).

fof(fact_zadd__int,axiom,
    ! [V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_m)),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n)) = c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n)) ).

fof(fact_zadd__int__left,axiom,
    ! [V_z,V_n,V_m] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_m)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n)),V_z)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_m),V_n))),V_z) ).

fof(fact_take__Nil,axiom,
    ! [V_n,T_a] : hAPP(hAPP(c_List_Otake(T_a),V_n),c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_distinct__take,axiom,
    ! [V_i,V_xs,T_a] :
      ( c_List_Odistinct(T_a,V_xs)
     => c_List_Odistinct(T_a,hAPP(hAPP(c_List_Otake(T_a),V_i),V_xs)) ) ).

fof(fact_sorted__take,axiom,
    ! [V_n,V_xs,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( c_List_Olinorder__class_Osorted(T_a,V_xs)
       => c_List_Olinorder__class_Osorted(T_a,hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)) ) ) ).

fof(fact_take__0,axiom,
    ! [V_xs,T_a] : hAPP(hAPP(c_List_Otake(T_a),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_xs) = c_List_Olist_ONil(T_a) ).

fof(fact_take__eq__Nil,axiom,
    ! [V_xs_2,V_n_2,T_a] :
      ( hAPP(hAPP(c_List_Otake(T_a),V_n_2),V_xs_2) = c_List_Olist_ONil(T_a)
    <=> ( V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat)
        | V_xs_2 = c_List_Olist_ONil(T_a) ) ) ).

fof(fact_take__Suc__Cons,axiom,
    ! [V_xs,V_x,V_n,T_a] : hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_OSuc,V_n)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)) ).

fof(fact_nth__take,axiom,
    ! [V_xs,T_a,V_n,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),V_n))
     => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)),V_i) = hAPP(c_List_Onth(T_a,V_xs),V_i) ) ).

fof(fact_take__drop,axiom,
    ! [V_xs,V_m,V_n,T_a] : hAPP(hAPP(c_List_Otake(T_a),V_n),hAPP(hAPP(c_List_Odrop(T_a),V_m),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),V_m),hAPP(hAPP(c_List_Otake(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_n),V_m)),V_xs)) ).

fof(fact_drop__take,axiom,
    ! [V_xs,V_m,V_n,T_a] : hAPP(hAPP(c_List_Odrop(T_a),V_n),hAPP(hAPP(c_List_Otake(T_a),V_m),V_xs)) = hAPP(hAPP(c_List_Otake(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_m),V_n)),hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) ).

fof(fact_append__take__drop__id,axiom,
    ! [V_xs,V_n,T_a] : hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)),hAPP(hAPP(c_List_Odrop(T_a),V_n),V_xs)) = V_xs ).

fof(fact_takeWhile__eq__take,axiom,
    ! [V_xs_2,V_P_2,T_a] : c_List_OtakeWhile(T_a,V_P_2,V_xs_2) = hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_OtakeWhile(T_a,V_P_2,V_xs_2))),V_xs_2) ).

fof(fact_take__tl,axiom,
    ! [V_xs,V_n,T_a] : hAPP(hAPP(c_List_Otake(T_a),V_n),c_List_Otl(T_a,V_xs)) = c_List_Otl(T_a,hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_OSuc,V_n)),V_xs)) ).

fof(fact_take__append,axiom,
    ! [V_ys,V_xs,V_n,T_a] : hAPP(hAPP(c_List_Otake(T_a),V_n),hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs)),hAPP(hAPP(c_List_Otake(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs))),V_ys)) ).

fof(fact_append__eq__conv__conj,axiom,
    ! [V_zs_2,V_ys_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2) = V_zs_2
    <=> ( V_xs_2 = hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)),V_zs_2)
        & V_ys_2 = hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)),V_zs_2) ) ) ).

fof(fact_take__butlast,axiom,
    ! [V_xs,T_a,V_n] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Otake(T_a),V_n),c_List_Obutlast(T_a,V_xs)) = hAPP(hAPP(c_List_Otake(T_a),V_n),V_xs) ) ).

fof(fact_linorder__neqE__linordered__idom,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Rings_Olinordered__idom(T_a)
     => ( V_x != V_y
       => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ) ).

fof(fact_int__eq__0__conv,axiom,
    ! [V_n_2] :
      ( c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n_2) = c_Groups_Ozero__class_Ozero(tc_Int_Oint)
    <=> V_n_2 = c_Groups_Ozero__class_Ozero(tc_Nat_Onat) ) ).

fof(fact_int__0,axiom,
    c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = c_Groups_Ozero__class_Ozero(tc_Int_Oint) ).

fof(fact_zless__int,axiom,
    ! [V_n_2,V_m_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_m_2)),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_m_2),V_n_2)) ) ).

fof(fact_take__Cons,axiom,
    ! [V_xs_2,V_x_2,V_n_2,T_a] : hAPP(hAPP(c_List_Otake(T_a),V_n_2),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = c_Nat_Onat_Onat__case(tc_List_Olist(T_a),c_List_Olist_ONil(T_a),c_COMBB(tc_List_Olist(T_a),tc_List_Olist(T_a),tc_Nat_Onat,hAPP(c_List_Olist_OCons(T_a),V_x_2),hAPP(c_COMBC(tc_Nat_Onat,tc_List_Olist(T_a),tc_List_Olist(T_a),c_List_Otake(T_a)),V_xs_2)),V_n_2) ).

fof(fact_rev__drop,axiom,
    ! [V_xs,V_i,T_a] : c_List_Orev(T_a,hAPP(hAPP(c_List_Odrop(T_a),V_i),V_xs)) = hAPP(hAPP(c_List_Otake(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),V_i)),c_List_Orev(T_a,V_xs)) ).

fof(fact_rev__take,axiom,
    ! [V_xs,V_i,T_a] : c_List_Orev(T_a,hAPP(hAPP(c_List_Otake(T_a),V_i),V_xs)) = hAPP(hAPP(c_List_Odrop(T_a),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),V_i)),c_List_Orev(T_a,V_xs)) ).

fof(fact_take__Suc,axiom,
    ! [V_n,T_a,V_xs] :
      ( V_xs != c_List_Olist_ONil(T_a)
     => hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_OSuc,V_n)),V_xs) = hAPP(hAPP(c_List_Olist_OCons(T_a),c_List_Ohd(T_a,V_xs)),hAPP(hAPP(c_List_Otake(T_a),V_n),c_List_Otl(T_a,V_xs))) ) ).

fof(fact_double__eq__0__iff,axiom,
    ! [V_aa_2,T_a] :
      ( class_Groups_Olinordered__ab__group__add(T_a)
     => ( hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_aa_2),V_aa_2) = c_Groups_Ozero__class_Ozero(T_a)
      <=> V_aa_2 = c_Groups_Ozero__class_Ozero(T_a) ) ) ).

fof(fact_take__Suc__conv__app__nth,axiom,
    ! [V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Otake(T_a),hAPP(c_Nat_OSuc,V_i)),V_xs) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_i),V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),hAPP(c_List_Onth(T_a,V_xs),V_i)),c_List_Olist_ONil(T_a))) ) ).

fof(fact_id__take__nth__drop,axiom,
    ! [V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => V_xs = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_i),V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),hAPP(c_List_Onth(T_a,V_xs),V_i)),hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_OSuc,V_i)),V_xs))) ) ).

fof(fact_zero__less__int__conv,axiom,
    ! [V_n_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,c_Groups_Ozero__class_Ozero(tc_Int_Oint)),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_n_2)) ) ).

fof(fact_termination__basic__simps_I1_J,axiom,
    ! [V_z,V_y,V_x] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x),V_y))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_y),V_z))) ) ).

fof(fact_upd__conv__take__nth__drop,axiom,
    ! [V_a,V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_a) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Otake(T_a),V_i),V_xs)),hAPP(hAPP(c_List_Olist_OCons(T_a),V_a),hAPP(hAPP(c_List_Odrop(T_a),hAPP(c_Nat_OSuc,V_i)),V_xs))) ) ).

fof(fact_less__max__iff__disj,axiom,
    ! [V_y_2,V_x_2,V_z_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_z_2),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x_2),V_y_2)))
      <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_z_2),V_x_2))
          | hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_z_2),V_y_2)) ) ) ) ).

fof(fact_zadd__strict__right__mono,axiom,
    ! [V_k,V_j,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,V_i),V_j))
     => hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_i),V_k)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_j),V_k))) ) ).

fof(fact_zless__linear,axiom,
    ! [V_y,V_x] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,V_x),V_y))
      | V_x = V_y
      | hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,V_y),V_x)) ) ).

fof(fact_less__bin__lemma,axiom,
    ! [V_l_2,V_k_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,V_k_2),V_l_2))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Int_Oint),V_k_2),V_l_2)),c_Groups_Ozero__class_Ozero(tc_Int_Oint))) ) ).

fof(fact_int__less__0__conv,axiom,
    ! [V_k] : ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_k)),c_Groups_Ozero__class_Ozero(tc_Int_Oint))) ).

fof(fact_equal__int__def,axiom,
    ! [V_l_2,V_k_2] :
      ( hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(tc_Int_Oint),V_k_2),V_l_2))
    <=> hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Int_Oint),V_k_2),V_l_2) = c_Groups_Ozero__class_Ozero(tc_Int_Oint) ) ).

fof(fact_zadd__0,axiom,
    ! [V_z] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Groups_Ozero__class_Ozero(tc_Int_Oint)),V_z) = V_z ).

fof(fact_zadd__0__right,axiom,
    ! [V_z] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_z),c_Groups_Ozero__class_Ozero(tc_Int_Oint)) = V_z ).

fof(fact_zadd__commute,axiom,
    ! [V_w,V_z] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_z),V_w) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_w),V_z) ).

fof(fact_zadd__left__commute,axiom,
    ! [V_z,V_y,V_x] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_x),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_y),V_z)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_y),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_x),V_z)) ).

fof(fact_int__int__eq,axiom,
    ! [V_n_2,V_m_2] :
      ( c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_m_2) = c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_n_2)
    <=> V_m_2 = V_n_2 ) ).

fof(fact_zadd__assoc,axiom,
    ! [V_z3,V_z2,V_z1] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_z1),V_z2)),V_z3) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_z1),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),V_z2),V_z3)) ).

fof(fact_length__list__update,axiom,
    ! [V_x,V_i,V_xs,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs) ).

fof(fact_list__update__nonempty,axiom,
    ! [V_x_2,V_k_2,V_xs_2,T_a] :
      ( hAPP(hAPP(c_List_Olist__update(T_a,V_xs_2),V_k_2),V_x_2) = c_List_Olist_ONil(T_a)
    <=> V_xs_2 = c_List_Olist_ONil(T_a) ) ).

fof(fact_list__update_Osimps_I1_J,axiom,
    ! [V_v,V_i,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,c_List_Olist_ONil(T_a)),V_i),V_v) = c_List_Olist_ONil(T_a) ).

fof(fact_list__update__code_I1_J,axiom,
    ! [V_y,V_i,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,c_List_Olist_ONil(T_a)),V_i),V_y) = c_List_Olist_ONil(T_a) ).

fof(fact_list__update__id,axiom,
    ! [V_i,V_xs,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),hAPP(c_List_Onth(T_a,V_xs),V_i)) = V_xs ).

fof(fact_nth__list__update__neq,axiom,
    ! [V_x,V_xs,T_a,V_j,V_i] :
      ( V_i != V_j
     => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_j) = hAPP(c_List_Onth(T_a,V_xs),V_j) ) ).

fof(fact_list__update__code_I2_J,axiom,
    ! [V_y,V_xs,V_x,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)),V_y) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_y),V_xs) ).

fof(fact_list__update__code_I3_J,axiom,
    ! [V_y,V_i,V_xs,V_x,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_xs)),hAPP(c_Nat_OSuc,V_i)),V_y) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_y)) ).

fof(fact_list__update__swap,axiom,
    ! [V_x_H,V_x,V_xs,T_a,V_i_H,V_i] :
      ( V_i != V_i_H
     => hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_i_H),V_x_H) = hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i_H),V_x_H)),V_i),V_x) ) ).

fof(fact_list__update__overwrite,axiom,
    ! [V_y,V_x,V_i,V_xs,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_i),V_y) = hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_y) ).

fof(fact_order__less__irrefl,axiom,
    ! [V_x,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_x)) ) ).

fof(fact_linorder__neq__iff,axiom,
    ! [V_y_2,V_x_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( V_x_2 != V_y_2
      <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x_2),V_y_2))
          | hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y_2),V_x_2)) ) ) ) ).

fof(fact_not__less__iff__gr__or__eq,axiom,
    ! [V_y_2,V_x_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x_2),V_y_2))
      <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y_2),V_x_2))
          | V_x_2 = V_y_2 ) ) ) ).

fof(fact_linorder__less__linear,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
        | V_x = V_y
        | hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ).

fof(fact_linorder__antisym__conv3,axiom,
    ! [V_x_2,V_y_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y_2),V_x_2))
       => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x_2),V_y_2))
        <=> V_x_2 = V_y_2 ) ) ) ).

fof(fact_linorder__neqE,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( V_x != V_y
       => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ) ).

fof(fact_less__imp__neq,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => V_x != V_y ) ) ).

fof(fact_order__less__not__sym,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ).

fof(fact_order__less__imp__not__less,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ).

fof(fact_order__less__imp__not__eq,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => V_x != V_y ) ) ).

fof(fact_order__less__imp__not__eq2,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => V_y != V_x ) ) ).

fof(fact_order__less__asym_H,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b))
       => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),V_a)) ) ) ).

fof(fact_xt1_I9_J,axiom,
    ! [V_a,V_b,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),V_a))
       => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b)) ) ) ).

fof(fact_ord__eq__less__trans,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Orderings_Oord(T_a)
     => ( V_a = V_b
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),V_c))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_c)) ) ) ) ).

fof(fact_xt1_I1_J,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( V_a = V_b
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_c),V_b))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_c),V_a)) ) ) ) ).

fof(fact_ord__less__eq__trans,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Orderings_Oord(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_b))
       => ( V_b = V_c
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_a),V_c)) ) ) ) ).

fof(fact_xt1_I2_J,axiom,
    ! [V_c,V_a,V_b,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_b),V_a))
       => ( V_b = V_c
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_c),V_a)) ) ) ) ).

fof(fact_order__less__trans,axiom,
    ! [V_z,V_y,V_x,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_z))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_z)) ) ) ) ).

fof(fact_xt1_I10_J,axiom,
    ! [V_z,V_x,V_y,T_a] :
      ( class_Orderings_Oorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_z),V_y))
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_z),V_x)) ) ) ) ).

fof(fact_order__less__asym,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Opreorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ).

fof(fact_linorder__cases,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_y))
       => ( V_x != V_y
         => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y),V_x)) ) ) ) ).

fof(fact_listsum__update__nat,axiom,
    ! [V_n,V_ns,V_k] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_k),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(tc_Nat_Onat)),V_ns)))
     => hAPP(c_List_Omonoid__add__class_Olistsum(tc_Nat_Onat),hAPP(hAPP(c_List_Olist__update(tc_Nat_Onat,V_ns),V_k),V_n)) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_List_Omonoid__add__class_Olistsum(tc_Nat_Onat),V_ns)),V_n)),hAPP(c_List_Onth(tc_Nat_Onat,V_ns),V_k)) ) ).

fof(fact_list__update__append1,axiom,
    ! [V_x,V_ys,V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_i),V_x) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_ys) ) ).

fof(fact_list__update__length,axiom,
    ! [V_y,V_ys,V_x,V_xs,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_x),V_ys))),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)),V_y) = hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist_OCons(T_a),V_y),V_ys)) ).

fof(fact_nth__list__update__eq,axiom,
    ! [V_x,V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_i) = V_x ) ).

fof(fact_list__update__same__conv,axiom,
    ! [V_x_2,V_xs_2,T_a,V_i_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
     => ( hAPP(hAPP(c_List_Olist__update(T_a,V_xs_2),V_i_2),V_x_2) = V_xs_2
      <=> hAPP(c_List_Onth(T_a,V_xs_2),V_i_2) = V_x_2 ) ) ).

fof(fact_nth__list__update,axiom,
    ! [V_x,V_j,V_xs,T_a,V_i] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
     => ( ( V_i = V_j
         => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_j) = V_x )
        & ( V_i != V_j
         => hAPP(c_List_Onth(T_a,hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_i),V_x)),V_j) = hAPP(c_List_Onth(T_a,V_xs),V_j) ) ) ) ).

fof(fact_list__update_Osimps_I2_J,axiom,
    ! [V_v_2,V_i_2,V_xs_2,V_x_2,T_a] : hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)),V_i_2),V_v_2) = c_Nat_Onat_Onat__case(tc_List_Olist(T_a),hAPP(hAPP(c_List_Olist_OCons(T_a),V_v_2),V_xs_2),c_COMBB(tc_List_Olist(T_a),tc_List_Olist(T_a),tc_Nat_Onat,hAPP(c_List_Olist_OCons(T_a),V_x_2),hAPP(c_COMBC(tc_Nat_Onat,T_a,tc_List_Olist(T_a),c_List_Olist__update(T_a,V_xs_2)),V_v_2)),V_i_2) ).

fof(fact_list__update__append,axiom,
    ! [V_x,V_ys,V_xs,T_a,V_n] :
      ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
       => hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_n),V_x) = hAPP(hAPP(c_List_Oappend(T_a),hAPP(hAPP(c_List_Olist__update(T_a,V_xs),V_n),V_x)),V_ys) )
      & ( ~ hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs)))
       => hAPP(hAPP(c_List_Olist__update(T_a,hAPP(hAPP(c_List_Oappend(T_a),V_xs),V_ys)),V_n),V_x) = hAPP(hAPP(c_List_Oappend(T_a),V_xs),hAPP(hAPP(c_List_Olist__update(T_a,V_ys),hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_Nat_Onat),V_n),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs))),V_x)) ) ) ).

fof(fact_max__less__iff__conj,axiom,
    ! [V_z_2,V_y_2,V_x_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x_2),V_y_2)),V_z_2))
      <=> ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x_2),V_z_2))
          & hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_y_2),V_z_2)) ) ) ) ).

fof(fact_Nat__Transfer_Otransfer__int__nat__functions_I1_J,axiom,
    ! [V_y,V_x] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Int_Oint),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_x)),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_y)) = c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),V_x),V_y)) ).

fof(fact_transfer__int__nat__relations_I2_J,axiom,
    ! [V_y_2,V_x_2] :
      ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Int_Oint,c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_x_2)),c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_y_2)))
    <=> hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_x_2),V_y_2)) ) ).

fof(fact_eq__int__refl,axiom,
    ! [V_k] : hBOOL(hAPP(hAPP(c_HOL_Oequal__class_Oequal(tc_Int_Oint),V_k),V_k)) ).

fof(fact_transfer__int__nat__relations_I1_J,axiom,
    ! [V_y_2,V_x_2] :
      ( c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_x_2) = c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,V_y_2)
    <=> V_x_2 = V_y_2 ) ).

fof(fact_transfer__int__nat__numerals_I1_J,axiom,
    c_Groups_Ozero__class_Ozero(tc_Int_Oint) = c_Nat_Osemiring__1__class_Oof__nat(tc_Int_Oint,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) ).

fof(fact_min__max_Oless__supI1,axiom,
    ! [V_b,V_a,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_a))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b))) ) ) ).

fof(fact_min__max_Oless__supI2,axiom,
    ! [V_a,V_b,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),V_b))
       => hBOOL(hAPP(c_Orderings_Oord__class_Oless(T_a,V_x),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b))) ) ) ).

fof(fact_minus__apply,axiom,
    ! [V_x_2,V_B_2,V_A_2,T_b,T_a] :
      ( class_Groups_Ominus(T_a)
     => hAPP(hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_fun(T_b,T_a)),V_A_2),V_B_2),V_x_2) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),hAPP(V_A_2,V_x_2)),hAPP(V_B_2,V_x_2)) ) ).

fof(fact_min__max_Osup_Oidem,axiom,
    ! [V_a,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_a) = V_a ) ).

fof(fact_min__max_Osup_Ocommute,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_b),V_a) ) ).

fof(fact_min__max_Osup__commute,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_y),V_x) ) ).

fof(fact_min__max_Osup_Oleft__idem,axiom,
    ! [V_b,V_a,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b)) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b) ) ).

fof(fact_min__max_Osup__left__idem,axiom,
    ! [V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y)) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y) ) ).

fof(fact_min__max_Osup_Oleft__commute,axiom,
    ! [V_c,V_a,V_b,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_b),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_c)) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_b),V_c)) ) ).

fof(fact_min__max_Osup__left__commute,axiom,
    ! [V_z,V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_y),V_z)) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_y),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_z)) ) ).

fof(fact_min__max_Osup_Oassoc,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),V_b)),V_c) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_b),V_c)) ) ).

fof(fact_min__max_Osup__assoc,axiom,
    ! [V_z,V_y,V_x,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),V_y)),V_z) = hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_x),hAPP(hAPP(c_Orderings_Oord__class_Omax(T_a),V_y),V_z)) ) ).

fof(fact_fun__diff__def,axiom,
    ! [V_x_2,V_B_2,V_A_2,T_b,T_a] :
      ( class_Groups_Ominus(T_a)
     => hAPP(hAPP(hAPP(c_Groups_Ominus__class_Ominus(tc_fun(T_b,T_a)),V_A_2),V_B_2),V_x_2) = hAPP(hAPP(c_Groups_Ominus__class_Ominus(T_a),hAPP(V_A_2,V_x_2)),hAPP(V_B_2,V_x_2)) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I5_J,axiom,
    ! [V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),c_Groups_Ozero__class_Ozero(T_a)),V_a) = V_a ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I6_J,axiom,
    ! [V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),c_Groups_Ozero__class_Ozero(T_a)) = V_a ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I20_J,axiom,
    ! [V_d,V_c,V_b,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_d)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_d)) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I23_J,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),V_c) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),V_b) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I21_J,axiom,
    ! [V_c,V_b,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_b)),V_c) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_b),V_c)) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I25_J,axiom,
    ! [V_d,V_c,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_d)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c)),V_d) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I22_J,axiom,
    ! [V_d,V_c,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_d)) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_d)) ) ).

fof(fact_comm__semiring__1__class_Onormalizing__semiring__rules_I24_J,axiom,
    ! [V_c,V_a,T_a] :
      ( class_Rings_Ocomm__semiring__1(T_a)
     => hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_a),V_c) = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_c),V_a) ) ).

fof(fact_add__0__iff,axiom,
    ! [V_aa_2,V_ba_2,T_a] :
      ( class_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct(T_a)
     => ( V_ba_2 = hAPP(hAPP(c_Groups_Oplus__class_Oplus(T_a),V_ba_2),V_aa_2)
      <=> V_aa_2 = c_Groups_Ozero__class_Ozero(T_a) ) ) ).

fof(fact_takeWhile__eq__take__P__nth,axiom,
    ! [V_P_2,V_xs_2,T_a,V_n_2] :
      ( ! [B_i] :
          ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_i),V_n_2))
         => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,B_i),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
           => hBOOL(hAPP(V_P_2,hAPP(c_List_Onth(T_a,V_xs_2),B_i))) ) )
     => ( ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_n_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
         => ~ hBOOL(hAPP(V_P_2,hAPP(c_List_Onth(T_a,V_xs_2),V_n_2))) )
       => c_List_OtakeWhile(T_a,V_P_2,V_xs_2) = hAPP(hAPP(c_List_Otake(T_a),V_n_2),V_xs_2) ) ) ).

fof(fact_transpose__aux__max,axiom,
    ! [V_xss_2,T_b,V_xs_2,T_a] : hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),hAPP(c_Nat_OSuc,hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2))),c_List_Ofoldr(tc_List_Olist(T_b),tc_Nat_Onat,c_COMBB(tc_Nat_Onat,tc_fun(tc_Nat_Onat,tc_Nat_Onat),tc_List_Olist(T_b),c_Orderings_Oord__class_Omax(tc_Nat_Onat),c_Nat_Osize__class_Osize(tc_List_Olist(T_b))),V_xss_2,c_Groups_Ozero__class_Ozero(tc_Nat_Onat))) = hAPP(c_Nat_OSuc,hAPP(hAPP(c_Orderings_Oord__class_Omax(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)),c_List_Ofoldr(tc_List_Olist(T_b),tc_Nat_Onat,c_COMBB(tc_Nat_Onat,tc_fun(tc_Nat_Onat,tc_Nat_Onat),tc_List_Olist(T_b),c_Orderings_Oord__class_Omax(tc_Nat_Onat),hAPP(c_COMBC(tc_List_Olist(T_b),tc_Nat_Onat,tc_Nat_Onat,c_COMBB(tc_Nat_Onat,tc_fun(tc_Nat_Onat,tc_Nat_Onat),tc_List_Olist(T_b),c_Groups_Ominus__class_Ominus(tc_Nat_Onat),c_Nat_Osize__class_Osize(tc_List_Olist(T_b)))),hAPP(c_Nat_OSuc,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)))),c_List_Ofilter(tc_List_Olist(T_b),c_COMBB(tc_HOL_Obool,tc_HOL_Obool,tc_List_Olist(T_b),c_fNot,hAPP(c_COMBC(tc_List_Olist(T_b),tc_List_Olist(T_b),tc_HOL_Obool,c_fequal),c_List_Olist_ONil(T_b))),V_xss_2),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)))) ).

fof(fact_sum__length__filter__compl,axiom,
    ! [V_xs_2,V_P_2,T_a] : hAPP(hAPP(c_Groups_Oplus__class_Oplus(tc_Nat_Onat),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Ofilter(T_a,V_P_2,V_xs_2))),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Ofilter(T_a,c_COMBB(tc_HOL_Obool,tc_HOL_Obool,T_a,c_fNot,V_P_2),V_xs_2))) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2) ).

fof(fact_replicate__length__filter,axiom,
    ! [V_xs_2,V_x_2,T_a] : c_List_Oreplicate(T_a,hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),c_List_Ofilter(T_a,hAPP(c_fequal,V_x_2),V_xs_2)),V_x_2) = c_List_Ofilter(T_a,hAPP(c_fequal,V_x_2),V_xs_2) ).

fof(fact_filter__insort__triv,axiom,
    ! [V_xs_2,V_f_2,T_a,V_x_2,V_P_2,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => ( ~ hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_Ofilter(T_a,V_P_2,hAPP(hAPP(c_List_Olinorder__class_Oinsort__key(T_a,T_b,V_f_2),V_x_2),V_xs_2)) = c_List_Ofilter(T_a,V_P_2,V_xs_2) ) ) ).

fof(fact_filter__sort,axiom,
    ! [V_xs_2,V_f_2,V_P_2,T_a,T_b] :
      ( class_Orderings_Olinorder(T_b)
     => c_List_Ofilter(T_a,V_P_2,c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,V_xs_2)) = c_List_Olinorder__class_Osort__key(T_a,T_b,V_f_2,c_List_Ofilter(T_a,V_P_2,V_xs_2)) ) ).

fof(fact_sorted__same,axiom,
    ! [V_xs_2,V_g_2,T_a] :
      ( class_Orderings_Olinorder(T_a)
     => c_List_Olinorder__class_Osorted(T_a,c_List_Ofilter(T_a,hAPP(c_COMBC(T_a,T_a,tc_HOL_Obool,c_fequal),hAPP(V_g_2,V_xs_2)),V_xs_2)) ) ).

fof(fact_filter__replicate,axiom,
    ! [V_n_2,T_a,V_x_2,V_P_2] :
      ( ( hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_Ofilter(T_a,V_P_2,c_List_Oreplicate(T_a,V_n_2,V_x_2)) = c_List_Oreplicate(T_a,V_n_2,V_x_2) )
      & ( ~ hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_Ofilter(T_a,V_P_2,c_List_Oreplicate(T_a,V_n_2,V_x_2)) = c_List_Olist_ONil(T_a) ) ) ).

fof(fact_filter__filter,axiom,
    ! [V_xs_2,V_Q_2,V_P_2,T_a] : c_List_Ofilter(T_a,V_P_2,c_List_Ofilter(T_a,V_Q_2,V_xs_2)) = c_List_Ofilter(T_a,c_COMBS(T_a,tc_HOL_Obool,tc_HOL_Obool,c_COMBB(tc_HOL_Obool,tc_fun(tc_HOL_Obool,tc_HOL_Obool),T_a,c_fconj,V_Q_2),V_P_2),V_xs_2) ).

fof(fact_rev__filter,axiom,
    ! [V_xs_2,V_P_2,T_a] : c_List_Orev(T_a,c_List_Ofilter(T_a,V_P_2,V_xs_2)) = c_List_Ofilter(T_a,V_P_2,c_List_Orev(T_a,V_xs_2)) ).

fof(fact_distinct__filter,axiom,
    ! [V_P_2,V_xs_2,T_a] :
      ( c_List_Odistinct(T_a,V_xs_2)
     => c_List_Odistinct(T_a,c_List_Ofilter(T_a,V_P_2,V_xs_2)) ) ).

fof(fact_filter__append,axiom,
    ! [V_ys_2,V_xs_2,V_P_2,T_a] : c_List_Ofilter(T_a,V_P_2,hAPP(hAPP(c_List_Oappend(T_a),V_xs_2),V_ys_2)) = hAPP(hAPP(c_List_Oappend(T_a),c_List_Ofilter(T_a,V_P_2,V_xs_2)),c_List_Ofilter(T_a,V_P_2,V_ys_2)) ).

fof(fact_filter_Osimps_I1_J,axiom,
    ! [V_P_2,T_a] : c_List_Ofilter(T_a,V_P_2,c_List_Olist_ONil(T_a)) = c_List_Olist_ONil(T_a) ).

fof(fact_filter_Osimps_I2_J,axiom,
    ! [V_xs_2,T_a,V_x_2,V_P_2] :
      ( ( hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_Ofilter(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),c_List_Ofilter(T_a,V_P_2,V_xs_2)) )
      & ( ~ hBOOL(hAPP(V_P_2,V_x_2))
       => c_List_Ofilter(T_a,V_P_2,hAPP(hAPP(c_List_Olist_OCons(T_a),V_x_2),V_xs_2)) = c_List_Ofilter(T_a,V_P_2,V_xs_2) ) ) ).

fof(fact_transpose__max__length,axiom,
    ! [V_xs_2,T_a] : c_List_Ofoldr(tc_List_Olist(T_a),tc_Nat_Onat,c_COMBB(tc_Nat_Onat,tc_fun(tc_Nat_Onat,tc_Nat_Onat),tc_List_Olist(T_a),c_Orderings_Oord__class_Omax(tc_Nat_Onat),c_Nat_Osize__class_Osize(tc_List_Olist(T_a))),c_List_Otranspose(T_a,V_xs_2),c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) = hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(tc_List_Olist(T_a))),c_List_Ofilter(tc_List_Olist(T_a),c_COMBB(tc_HOL_Obool,tc_HOL_Obool,tc_List_Olist(T_a),c_fNot,hAPP(c_COMBC(tc_List_Olist(T_a),tc_List_Olist(T_a),tc_HOL_Obool,c_fequal),c_List_Olist_ONil(T_a))),V_xs_2)) ).

fof(fact_length__transpose,axiom,
    ! [V_xs_2,T_a] : hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(tc_List_Olist(T_a))),c_List_Otranspose(T_a,V_xs_2)) = c_List_Ofoldr(tc_List_Olist(T_a),tc_Nat_Onat,c_COMBB(tc_Nat_Onat,tc_fun(tc_Nat_Onat,tc_Nat_Onat),tc_List_Olist(T_a),c_Orderings_Oord__class_Omax(tc_Nat_Onat),c_Nat_Osize__class_Osize(tc_List_Olist(T_a))),V_xs_2,c_Groups_Ozero__class_Ozero(tc_Nat_Onat)) ).

fof(fact_transpose_Osimps_I1_J,axiom,
    ! [T_a] : c_List_Otranspose(T_a,c_List_Olist_ONil(tc_List_Olist(T_a))) = c_List_Olist_ONil(tc_List_Olist(T_a)) ).

fof(fact_transpose_Osimps_I2_J,axiom,
    ! [V_xss,T_a] : c_List_Otranspose(T_a,hAPP(hAPP(c_List_Olist_OCons(tc_List_Olist(T_a)),c_List_Olist_ONil(T_a)),V_xss)) = c_List_Otranspose(T_a,V_xss) ).

fof(fact_nth__nth__transpose__sorted,axiom,
    ! [V_j_2,V_i_2,V_xs_2,T_a] :
      ( c_List_Olinorder__class_Osorted(tc_Nat_Onat,c_List_Orev(tc_Nat_Onat,c_List_Omap(tc_List_Olist(T_a),tc_Nat_Onat,c_Nat_Osize__class_Osize(tc_List_Olist(T_a)),V_xs_2)))
     => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(tc_List_Olist(T_a))),c_List_Otranspose(T_a,V_xs_2))))
       => ( hBOOL(hAPP(c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_j_2),hAPP(c_Nat_Osize__class_Osize(tc_List_Olist(tc_List_Olist(T_a))),c_List_Ofilter(tc_List_Olist(T_a),c_COMBB(tc_Nat_Onat,tc_HOL_Obool,tc_List_Olist(T_a),c_Orderings_Oord__class_Oless(tc_Nat_Onat,V_i_2),c_Nat_Osize__class_Osize(tc_List_Olist(T_a))),V_xs_2))))
         => hAPP(c_List_Onth(T_a,hAPP(c_List_Onth(tc_List_Olist(T_a),c_List_Otranspose(T_a,V_xs_2)),V_i_2)),V_j_2) = hAPP(c_List_Onth(T_a,hAPP(c_List_Onth(tc_List_Olist(T_a),V_xs_2),V_j_2)),V_i_2) ) ) ) ).

%----Arity declarations (60)
fof(arity_HOL__Obool__Enum_Oenum,axiom,
    class_Enum_Oenum(tc_HOL_Obool) ).

fof(arity_fun__Enum_Oenum,axiom,
    ! [T_1,T_2] :
      ( ( class_Enum_Oenum(T_2)
        & class_Enum_Oenum(T_1) )
     => class_Enum_Oenum(tc_fun(T_2,T_1)) ) ).

fof(arity_fun__Orderings_Opreorder,axiom,
    ! [T_2,T_1] :
      ( class_Orderings_Opreorder(T_1)
     => class_Orderings_Opreorder(tc_fun(T_2,T_1)) ) ).

fof(arity_fun__Orderings_Oorder,axiom,
    ! [T_2,T_1] :
      ( class_Orderings_Oorder(T_1)
     => class_Orderings_Oorder(tc_fun(T_2,T_1)) ) ).

fof(arity_fun__Orderings_Oord,axiom,
    ! [T_2,T_1] :
      ( class_Orderings_Oord(T_1)
     => class_Orderings_Oord(tc_fun(T_2,T_1)) ) ).

fof(arity_fun__Groups_Ominus,axiom,
    ! [T_2,T_1] :
      ( class_Groups_Ominus(T_1)
     => class_Groups_Ominus(tc_fun(T_2,T_1)) ) ).

fof(arity_fun__HOL_Oequal,axiom,
    ! [T_1,T_2] :
      ( ( class_Enum_Oenum(T_2)
        & class_HOL_Oequal(T_1) )
     => class_HOL_Oequal(tc_fun(T_2,T_1)) ) ).

fof(arity_Int__Oint__Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
    class_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oordered__cancel__ab__semigroup__add,axiom,
    class_Groups_Oordered__cancel__ab__semigroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    class_Groups_Oordered__ab__semigroup__add__imp__le(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oordered__comm__monoid__add,axiom,
    class_Groups_Oordered__comm__monoid__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Olinordered__ab__group__add,axiom,
    class_Groups_Olinordered__ab__group__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ocancel__ab__semigroup__add,axiom,
    class_Groups_Ocancel__ab__semigroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oordered__ab__group__add,axiom,
    class_Groups_Oordered__ab__group__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ocancel__semigroup__add,axiom,
    class_Groups_Ocancel__semigroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Rings_Olinordered__semidom,axiom,
    class_Rings_Olinordered__semidom(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oab__semigroup__add,axiom,
    class_Groups_Oab__semigroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ocomm__monoid__add,axiom,
    class_Groups_Ocomm__monoid__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Rings_Olinordered__idom,axiom,
    class_Rings_Olinordered__idom(tc_Int_Oint) ).

fof(arity_Int__Oint__Rings_Ocomm__semiring__1,axiom,
    class_Rings_Ocomm__semiring__1(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Osemigroup__add,axiom,
    class_Groups_Osemigroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Nat_Osemiring__char__0,axiom,
    class_Nat_Osemiring__char__0(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Oab__group__add,axiom,
    class_Groups_Oab__group__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Orderings_Opreorder,axiom,
    class_Orderings_Opreorder(tc_Int_Oint) ).

fof(arity_Int__Oint__Orderings_Olinorder,axiom,
    class_Orderings_Olinorder(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Omonoid__add,axiom,
    class_Groups_Omonoid__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Rings_Osemiring__1,axiom,
    class_Rings_Osemiring__1(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ogroup__add,axiom,
    class_Groups_Ogroup__add(tc_Int_Oint) ).

fof(arity_Int__Oint__Orderings_Oorder,axiom,
    class_Orderings_Oorder(tc_Int_Oint) ).

fof(arity_Int__Oint__Orderings_Oord,axiom,
    class_Orderings_Oord(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ominus,axiom,
    class_Groups_Ominus(tc_Int_Oint) ).

fof(arity_Int__Oint__Groups_Ozero,axiom,
    class_Groups_Ozero(tc_Int_Oint) ).

fof(arity_Int__Oint__HOL_Oequal,axiom,
    class_HOL_Oequal(tc_Int_Oint) ).

fof(arity_Nat__Onat__Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
    class_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Oordered__cancel__ab__semigroup__add,axiom,
    class_Groups_Oordered__cancel__ab__semigroup__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    class_Groups_Oordered__ab__semigroup__add__imp__le(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Oordered__comm__monoid__add,axiom,
    class_Groups_Oordered__comm__monoid__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Ocancel__ab__semigroup__add,axiom,
    class_Groups_Ocancel__ab__semigroup__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Ocancel__semigroup__add,axiom,
    class_Groups_Ocancel__semigroup__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Rings_Olinordered__semidom,axiom,
    class_Rings_Olinordered__semidom(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Oab__semigroup__add,axiom,
    class_Groups_Oab__semigroup__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Ocomm__monoid__add,axiom,
    class_Groups_Ocomm__monoid__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Rings_Ocomm__semiring__1,axiom,
    class_Rings_Ocomm__semiring__1(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Osemigroup__add,axiom,
    class_Groups_Osemigroup__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Nat_Osemiring__char__0,axiom,
    class_Nat_Osemiring__char__0(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Orderings_Opreorder,axiom,
    class_Orderings_Opreorder(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Orderings_Olinorder,axiom,
    class_Orderings_Olinorder(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Omonoid__add,axiom,
    class_Groups_Omonoid__add(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Rings_Osemiring__1,axiom,
    class_Rings_Osemiring__1(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Orderings_Oorder,axiom,
    class_Orderings_Oorder(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Orderings_Oord,axiom,
    class_Orderings_Oord(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Ominus,axiom,
    class_Groups_Ominus(tc_Nat_Onat) ).

fof(arity_Nat__Onat__Groups_Ozero,axiom,
    class_Groups_Ozero(tc_Nat_Onat) ).

fof(arity_Nat__Onat__HOL_Oequal,axiom,
    class_HOL_Oequal(tc_Nat_Onat) ).

fof(arity_HOL__Obool__Orderings_Opreorder,axiom,
    class_Orderings_Opreorder(tc_HOL_Obool) ).

fof(arity_HOL__Obool__Orderings_Oorder,axiom,
    class_Orderings_Oorder(tc_HOL_Obool) ).

fof(arity_HOL__Obool__Orderings_Oord,axiom,
    class_Orderings_Oord(tc_HOL_Obool) ).

fof(arity_HOL__Obool__Groups_Ominus,axiom,
    class_Groups_Ominus(tc_HOL_Obool) ).

fof(arity_HOL__Obool__HOL_Oequal,axiom,
    class_HOL_Oequal(tc_HOL_Obool) ).

fof(arity_List__Olist__HOL_Oequal,axiom,
    ! [T_1] : class_HOL_Oequal(tc_List_Olist(T_1)) ).

%----Helper facts (15)
fof(help_c__COMBI__1,axiom,
    ! [V_P,T_a] : hAPP(c_COMBI(T_a),V_P) = V_P ).

fof(help_c__COMBK__1,axiom,
    ! [V_Q,V_P,T_b,T_a] : hAPP(c_COMBK(T_a,T_b,V_P),V_Q) = V_P ).

fof(help_c__COMBB__1,axiom,
    ! [V_R_2,V_Q_2,V_P_2,T_c,T_a,T_b] : hAPP(c_COMBB(T_b,T_a,T_c,V_P_2,V_Q_2),V_R_2) = hAPP(V_P_2,hAPP(V_Q_2,V_R_2)) ).

fof(help_c__COMBC__1,axiom,
    ! [V_R_2,V_Q_2,V_P_2,T_a,T_c,T_b] : hAPP(hAPP(c_COMBC(T_b,T_c,T_a,V_P_2),V_Q_2),V_R_2) = hAPP(hAPP(V_P_2,V_R_2),V_Q_2) ).

fof(help_c__COMBS__1,axiom,
    ! [V_R_2,V_Q_2,V_P_2,T_a,T_c,T_b] : hAPP(c_COMBS(T_b,T_c,T_a,V_P_2,V_Q_2),V_R_2) = hAPP(hAPP(V_P_2,V_R_2),hAPP(V_Q_2,V_R_2)) ).

fof(help_c__fequal__1,axiom,
    ! [V_y_2,V_x_2] :
      ( ~ hBOOL(hAPP(hAPP(c_fequal,V_x_2),V_y_2))
      | V_x_2 = V_y_2 ) ).

fof(help_c__fequal__2,axiom,
    ! [V_y_2,V_x_2] :
      ( V_x_2 != V_y_2
      | hBOOL(hAPP(hAPP(c_fequal,V_x_2),V_y_2)) ) ).

fof(help_c__fNot__1,axiom,
    ! [V_P_2] :
      ( ~ hBOOL(hAPP(c_fNot,V_P_2))
      | ~ hBOOL(V_P_2) ) ).

fof(help_c__fNot__2,axiom,
    ! [V_P_2] :
      ( ~ ~ hBOOL(V_P_2)
      | hBOOL(hAPP(c_fNot,V_P_2)) ) ).

fof(help_c__fconj__1,axiom,
    ! [V_Q_2,V_P_2] :
      ( ~ hBOOL(V_P_2)
      | ~ hBOOL(V_Q_2)
      | hBOOL(hAPP(hAPP(c_fconj,V_P_2),V_Q_2)) ) ).

fof(help_c__fconj__2,axiom,
    ! [V_Q_2,V_P_2] :
      ( ~ hBOOL(hAPP(hAPP(c_fconj,V_P_2),V_Q_2))
      | hBOOL(V_P_2) ) ).

fof(help_c__fconj__3,axiom,
    ! [V_Q_2,V_P_2] :
      ( ~ hBOOL(hAPP(hAPP(c_fconj,V_P_2),V_Q_2))
      | hBOOL(V_Q_2) ) ).

fof(help_c__fdisj__1,axiom,
    ! [V_Q_2,V_P_2] :
      ( ~ hBOOL(V_P_2)
      | hBOOL(hAPP(hAPP(c_fdisj,V_P_2),V_Q_2)) ) ).

fof(help_c__fdisj__2,axiom,
    ! [V_P_2,V_Q_2] :
      ( ~ hBOOL(V_Q_2)
      | hBOOL(hAPP(hAPP(c_fdisj,V_P_2),V_Q_2)) ) ).

fof(help_c__fdisj__3,axiom,
    ! [V_Q_2,V_P_2] :
      ( ~ hBOOL(hAPP(hAPP(c_fdisj,V_P_2),V_Q_2))
      | hBOOL(V_P_2)
      | hBOOL(V_Q_2) ) ).

%----Conjectures (2)
fof(conj_0,hypothesis,
    v_a != v_b ).

fof(conj_1,conjecture,
    ? [B_c] : c_List_Odistinct(tc_Arrow__Order__Mirabelle_Oalt,hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),v_a),hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),v_b),hAPP(hAPP(c_List_Olist_OCons(tc_Arrow__Order__Mirabelle_Oalt),B_c),c_List_Olist_ONil(tc_Arrow__Order__Mirabelle_Oalt))))) ).

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