theorem
inv_unique
    {M : Type u}
    [comm_monoid M]
    {x y z : M}
    (hy : x * y = 1)
    (hz : x * z = 1) :
y = z
    
theorem
neg_unique
    {M : Type u}
    [add_comm_monoid M]
    {x y z : M}
    (hy : x + y = 0)
    (hz : x + z = 0) :
y = z
    
theorem
eq_one_of_mul_self_left_cancel
    {M : Type u}
    [left_cancel_monoid M]
    {a : M}
    (h : a * a = a) :
a = 1
    
theorem
eq_zero_of_add_self_left_cancel
    {M : Type u}
    [add_left_cancel_monoid M]
    {a : M}
    (h : a + a = a) :
a = 0
    
theorem
eq_zero_of_left_cancel_add_self
    {M : Type u}
    [add_left_cancel_monoid M]
    {a : M}
    (h : a = a + a) :
a = 0
    
theorem
eq_one_of_left_cancel_mul_self
    {M : Type u}
    [left_cancel_monoid M]
    {a : M}
    (h : a = a * a) :
a = 1
    
theorem
eq_zero_of_add_self_right_cancel
    {M : Type u}
    [add_right_cancel_monoid M]
    {a : M}
    (h : a + a = a) :
a = 0
    
theorem
eq_one_of_mul_self_right_cancel
    {M : Type u}
    [right_cancel_monoid M]
    {a : M}
    (h : a * a = a) :
a = 1
    
theorem
eq_one_of_right_cancel_mul_self
    {M : Type u}
    [right_cancel_monoid M]
    {a : M}
    (h : a = a * a) :
a = 1
    
theorem
eq_zero_of_right_cancel_add_self
    {M : Type u}
    [add_right_cancel_monoid M]
    {a : M}
    (h : a = a + a) :
a = 0
    
theorem
left_inverse_neg
    (G : Type u_1)
    [add_group G] :
function.left_inverse (λ (a : G), -a) (λ (a : G), -a)
    
theorem
left_inverse_inv
    (G : Type u_1)
    [group G] :
function.left_inverse (λ (a : G), a⁻¹) (λ (a : G), a⁻¹)
    
theorem
add_right_surjective
    {G : Type u}
    [add_group G]
    (a : G) :
function.surjective (λ (x : G), x + a)
    
theorem
mul_right_surjective
    {G : Type u}
    [group G]
    (a : G) :
function.surjective (λ (x : G), x * a)
    
theorem
left_inverse_sub_add_left
    {G : Type u}
    [add_group G]
    (c : G) :
function.left_inverse (λ (x : G), x - c) (λ (x : G), x + c)
    
theorem
left_inverse_add_left_sub
    {G : Type u}
    [add_group G]
    (c : G) :
function.left_inverse (λ (x : G), x + c) (λ (x : G), x - c)
    
theorem
left_inverse_add_right_neg_add
    {G : Type u}
    [add_group G]
    (c : G) :
function.left_inverse (λ (x : G), c + x) (λ (x : G), -c + x)
    
theorem
left_inverse_neg_add_add_right
    {G : Type u}
    [add_group G]
    (c : G) :
function.left_inverse (λ (x : G), -c + x) (λ (x : G), c + x)
@[simp]
@[simp]
@[simp]