Divisibility in groups with zero. #
Lemmas about divisibility in groups and monoids with zero.
@[simp]
Given an element a of a commutative semigroup with zero, there exists another element whose
product with zero equals a iff a equals zero.
theorem
mul_dvd_mul_iff_left
{α : Type u_1}
[MonoidWithZero α]
[IsLeftCancelMulZero α]
{a b c : α}
(ha : a ≠ 0)
:
a * b ∣ a * c ↔ b ∣ c
Given two elements b, c of a cancellative MonoidWithZero and a nonzero element a,
a*b divides a*c iff b divides c.
theorem
mul_dvd_mul_iff_right
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b c : α}
(hc : c ≠ 0)
:
a * c ∣ b * c ↔ a ∣ b
Given two elements a, b of a commutative cancellative MonoidWithZero and a nonzero
element c, a*c divides b*c iff a divides b.
DvdNotUnit a b expresses that a divides b "strictly", i.e. that b divided by a
is not a unit.
Instances For
theorem
dvdNotUnit_of_dvd_of_not_dvd
{α : Type u_1}
[CommMonoidWithZero α]
{a b : α}
(hd : a ∣ b)
(hnd : ¬b ∣ a)
:
DvdNotUnit a b
theorem
isRelPrime_zero_left
{α : Type u_1}
[CommMonoidWithZero α]
{x : α}
:
IsRelPrime 0 x ↔ IsUnit x
theorem
isRelPrime_zero_right
{α : Type u_1}
[CommMonoidWithZero α]
{x : α}
:
IsRelPrime x 0 ↔ IsUnit x
theorem
not_isRelPrime_zero_zero
{α : Type u_1}
[CommMonoidWithZero α]
[Nontrivial α]
:
¬IsRelPrime 0 0
theorem
IsRelPrime.ne_zero_or_ne_zero
{α : Type u_1}
[CommMonoidWithZero α]
{x y : α}
[Nontrivial α]
(h : IsRelPrime x y)
:
x ≠ 0 ∨ y ≠ 0
theorem
isRelPrime_of_no_nonunits_factors
{α : Type u_1}
[MonoidWithZero α]
{x y : α}
(nonzero : ¬(x = 0 ∧ y = 0))
(H : ∀ (z : α), ¬IsUnit z → z ≠ 0 → z ∣ x → ¬z ∣ y)
:
IsRelPrime x y
theorem
dvd_and_not_dvd_iff
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{x y : α}
:
x ∣ y ∧ ¬y ∣ x ↔ DvdNotUnit x y
theorem
ne_zero_of_dvd_ne_zero
{α : Type u_1}
[MonoidWithZero α]
{p q : α}
(h₁ : q ≠ 0)
(h₂ : p ∣ q)
:
p ≠ 0
theorem
IsPrimal.mul
{α : Type u_2}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{m n : α}
(hm : IsPrimal m)
(hn : IsPrimal n)
:
IsPrimal (m * n)
theorem
dvd_antisymm
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
:
a ∣ b → b ∣ a → a = b
theorem
dvd_antisymm'
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
:
a ∣ b → b ∣ a → b = a
theorem
Dvd.dvd.antisymm
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
:
a ∣ b → b ∣ a → a = b
Alias of dvd_antisymm.
theorem
Dvd.dvd.antisymm'
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
:
a ∣ b → b ∣ a → b = a
Alias of dvd_antisymm'.
theorem
eq_of_forall_dvd
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
(h : ∀ (c : α), a ∣ c ↔ b ∣ c)
:
a = b
theorem
eq_of_forall_dvd'
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a b : α}
[Subsingleton αˣ]
(h : ∀ (c : α), c ∣ a ↔ c ∣ b)
:
a = b
theorem
pow_dvd_pow_iff
{α : Type u_1}
[CommMonoidWithZero α]
[IsCancelMulZero α]
{a : α}
{m n : ℕ}
(ha₀ : a ≠ 0)
(ha : ¬IsUnit a)
:
a ^ n ∣ a ^ m ↔ n ≤ m
@[simp]
∣ is not a useful definition if an inverse is available.