Theorem: MyGroup.mul_left_cancel (IIScExperiments/Solutions/GroupTheorySolutions.lean)

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ b = c
Tactic:
calc
     b = 1 * b         := by rw [one_mul]
     _ = a⁻¹ * a * b   := by rw [inv_mul_self]
     _ = a⁻¹ * (a * b) := by rw [mul_assoc]
     _ = a⁻¹ * (a * c) := by rw [h]
     _ = a⁻¹ * a * c   := by rw [mul_assoc]
     _ = 1 * c         := by rw [inv_mul_self]
     _ = c             := by rw [one_mul]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ b = 1 * b
Tactic:
rw [one_mul]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ 1 * b = a⁻¹ * a * b
Tactic:
rw [inv_mul_self]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ a⁻¹ * a * b = a⁻¹ * (a * b)
Tactic:
rw [mul_assoc]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ a⁻¹ * (a * b) = a⁻¹ * (a * c)
Tactic:
rw [h]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ a⁻¹ * (a * c) = a⁻¹ * a * c
Tactic:
rw [mul_assoc]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ a⁻¹ * a * c = 1 * c
Tactic:
rw [inv_mul_self]
State after:
no goals

State before:
G : Type
inst✝ : MyGroup G
a b c : G
h : a * b = a * c
⊢ 1 * c = c
Tactic:
rw [one_mul]
State after:
no goals