TPTP Problem File: NUM928_5.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : NUM928_5 : TPTP v8.2.0. Released v6.0.0.
% Domain   : Number Theory
% Problem  : Sum of two squares line 26
% Version  : Especial.
% English  : 

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

% Status   : Theorem
% Rating   : 0.33 v7.4.0, 0.75 v7.1.0, 1.00 v6.4.0
% Syntax   : Number of formulae    :  168 (  37 unt;  44 typ;   0 def)
%            Number of atoms       :  236 ( 120 equ)
%            Maximal formula atoms :    4 (   1 avg)
%            Number of connectives :  118 (   6   ~;   1   |;   7   &)
%                                         (  16 <=>;  88  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   11 (   5 avg)
%            Maximal term depth    :    6 (   1 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :   27 (  18   >;   9   *;   0   +;   0  <<)
%            Number of predicates  :   26 (  25 usr;   0 prp; 1-3 aty)
%            Number of functors    :   17 (  17 usr;   5 con; 0-5 aty)
%            Number of variables   :  402 ( 361   !;   5   ?; 402   :)
%                                         (  36  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TF1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2011-12-13 16:22:39
%------------------------------------------------------------------------------
%----Should-be-implicit typings (4)
tff(ty_tc_HOL_Obool,type,
    bool: $tType ).

tff(ty_tc_Int_Oint,type,
    int: $tType ).

tff(ty_tc_fun,type,
    fun: ( $tType * $tType ) > $tType ).

tff(ty_tc_prod,type,
    product_prod: ( $tType * $tType ) > $tType ).

%----Explicit typings (40)
tff(sy_cl_Int_Onumber,type,
    number: 
      !>[A: $tType] : $o ).

tff(sy_cl_Rings_Oring,type,
    ring: 
      !>[A: $tType] : $o ).

tff(sy_cl_Groups_Ominus,type,
    cl_Groups_Ominus: 
      !>[A: $tType] : $o ).

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

tff(sy_cl_Rings_Osemiring,type,
    semiring: 
      !>[A: $tType] : $o ).

tff(sy_cl_Int_Onumber__ring,type,
    number_ring: 
      !>[A: $tType] : $o ).

tff(sy_cl_Int_Oring__char__0,type,
    ring_char_0: 
      !>[A: $tType] : $o ).

tff(sy_cl_Rings_Ocomm__ring,type,
    comm_ring: 
      !>[A: $tType] : $o ).

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

tff(sy_cl_Groups_Oab__group__add,type,
    ab_group_add: 
      !>[A: $tType] : $o ).

tff(sy_cl_Rings_Ocomm__semiring,type,
    comm_semiring: 
      !>[A: $tType] : $o ).

tff(sy_cl_Rings_Ocomm__semiring__1,type,
    comm_semiring_1: 
      !>[A: $tType] : $o ).

tff(sy_cl_Groups_Oab__semigroup__add,type,
    ab_semigroup_add: 
      !>[A: $tType] : $o ).

tff(sy_cl_Groups_Oab__semigroup__mult,type,
    ab_semigroup_mult: 
      !>[A: $tType] : $o ).

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

tff(sy_cl_Groups_Ocancel__semigroup__add,type,
    cancel_semigroup_add: 
      !>[A: $tType] : $o ).

tff(sy_cl_Groups_Ocancel__ab__semigroup__add,type,
    cancel146912293up_add: 
      !>[A: $tType] : $o ).

tff(sy_cl_Lattices_Oab__semigroup__idem__mult,type,
    ab_sem1668676832m_mult: 
      !>[A: $tType] : $o ).

tff(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
    semiri456707255roduct: 
      !>[A: $tType] : $o ).

tff(sy_c_Groups_Oabel__semigroup,type,
    abel_semigroup: 
      !>[A: $tType] : ( fun(A,fun(A,A)) > $o ) ).

tff(sy_c_Groups_Ocomm__monoid,type,
    comm_monoid: 
      !>[A: $tType] : ( ( fun(A,fun(A,A)) * A ) > $o ) ).

tff(sy_c_Groups_Ominus__class_Ominus,type,
    minus_minus: 
      !>[A: $tType] : ( ( A * A ) > A ) ).

tff(sy_c_Groups_Oplus__class_Oplus,type,
    plus_plus: 
      !>[A: $tType] : ( ( A * A ) > A ) ).

tff(sy_c_Groups_Osemigroup,type,
    semigroup: 
      !>[A: $tType] : ( fun(A,fun(A,A)) > $o ) ).

tff(sy_c_Groups_Otimes__class_Otimes,type,
    times_times: 
      !>[A: $tType] : ( ( A * A ) > A ) ).

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

tff(sy_c_Int_OMin,type,
    min: int ).

tff(sy_c_Int_Onumber__class_Onumber__of,type,
    number_number_of: 
      !>[A: $tType] : ( int > A ) ).

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

tff(sy_c_Lattices_Osemilattice,type,
    semilattice: 
      !>[A: $tType] : ( fun(A,fun(A,A)) > $o ) ).

tff(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B2: $tType] : ( ( A * B2 ) > product_prod(A,B2) ) ).

tff(sy_c_Product__Type_Oprod_Oprod__rec,type,
    product_prod_rec: 
      !>[A: $tType,B2: $tType,T: $tType] : ( ( fun(A,fun(B2,T)) * product_prod(A,B2) ) > T ) ).

tff(sy_c_TwoSquares__Mirabelle__poiayhyqls_Ois__sum2sq,type,
    twoSqu1567020053sum2sq: int > $o ).

tff(sy_c_TwoSquares__Mirabelle__poiayhyqls_Osum2sq,type,
    twoSqu196287499sum2sq: product_prod(int,int) > int ).

tff(sy_c_aa,type,
    aa: 
      !>[A: $tType,B2: $tType] : ( ( fun(A,B2) * A ) > B2 ) ).

tff(sy_c_fFalse,type,
    fFalse: bool ).

tff(sy_c_fTrue,type,
    fTrue: bool ).

tff(sy_c_pp,type,
    pp: bool > $o ).

tff(sy_v_x,type,
    x: int ).

tff(sy_v_y,type,
    y: int ).

%----Relevant facts (98)
tff(fact_0_mult__left__idem,axiom,
    ! [A: $tType] :
      ( ab_sem1668676832m_mult(A)
     => ! [B: A,A1: A] : times_times(A,A1,times_times(A,A1,B)) = times_times(A,A1,B) ) ).

tff(fact_1_times_Oidem,axiom,
    ! [A: $tType] :
      ( ab_sem1668676832m_mult(A)
     => ! [A1: A] : times_times(A,A1,A1) = A1 ) ).

tff(fact_2_mult__idem,axiom,
    ! [A: $tType] :
      ( ab_sem1668676832m_mult(A)
     => ! [X: A] : times_times(A,X,X) = X ) ).

tff(fact_3_comm__semiring__1__class_Onormalizing__semiring__rules_I7_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [B: A,A1: A] : times_times(A,A1,B) = times_times(A,B,A1) ) ).

tff(fact_4_comm__semiring__1__class_Onormalizing__semiring__rules_I19_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Ry: A,Rx: A,Lx: A] : times_times(A,Lx,times_times(A,Rx,Ry)) = times_times(A,Rx,times_times(A,Lx,Ry)) ) ).

