equal
deleted
inserted
replaced
302 with 4 gt th1 have ?case by simp} |
302 with 4 gt th1 have ?case by simp} |
303 ultimately show ?case by blast |
303 ultimately show ?case by blast |
304 qed auto |
304 qed auto |
305 |
305 |
306 lemma polyadd[simp]: "Ipoly bs (polyadd p q) = Ipoly bs p + Ipoly bs q" |
306 lemma polyadd[simp]: "Ipoly bs (polyadd p q) = Ipoly bs p + Ipoly bs q" |
307 by (induct p q rule: polyadd.induct, auto simp add: Let_def field_simps right_distrib[symmetric] simp del: right_distrib) |
307 by (induct p q rule: polyadd.induct, auto simp add: Let_def field_simps distrib_left[symmetric] simp del: distrib_left) |
308 |
308 |
309 lemma polyadd_norm: "\<lbrakk> isnpoly p ; isnpoly q\<rbrakk> \<Longrightarrow> isnpoly (polyadd p q)" |
309 lemma polyadd_norm: "\<lbrakk> isnpoly p ; isnpoly q\<rbrakk> \<Longrightarrow> isnpoly (polyadd p q)" |
310 using polyadd_normh[of "p" "0" "q" "0"] isnpoly_def by simp |
310 using polyadd_normh[of "p" "0" "q" "0"] isnpoly_def by simp |
311 |
311 |
312 text{* The degree of addition and other general lemmas needed for the normal form of polymul *} |
312 text{* The degree of addition and other general lemmas needed for the normal form of polymul *} |