Module docstring
{"# Theorems about invertible elements in a GroupWithZero
We intentionally keep imports minimal here as this file is used by Mathlib.Tactic.NormNum.
"}
{"# Theorems about invertible elements in a GroupWithZero
We intentionally keep imports minimal here as this file is used by Mathlib.Tactic.NormNum.
"}
Invertible.ne_zero
theorem
[MulZeroOneClass α] (a : α) [Nontrivial α] [Invertible a] : a ≠ 0
theorem Invertible.ne_zero [MulZeroOneClass α] (a : α) [Nontrivial α] [Invertible a] : a ≠ 0 :=
fun ha =>
zero_ne_one <|
calc
0 = ⅟ a * a := by simp [ha]
_ = 1 := invOf_mul_self
Invertible.toNeZero
instance
[MulZeroOneClass α] [Nontrivial α] (a : α) [Invertible a] : NeZero a
instance (priority := 100) Invertible.toNeZero [MulZeroOneClass α] [Nontrivial α] (a : α)
[Invertible a] : NeZero a :=
⟨Invertible.ne_zero a⟩
Ring.inverse_invertible
theorem
(x : α) [Invertible x] : Ring.inverse x = ⅟ x
/-- A variant of `Ring.inverse_unit`. -/
@[simp]
theorem Ring.inverse_invertible (x : α) [Invertible x] : Ring.inverse x = ⅟ x :=
Ring.inverse_unit (unitOfInvertible _)
invertibleOfNonzero
definition
{a : α} (h : a ≠ 0) : Invertible a
/-- `a⁻¹` is an inverse of `a` if `a ≠ 0` -/
def invertibleOfNonzero {a : α} (h : a ≠ 0) : Invertible a :=
⟨a⁻¹, inv_mul_cancel₀ h, mul_inv_cancel₀ h⟩
invOf_eq_inv
theorem
(a : α) [Invertible a] : ⅟ a = a⁻¹
@[simp]
theorem invOf_eq_inv (a : α) [Invertible a] : ⅟ a = a⁻¹ :=
invOf_eq_right_inv (mul_inv_cancel₀ (Invertible.ne_zero a))
inv_mul_cancel_of_invertible
theorem
(a : α) [Invertible a] : a⁻¹ * a = 1
@[simp]
theorem inv_mul_cancel_of_invertible (a : α) [Invertible a] : a⁻¹ * a = 1 :=
inv_mul_cancel₀ (Invertible.ne_zero a)
mul_inv_cancel_of_invertible
theorem
(a : α) [Invertible a] : a * a⁻¹ = 1
@[simp]
theorem mul_inv_cancel_of_invertible (a : α) [Invertible a] : a * a⁻¹ = 1 :=
mul_inv_cancel₀ (Invertible.ne_zero a)
invertibleInv
definition
{a : α} [Invertible a] : Invertible a⁻¹
/-- `a` is the inverse of `a⁻¹` -/
def invertibleInv {a : α} [Invertible a] : Invertible a⁻¹ :=
⟨a, by simp, by simp⟩
div_mul_cancel_of_invertible
theorem
(a b : α) [Invertible b] : a / b * b = a
@[simp]
theorem div_mul_cancel_of_invertible (a b : α) [Invertible b] : a / b * b = a :=
div_mul_cancel₀ a (Invertible.ne_zero b)
mul_div_cancel_of_invertible
theorem
(a b : α) [Invertible b] : a * b / b = a
@[simp]
theorem mul_div_cancel_of_invertible (a b : α) [Invertible b] : a * b / b = a :=
mul_div_cancel_right₀ a (Invertible.ne_zero b)
div_self_of_invertible
theorem
(a : α) [Invertible a] : a / a = 1
@[simp]
theorem div_self_of_invertible (a : α) [Invertible a] : a / a = 1 :=
div_self (Invertible.ne_zero a)
invertibleDiv
definition
(a b : α) [Invertible a] [Invertible b] : Invertible (a / b)
/-- `b / a` is the inverse of `a / b` -/
def invertibleDiv (a b : α) [Invertible a] [Invertible b] : Invertible (a / b) :=
⟨b / a, by simp [← mul_div_assoc], by simp [← mul_div_assoc]⟩
invOf_div
theorem
(a b : α) [Invertible a] [Invertible b] [Invertible (a / b)] : ⅟ (a / b) = b / a
theorem invOf_div (a b : α) [Invertible a] [Invertible b] [Invertible (a / b)] :
⅟ (a / b) = b / a :=
invOf_eq_right_inv (by simp [← mul_div_assoc])