The following could not be elaborated.
```lean
instance : MulComm Bool where
mulComm := fun {a b} =>
match a, b with
| true, true => rfl
| true, false => rfl
| false, true => rfl
| false, false => rfl
```
64 lines
1.4 KiB
Text
64 lines
1.4 KiB
Text
class MulComm (α : Type u) [Mul α] : Prop where
|
||
mulComm : {a b : α} → a * b = b * a
|
||
|
||
instance : Mul Bool where
|
||
mul := and
|
||
|
||
instance : MulComm Bool where
|
||
mulComm {a b} :=
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl
|
||
|
||
instance : MulComm Bool where
|
||
mulComm := fun {a b} =>
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl
|
||
|
||
instance : MulComm Bool := {
|
||
mulComm := fun {a b} =>
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl
|
||
}
|
||
|
||
instance : MulComm Bool := {
|
||
mulComm := @fun a b =>
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl
|
||
}
|
||
|
||
instance : MulComm Bool where
|
||
mulComm {a b} := by cases a <;> cases b <;> rfl
|
||
|
||
instance : MulComm Bool :=
|
||
⟨by intro a b; cases a <;> cases b <;> rfl⟩
|
||
|
||
instance : MulComm Bool :=
|
||
⟨fun {a b} => by cases a <;> cases b <;> rfl⟩
|
||
|
||
instance : MulComm Bool :=
|
||
⟨fun {a b} =>
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl⟩
|
||
|
||
instance : MulComm Bool :=
|
||
⟨@fun a b =>
|
||
match a, b with
|
||
| true, true => rfl
|
||
| true, false => rfl
|
||
| false, true => rfl
|
||
| false, false => rfl⟩
|