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) :
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) :
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 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) :
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 ne_zero_of_dvd_ne_zero {α : Type u_1} [MonoidWithZero α] {p q : α} (h₁ : q ≠ 0) (h₂ : p ∣ q) :
theorem IsPrimal.mul {α : Type u_2} [CommMonoidWithZero α] [IsCancelMulZero α] {m n : α} (hm : IsPrimal m) (hn : IsPrimal n) :
theorem dvd_antisymm {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] :
theorem dvd_antisymm' {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] :
theorem Dvd.dvd.antisymm {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] :
Alias of dvd_antisymm.
theorem Dvd.dvd.antisymm' {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] :
Alias of dvd_antisymm'.
instance instIsPartialOrderDvd {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] [Subsingleton αˣ] :
IsPartialOrder α fun (x1 x2 : α) => x1 ∣ x2
instance instIsPartialOrderRightDvd {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] [Subsingleton αˣ] :
theorem eq_of_forall_dvd {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] (h : ∀ (c : α), a ∣ c ↔ b ∣ c) :
theorem eq_of_forall_dvd' {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} [Subsingleton αˣ] (h : ∀ (c : α), c ∣ a ↔ c ∣ b) :
theorem pow_dvd_pow_iff {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a : α} {m n : ℕ} (ha₀ : a ≠ 0) (ha : ¬IsUnit a) :
theorem mul_dvd_left_iff_isUnit {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} (ha0 : a ≠ 0) :
theorem mul_dvd_right_iff_isUnit {α : Type u_1} [CommMonoidWithZero α] [IsCancelMulZero α] {a b : α} (ha0 : a ≠ 0) :
@[simp]
∣ is not a useful definition if an inverse is available.