tff(fact_5_comm__semiring__1__class_Onormalizing__semiring__rules_I18_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Ry: A,Rx: A,Lx: A] : times_times(A,Lx,times_times(A,Rx,Ry)) = times_times(A,times_times(A,Lx,Rx),Ry) ) ).

tff(fact_6_ab__semigroup__mult__class_Omult__ac_I1_J,axiom,
    ! [A: $tType] :
      ( ab_semigroup_mult(A)
     => ! [C: A,B: A,A1: A] : times_times(A,times_times(A,A1,B),C) = times_times(A,A1,times_times(A,B,C)) ) ).

tff(fact_7_comm__semiring__1__class_Onormalizing__semiring__rules_I17_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Rx: A,Ly: A,Lx: A] : times_times(A,times_times(A,Lx,Ly),Rx) = times_times(A,Lx,times_times(A,Ly,Rx)) ) ).

tff(fact_8_comm__semiring__1__class_Onormalizing__semiring__rules_I16_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Rx: A,Ly: A,Lx: A] : times_times(A,times_times(A,Lx,Ly),Rx) = times_times(A,times_times(A,Lx,Rx),Ly) ) ).

tff(fact_9_comm__semiring__1__class_Onormalizing__semiring__rules_I14_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Ry: A,Rx: A,Ly: A,Lx: A] : times_times(A,times_times(A,Lx,Ly),times_times(A,Rx,Ry)) = times_times(A,Lx,times_times(A,Ly,times_times(A,Rx,Ry))) ) ).

tff(fact_10_comm__semiring__1__class_Onormalizing__semiring__rules_I15_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Ry: A,Rx: A,Ly: A,Lx: A] : times_times(A,times_times(A,Lx,Ly),times_times(A,Rx,Ry)) = times_times(A,Rx,times_times(A,times_times(A,Lx,Ly),Ry)) ) ).

