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