src/Doc/How_to_Prove_it/How_to_Prove_it.thy
changeset 57514 bdc2c6b40bf2
parent 56820 7fbed439b8d3
child 67399 eab6ce8368fa
equal deleted inserted replaced
57513:55b2afc5ddfc 57514:bdc2c6b40bf2
   111 a problem of the form @{prop"2*t - t < t + (1::int)"} and we are back in the
   111 a problem of the form @{prop"2*t - t < t + (1::int)"} and we are back in the
   112 realm of linear arithmetic.
   112 realm of linear arithmetic.
   113 
   113 
   114 Because @{thm[source]algebra_simps} multiplies out, terms can explode.
   114 Because @{thm[source]algebra_simps} multiplies out, terms can explode.
   115 If one merely wants to bring sums or products into a canonical order
   115 If one merely wants to bring sums or products into a canonical order
   116 it suffices to rewrite with @{thm [source] add_ac} or @{thm [source] mult_ac}: *}
   116 it suffices to rewrite with @{thm [source] ac_simps}: *}
   117 
   117 
   118 lemma fixes f :: "int \<Rightarrow> int" shows "f(x*y*z) - f(z*x*y) = 0"
   118 lemma fixes f :: "int \<Rightarrow> int" shows "f(x*y*z) - f(z*x*y) = 0"
   119 by(simp add: mult_ac)
   119 by(simp add: ac_simps)
   120 
   120 
   121 text{* The lemmas @{thm[source]algebra_simps} take care of addition, subtraction
   121 text{* The lemmas @{thm[source]algebra_simps} take care of addition, subtraction
   122 and multiplication (algebraic structures up to rings) but ignore division (fields).
   122 and multiplication (algebraic structures up to rings) but ignore division (fields).
   123 The lemmas @{thm[source]field_simps} also deal with division:
   123 The lemmas @{thm[source]field_simps} also deal with division:
   124 *}
   124 *}