Documentation

Mathlib.Algebra.GroupWithZero.Units.Lemmas

Further lemmas about units in a MonoidWithZero or a GroupWithZero. #

@[simp]
theorem div_self {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} (h : a 0) :
a / a = 1
theorem eq_mul_inv_iff_mul_eq₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hc : c 0) :
a = b * c⁻¹ a * c = b
theorem eq_inv_mul_iff_mul_eq₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
a = b⁻¹ * c b * a = c
theorem inv_mul_eq_iff_eq_mul₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (ha : a 0) :
a⁻¹ * b = c b = a * c
theorem mul_inv_eq_iff_eq_mul₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
a * b⁻¹ = c a = c * b
theorem mul_inv_eq_one₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (hb : b 0) :
a * b⁻¹ = 1 a = b
theorem inv_mul_eq_one₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (ha : a 0) :
a⁻¹ * b = 1 a = b
theorem mul_eq_one_iff_eq_inv₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (hb : b 0) :
a * b = 1 a = b⁻¹
theorem mul_eq_one_iff_inv_eq₀ {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (ha : a 0) :
a * b = 1 a⁻¹ = b
@[simp]
theorem div_mul_cancel {G₀ : Type u_3} [GroupWithZero G₀] {b : G₀} (a : G₀) (h : b 0) :
a / b * b = a
@[simp]
theorem mul_div_cancel {G₀ : Type u_3} [GroupWithZero G₀] {b : G₀} (a : G₀) (h : b 0) :
a * b / b = a
theorem mul_one_div_cancel {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} (h : a 0) :
a * (1 / a) = 1
theorem one_div_mul_cancel {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} (h : a 0) :
1 / a * a = 1
theorem div_left_inj' {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hc : c 0) :
a / c = b / c a = b
theorem div_eq_iff {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
a / b = c a = c * b
theorem eq_div_iff {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
c = a / b c * b = a
theorem div_eq_iff_mul_eq {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
a / b = c c * b = a
theorem eq_div_iff_mul_eq {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hc : c 0) :
a = b / c a * c = b
theorem div_eq_of_eq_mul {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hb : b 0) :
a = c * ba / b = c
theorem eq_div_of_mul_eq {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} (hc : c 0) :
a * c = ba = b / c
theorem div_eq_one_iff_eq {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (hb : b 0) :
a / b = 1 a = b
theorem div_mul_left {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (hb : b 0) :
b / (a * b) = 1 / a
theorem mul_div_mul_right {G₀ : Type u_3} [GroupWithZero G₀] {c : G₀} (a : G₀) (b : G₀) (hc : c 0) :
a * c / (b * c) = a / b
theorem mul_mul_div {G₀ : Type u_3} [GroupWithZero G₀] {b : G₀} (a : G₀) (hb : b 0) :
a = a * b * (1 / b)
theorem div_div_div_cancel_right {G₀ : Type u_3} [GroupWithZero G₀] {b : G₀} {c : G₀} (a : G₀) (hc : c 0) :
a / c / (b / c) = a / b
theorem div_mul_div_cancel {G₀ : Type u_3} [GroupWithZero G₀] {b : G₀} {c : G₀} (a : G₀) (hc : c 0) :
a / c * (c / b) = a / b
theorem div_mul_cancel_of_imp {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (h : b = 0a = 0) :
a / b * b = a
theorem mul_div_cancel_of_imp {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} (h : b = 0a = 0) :
a * b / b = a
@[simp]
theorem divp_mk0 {G₀ : Type u_3} [GroupWithZero G₀] (a : G₀) {b : G₀} (hb : b 0) :
a /ₚ Units.mk0 b hb = a / b
theorem Commute.div_eq_div_iff {G₀ : Type u_3} [GroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} {d : G₀} (hbd : Commute b d) (hb : b 0) (hd : d 0) :
a / b = c / d a * d = c * b

The MonoidWithZero version of div_eq_div_iff_mul_eq_mul.

theorem div_mul_right {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} (b : G₀) (ha : a 0) :
a / (a * b) = 1 / b
theorem mul_div_cancel_left_of_imp {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} (h : a = 0b = 0) :
a * b / a = b
theorem mul_div_cancel_left {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} (b : G₀) (ha : a 0) :
a * b / a = b
theorem mul_div_cancel_of_imp' {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} (h : b = 0a = 0) :
b * (a / b) = a
theorem mul_div_cancel' {G₀ : Type u_3} [CommGroupWithZero G₀] {b : G₀} (a : G₀) (hb : b 0) :
b * (a / b) = a
theorem mul_div_mul_left {G₀ : Type u_3} [CommGroupWithZero G₀] {c : G₀} (a : G₀) (b : G₀) (hc : c 0) :
c * a / (c * b) = a / b
theorem mul_eq_mul_of_div_eq_div {G₀ : Type u_3} [CommGroupWithZero G₀] (a : G₀) {b : G₀} (c : G₀) {d : G₀} (hb : b 0) (hd : d 0) (h : a / b = c / d) :
a * d = c * b
theorem div_eq_div_iff {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} {d : G₀} (hb : b 0) (hd : d 0) :
a / b = c / d a * d = c * b
theorem div_eq_div_iff_div_eq_div' {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} {c : G₀} {d : G₀} (hb : b 0) (hc : c 0) :
a / b = c / d a / c = b / d

The CommGroupWithZero version of div_eq_div_iff_div_eq_div.

theorem div_div_cancel' {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} (ha : a 0) :
a / (a / b) = b
theorem div_div_cancel_left' {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} {b : G₀} (ha : a 0) :
a / b / a = b⁻¹
theorem div_helper {G₀ : Type u_3} [CommGroupWithZero G₀] {a : G₀} (b : G₀) (h : a 0) :
1 / (a * b) * a = 1 / b
theorem div_div_div_cancel_left' {G₀ : Type u_3} [CommGroupWithZero G₀] {c : G₀} (a : G₀) (b : G₀) (hc : c 0) :
c / a / (c / b) = b / a
theorem map_ne_zero {M₀ : Type u_2} {G₀ : Type u_3} {F : Type u_6} [MonoidWithZero M₀] [GroupWithZero G₀] [Nontrivial M₀] [FunLike F G₀ M₀] [MonoidWithZeroHomClass F G₀ M₀] (f : F) {a : G₀} :
f a 0 a 0
@[simp]
theorem map_eq_zero {M₀ : Type u_2} {G₀ : Type u_3} {F : Type u_6} [MonoidWithZero M₀] [GroupWithZero G₀] [Nontrivial M₀] [FunLike F G₀ M₀] [MonoidWithZeroHomClass F G₀ M₀] (f : F) {a : G₀} :
f a = 0 a = 0
theorem eq_on_inv₀ {G₀ : Type u_3} {M₀' : Type u_4} {F' : Type u_7} [GroupWithZero G₀] [MonoidWithZero M₀'] [FunLike F' G₀ M₀'] [MonoidWithZeroHomClass F' G₀ M₀'] {a : G₀} (f : F') (g : F') (h : f a = g a) :
f a⁻¹ = g a⁻¹
@[simp]
theorem map_inv₀ {G₀ : Type u_3} {G₀' : Type u_5} {F : Type u_6} [GroupWithZero G₀] [GroupWithZero G₀'] [FunLike F G₀ G₀'] [MonoidWithZeroHomClass F G₀ G₀'] (f : F) (a : G₀) :
f a⁻¹ = (f a)⁻¹

A monoid homomorphism between groups with zeros sending 0 to 0 sends a⁻¹ to (f a)⁻¹.

@[simp]
theorem map_div₀ {G₀ : Type u_3} {G₀' : Type u_5} {F : Type u_6} [GroupWithZero G₀] [GroupWithZero G₀'] [FunLike F G₀ G₀'] [MonoidWithZeroHomClass F G₀ G₀'] (f : F) (a : G₀) (b : G₀) :
f (a / b) = f a / f b
noncomputable def MonoidWithZero.inverse {M : Type u_8} [CommMonoidWithZero M] :

We define the inverse as a MonoidWithZeroHom by extending the inverse map by zero on non-units.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem MonoidWithZero.coe_inverse {M : Type u_8} [CommMonoidWithZero M] :
    MonoidWithZero.inverse = Ring.inverse
    @[simp]
    theorem MonoidWithZero.inverse_apply {M : Type u_8} [CommMonoidWithZero M] (a : M) :
    MonoidWithZero.inverse a = Ring.inverse a
    def invMonoidWithZeroHom {G₀ : Type u_8} [CommGroupWithZero G₀] :
    G₀ →*₀ G₀

    Inversion on a commutative group with zero, considered as a monoid with zero homomorphism.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem Units.smul_mk0 {G₀ : Type u_3} [GroupWithZero G₀] {α : Type u_8} [SMul G₀ α] {g : G₀} (hg : g 0) (a : α) :
      Units.mk0 g hg a = g a
      @[simp]
      theorem map_zpow₀ {F : Type u_8} {G₀ : Type u_9} {G₀' : Type u_10} [GroupWithZero G₀] [GroupWithZero G₀'] [FunLike F G₀ G₀'] [MonoidWithZeroHomClass F G₀ G₀'] (f : F) (x : G₀) (n : ) :
      f (x ^ n) = f x ^ n

      If a monoid homomorphism f between two GroupWithZeros maps 0 to 0, then it maps x^n, n : ℤ, to (f x)^n.