tff(fact_11_comm__semiring__1__class_Onormalizing__semiring__rules_I13_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Ry: A,Rx: A,Ly: A,Lx: A] : times_times(A,times_times(A,Lx,Ly),times_times(A,Rx,Ry)) = times_times(A,times_times(A,Lx,Rx),times_times(A,Ly,Ry)) ) ).

tff(fact_12_semigroup_Oassoc,axiom,
    ! [A: $tType,C2: A,B1: A,A2: A,F: fun(A,fun(A,A))] :
      ( semigroup(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,aa(A,A,aa(A,fun(A,A),F,A2),B1)),C2) = aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,B1),C2)) ) ) ).

tff(fact_13_comm__monoid_Ocomm__neutral,axiom,
    ! [A: $tType,A2: A,Z3: A,F: fun(A,fun(A,A))] :
      ( comm_monoid(A,F,Z3)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),Z3) = A2 ) ) ).

tff(fact_14_is__sum2sq__def,axiom,
    ! [Xa: int] :
      ( twoSqu1567020053sum2sq(Xa)
    <=> ? [A3: int,B3: int] : twoSqu196287499sum2sq(product_Pair(int,int,A3,B3)) = Xa ) ).

tff(fact_15_mult__number__of__left,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [Z: A,W: int,V: int] : times_times(A,number_number_of(A,V),times_times(A,number_number_of(A,W),Z)) = times_times(A,number_number_of(A,times_times(int,V,W)),Z) ) ).

tff(fact_16_arith__simps_I32_J,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,V: int] : times_times(A,number_number_of(A,V),number_number_of(A,W)) = number_number_of(A,times_times(int,V,W)) ) ).

tff(fact_17_of__int__mult,axiom,
    ! [A: $tType] :
      ( ring_1(A)
     => ! [Z: int,W: int] : ring_1_of_int(A,times_times(int,W,Z)) = times_times(A,ring_1_of_int(A,W),ring_1_of_int(A,Z)) ) ).

tff(fact_18_number__of__mult,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,V: int] : number_number_of(A,times_times(int,V,W)) = times_times(A,number_number_of(A,V),number_number_of(A,W)) ) ).

tff(fact_19_semilattice_Oidem,axiom,
    ! [A: $tType,A2: A,F: fun(A,fun(A,A))] :
      ( semilattice(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),A2) = A2 ) ) ).

tff(fact_20_abel__semigroup_Ocommute,axiom,
    ! [A: $tType,B1: A,A2: A,F: fun(A,fun(A,A))] :
      ( abel_semigroup(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),B1) = aa(A,A,aa(A,fun(A,A),F,B1),A2) ) ) ).

tff(fact_21_eq__number__of,axiom,
    ! [A: $tType] :
      ( ( number_ring(A)
        & ring_char_0(A) )
     => ! [Ya: int,Xa: int] :
          ( ( number_number_of(A,Xa) = number_number_of(A,Ya) )
        <=> ( Xa = Ya ) ) ) ).

tff(fact_22_of__int__eq__iff,axiom,
    ! [A: $tType] :
      ( ring_char_0(A)
     => ! [Z3: int,W1: int] :
          ( ( ring_1_of_int(A,W1) = ring_1_of_int(A,Z3) )
        <=> ( W1 = Z3 ) ) ) ).

tff(fact_23_of__int__number__of__eq,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [V: int] : ring_1_of_int(A,number_number_of(int,V)) = number_number_of(A,V) ) ).

tff(fact_24_number__of__reorient,axiom,
    ! [A: $tType] :
      ( number(A)
     => ! [Xa: A,W1: int] :
          ( ( number_number_of(A,W1) = Xa )
        <=> ( Xa = number_number_of(A,W1) ) ) ) ).

tff(fact_25_number__of__eq,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [K: int] : number_number_of(A,K) = ring_1_of_int(A,K) ) ).

tff(fact_26_times__numeral__code_I5_J,axiom,
    ! [W: int,V: int] : times_times(int,number_number_of(int,V),number_number_of(int,W)) = number_number_of(int,times_times(int,V,W)) ).

tff(fact_27_abel__semigroup_Oleft__commute,axiom,
    ! [A: $tType,C2: A,A2: A,B1: A,F: fun(A,fun(A,A))] :
      ( abel_semigroup(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,B1),aa(A,A,aa(A,fun(A,A),F,A2),C2)) = aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,B1),C2)) ) ) ).

tff(fact_28_semilattice_Oleft__idem,axiom,
    ! [A: $tType,B1: A,A2: A,F: fun(A,fun(A,A))] :
      ( semilattice(A,F)
     => ( aa(A,A,aa(A,fun(A,A),F,A2),aa(A,A,aa(A,fun(A,A),F,A2),B1)) = aa(A,A,aa(A,fun(A,A),F,A2),B1) ) ) ).

