equal
deleted
inserted
replaced
123 thus zero: "fps_of_poly p $ i = 0" if "i < n" for i |
123 thus zero: "fps_of_poly p $ i = 0" if "i < n" for i |
124 using that by (simp add: monom_1_dvd_iff') |
124 using that by (simp add: monom_1_dvd_iff') |
125 |
125 |
126 from assms have "\<not>monom 1 (Suc n) dvd p" |
126 from assms have "\<not>monom 1 (Suc n) dvd p" |
127 by (auto simp: monom_1_dvd_iff simp del: power_Suc) |
127 by (auto simp: monom_1_dvd_iff simp del: power_Suc) |
128 then obtain k where "k \<le> n" "fps_of_poly p $ k \<noteq> 0" |
128 then obtain k where k: "k \<le> n" "fps_of_poly p $ k \<noteq> 0" |
129 by (auto simp: monom_1_dvd_iff' less_Suc_eq_le) |
129 by (auto simp: monom_1_dvd_iff' less_Suc_eq_le) |
130 moreover from this and zero[of k] have "k = n" by linarith |
130 with zero[of k] have "k = n" by linarith |
131 ultimately show "fps_of_poly p $ n \<noteq> 0" by simp |
131 with k show "fps_of_poly p $ n \<noteq> 0" by simp |
132 qed |
132 qed |
133 |
133 |
134 lemma fps_of_poly_dvd: |
134 lemma fps_of_poly_dvd: |
135 assumes "p dvd q" |
135 assumes "p dvd q" |
136 shows "fps_of_poly (p :: 'a :: field poly) dvd fps_of_poly q" |
136 shows "fps_of_poly (p :: 'a :: field poly) dvd fps_of_poly q" |