TPTP Problem File: COM035_5.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : COM035_5 : TPTP v9.0.0. Released v6.0.0.
% Domain : Number Theory
% Problem : Quantifier elimination for Presburger arithmetic line 59
% Version : Especial.
% English :
% Refs : [BN10] Boehme & Nipkow (2010), Sledgehammer: Judgement Day
% : [Nip08] Nipkow (2008), Linear Quantifier Elimination
% : [Bla13] Blanchette (2011), Email to Geoff Sutcliffe
% Source : [Bla13]
% Names : qe_59 [Bla13]
% Status : Theorem
% Rating : 0.00 v7.5.0, 0.33 v7.4.0, 0.25 v7.1.0, 0.33 v6.4.0
% Syntax : Number of formulae : 184 ( 56 unt; 49 typ; 0 def)
% Number of atoms : 247 ( 129 equ)
% Maximal formula atoms : 4 ( 1 avg)
% Number of connectives : 120 ( 8 ~; 0 |; 7 &)
% ( 21 <=>; 84 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 4 avg)
% Maximal term depth : 7 ( 1 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 23 ( 15 >; 8 *; 0 +; 0 <<)
% Number of predicates : 21 ( 20 usr; 0 prp; 1-2 aty)
% Number of functors : 25 ( 25 usr; 10 con; 0-4 aty)
% Number of variables : 289 ( 261 !; 0 ?; 289 :)
% ( 28 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TF1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2011-12-13 16:16:39
%------------------------------------------------------------------------------
%----Should-be-implicit typings (6)
tff(ty_tc_HOL_Obool,type,
bool: $tType ).
tff(ty_tc_Int_Oint,type,
int: $tType ).
tff(ty_tc_List_Olist,type,
list: $tType > $tType ).
tff(ty_tc_Nat_Onat,type,
nat: $tType ).
tff(ty_tc_PresArith_Oatom,type,
atom: $tType ).
tff(ty_tc_fun,type,
fun: ( $tType * $tType ) > $tType ).
%----Explicit typings (43)
tff(sy_cl_Groups_Oone,type,
one:
!>[A: $tType] : $o ).
tff(sy_cl_Rings_Oring,type,
ring:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Oplus,type,
cl_Groups_Oplus:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Ozero,type,
zero:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Ouminus,type,
uminus:
!>[A: $tType] : $o ).
tff(sy_cl_Divides_Oring__div,type,
ring_div:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Ogroup__add,type,
group_add:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Omonoid__add,type,
monoid_add:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Oab__group__add,type,
ab_group_add:
!>[A: $tType] : $o ).
tff(sy_cl_Divides_Osemiring__div,type,
semiring_div:
!>[A: $tType] : $o ).
tff(sy_cl_Rings_Ocomm__semiring__1,type,
comm_semiring_1:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Ocomm__monoid__add,type,
comm_monoid_add:
!>[A: $tType] : $o ).
tff(sy_cl_Groups_Oab__semigroup__add,type,
ab_semigroup_add:
!>[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_Groups_Olinordered__ab__group__add,type,
linord219039673up_add:
!>[A: $tType] : $o ).
tff(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
semiri456707255roduct:
!>[A: $tType] : $o ).
tff(sy_c_Divides_Odiv__class_Omod,type,
div_mod:
!>[A: $tType] : ( ( A * A ) > A ) ).
tff(sy_c_Groups_Oone__class_Oone,type,
one_one:
!>[A: $tType] : A ).
tff(sy_c_Groups_Oplus__class_Oplus,type,
plus_plus:
!>[A: $tType] : ( ( A * A ) > A ) ).
tff(sy_c_Groups_Ouminus__class_Ouminus,type,
uminus_uminus:
!>[A: $tType] : ( A > A ) ).
tff(sy_c_Groups_Ozero__class_Ozero,type,
zero_zero:
!>[A: $tType] : A ).
tff(sy_c_ListVector_Oiprod,type,
iprod:
!>[A: $tType] : ( ( list(A) * list(A) ) > A ) ).
tff(sy_c_List_Olist_OCons,type,
cons:
!>[A: $tType] : ( ( A * list(A) ) > list(A) ) ).
tff(sy_c_Nat_Osize__class_Osize,type,
size_size:
!>[A: $tType] : ( A > nat ) ).
tff(sy_c_Nat__Transfer_Ois__nat,type,
nat_is_nat: int > $o ).
tff(sy_c_PresArith_Oatom_ODvd,type,
dvd: ( int * int * list(int) ) > atom ).
tff(sy_c_PresArith_Oatom_Oatom__size,type,
atom_size: atom > nat ).
tff(sy_c_PresArith_Odivisor,type,
divisor: atom > int ).
tff(sy_c_PresArith_Ohd__coeff,type,
hd_coeff: atom > 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_a,type,
a: atom ).
tff(sy_v_d____,type,
d: int ).
tff(sy_v_e,type,
e: list(int) ).
tff(sy_v_i,type,
i: int ).
tff(sy_v_j,type,
j: int ).
tff(sy_v_ks_H____,type,
ks1: list(int) ).
tff(sy_v_ks____,type,
ks: list(int) ).
tff(sy_v_l____,type,
l: int ).
%----Relevant facts (98)
tff(fact_0_Dvd,axiom,
a = dvd(d,l,ks) ).
tff(fact_1_assms_I3_J,axiom,
div_mod(int,i,divisor(a)) = div_mod(int,j,divisor(a)) ).
tff(fact_2_mod__mod__trivial,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [B1: A,A1: A] : ( div_mod(A,div_mod(A,A1,B1),B1) = div_mod(A,A1,B1) ) ) ).
tff(fact_3__096_Ii_A_L_A_092_060langle_062ks_H_Me_092_060rangle_062_J_Amod_Ad_A_061_Ii_Amod_Ad_A_L_A_092_060langle_062ks_H_Me_092_060rangle_062_Amod_Ad_J_Amod_Ad_096,axiom,
div_mod(int,plus_plus(int,i,iprod(int,ks1,e)),d) = div_mod(int,plus_plus(int,div_mod(int,i,d),div_mod(int,iprod(int,ks1,e),d)),d) ).
tff(fact_4__096_Il_A_L_A_Ii_A_L_A_092_060langle_062ks_H_Me_092_060rangle_062_J_J_Amod_Ad_A_061_Il_Amod_Ad_A_L_A_Ii_A_L_A_092_060langle_062ks_H_Me_092_060rangle_062_J_Amod_Ad_J_Amod_Ad_096,axiom,
div_mod(int,plus_plus(int,l,plus_plus(int,i,iprod(int,ks1,e))),d) = div_mod(int,plus_plus(int,div_mod(int,l,d),div_mod(int,plus_plus(int,i,iprod(int,ks1,e)),d)),d) ).
tff(fact_5_calculation,axiom,
div_mod(int,plus_plus(int,l,plus_plus(int,i,iprod(int,ks1,e))),d) = div_mod(int,plus_plus(int,div_mod(int,l,d),div_mod(int,plus_plus(int,div_mod(int,i,d),div_mod(int,iprod(int,ks1,e),d)),d)),d) ).
tff(fact_6_zmod__zero,axiom,
! [B1: int] : ( div_mod(int,zero_zero(int),B1) = zero_zero(int) ) ).
tff(fact_7_zmod__self,axiom,
! [A1: int] : ( div_mod(int,A1,A1) = zero_zero(int) ) ).
tff(fact_8_Divides_Otransfer__int__nat__function__closures_I2_J,axiom,
! [Y: int,X: int] :
( nat_is_nat(X)
=> ( nat_is_nat(Y)
=> nat_is_nat(div_mod(int,X,Y)) ) ) ).
tff(fact_9_mod__0,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [A1: A] : ( div_mod(A,zero_zero(A),A1) = zero_zero(A) ) ) ).
tff(fact_10_mod__self,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [A1: A] : ( div_mod(A,A1,A1) = zero_zero(A) ) ) ).
tff(fact_11_zmod__zminus__zminus,axiom,
! [B1: int,A1: int] : ( div_mod(int,uminus_uminus(int,A1),uminus_uminus(int,B1)) = uminus_uminus(int,div_mod(int,A1,B1)) ) ).
tff(fact_12_mod__add__self2,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [B1: A,A1: A] : ( div_mod(A,plus_plus(A,A1,B1),B1) = div_mod(A,A1,B1) ) ) ).
tff(fact_13_mod__add__self1,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [A1: A,B1: A] : ( div_mod(A,plus_plus(A,B1,A1),B1) = div_mod(A,A1,B1) ) ) ).
tff(fact_14_zmod__zminus2__not__zero,axiom,
! [L: int,K: int] :
( ( div_mod(int,K,uminus_uminus(int,L)) != zero_zero(int) )
=> ( div_mod(int,K,L) != zero_zero(int) ) ) ).
tff(fact_15_zmod__zminus1__not__zero,axiom,
! [L: int,K: int] :
( ( div_mod(int,uminus_uminus(int,K),L) != zero_zero(int) )
=> ( div_mod(int,K,L) != zero_zero(int) ) ) ).
tff(fact_16_mod__minus__cong,axiom,
! [A: $tType] :
( ring_div(A)
=> ! [A3: A,B1: A,A1: A] :
( ( div_mod(A,A1,B1) = div_mod(A,A3,B1) )
=> ( div_mod(A,uminus_uminus(A,A1),B1) = div_mod(A,uminus_uminus(A,A3),B1) ) ) ) ).
tff(fact_17_mod__minus__eq,axiom,
! [A: $tType] :
( ring_div(A)
=> ! [B1: A,A1: A] : ( div_mod(A,uminus_uminus(A,A1),B1) = div_mod(A,uminus_uminus(A,div_mod(A,A1,B1)),B1) ) ) ).
tff(fact_18_mod__add__cong,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [B3: A,B1: A,A3: A,C: A,A1: A] :
( ( div_mod(A,A1,C) = div_mod(A,A3,C) )
=> ( ( div_mod(A,B1,C) = div_mod(A,B3,C) )
=> ( div_mod(A,plus_plus(A,A1,B1),C) = div_mod(A,plus_plus(A,A3,B3),C) ) ) ) ) ).
tff(fact_19_zmod__simps_I1_J,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [B1: A,C: A,A1: A] : ( div_mod(A,plus_plus(A,div_mod(A,A1,C),B1),C) = div_mod(A,plus_plus(A,A1,B1),C) ) ) ).
tff(fact_20_zmod__simps_I2_J,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [C: A,B1: A,A1: A] : ( div_mod(A,plus_plus(A,A1,div_mod(A,B1,C)),C) = div_mod(A,plus_plus(A,A1,B1),C) ) ) ).
tff(fact_21_mod__add__eq,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [C: A,B1: A,A1: A] : ( div_mod(A,plus_plus(A,A1,B1),C) = div_mod(A,plus_plus(A,div_mod(A,A1,C),div_mod(A,B1,C)),C) ) ) ).
tff(fact_22_mod__add__left__eq,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [C: A,B1: A,A1: A] : ( div_mod(A,plus_plus(A,A1,B1),C) = div_mod(A,plus_plus(A,div_mod(A,A1,C),B1),C) ) ) ).
tff(fact_23_mod__add__right__eq,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [C: A,B1: A,A1: A] : ( div_mod(A,plus_plus(A,A1,B1),C) = div_mod(A,plus_plus(A,A1,div_mod(A,B1,C)),C) ) ) ).
tff(fact_24_zminus__zmod,axiom,
! [M: int,X: int] : ( div_mod(int,uminus_uminus(int,div_mod(int,X,M)),M) = div_mod(int,uminus_uminus(int,X),M) ) ).
tff(fact_25_zmod__zminus2,axiom,
! [B1: int,A1: int] : ( div_mod(int,A1,uminus_uminus(int,B1)) = uminus_uminus(int,div_mod(int,uminus_uminus(int,A1),B1)) ) ).
tff(fact_26_mod__by__0,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [A1: A] : ( div_mod(A,A1,zero_zero(A)) = A1 ) ) ).
tff(fact_27_right__minus,axiom,
! [A: $tType] :
( group_add(A)
=> ! [A1: A] : ( plus_plus(A,A1,uminus_uminus(A,A1)) = zero_zero(A) ) ) ).
tff(fact_28_left__minus,axiom,
! [A: $tType] :
( group_add(A)
=> ! [A1: A] : ( plus_plus(A,uminus_uminus(A,A1),A1) = zero_zero(A) ) ) ).
tff(fact_29_iprod__uminus,axiom,
! [A: $tType] :
( ring(A)
=> ! [Ys: list(A),Xs: list(A)] : ( iprod(A,uminus_uminus(list(A),Xs),Ys) = uminus_uminus(A,iprod(A,Xs,Ys)) ) ) ).
tff(fact_30_minus__add__distrib,axiom,
! [A: $tType] :
( ab_group_add(A)
=> ! [B1: A,A1: A] : ( uminus_uminus(A,plus_plus(A,A1,B1)) = plus_plus(A,uminus_uminus(A,A1),uminus_uminus(A,B1)) ) ) ).
tff(fact_31_minus__zero,axiom,
! [A: $tType] :
( group_add(A)
=> ( uminus_uminus(A,zero_zero(A)) = zero_zero(A) ) ) ).
tff(fact_32_neg__0__equal__iff__equal,axiom,
! [A: $tType] :
( group_add(A)
=> ! [Aa: A] :
( ( zero_zero(A) = uminus_uminus(A,Aa) )
<=> ( zero_zero(A) = Aa ) ) ) ).
tff(fact_33_equal__neg__zero,axiom,
! [A: $tType] :
( linord219039673up_add(A)
=> ! [Aa: A] :
( ( Aa = uminus_uminus(A,Aa) )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_34_neg__equal__0__iff__equal,axiom,
! [A: $tType] :
( group_add(A)
=> ! [Aa: A] :
( ( uminus_uminus(A,Aa) = zero_zero(A) )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_35_neg__equal__zero,axiom,
! [A: $tType] :
( linord219039673up_add(A)
=> ! [Aa: A] :
( ( uminus_uminus(A,Aa) = Aa )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_36_add__right__cancel,axiom,
! [A: $tType] :
( cancel_semigroup_add(A)
=> ! [C1: A,Aa: A,B: A] :
( ( plus_plus(A,B,Aa) = plus_plus(A,C1,Aa) )
<=> ( B = C1 ) ) ) ).
tff(fact_37_add__left__cancel,axiom,
! [A: $tType] :
( cancel_semigroup_add(A)
=> ! [C1: A,B: A,Aa: A] :
( ( plus_plus(A,Aa,B) = plus_plus(A,Aa,C1) )
<=> ( B = C1 ) ) ) ).
tff(fact_38_neg__equal__iff__equal,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B: A,Aa: A] :
( ( uminus_uminus(A,Aa) = uminus_uminus(A,B) )
<=> ( Aa = B ) ) ) ).
tff(fact_39_double__zero__sym,axiom,
! [A: $tType] :
( linord219039673up_add(A)
=> ! [Aa: A] :
( ( zero_zero(A) = plus_plus(A,Aa,Aa) )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_40_zero__reorient,axiom,
! [A: $tType] :
( zero(A)
=> ! [X1: A] :
( ( zero_zero(A) = X1 )
<=> ( X1 = zero_zero(A) ) ) ) ).
tff(fact_41_add__right__imp__eq,axiom,
! [A: $tType] :
( cancel_semigroup_add(A)
=> ! [C: A,A1: A,B1: A] :
( ( plus_plus(A,B1,A1) = plus_plus(A,C,A1) )
=> ( B1 = C ) ) ) ).
tff(fact_42_add__imp__eq,axiom,
! [A: $tType] :
( cancel146912293up_add(A)
=> ! [C: A,B1: A,A1: A] :
( ( plus_plus(A,A1,B1) = plus_plus(A,A1,C) )
=> ( B1 = C ) ) ) ).
tff(fact_43_add__left__imp__eq,axiom,
! [A: $tType] :
( cancel_semigroup_add(A)
=> ! [C: A,B1: A,A1: A] :
( ( plus_plus(A,A1,B1) = plus_plus(A,A1,C) )
=> ( B1 = C ) ) ) ).
tff(fact_44_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
! [A: $tType] :
( ab_semigroup_add(A)
=> ! [C: A,B1: A,A1: A] : ( plus_plus(A,plus_plus(A,A1,B1),C) = plus_plus(A,A1,plus_plus(A,B1,C)) ) ) ).
tff(fact_45_minus__equation__iff,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B: A,Aa: A] :
( ( uminus_uminus(A,Aa) = B )
<=> ( uminus_uminus(A,B) = Aa ) ) ) ).
tff(fact_46_equation__minus__iff,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B: A,Aa: A] :
( ( Aa = uminus_uminus(A,B) )
<=> ( B = uminus_uminus(A,Aa) ) ) ) ).
tff(fact_47_minus__minus,axiom,
! [A: $tType] :
( group_add(A)
=> ! [A1: A] : ( uminus_uminus(A,uminus_uminus(A,A1)) = A1 ) ) ).
tff(fact_48_add_Ocomm__neutral,axiom,
! [A: $tType] :
( comm_monoid_add(A)
=> ! [A1: A] : ( plus_plus(A,A1,zero_zero(A)) = A1 ) ) ).
tff(fact_49_add__0__right,axiom,
! [A: $tType] :
( monoid_add(A)
=> ! [A1: A] : ( plus_plus(A,A1,zero_zero(A)) = A1 ) ) ).
tff(fact_50_add__0,axiom,
! [A: $tType] :
( comm_monoid_add(A)
=> ! [A1: A] : ( plus_plus(A,zero_zero(A),A1) = A1 ) ) ).
tff(fact_51_add__0__left,axiom,
! [A: $tType] :
( monoid_add(A)
=> ! [A1: A] : ( plus_plus(A,zero_zero(A),A1) = A1 ) ) ).
tff(fact_52_minus__add__cancel,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B1: A,A1: A] : ( plus_plus(A,uminus_uminus(A,A1),plus_plus(A,A1,B1)) = B1 ) ) ).
tff(fact_53_add__minus__cancel,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B1: A,A1: A] : ( plus_plus(A,A1,plus_plus(A,uminus_uminus(A,A1),B1)) = B1 ) ) ).
tff(fact_54_minus__add,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B1: A,A1: A] : ( uminus_uminus(A,plus_plus(A,A1,B1)) = plus_plus(A,uminus_uminus(A,B1),uminus_uminus(A,A1)) ) ) ).
tff(fact_55_iprod__left__add__distrib,axiom,
! [A: $tType] :
( ring(A)
=> ! [Zs: list(A),Ys: list(A),Xs: list(A)] : ( iprod(A,plus_plus(list(A),Xs,Ys),Zs) = plus_plus(A,iprod(A,Xs,Zs),iprod(A,Ys,Zs)) ) ) ).
tff(fact_56_minus__unique,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B1: A,A1: A] :
( ( plus_plus(A,A1,B1) = zero_zero(A) )
=> ( uminus_uminus(A,A1) = B1 ) ) ) ).
tff(fact_57_add__eq__0__iff,axiom,
! [A: $tType] :
( group_add(A)
=> ! [Y1: A,X1: A] :
( ( plus_plus(A,X1,Y1) = zero_zero(A) )
<=> ( Y1 = uminus_uminus(A,X1) ) ) ) ).
tff(fact_58_ab__left__minus,axiom,
! [A: $tType] :
( ab_group_add(A)
=> ! [A1: A] : ( plus_plus(A,uminus_uminus(A,A1),A1) = zero_zero(A) ) ) ).
tff(fact_59_eq__neg__iff__add__eq__0,axiom,
! [A: $tType] :
( group_add(A)
=> ! [B: A,Aa: A] :
( ( Aa = uminus_uminus(A,B) )
<=> ( plus_plus(A,Aa,B) = zero_zero(A) ) ) ) ).
tff(fact_60_double__eq__0__iff,axiom,
! [A: $tType] :
( linord219039673up_add(A)
=> ! [Aa: A] :
( ( plus_plus(A,Aa,Aa) = zero_zero(A) )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_61_atom_Osimps_I2_J,axiom,
! [List2: list(int),Int22: int,Int12: int,List1: list(int),Int21: int,Int11: int] :
( ( dvd(Int11,Int21,List1) = dvd(Int12,Int22,List2) )
<=> ( ( Int11 = Int12 )
& ( Int21 = Int22 )
& ( List1 = List2 ) ) ) ).
tff(fact_62_compl__eq__compl__iff,axiom,
! [A: $tType] :
( boolean_algebra(A)
=> ! [Y1: A,X1: A] :
( ( uminus_uminus(A,X1) = uminus_uminus(A,Y1) )
<=> ( X1 = Y1 ) ) ) ).
tff(fact_63_divisor_Osimps_I2_J,axiom,
! [Ks1: list(int),I: int,D: int] : ( divisor(dvd(D,I,Ks1)) = D ) ).
tff(fact_64_Nat__Transfer_Otransfer__int__nat__function__closures_I1_J,axiom,
! [Y: int,X: int] :
( nat_is_nat(X)
=> ( nat_is_nat(Y)
=> nat_is_nat(plus_plus(int,X,Y)) ) ) ).
tff(fact_65_list__add__assoc,axiom,
! [A: $tType] :
( monoid_add(A)
=> ! [Zs: list(A),Ys: list(A),Xs: list(A)] : ( plus_plus(list(A),plus_plus(list(A),Xs,Ys),Zs) = plus_plus(list(A),Xs,plus_plus(list(A),Ys,Zs)) ) ) ).
tff(fact_66_fun__Compl__def,axiom,
! [B2: $tType,A: $tType] :
( uminus(B2)
=> ! [A2: fun(A,B2),X3: A] : ( aa(A,B2,uminus_uminus(fun(A,B2),A2),X3) = uminus_uminus(B2,aa(A,B2,A2,X3)) ) ) ).
tff(fact_67_double__compl,axiom,
! [A: $tType] :
( boolean_algebra(A)
=> ! [X: A] : ( uminus_uminus(A,uminus_uminus(A,X)) = X ) ) ).
tff(fact_68_uminus__apply,axiom,
! [A: $tType,B2: $tType] :
( uminus(A)
=> ! [X1: B2,A2: fun(B2,A)] : ( aa(B2,A,uminus_uminus(fun(B2,A),A2),X1) = uminus_uminus(A,aa(B2,A,A2,X1)) ) ) ).
tff(fact_69_Nat__Transfer_Otransfer__int__nat__function__closures_I5_J,axiom,
nat_is_nat(zero_zero(int)) ).
tff(fact_70_atom_Osize_I2_J,axiom,
! [List: list(int),Int2: int,Int1: int] : ( atom_size(dvd(Int1,Int2,List)) = zero_zero(nat) ) ).
tff(fact_71_atom_Osize_I5_J,axiom,
! [List: list(int),Int2: int,Int1: int] : ( size_size(atom,dvd(Int1,Int2,List)) = zero_zero(nat) ) ).
tff(fact_72_comm__semiring__1__class_Onormalizing__semiring__rules_I5_J,axiom,
! [A: $tType] :
( comm_semiring_1(A)
=> ! [A1: A] : ( plus_plus(A,zero_zero(A),A1) = A1 ) ) ).
tff(fact_73_comm__semiring__1__class_Onormalizing__semiring__rules_I20_J,axiom,
! [A: $tType] :
( comm_semiring_1(A)
=> ! [D: A,C: A,B1: A,A1: A] : ( plus_plus(A,plus_plus(A,A1,B1),plus_plus(A,C,D)) = plus_plus(A,plus_plus(A,A1,C),plus_plus(A,B1,D)) ) ) ).
tff(fact_74_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_75_comm__semiring__1__class_Onormalizing__semiring__rules_I23_J,axiom,
! [A: $tType] :
( comm_semiring_1(A)
=> ! [C: A,B1: A,A1: A] : ( plus_plus(A,plus_plus(A,A1,B1),C) = plus_plus(A,plus_plus(A,A1,C),B1) ) ) ).
tff(fact_76_comm__semiring__1__class_Onormalizing__semiring__rules_I21_J,axiom,
! [A: $tType] :
( comm_semiring_1(A)
=> ! [C: A,B1: A,A1: A] : ( plus_plus(A,plus_plus(A,A1,B1),C) = plus_plus(A,A1,plus_plus(A,B1,C)) ) ) ).
tff(fact_77_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_78_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_79_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_80_add__0__iff,axiom,
! [A: $tType] :
( semiri456707255roduct(A)
=> ! [Aa: A,B: A] :
( ( B = plus_plus(A,B,Aa) )
<=> ( Aa = zero_zero(A) ) ) ) ).
tff(fact_81_comm__semiring__1__class_Onormalizing__semiring__rules_I6_J,axiom,
! [A: $tType] :
( comm_semiring_1(A)
=> ! [A1: A] : ( plus_plus(A,A1,zero_zero(A)) = A1 ) ) ).
tff(fact_82_add__is__0,axiom,
! [N1: nat,M1: nat] :
( ( plus_plus(nat,M1,N1) = zero_zero(nat) )
<=> ( ( M1 = zero_zero(nat) )
& ( N1 = zero_zero(nat) ) ) ) ).
tff(fact_83__096ks_A_061_A1_A_D_Aks_H_096,axiom,
ks = cons(int,one_one(int),ks1) ).
tff(fact_84_nat__add__left__cancel,axiom,
! [N1: nat,M1: nat,K1: nat] :
( ( plus_plus(nat,K1,M1) = plus_plus(nat,K1,N1) )
<=> ( M1 = N1 ) ) ).
tff(fact_85_nat__add__right__cancel,axiom,
! [N1: nat,K1: nat,M1: nat] :
( ( plus_plus(nat,M1,K1) = plus_plus(nat,N1,K1) )
<=> ( M1 = N1 ) ) ).
tff(fact_86__096_B_Bthesis_O_A_I_B_Bks_H_O_Aks_A_061_A1_A_D_Aks_H_A_061_061_062_Athesis_J_A_061_061_062_Athesis_096,axiom,
~ ! [Ks: list(int)] : ( ks != cons(int,one_one(int),Ks) ) ).
tff(fact_87_assms_I2_J,axiom,
hd_coeff(a) = one_one(int) ).
tff(fact_88_mod__by__1,axiom,
! [A: $tType] :
( semiring_div(A)
=> ! [A1: A] : ( div_mod(A,A1,one_one(A)) = zero_zero(A) ) ) ).
tff(fact_89_list__add__Cons,axiom,
! [A: $tType] :
( ( cl_Groups_Oplus(A)
& zero(A) )
=> ! [Ys: list(A),Y: A,Xs: list(A),X: A] : ( plus_plus(list(A),cons(A,X,Xs),cons(A,Y,Ys)) = cons(A,plus_plus(A,X,Y),plus_plus(list(A),Xs,Ys)) ) ) ).
tff(fact_90_list__uminus__Cons,axiom,
! [A: $tType] :
( ( uminus(A)
& zero(A) )
=> ! [Xs: list(A),X: A] : ( uminus_uminus(list(A),cons(A,X,Xs)) = cons(A,uminus_uminus(A,X),uminus_uminus(list(A),Xs)) ) ) ).
tff(fact_91_odd__nonzero,axiom,
! [Z: int] : ( plus_plus(int,plus_plus(int,one_one(int),Z),Z) != zero_zero(int) ) ).
tff(fact_92_one__reorient,axiom,
! [A: $tType] :
( one(A)
=> ! [X1: A] :
( ( one_one(A) = X1 )
<=> ( X1 = one_one(A) ) ) ) ).
tff(fact_93_nat__add__commute,axiom,
! [N: nat,M: nat] : ( plus_plus(nat,M,N) = plus_plus(nat,N,M) ) ).
tff(fact_94_nat__add__left__commute,axiom,
! [Z: nat,Y: nat,X: nat] : ( plus_plus(nat,X,plus_plus(nat,Y,Z)) = plus_plus(nat,Y,plus_plus(nat,X,Z)) ) ).
tff(fact_95_nat__add__assoc,axiom,
! [K: nat,N: nat,M: nat] : ( plus_plus(nat,plus_plus(nat,M,N),K) = plus_plus(nat,M,plus_plus(nat,N,K)) ) ).
tff(fact_96_Nat__Transfer_Otransfer__int__nat__function__closures_I6_J,axiom,
nat_is_nat(one_one(int)) ).
tff(fact_97_plus__nat_Oadd__0,axiom,
! [N: nat] : ( plus_plus(nat,zero_zero(nat),N) = N ) ).
%----Arities (34)
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_Ouminus,axiom,
! [T_1: $tType,T_2: $tType] :
( uminus(T_2)
=> uminus(fun(T_1,T_2)) ) ).
tff(arity_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
semiri456707255roduct(int) ).
tff(arity_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
linord219039673up_add(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__add,axiom,
ab_semigroup_add(int) ).
tff(arity_Int_Oint___Groups_Ocomm__monoid__add,axiom,
comm_monoid_add(int) ).
tff(arity_Int_Oint___Rings_Ocomm__semiring__1,axiom,
comm_semiring_1(int) ).
tff(arity_Int_Oint___Divides_Osemiring__div,axiom,
semiring_div(int) ).
tff(arity_Int_Oint___Groups_Oab__group__add,axiom,
ab_group_add(int) ).
tff(arity_Int_Oint___Groups_Omonoid__add,axiom,
monoid_add(int) ).
tff(arity_Int_Oint___Groups_Ogroup__add,axiom,
group_add(int) ).
tff(arity_Int_Oint___Divides_Oring__div,axiom,
ring_div(int) ).
tff(arity_Int_Oint___Groups_Ouminus,axiom,
uminus(int) ).
tff(arity_Int_Oint___Groups_Ozero,axiom,
zero(int) ).
tff(arity_Int_Oint___Groups_Oplus,axiom,
cl_Groups_Oplus(int) ).
tff(arity_Int_Oint___Rings_Oring,axiom,
ring(int) ).
tff(arity_Int_Oint___Groups_Oone,axiom,
one(int) ).
tff(arity_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
semiri456707255roduct(nat) ).
tff(arity_Nat_Onat___Groups_Ocancel__ab__semigroup__add,axiom,
cancel146912293up_add(nat) ).
tff(arity_Nat_Onat___Groups_Ocancel__semigroup__add,axiom,
cancel_semigroup_add(nat) ).
tff(arity_Nat_Onat___Groups_Oab__semigroup__add,axiom,
ab_semigroup_add(nat) ).
tff(arity_Nat_Onat___Groups_Ocomm__monoid__add,axiom,
comm_monoid_add(nat) ).
tff(arity_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
comm_semiring_1(nat) ).
tff(arity_Nat_Onat___Divides_Osemiring__div,axiom,
semiring_div(nat) ).
tff(arity_Nat_Onat___Groups_Omonoid__add,axiom,
monoid_add(nat) ).
tff(arity_Nat_Onat___Groups_Ozero,axiom,
zero(nat) ).
tff(arity_Nat_Onat___Groups_Oplus,axiom,
cl_Groups_Oplus(nat) ).
tff(arity_Nat_Onat___Groups_Oone,axiom,
one(nat) ).
tff(arity_HOL_Obool___Lattices_Oboolean__algebra,axiom,
boolean_algebra(bool) ).
tff(arity_HOL_Obool___Groups_Ouminus,axiom,
uminus(bool) ).
tff(arity_List_Olist___Groups_Ouminus,axiom,
! [T_1: $tType] :
( ( zero(T_1)
& uminus(T_1) )
=> uminus(list(T_1)) ) ).
tff(arity_List_Olist___Groups_Oplus,axiom,
! [T_1: $tType] :
( ( zero(T_1)
& cl_Groups_Oplus(T_1) )
=> cl_Groups_Oplus(list(T_1)) ) ).
%----Helper facts (2)
tff(help_pp_1_1_U,axiom,
~ pp(fFalse) ).
tff(help_pp_2_1_U,axiom,
pp(fTrue) ).
%----Conjectures (1)
tff(conj_0,conjecture,
div_mod(int,i,d) = div_mod(int,j,d) ).
%------------------------------------------------------------------------------