src/HOL/Algebra/UnivPoly.thy
changeset 44890 22f665a2e91c
parent 44821 a92f65e174cf
child 49962 a8cc904a6820
equal deleted inserted replaced
44889:340df9f3491f 44890:22f665a2e91c
   103     from UP obtain m where boundm: "bound \<zero> m q" by fast
   103     from UP obtain m where boundm: "bound \<zero> m q" by fast
   104     have "bound \<zero> (max n m) (%i. p i \<oplus> q i)"
   104     have "bound \<zero> (max n m) (%i. p i \<oplus> q i)"
   105     proof
   105     proof
   106       fix i
   106       fix i
   107       assume "max n m < i"
   107       assume "max n m < i"
   108       with boundn and boundm and UP show "p i \<oplus> q i = \<zero>" by fastsimp
   108       with boundn and boundm and UP show "p i \<oplus> q i = \<zero>" by fastforce
   109     qed
   109     qed
   110     then show ?thesis ..
   110     then show ?thesis ..
   111   qed
   111   qed
   112 qed
   112 qed
   113 
   113 
   778     then have "EX m. deg R p - 1 < m & coeff P p m ~= \<zero>"
   778     then have "EX m. deg R p - 1 < m & coeff P p m ~= \<zero>"
   779       by (unfold bound_def) fast
   779       by (unfold bound_def) fast
   780     then have "EX m. deg R p <= m & coeff P p m ~= \<zero>" by (simp add: deg minus)
   780     then have "EX m. deg R p <= m & coeff P p m ~= \<zero>" by (simp add: deg minus)
   781     then show ?thesis by (auto intro: that)
   781     then show ?thesis by (auto intro: that)
   782   qed
   782   qed
   783   with deg_belowI R have "deg R p = m" by fastsimp
   783   with deg_belowI R have "deg R p = m" by fastforce
   784   with m_coeff show ?thesis by simp
   784   with m_coeff show ?thesis by simp
   785 qed
   785 qed
   786 
   786 
   787 lemma lcoeff_nonzero_nonzero:
   787 lemma lcoeff_nonzero_nonzero:
   788   assumes deg: "deg R p = 0" and nonzero: "p ~= \<zero>\<^bsub>P\<^esub>" and R: "p \<in> carrier P"
   788   assumes deg: "deg R p = 0" and nonzero: "p ~= \<zero>\<^bsub>P\<^esub>" and R: "p \<in> carrier P"
   825   "a \<in> carrier R ==> deg R (monom P a n) <= n"
   825   "a \<in> carrier R ==> deg R (monom P a n) <= n"
   826   by (intro deg_aboveI) simp_all
   826   by (intro deg_aboveI) simp_all
   827 
   827 
   828 lemma deg_monom [simp]:
   828 lemma deg_monom [simp]:
   829   "[| a ~= \<zero>; a \<in> carrier R |] ==> deg R (monom P a n) = n"
   829   "[| a ~= \<zero>; a \<in> carrier R |] ==> deg R (monom P a n) = n"
   830   by (fastsimp intro: le_antisym deg_aboveI deg_belowI)
   830   by (fastforce intro: le_antisym deg_aboveI deg_belowI)
   831 
   831 
   832 lemma deg_const [simp]:
   832 lemma deg_const [simp]:
   833   assumes R: "a \<in> carrier R" shows "deg R (monom P a 0) = 0"
   833   assumes R: "a \<in> carrier R" shows "deg R (monom P a 0) = 0"
   834 proof (rule le_antisym)
   834 proof (rule le_antisym)
   835   show "deg R (monom P a 0) <= 0" by (rule deg_aboveI) (simp_all add: R)
   835   show "deg R (monom P a 0) <= 0" by (rule deg_aboveI) (simp_all add: R)
  1059     from R have "coeff P p 0 \<otimes> coeff P q 0 = coeff P (p \<otimes>\<^bsub>P\<^esub> q) 0" by simp
  1059     from R have "coeff P p 0 \<otimes> coeff P q 0 = coeff P (p \<otimes>\<^bsub>P\<^esub> q) 0" by simp
  1060     also from pq have "... = \<zero>" by simp
  1060     also from pq have "... = \<zero>" by simp
  1061     finally have "coeff P p 0 \<otimes> coeff P q 0 = \<zero>" .
  1061     finally have "coeff P p 0 \<otimes> coeff P q 0 = \<zero>" .
  1062     with R have "coeff P p 0 = \<zero> | coeff P q 0 = \<zero>"
  1062     with R have "coeff P p 0 = \<zero> | coeff P q 0 = \<zero>"
  1063       by (simp add: R.integral_iff)
  1063       by (simp add: R.integral_iff)
  1064     with p q show "p = \<zero>\<^bsub>P\<^esub> | q = \<zero>\<^bsub>P\<^esub>" by fastsimp
  1064     with p q show "p = \<zero>\<^bsub>P\<^esub> | q = \<zero>\<^bsub>P\<^esub>" by fastforce
  1065   qed
  1065   qed
  1066 qed
  1066 qed
  1067 
  1067 
  1068 theorem UP_domain:
  1068 theorem UP_domain:
  1069   "domain P"
  1069   "domain P"