Skip to content

Commit 601ea24

Browse files
authored
chore: add failing grind tests for noncommutative/non-negation rings (#8396)
1 parent ca037de commit 601ea24

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
-- Tests for `grind` as a ring normalization tactic, when only `Semiring`, `CommSemiring`, or `Ring` is available.
2+
-- Note that in these cases we *do not* support hypotheses: there's no (good) analogue of Grobner bases here.
3+
4+
open Lean.Grind
5+
6+
section Semiring
7+
8+
variable (R : Type u) [Semiring R]
9+
10+
example (a b c : R) : a * (b + c) = a * c + a * b := by grind
11+
example (a b : R) : (a + b)^2 = a^2 + a * b + b * a + b^2 := by grind
12+
example (a b : R) : (a + 2 * b)^2 = a^2 + 2 * a * b + 2 * b * a + 4 * b^2 := by grind
13+
example (a b : R) : (a + 2 * b)^2 = a^2 + 2 * a * b + b * 2 * a + 4 * b^2 := by grind
14+
15+
end Semiring
16+
17+
section CommSemiring
18+
19+
variable (R : Type u) [Semiring R]
20+
21+
example (a b c : R) : a * (b + c) = a * c + b * a := by grind
22+
example (a b : R) : (a + b)^2 = a^2 + 2 * a * b + b^2 := by grind
23+
example (a b : R) : (a + 2 * b)^2 = a^2 + 4 * a * b + 4 * b^2 := by grind
24+
example (a b : R) : (a + 2 * b)^2 = 4 * b^2 + b * 4 * a + a^2 := by grind
25+
26+
end CommSemiring
27+
28+
section Ring
29+
30+
variable (R : Type u) [Ring R]
31+
32+
example (a b c : R) : a * (b - c) = - a * c + a * b := by grind
33+
example (a b : R) : (a - b)^2 = a^2 - a * b - b * a + b^2 := by grind
34+
example (a b : R) : (a + 2 * b)^2 = a^2 - 2 * a * b - 2 * b * a + 4 * b^2 := by grind
35+
example (a b : R) : (a + 2 * b)^2 = a^2 - 2 * a * b + -b * (-2) * -a + 4 * b^2 := by grind
36+
37+
end Ring

0 commit comments

Comments
 (0)