tff(fact_29_Pair__eq,axiom,
    ! [A: $tType,B2: $tType,B6: B2,A6: A,B1: B2,A2: A] :
      ( ( product_Pair(A,B2,A2,B1) = product_Pair(A,B2,A6,B6) )
    <=> ( ( A2 = A6 )
        & ( B1 = B6 ) ) ) ).

tff(fact_30_split__paired__All,axiom,
    ! [A: $tType,B2: $tType,P: fun(product_prod(A,B2),bool)] :
      ( ! [X1: product_prod(A,B2)] : pp(aa(product_prod(A,B2),bool,P,X1))
    <=> ! [A3: A,B3: B2] : pp(aa(product_prod(A,B2),bool,P,product_Pair(A,B2,A3,B3))) ) ).

tff(fact_31_Pair__inject,axiom,
    ! [A: $tType,B2: $tType,B5: B2,A5: A,B: B2,A1: A] :
      ( ( product_Pair(A,B2,A1,B) = product_Pair(A,B2,A5,B5) )
     => ~ ( ( A1 = A5 )
         => ( B != B5 ) ) ) ).

tff(fact_32_of__int__m1,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ( ring_1_of_int(A,number_number_of(int,min)) = number_number_of(A,min) ) ) ).

tff(fact_33_right__distrib__number__of,axiom,
    ! [B2: $tType] :
      ( ( number(B2)
        & semiring(B2) )
     => ! [C: B2,B: B2,V: int] : times_times(B2,number_number_of(B2,V),plus_plus(B2,B,C)) = plus_plus(B2,times_times(B2,number_number_of(B2,V),B),times_times(B2,number_number_of(B2,V),C)) ) ).

tff(fact_34_left__distrib__number__of,axiom,
    ! [B2: $tType] :
      ( ( number(B2)
        & semiring(B2) )
     => ! [V: int,B: B2,A1: B2] : times_times(B2,plus_plus(B2,A1,B),number_number_of(B2,V)) = plus_plus(B2,times_times(B2,A1,number_number_of(B2,V)),times_times(B2,B,number_number_of(B2,V))) ) ).

tff(fact_35_right__diff__distrib__number__of,axiom,
    ! [B2: $tType] :
      ( ( number(B2)
        & ring(B2) )
     => ! [C: B2,B: B2,V: int] : times_times(B2,number_number_of(B2,V),minus_minus(B2,B,C)) = minus_minus(B2,times_times(B2,number_number_of(B2,V),B),times_times(B2,number_number_of(B2,V),C)) ) ).

tff(fact_36_add__right__cancel,axiom,
    ! [A: $tType] :
      ( cancel_semigroup_add(A)
     => ! [C2: A,A2: A,B1: A] :
          ( ( plus_plus(A,B1,A2) = plus_plus(A,C2,A2) )
        <=> ( B1 = C2 ) ) ) ).

tff(fact_37_add__left__cancel,axiom,
    ! [A: $tType] :
      ( cancel_semigroup_add(A)
     => ! [C2: A,B1: A,A2: A] :
          ( ( plus_plus(A,A2,B1) = plus_plus(A,A2,C2) )
        <=> ( B1 = C2 ) ) ) ).

tff(fact_38_add__number__of__left,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [Z: A,W: int,V: int] : plus_plus(A,number_number_of(A,V),plus_plus(A,number_number_of(A,W),Z)) = plus_plus(A,number_number_of(A,plus_plus(int,V,W)),Z) ) ).

tff(fact_39_add__number__of__eq,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,V: int] : plus_plus(A,number_number_of(A,V),number_number_of(A,W)) = number_number_of(A,plus_plus(int,V,W)) ) ).

tff(fact_40_of__int__add,axiom,
    ! [A: $tType] :
      ( ring_1(A)
     => ! [Z: int,W: int] : ring_1_of_int(A,plus_plus(int,W,Z)) = plus_plus(A,ring_1_of_int(A,W),ring_1_of_int(A,Z)) ) ).

tff(fact_41_of__int__diff,axiom,
    ! [A: $tType] :
      ( ring_1(A)
     => ! [Z: int,W: int] : ring_1_of_int(A,minus_minus(int,W,Z)) = minus_minus(A,ring_1_of_int(A,W),ring_1_of_int(A,Z)) ) ).

tff(fact_42_left__diff__distrib__number__of,axiom,
    ! [B2: $tType] :
      ( ( number(B2)
        & ring(B2) )
     => ! [V: int,B: B2,A1: B2] : times_times(B2,minus_minus(B2,A1,B),number_number_of(B2,V)) = minus_minus(B2,times_times(B2,A1,number_number_of(B2,V)),times_times(B2,B,number_number_of(B2,V))) ) ).

