Lemmas about commuting pairs of elements involving units. #
theorem
AddCommute.addUnits_neg_right
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
:
AddCommute a โu โ AddCommute a โ(-u)
@[simp]
@[simp]
theorem
AddCommute.addUnits_neg_right_iff
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
:
AddCommute a โ(-u) โ AddCommute a โu
theorem
AddCommute.addUnits_neg_left
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
:
AddCommute (โu) a โ AddCommute (โ(-u)) a
@[simp]
@[simp]
theorem
AddCommute.addUnits_neg_left_iff
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
:
AddCommute (โ(-u)) a โ AddCommute (โu) a
theorem
AddCommute.addUnits_val
{M : Type u_1}
[AddMonoid M]
{uโ uโ : AddUnits M}
:
AddCommute uโ uโ โ AddCommute โuโ โuโ
theorem
AddCommute.addUnits_of_val
{M : Type u_1}
[AddMonoid M]
{uโ uโ : AddUnits M}
:
AddCommute โuโ โuโ โ AddCommute uโ uโ
@[simp]
@[simp]
theorem
AddCommute.addUnits_val_iff
{M : Type u_1}
[AddMonoid M]
{uโ uโ : AddUnits M}
:
AddCommute โuโ โuโ โ AddCommute uโ uโ
def
AddUnits.leftOfAdd
{M : Type u_1}
[AddMonoid M]
(u : AddUnits M)
(a b : M)
(hu : a + b = โu)
(hc : AddCommute a b)
:
AddUnits M
If the sum of two commuting elements is an additive unit, then the left summand is an additive unit.
Instances For
def
AddUnits.rightOfAdd
{M : Type u_1}
[AddMonoid M]
(u : AddUnits M)
(a b : M)
(hu : a + b = โu)
(hc : AddCommute a b)
:
AddUnits M
If the sum of two commuting elements is an additive unit, then the right summand is an additive unit.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
theorem
AddCommute.addUnits_zsmul_right
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
(h : AddCommute a โu)
(m : โค)
:
AddCommute a โ(m โข u)
@[simp]
@[simp]
theorem
AddCommute.addUnits_zsmul_left
{M : Type u_1}
[AddMonoid M]
{a : M}
{u : AddUnits M}
(h : AddCommute (โu) a)
(m : โค)
:
AddCommute (โ(m โข u)) a
def
Units.ofPow
{M : Type u_1}
[Monoid M]
(u : Mหฃ)
(x : M)
{n : โ}
(hn : n โ 0)
(hu : x ^ n = โu)
:
Mหฃ
If a natural power of x is a unit, then x is a unit.
Instances For
def
AddUnits.ofNSMul
{M : Type u_1}
[AddMonoid M]
(u : AddUnits M)
(x : M)
{n : โ}
(hn : n โ 0)
(hu : n โข x = โu)
:
AddUnits M
If a natural multiple of x is an additive unit, then x is an additive unit.
Instances For
@[simp]
@[simp]
theorem
isUnit_pow_iff_of_not_isUnit
{M : Type u_1}
[Monoid M]
{a : M}
(hx : ยฌIsUnit a)
{n : โ}
:
IsUnit (a ^ n) โ n = 0
def
Units.ofPowEqOne
{M : Type u_1}
[Monoid M]
(a : M)
(n : โ)
(ha : a ^ n = 1)
(hn : n โ 0)
:
Mหฃ
If a ^ n = 1, n โ 0, then a is a unit.
Instances For
def
AddUnits.ofNSMulEqZero
{M : Type u_1}
[AddMonoid M]
(a : M)
(n : โ)
(ha : n โข a = 0)
(hn : n โ 0)
:
AddUnits M
If n โข x = 0, n โ 0, then x is an additive unit.
Instances For
@[simp]
theorem
Units.val_inv_ofPowEqOne
{M : Type u_1}
[Monoid M]
(a : M)
(n : โ)
(ha : a ^ n = 1)
(hn : n โ 0)
:
โ(ofPowEqOne a n ha hn)โปยน = a ^ (n - 1)
@[simp]
theorem
AddUnits.val_ofNSMulEqZero
{M : Type u_1}
[AddMonoid M]
(a : M)
(n : โ)
(ha : n โข a = 0)
(hn : n โ 0)
:
โ(ofNSMulEqZero a n ha hn) = a
@[simp]
theorem
AddUnits.val_neg_ofNSMulEqZero
{M : Type u_1}
[AddMonoid M]
(a : M)
(n : โ)
(ha : n โข a = 0)
(hn : n โ 0)
:
โ(-ofNSMulEqZero a n ha hn) = (n - 1) โข a
@[simp]
theorem
Units.val_ofPowEqOne
{M : Type u_1}
[Monoid M]
(a : M)
(n : โ)
(ha : a ^ n = 1)
(hn : n โ 0)
:
โ(ofPowEqOne a n ha hn) = a
@[simp]
theorem
Units.pow_ofPowEqOne
{M : Type u_1}
[Monoid M]
{n : โ}
{a : M}
(ha : a ^ n = 1)
(hn : n โ 0)
:
ofPowEqOne a n ha hn ^ n = 1
@[simp]
theorem
AddUnits.nsmul_ofNSMulEqZero
{M : Type u_1}
[AddMonoid M]
{n : โ}
{a : M}
(ha : n โข a = 0)
(hn : n โ 0)
:
n โข ofNSMulEqZero a n ha hn = 0
theorem
IsUnit.of_pow_eq_one
{M : Type u_1}
[Monoid M]
{n : โ}
{a : M}
(ha : a ^ n = 1)
(hn : n โ 0)
:
IsUnit a
theorem
IsAddUnit.of_nsmul_eq_zero
{M : Type u_1}
[AddMonoid M]
{n : โ}
{a : M}
(ha : n โข a = 0)
(hn : n โ 0)
:
theorem
AddUnits.addCommute_iff_neg_add_cancel
{M : Type u_1}
[AddMonoid M]
{u : AddUnits M}
{a : M}
:
AddCommute (โu) a โ โ(-u) + a + โu = a
theorem
AddUnits.addCommute_iff_neg_add_cancel_assoc
{M : Type u_1}
[AddMonoid M]
{u : AddUnits M}
{a : M}
:
AddCommute (โu) a โ โ(-u) + (a + โu) = a
theorem
AddUnits.addCommute_iff_add_neg_cancel
{M : Type u_1}
[AddMonoid M]
{u : AddUnits M}
{a : M}
:
AddCommute (โu) a โ โu + a + โ(-u) = a
theorem
AddUnits.addCommute_iff_add_neg_cancel_assoc
{M : Type u_1}
[AddMonoid M]
{u : AddUnits M}
{a : M}
:
AddCommute (โu) a โ โu + (a + โ(-u)) = a
theorem
Commute.div_eq_div_iff_of_isUnit
{M : Type u_1}
[DivisionMonoid M]
{a b c d : M}
(hbd : Commute b d)
(hb : IsUnit b)
(hd : IsUnit d)
:
a / b = c / d โ a * d = c * b
theorem
AddCommute.sub_eq_sub_iff_of_isAddUnit
{M : Type u_1}
[SubtractionMonoid M]
{a b c d : M}
(hbd : AddCommute b d)
(hb : IsAddUnit b)
(hd : IsAddUnit d)
:
a - b = c - d โ a + d = c + b
theorem
Commute.mul_inv_eq_mul_inv_iff_of_isUnit
{M : Type u_1}
[DivisionMonoid M]
{a b c d : M}
(hbd : Commute b d)
(hb : IsUnit b)
(hd : IsUnit d)
:
theorem
AddCommute.add_neg_eq_add_neg_iff_of_isAddUnit
{M : Type u_1}
[SubtractionMonoid M]
{a b c d : M}
(hbd : AddCommute b d)
(hb : IsAddUnit b)
(hd : IsAddUnit d)
:
theorem
Commute.inv_mul_eq_inv_mul_iff_of_isUnit
{M : Type u_1}
[DivisionMonoid M]
{a b c d : M}
(hbd : Commute b d)
(hb : IsUnit b)
(hd : IsUnit d)
:
theorem
AddCommute.neg_add_eq_neg_add_iff_of_isAddUnit
{M : Type u_1}
[SubtractionMonoid M]
{a b c d : M}
(hbd : AddCommute b d)
(hb : IsAddUnit b)
(hd : IsAddUnit d)
: