src/HOL/Computational_Algebra/Polynomial_Factorial.thy
changeset 66840 0d689d71dbdc
parent 66838 17989f6bc7b2
child 67051 e7e54a0b9197
equal deleted inserted replaced
66839:909ba5ed93dd 66840:0d689d71dbdc
   757     then have "(r + q * p) div p = q + r div p"
   757     then have "(r + q * p) div p = q + r div p"
   758       by (rule div_poly_eq)
   758       by (rule div_poly_eq)
   759     with that show ?thesis
   759     with that show ?thesis
   760       by (cases "r = 0") (simp_all add: euclidean_size_poly_def div_poly_less ac_simps)
   760       by (cases "r = 0") (simp_all add: euclidean_size_poly_def div_poly_less ac_simps)
   761   qed
   761   qed
   762 qed (auto simp: euclidean_size_poly_def Rings.div_mult_mod_eq div_poly_less degree_mult_eq intro!: degree_mod_less' degree_mult_right_le
   762 qed (auto simp: euclidean_size_poly_def Rings.div_mult_mod_eq div_poly_less degree_mult_eq power_add
   763     split: if_splits)
   763     intro!: degree_mod_less' split: if_splits)
   764 
   764 
   765 end
   765 end
   766 
   766 
   767 instance poly :: ("{field, normalization_euclidean_semiring, factorial_ring_gcd}") euclidean_ring_gcd
   767 instance poly :: ("{field, normalization_euclidean_semiring, factorial_ring_gcd}") euclidean_ring_gcd
   768   by (rule euclidean_ring_gcd_class.intro, rule factorial_euclidean_semiring_gcdI) standard
   768   by (rule euclidean_ring_gcd_class.intro, rule factorial_euclidean_semiring_gcdI) standard