tff(fact_43_add__number__of__diff1,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [C: A,W: int,V: int] : plus_plus(A,number_number_of(A,V),minus_minus(A,number_number_of(A,W),C)) = minus_minus(A,number_number_of(A,plus_plus(int,V,W)),C) ) ).

tff(fact_44_plus__numeral__code_I9_J,axiom,
    ! [W: int,V: int] : plus_plus(int,number_number_of(int,V),number_number_of(int,W)) = number_number_of(int,plus_plus(int,V,W)) ).

tff(fact_45_number__of__diff,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,V: int] : number_number_of(A,minus_minus(int,V,W)) = minus_minus(A,number_number_of(A,V),number_number_of(A,W)) ) ).

tff(fact_46_number__of__add,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,V: int] : number_number_of(A,plus_plus(int,V,W)) = plus_plus(A,number_number_of(A,V),number_number_of(A,W)) ) ).

tff(fact_47_int__number__of__def,axiom,
    ! [W: int] : number_number_of(int,W) = ring_1_of_int(int,W) ).

tff(fact_48_number__of__is__id,axiom,
    ! [K: int] : number_number_of(int,K) = K ).

tff(fact_49_diff__eq__diff__eq,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [D1: A,C2: A,B1: A,A2: A] :
          ( ( minus_minus(A,A2,B1) = minus_minus(A,C2,D1) )
         => ( ( A2 = B1 )
          <=> ( C2 = D1 ) ) ) ) ).

tff(fact_50_add__right__imp__eq,axiom,
    ! [A: $tType] :
      ( cancel_semigroup_add(A)
     => ! [C: A,A1: A,B: A] :
          ( ( plus_plus(A,B,A1) = plus_plus(A,C,A1) )
         => ( B = C ) ) ) ).

tff(fact_51_add__imp__eq,axiom,
    ! [A: $tType] :
      ( cancel146912293up_add(A)
     => ! [C: A,B: A,A1: A] :
          ( ( plus_plus(A,A1,B) = plus_plus(A,A1,C) )
         => ( B = C ) ) ) ).

tff(fact_52_add__left__imp__eq,axiom,
    ! [A: $tType] :
      ( cancel_semigroup_add(A)
     => ! [C: A,B: A,A1: A] :
          ( ( plus_plus(A,A1,B) = plus_plus(A,A1,C) )
         => ( B = C ) ) ) ).

tff(fact_53_minus__apply,axiom,
    ! [A: $tType,B2: $tType] :
      ( cl_Groups_Ominus(A)
     => ! [Xa: B2,B4: fun(B2,A),A4: fun(B2,A)] : aa(B2,A,minus_minus(fun(B2,A),A4,B4),Xa) = minus_minus(A,aa(B2,A,A4,Xa),aa(B2,A,B4,Xa)) ) ).

tff(fact_54_comm__semiring__1__class_Onormalizing__semiring__rules_I20_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [D: A,C: A,B: A,A1: A] : plus_plus(A,plus_plus(A,A1,B),plus_plus(A,C,D)) = plus_plus(A,plus_plus(A,A1,C),plus_plus(A,B,D)) ) ).

tff(fact_55_comm__semiring__1__class_Onormalizing__semiring__rules_I23_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [C: A,B: A,A1: A] : plus_plus(A,plus_plus(A,A1,B),C) = plus_plus(A,plus_plus(A,A1,C),B) ) ).

tff(fact_56_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
    ! [A: $tType] :
      ( ab_semigroup_add(A)
     => ! [C: A,B: A,A1: A] : plus_plus(A,plus_plus(A,A1,B),C) = plus_plus(A,A1,plus_plus(A,B,C)) ) ).

tff(fact_57_comm__semiring__1__class_Onormalizing__semiring__rules_I21_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [C: A,B: A,A1: A] : plus_plus(A,plus_plus(A,A1,B),C) = plus_plus(A,A1,plus_plus(A,B,C)) ) ).

tff(fact_58_add__diff__cancel,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [B: A,A1: A] : minus_minus(A,plus_plus(A,A1,B),B) = A1 ) ).

tff(fact_59_diff__add__cancel,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [B: A,A1: A] : plus_plus(A,minus_minus(A,A1,B),B) = A1 ) ).

tff(fact_60_comm__semiring__1__class_Onormalizing__semiring__rules_I25_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [D: A,C: A,A1: A] : plus_plus(A,A1,plus_plus(A,C,D)) = plus_plus(A,plus_plus(A,A1,C),D) ) ).

