|
| 1 | +set_option grind.warning false |
| 2 | + |
| 3 | +example [Mul α] [Std.Commutative (α := α) (· * ·)] {a b : α} : a * b = b * a := by |
| 4 | + grind |
| 5 | + |
| 6 | +example [Mul α] [Std.Associative (α := α) (· * ·)] {a b : α} : a * b * c = a * (b * c) := by |
| 7 | + grind |
| 8 | + |
| 9 | +example [Mul α] [Std.Commutative (α := α) (· * ·)] [Std.Associative (α := α) (· * ·)] {a b c : α} : |
| 10 | + a * b * c = b * (a * c) := by |
| 11 | + grind |
| 12 | + |
| 13 | +example [Mul α] [Std.IdempotentOp (α := α) (· * ·)] {a : α} : a * a = a := by |
| 14 | + grind |
| 15 | + |
| 16 | +example [Mul α] [Std.IdempotentOp (α := α) (· * ·)] [Std.Commutative (α := α) (· * ·)] |
| 17 | + [Std.Associative (α := α) (· * ·)] {a : α} : |
| 18 | + a * b * a = a * b := by |
| 19 | + grind |
| 20 | + |
| 21 | +example [Mul α] (a b : α) [Std.LawfulLeftIdentity (α := α) (· * ·) (a : α)] : a * b = b := by |
| 22 | + grind |
| 23 | + |
| 24 | +example [Mul α] (a b : α) [Std.LawfulRightIdentity (α := α) (· * ·) (a : α)] : b * a = b := by |
| 25 | + grind |
| 26 | + |
| 27 | +example [Mul α] (a b : α) [Std.LawfulRightIdentity (α := α) (· * ·) (a : α)] : b * a * a = b := by |
| 28 | + grind |
| 29 | + |
| 30 | +example [Mul α] (a b : α) [Std.LawfulIdentity (α := α) (· * ·) (a : α)] |
| 31 | + [Std.Associative (α := α) (· * ·)] : a * b * a = b := by |
| 32 | + grind |
| 33 | + |
| 34 | +example [Mul α] (a b : α) [Std.Commutative (α := α) (· * ·)] [Std.LawfulCommIdentity (α := α) (· * ·) (a : α)] |
| 35 | + [Std.Associative (α := α) (· * ·)] : a * b * a = b := by |
| 36 | + grind |
| 37 | + |
| 38 | +example {r : α → α → Prop} [Std.Refl r] {a : α} : r a a := by grind |
| 39 | + |
| 40 | +example [Mul α] {r : α → α → Prop} [Std.Commutative (α := α) (· * ·)] [Std.Refl r] : |
| 41 | + r (a * b) (b * a) := by grind |
| 42 | + |
| 43 | +example {r : α → α → Prop} [Std.Antisymm r] {a b : α} : r a b → r b a → a = b := by grind |
| 44 | +example {r : α → α → Prop} [Std.Asymm r] {a b : α} : r a b → r b a → False := by grind |
| 45 | +example {r : α → α → Prop} [Std.Asymm r] {a b : α} : r a b → ¬ r b a := by grind |
| 46 | +example {r : α → α → Prop} [Std.Asymm r] : Std.Antisymm r := by grind [Std.Antisymm] -- We haven't put `@[grind]` on `Std.Antisymm.mk`. |
| 47 | +example {r : α → α → Prop} [Std.Total r] {a b : α} : ¬ r a b → r b a := by grind |
| 48 | +example {r : α → α → Prop} [Std.Irrefl r] {a : α} : ¬ r a a := by grind |
| 49 | +example [Mul α] {r : α → α → Prop} [Std.Commutative (α := α) (· * ·)] [Std.Irrefl r] : |
| 50 | + ¬ r (a * b) (b * a) := by |
| 51 | + grind |
| 52 | +example [Mul α] {r : α → α → Prop} [Std.Commutative (α := α) (· * ·)] [Std.Total r] |
| 53 | + (h : ¬ r (a * b) (b * a)) : False := by |
| 54 | + grind |
0 commit comments