src/HOL/Decision_Procs/Reflected_Multivariate_Polynomial.thy
changeset 49962 a8cc904a6820
parent 46991 196f2d9406c4
child 50282 fe4d4bb9f4c2
equal deleted inserted replaced
49961:d3d2b78b1c19 49962:a8cc904a6820
   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 *}