tff(fact_61_comm__semiring__1__class_Onormalizing__semiring__rules_I22_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [D: A,C: A,A1: A] : plus_plus(A,A1,plus_plus(A,C,D)) = plus_plus(A,C,plus_plus(A,A1,D)) ) ).

tff(fact_62_comm__semiring__1__class_Onormalizing__semiring__rules_I24_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [C: A,A1: A] : plus_plus(A,A1,C) = plus_plus(A,C,A1) ) ).

tff(fact_63_fun__diff__def,axiom,
    ! [B2: $tType,A: $tType] :
      ( cl_Groups_Ominus(B2)
     => ! [B4: fun(A,B2),A4: fun(A,B2),X3: A] : aa(A,B2,minus_minus(fun(A,B2),A4,B4),X3) = minus_minus(B2,aa(A,B2,A4,X3),aa(A,B2,B4,X3)) ) ).

tff(fact_64_crossproduct__eq,axiom,
    ! [A: $tType] :
      ( semiri456707255roduct(A)
     => ! [Z3: A,Xa: A,Ya: A,W1: A] :
          ( ( plus_plus(A,times_times(A,W1,Ya),times_times(A,Xa,Z3)) = plus_plus(A,times_times(A,W1,Z3),times_times(A,Xa,Ya)) )
        <=> ( ( W1 = Xa )
            | ( Ya = Z3 ) ) ) ) ).

tff(fact_65_comm__semiring__1__class_Onormalizing__semiring__rules_I1_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [B: A,M: A,A1: A] : plus_plus(A,times_times(A,A1,M),times_times(A,B,M)) = times_times(A,plus_plus(A,A1,B),M) ) ).

tff(fact_66_comm__semiring__1__class_Onormalizing__semiring__rules_I8_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [C: A,B: A,A1: A] : times_times(A,plus_plus(A,A1,B),C) = plus_plus(A,times_times(A,A1,C),times_times(A,B,C)) ) ).

tff(fact_67_crossproduct__noteq,axiom,
    ! [A: $tType] :
      ( semiri456707255roduct(A)
     => ! [D1: A,C2: A,B1: A,A2: A] :
          ( ( ( A2 != B1 )
            & ( C2 != D1 ) )
        <=> ( plus_plus(A,times_times(A,A2,C2),times_times(A,B1,D1)) != plus_plus(A,times_times(A,A2,D1),times_times(A,B1,C2)) ) ) ) ).

tff(fact_68_comm__semiring__1__class_Onormalizing__semiring__rules_I34_J,axiom,
    ! [A: $tType] :
      ( comm_semiring_1(A)
     => ! [Z: A,Y: A,X: A] : times_times(A,X,plus_plus(A,Y,Z)) = plus_plus(A,times_times(A,X,Y),times_times(A,X,Z)) ) ).

tff(fact_69_int__distrib_I3_J,axiom,
    ! [W: int,Z2: int,Z1: int] : times_times(int,minus_minus(int,Z1,Z2),W) = minus_minus(int,times_times(int,Z1,W),times_times(int,Z2,W)) ).

tff(fact_70_int__distrib_I4_J,axiom,
    ! [Z2: int,Z1: int,W: int] : times_times(int,W,minus_minus(int,Z1,Z2)) = minus_minus(int,times_times(int,W,Z1),times_times(int,W,Z2)) ).

tff(fact_71_int__distrib_I1_J,axiom,
    ! [W: int,Z2: int,Z1: int] : times_times(int,plus_plus(int,Z1,Z2),W) = plus_plus(int,times_times(int,Z1,W),times_times(int,Z2,W)) ).

tff(fact_72_int__distrib_I2_J,axiom,
    ! [Z2: int,Z1: int,W: int] : times_times(int,W,plus_plus(int,Z1,Z2)) = plus_plus(int,times_times(int,W,Z1),times_times(int,W,Z2)) ).

tff(fact_73_ext,axiom,
    ! [B2: $tType,A: $tType,G: fun(A,B2),F: fun(A,B2)] :
      ( ! [X2: A] : aa(A,B2,F,X2) = aa(A,B2,G,X2)
     => ( F = G ) ) ).

tff(fact_74_mult__sum2sq,axiom,
    ! [Q: int,P1: int,B: int,A1: int] : times_times(int,twoSqu196287499sum2sq(product_Pair(int,int,A1,B)),twoSqu196287499sum2sq(product_Pair(int,int,P1,Q))) = twoSqu196287499sum2sq(product_Pair(int,int,plus_plus(int,times_times(int,A1,P1),times_times(int,B,Q)),minus_minus(int,times_times(int,A1,Q),times_times(int,B,P1)))) ).

