src/HOL/Library/Polynomial.thy
changeset 30960 fec1a04b7220
parent 30930 11010e5f18f0
child 31021 53642251a04f
equal deleted inserted replaced
30959:458e55fd0a33 30960:fec1a04b7220
   630 lemma dvd_smult_iff:
   630 lemma dvd_smult_iff:
   631   fixes a :: "'a::field"
   631   fixes a :: "'a::field"
   632   shows "a \<noteq> 0 \<Longrightarrow> p dvd smult a q \<longleftrightarrow> p dvd q"
   632   shows "a \<noteq> 0 \<Longrightarrow> p dvd smult a q \<longleftrightarrow> p dvd q"
   633   by (safe elim!: dvd_smult dvd_smult_cancel)
   633   by (safe elim!: dvd_smult dvd_smult_cancel)
   634 
   634 
   635 instantiation poly :: (comm_semiring_1) recpower
   635 instance poly :: (comm_semiring_1) recpower ..
   636 begin
       
   637 
       
   638 primrec power_poly where
       
   639   "(p::'a poly) ^ 0 = 1"
       
   640 | "(p::'a poly) ^ (Suc n) = p * p ^ n"
       
   641 
       
   642 instance
       
   643   by default simp_all
       
   644 
       
   645 declare power_poly.simps [simp del]
       
   646 
       
   647 end
       
   648 
   636 
   649 lemma degree_power_le: "degree (p ^ n) \<le> degree p * n"
   637 lemma degree_power_le: "degree (p ^ n) \<le> degree p * n"
   650 by (induct n, simp, auto intro: order_trans degree_mult_le)
   638 by (induct n, simp, auto intro: order_trans degree_mult_le)
   651 
   639 
   652 instance poly :: (comm_ring) comm_ring ..
   640 instance poly :: (comm_ring) comm_ring ..