src/HOL/Computational_Algebra/Formal_Power_Series.thy
changeset 66550 e5d82cf3c387
parent 66480 4b8d1df8933b
child 66804 3f9bb52082c4
equal deleted inserted replaced
66549:b8a6f9337229 66550:e5d82cf3c387
  1383   "numeral b * x / numeral c = (numeral b / numeral c * x :: 'a :: field fps)"
  1383   "numeral b * x / numeral c = (numeral b / numeral c * x :: 'a :: field fps)"
  1384   by (cases "numeral c = (0::'a)") (simp_all add: fps_divide_unit numeral_fps_const)
  1384   by (cases "numeral c = (0::'a)") (simp_all add: fps_divide_unit numeral_fps_const)
  1385 
  1385 
  1386 lemmas fps_numeral_simps = 
  1386 lemmas fps_numeral_simps = 
  1387   fps_numeral_divide_divide fps_numeral_mult_divide inverse_fps_numeral neg_numeral_fps_const
  1387   fps_numeral_divide_divide fps_numeral_mult_divide inverse_fps_numeral neg_numeral_fps_const
       
  1388 
       
  1389 lemma subdegree_div:
       
  1390   assumes "q dvd p"
       
  1391   shows   "subdegree ((p :: 'a :: field fps) div q) = subdegree p - subdegree q"
       
  1392 proof (cases "p = 0")
       
  1393   case False
       
  1394   from assms have "p = p div q * q" by simp
       
  1395   also from assms False have "subdegree \<dots> = subdegree (p div q) + subdegree q"
       
  1396     by (intro subdegree_mult) (auto simp: dvd_div_eq_0_iff)
       
  1397   finally show ?thesis by simp
       
  1398 qed simp_all
       
  1399 
       
  1400 lemma subdegree_div_unit:
       
  1401   assumes "q $ 0 \<noteq> 0"
       
  1402   shows   "subdegree ((p :: 'a :: field fps) div q) = subdegree p"
       
  1403   using assms by (subst subdegree_div) simp_all
  1388 
  1404 
  1389 
  1405 
  1390 subsection \<open>Formal power series form a Euclidean ring\<close>
  1406 subsection \<open>Formal power series form a Euclidean ring\<close>
  1391 
  1407 
  1392 instantiation fps :: (field) euclidean_ring_cancel
  1408 instantiation fps :: (field) euclidean_ring_cancel