tff(fact_75_split__paired__Ex,axiom,
    ! [A: $tType,B2: $tType,P: fun(product_prod(A,B2),bool)] :
      ( ? [X1: product_prod(A,B2)] : pp(aa(product_prod(A,B2),bool,P,X1))
    <=> ? [A3: A,B3: B2] : pp(aa(product_prod(A,B2),bool,P,product_Pair(A,B2,A3,B3))) ) ).

tff(fact_76_eq__add__iff1,axiom,
    ! [A: $tType] :
      ( ring(A)
     => ! [D1: A,B1: A,C2: A,E1: A,A2: A] :
          ( ( plus_plus(A,times_times(A,A2,E1),C2) = plus_plus(A,times_times(A,B1,E1),D1) )
        <=> ( plus_plus(A,times_times(A,minus_minus(A,A2,B1),E1),C2) = D1 ) ) ) ).

tff(fact_77_eq__add__iff2,axiom,
    ! [A: $tType] :
      ( ring(A)
     => ! [D1: A,B1: A,C2: A,E1: A,A2: A] :
          ( ( plus_plus(A,times_times(A,A2,E1),C2) = plus_plus(A,times_times(A,B1,E1),D1) )
        <=> ( C2 = plus_plus(A,times_times(A,minus_minus(A,B1,A2),E1),D1) ) ) ) ).

tff(fact_78_mult__diff__mult,axiom,
    ! [A: $tType] :
      ( ring(A)
     => ! [B: A,A1: A,Y: A,X: A] : minus_minus(A,times_times(A,X,Y),times_times(A,A1,B)) = plus_plus(A,times_times(A,X,minus_minus(A,Y,B)),times_times(A,minus_minus(A,X,A1),B)) ) ).

tff(fact_79_square__diff__square__factored,axiom,
    ! [A: $tType] :
      ( comm_ring(A)
     => ! [Y: A,X: A] : minus_minus(A,times_times(A,X,X),times_times(A,Y,Y)) = times_times(A,plus_plus(A,X,Y),minus_minus(A,X,Y)) ) ).

tff(fact_80_combine__common__factor,axiom,
    ! [A: $tType] :
      ( semiring(A)
     => ! [C: A,B: A,E: A,A1: A] : plus_plus(A,times_times(A,A1,E),plus_plus(A,times_times(A,B,E),C)) = plus_plus(A,times_times(A,plus_plus(A,A1,B),E),C) ) ).

tff(fact_81_comm__semiring__class_Odistrib,axiom,
    ! [A: $tType] :
      ( comm_semiring(A)
     => ! [C: A,B: A,A1: A] : times_times(A,plus_plus(A,A1,B),C) = plus_plus(A,times_times(A,A1,C),times_times(A,B,C)) ) ).

tff(fact_82_add__diff__add,axiom,
    ! [A: $tType] :
      ( ab_group_add(A)
     => ! [D: A,B: A,C: A,A1: A] : minus_minus(A,plus_plus(A,A1,C),plus_plus(A,B,D)) = plus_plus(A,minus_minus(A,A1,B),minus_minus(A,C,D)) ) ).

tff(fact_83_xzgcda__linear__aux1,axiom,
    ! [N: int,D: int,C: int,M: int,B: int,R: int,A1: int] : plus_plus(int,times_times(int,minus_minus(int,A1,times_times(int,R,B)),M),times_times(int,minus_minus(int,C,times_times(int,R,D)),N)) = minus_minus(int,plus_plus(int,times_times(int,A1,M),times_times(int,C,N)),times_times(int,R,plus_plus(int,times_times(int,B,M),times_times(int,D,N)))) ).

tff(fact_84_prod_Orecs,axiom,
    ! [B2: $tType,A: $tType,C1: $tType,B1: C1,A2: B2,F1: fun(B2,fun(C1,A))] : product_prod_rec(B2,C1,A,F1,product_Pair(B2,C1,A2,B1)) = aa(C1,A,aa(B2,fun(C1,A),F1,A2),B1) ).

tff(fact_85_Int2_Oaux1,axiom,
    ! [C: int,B: int,A1: int] :
      ( ( minus_minus(int,A1,B) = C )
     => ( A1 = plus_plus(int,C,B) ) ) ).

tff(fact_86_add__number__of__diff2,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int,C: A,V: int] : plus_plus(A,number_number_of(A,V),minus_minus(A,C,number_number_of(A,W))) = plus_plus(A,number_number_of(A,plus_plus(int,V,uminus_uminus(int,W))),C) ) ).

tff(fact_87_neg__equal__iff__equal,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [B1: A,A2: A] :
          ( ( uminus_uminus(A,A2) = uminus_uminus(A,B1) )
        <=> ( A2 = B1 ) ) ) ).

