lin_arith_prover splits certain operators (e.g. min, max, abs)
authorwebertj
Wed, 02 Aug 2006 16:50:41 +0200
changeset 20282 49c312eaaa11
parent 20281 16733b31e1cf
child 20283 81b7832b29a3
lin_arith_prover splits certain operators (e.g. min, max, abs)
src/HOL/Algebra/Exponent.thy
src/HOL/Algebra/UnivPoly.thy
src/HOL/Algebra/poly/LongDiv.ML
src/HOL/Algebra/poly/UnivPoly2.thy
--- a/src/HOL/Algebra/Exponent.thy	Wed Aug 02 13:48:21 2006 +0200
+++ b/src/HOL/Algebra/Exponent.thy	Wed Aug 02 16:50:41 2006 +0200
@@ -326,7 +326,6 @@
 apply (subst times_binomial_minus1_eq, simp, simp)
 apply (subst exponent_mult_add, simp)
 apply (simp (no_asm_simp) add: zero_less_binomial_iff)
-apply arith
 apply (simp del: bad_Sucs add: exponent_mult_add const_p_fac_right)
 done
 
--- a/src/HOL/Algebra/UnivPoly.thy	Wed Aug 02 13:48:21 2006 +0200
+++ b/src/HOL/Algebra/UnivPoly.thy	Wed Aug 02 16:50:41 2006 +0200
@@ -511,7 +511,7 @@
       have f1: "(\<Oplus>i \<in> {..<n}. ?s i) = \<zero>"
         by (simp cong: R.finsum_cong add: Pi_def)
       from neq have f2: "(\<Oplus>i \<in> {n}. ?s i) = \<zero>"
-        by (simp cong: R.finsum_cong add: Pi_def) arith
+        by (simp cong: R.finsum_cong add: Pi_def)
       have f3: "n < k ==> (\<Oplus>i \<in> {n<..k}. ?s i) = \<zero>"
         by (simp cong: R.finsum_cong add: order_less_imp_not_eq Pi_def)
       show ?thesis
--- a/src/HOL/Algebra/poly/LongDiv.ML	Wed Aug 02 13:48:21 2006 +0200
+++ b/src/HOL/Algebra/poly/LongDiv.ML	Wed Aug 02 16:50:41 2006 +0200
@@ -24,6 +24,8 @@
 
 val SUM_shrink_below_lemma = thm "SUM_shrink_below_lemma";
 
+fast_arith_split_limit := 0;  (* FIXME: rewrite proofs *)
+
 Goal
   "!! f::(nat=>'a::ring). \
 \    [| m <= n; !!i. i < m ==> f i = 0; P (setsum (%i. f (i+m)) {..n-m}) |] \
@@ -277,3 +279,5 @@
 by (rtac long_div_quo_unique 1);
 by (REPEAT (atac 1));
 qed "long_div_rem_unique";
+
+fast_arith_split_limit := 9;  (* FIXME *)
--- a/src/HOL/Algebra/poly/UnivPoly2.thy	Wed Aug 02 13:48:21 2006 +0200
+++ b/src/HOL/Algebra/poly/UnivPoly2.thy	Wed Aug 02 16:50:41 2006 +0200
@@ -187,6 +187,8 @@
     by (simp add: coeff_def up_add_def Abs_UP_inverse Rep_UP)
 qed
 
+ML {* fast_arith_split_limit := 0; *}  (* FIXME: rewrite proof *)
+
 lemma coeff_mult [simp]:
   "coeff (p * q) n = (setsum (%i. coeff p i * coeff q (n-i)) {..n}::'a::ring)"
 proof -
@@ -226,6 +228,8 @@
     by (simp add: coeff_def up_mult_def Abs_UP_inverse Rep_UP)
 qed
 
+ML {* fast_arith_split_limit := 9; *}  (* FIXME *)
+
 lemma coeff_uminus [simp]: "coeff (-p) n = (-coeff p n::'a::ring)"
 by (unfold up_uminus_def) (simp add: ring_simps)