equal
deleted
inserted
replaced
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 |