equal
deleted
inserted
replaced
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 .. |