src/HOL/Library/Poly_Deriv.thy
changeset 60500 903bb1495239
parent 58881 b9556a055632
child 60688 01488b559910
--- a/src/HOL/Library/Poly_Deriv.thy	Wed Jun 17 10:57:11 2015 +0200
+++ b/src/HOL/Library/Poly_Deriv.thy	Wed Jun 17 11:03:05 2015 +0200
@@ -3,13 +3,13 @@
     Author:     Brian Huffman
 *)
 
-section{* Polynomials and Differentiation *}
+section\<open>Polynomials and Differentiation\<close>
 
 theory Poly_Deriv
 imports Deriv Polynomial
 begin
 
-subsection {* Derivatives of univariate polynomials *}
+subsection \<open>Derivatives of univariate polynomials\<close>
 
 function pderiv :: "'a::real_normed_field poly \<Rightarrow> 'a poly"
 where
@@ -95,7 +95,7 @@
 lemma poly_DERIV[simp]: "DERIV (%x. poly p x) x :> poly (pderiv p) x"
   by (induct p, auto intro!: derivative_eq_intros simp add: pderiv_pCons)
 
-text{* Consequences of the derivative theorem above*}
+text\<open>Consequences of the derivative theorem above\<close>
 
 lemma poly_differentiable[simp]: "(%x. poly p x) differentiable (at x::real filter)"
 apply (simp add: real_differentiable_def)
@@ -122,7 +122,7 @@
 apply (auto simp add: mult_left_cancel poly_DERIV [THEN DERIV_unique])
 done
 
-text{*Lemmas for Derivatives*}
+text\<open>Lemmas for Derivatives\<close>
 
 lemma order_unique_lemma:
   fixes p :: "'a::idom poly"
@@ -178,7 +178,7 @@
      by (metis * nd dvd_mult_cancel_right field_power_not_zero pCons_eq_0_iff power_Suc zero_neq_one)
   qed
   then show ?thesis
-    by (metis `n = Suc n'` pe)
+    by (metis \<open>n = Suc n'\<close> pe)
 qed
 
 lemma order_decomp:
@@ -215,7 +215,7 @@
     done
 qed
 
-text{*Now justify the standard squarefree decomposition, i.e. f / gcd(f,f'). *}
+text\<open>Now justify the standard squarefree decomposition, i.e. f / gcd(f,f').\<close>
 
 lemma order_divides: "[:-a, 1:] ^ n dvd p \<longleftrightarrow> p = 0 \<or> n \<le> order a p"
 apply (cases "p = 0", auto)
@@ -232,31 +232,31 @@
   shows "order a q = (if order a p = 0 then 0 else 1)"
 proof (rule classical)
   assume 1: "order a q \<noteq> (if order a p = 0 then 0 else 1)"
-  from `pderiv p \<noteq> 0` have "p \<noteq> 0" by auto
+  from \<open>pderiv p \<noteq> 0\<close> have "p \<noteq> 0" by auto
   with p have "order a p = order a q + order a d"
     by (simp add: order_mult)
   with 1 have "order a p \<noteq> 0" by (auto split: if_splits)
   have "order a (pderiv p) = order a e + order a d"
-    using `pderiv p \<noteq> 0` `pderiv p = e * d` by (simp add: order_mult)
+    using \<open>pderiv p \<noteq> 0\<close> \<open>pderiv p = e * d\<close> by (simp add: order_mult)
   have "order a p = Suc (order a (pderiv p))"
-    using `pderiv p \<noteq> 0` `order a p \<noteq> 0` by (rule order_pderiv)
-  have "d \<noteq> 0" using `p \<noteq> 0` `p = q * d` by simp
+    using \<open>pderiv p \<noteq> 0\<close> \<open>order a p \<noteq> 0\<close> by (rule order_pderiv)
+  have "d \<noteq> 0" using \<open>p \<noteq> 0\<close> \<open>p = q * d\<close> by simp
   have "([:-a, 1:] ^ (order a (pderiv p))) dvd d"
     apply (simp add: d)
     apply (rule dvd_add)
     apply (rule dvd_mult)
-    apply (simp add: order_divides `p \<noteq> 0`
-           `order a p = Suc (order a (pderiv p))`)
+    apply (simp add: order_divides \<open>p \<noteq> 0\<close>
+           \<open>order a p = Suc (order a (pderiv p))\<close>)
     apply (rule dvd_mult)
     apply (simp add: order_divides)
     done
   then have "order a (pderiv p) \<le> order a d"
-    using `d \<noteq> 0` by (simp add: order_divides)
+    using \<open>d \<noteq> 0\<close> by (simp add: order_divides)
   show ?thesis
-    using `order a p = order a q + order a d`
-    using `order a (pderiv p) = order a e + order a d`
-    using `order a p = Suc (order a (pderiv p))`
-    using `order a (pderiv p) \<le> order a d`
+    using \<open>order a p = order a q + order a d\<close>
+    using \<open>order a (pderiv p) = order a e + order a d\<close>
+    using \<open>order a p = Suc (order a (pderiv p))\<close>
+    using \<open>order a (pderiv p) \<le> order a d\<close>
     by auto
 qed
 
@@ -298,11 +298,11 @@
     and "d = r * p + s * pderiv p"
   shows "rsquarefree q & (\<forall>a. (poly q a = 0) = (poly p a = 0))"
 proof -
-  from `pderiv p \<noteq> 0` have "p \<noteq> 0" by auto
-  with `p = q * d` have "q \<noteq> 0" by simp
+  from \<open>pderiv p \<noteq> 0\<close> have "p \<noteq> 0" by auto
+  with \<open>p = q * d\<close> have "q \<noteq> 0" by simp
   have "\<forall>a. order a q = (if order a p = 0 then 0 else 1)"
     using assms by (rule poly_squarefree_decomp_order2)
-  with `p \<noteq> 0` `q \<noteq> 0` show ?thesis
+  with \<open>p \<noteq> 0\<close> \<open>q \<noteq> 0\<close> show ?thesis
     by (simp add: rsquarefree_def order_root)
 qed