tff(fact_88_compl__eq__compl__iff,axiom,
    ! [A: $tType] :
      ( boolean_algebra(A)
     => ! [Ya: A,Xa: A] :
          ( ( uminus_uminus(A,Xa) = uminus_uminus(A,Ya) )
        <=> ( Xa = Ya ) ) ) ).

tff(fact_89_minus__mult__minus,axiom,
    ! [A: $tType] :
      ( ring(A)
     => ! [B: A,A1: A] : times_times(A,uminus_uminus(A,A1),uminus_uminus(A,B)) = times_times(A,A1,B) ) ).

tff(fact_90_minus__add__distrib,axiom,
    ! [A: $tType] :
      ( ab_group_add(A)
     => ! [B: A,A1: A] : uminus_uminus(A,plus_plus(A,A1,B)) = plus_plus(A,uminus_uminus(A,A1),uminus_uminus(A,B)) ) ).

tff(fact_91_minus__diff__eq,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [B: A,A1: A] : uminus_uminus(A,minus_minus(A,A1,B)) = minus_minus(A,B,A1) ) ).

tff(fact_92_diff__minus__eq__add,axiom,
    ! [A: $tType] :
      ( group_add(A)
     => ! [B: A,A1: A] : minus_minus(A,A1,uminus_uminus(A,B)) = plus_plus(A,A1,B) ) ).

tff(fact_93_arith__simps_I30_J,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [W: int] : uminus_uminus(A,number_number_of(A,W)) = number_number_of(A,uminus_uminus(int,W)) ) ).

tff(fact_94_diff__int__def__symmetric,axiom,
    ! [W: int,Z: int] : plus_plus(int,Z,uminus_uminus(int,W)) = minus_minus(int,Z,W) ).

tff(fact_95_mult__Min,axiom,
    ! [K: int] : times_times(int,min,K) = uminus_uminus(int,K) ).

tff(fact_96_of__int__minus,axiom,
    ! [A: $tType] :
      ( ring_1(A)
     => ! [Z: int] : ring_1_of_int(A,uminus_uminus(int,Z)) = uminus_uminus(A,ring_1_of_int(A,Z)) ) ).

tff(fact_97_mult__minus1__right,axiom,
    ! [A: $tType] :
      ( number_ring(A)
     => ! [Z: A] : times_times(A,Z,number_number_of(A,min)) = uminus_uminus(A,Z) ) ).

%----Arities (21)
tff(arity_fun___Lattices_Oboolean__algebra,axiom,
    ! [T_1: $tType,T_2: $tType] :
      ( boolean_algebra(T_2)
     => boolean_algebra(fun(T_1,T_2)) ) ).

tff(arity_fun___Groups_Ominus,axiom,
    ! [T_1: $tType,T_2: $tType] :
      ( cl_Groups_Ominus(T_2)
     => cl_Groups_Ominus(fun(T_1,T_2)) ) ).

tff(arity_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
    semiri456707255roduct(int) ).

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

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

tff(arity_Int_Oint___Groups_Oab__semigroup__mult,axiom,
    ab_semigroup_mult(int) ).

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

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

tff(arity_Int_Oint___Rings_Ocomm__semiring,axiom,
    comm_semiring(int) ).

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

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

tff(arity_Int_Oint___Rings_Ocomm__ring,axiom,
    comm_ring(int) ).

tff(arity_Int_Oint___Int_Oring__char__0,axiom,
    ring_char_0(int) ).

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

tff(arity_Int_Oint___Rings_Osemiring,axiom,
    semiring(int) ).

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

tff(arity_Int_Oint___Groups_Ominus,axiom,
    cl_Groups_Ominus(int) ).

tff(arity_Int_Oint___Rings_Oring,axiom,
    ring(int) ).

tff(arity_Int_Oint___Int_Onumber,axiom,
    number(int) ).

tff(arity_HOL_Obool___Lattices_Oboolean__algebra,axiom,
    boolean_algebra(bool) ).

tff(arity_HOL_Obool___Groups_Ominus,axiom,
    cl_Groups_Ominus(bool) ).

%----Helper facts (2)
tff(help_pp_1_1_U,axiom,
    ~ pp(fFalse) ).

tff(help_pp_2_1_U,axiom,
    pp(fTrue) ).

%----Conjectures (3)
tff(conj_0,hypothesis,
    twoSqu1567020053sum2sq(x) ).

tff(conj_1,hypothesis,
    twoSqu1567020053sum2sq(y) ).

tff(conj_2,conjecture,
    twoSqu1567020053sum2sq(times_times(int,x,y)) ).

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