This PR implements support for normalization for commutative semirings that do not implement `AddRightCancel`. Examples: ```lean variable (R : Type u) [CommSemiring R] example (a b c : R) : a * (b + c) = a * c + b * a := by grind example (a b : R) : (a + b)^2 = a^2 + 2 * a * b + b^2 := by grind example (a b : R) : (a + 2 * b)^2 = a^2 + 4 * a * b + 4 * b^2 := by grind example (a b : R) : (a + 2 * b)^2 = 4 * b^2 + b * 4 * a + a^2 := by grind ``` |
||
|---|---|---|
| .. | ||
| field_normalization.lean | ||
| module_normalization.lean | ||
| ordered_modules.lean | ||
| ring_normalization.lean | ||