src/HOL/Rings.thy
changeset 58776 95e58e04e534
parent 58649 a62065b5e1e2
child 58889 5b7a9633cfa8
equal deleted inserted replaced
58775:9cd64a66a765 58776:95e58e04e534
    12 theory Rings
    12 theory Rings
    13 imports Groups
    13 imports Groups
    14 begin
    14 begin
    15 
    15 
    16 class semiring = ab_semigroup_add + semigroup_mult +
    16 class semiring = ab_semigroup_add + semigroup_mult +
    17   assumes distrib_right[algebra_simps, field_simps]: "(a + b) * c = a * c + b * c"
    17   assumes distrib_right[algebra_simps]: "(a + b) * c = a * c + b * c"
    18   assumes distrib_left[algebra_simps, field_simps]: "a * (b + c) = a * b + a * c"
    18   assumes distrib_left[algebra_simps]: "a * (b + c) = a * b + a * c"
    19 begin
    19 begin
    20 
    20 
    21 text{*For the @{text combine_numerals} simproc*}
    21 text{*For the @{text combine_numerals} simproc*}
    22 lemma combine_common_factor:
    22 lemma combine_common_factor:
    23   "a * e + (b * e + c) = (a + b) * e + c"
    23   "a * e + (b * e + c) = (a + b) * e + c"
   297 by simp
   297 by simp
   298 
   298 
   299 lemma minus_mult_commute: "- a * b = a * - b"
   299 lemma minus_mult_commute: "- a * b = a * - b"
   300 by simp
   300 by simp
   301 
   301 
   302 lemma right_diff_distrib [algebra_simps, field_simps]:
   302 lemma right_diff_distrib [algebra_simps]:
   303   "a * (b - c) = a * b - a * c"
   303   "a * (b - c) = a * b - a * c"
   304   using distrib_left [of a b "-c "] by simp
   304   using distrib_left [of a b "-c "] by simp
   305 
   305 
   306 lemma left_diff_distrib [algebra_simps, field_simps]:
   306 lemma left_diff_distrib [algebra_simps]:
   307   "(a - b) * c = a * c - b * c"
   307   "(a - b) * c = a * c - b * c"
   308   using distrib_right [of a "- b" c] by simp
   308   using distrib_right [of a "- b" c] by simp
   309 
   309 
   310 lemmas ring_distribs =
   310 lemmas ring_distribs =
   311   distrib_left distrib_right left_diff_distrib right_diff_distrib
   311   distrib_left distrib_right left_diff_distrib right_diff_distrib