File: Mathlib/Algebra/GroupWithZero/Divisibility.lean

full_name: eq_zero_of_zero_dvd
code: theorem eq_zero_of_zero_dvd (h : 0 ∣ a) : a = 0 
goal: a = 0

full_name: zero_dvd_iff
code: /-- Given an element `a` of a commutative semigroup with zero, there exists another element whose
    product with zero equals `a` iff `a` equals zero. -/
@[simp]
theorem zero_dvd_iff : 0 ∣ a ↔ a = 0 
goal: 0 ∣ a ↔ a = 0

full_name: dvd_zero
code: @[simp]
theorem dvd_zero (a : α) : a ∣ 0 
goal: a ∣ 0

full_name: mul_dvd_mul_iff_left
code: /-- Given two elements `b`, `c` of a `CancelMonoidWithZero` and a nonzero element `a`,
 `a*b` divides `a*c` iff `b` divides `c`. -/
theorem mul_dvd_mul_iff_left [CancelMonoidWithZero α] {a b c : α} (ha : a ≠ 0) :
    a * b ∣ a * c ↔ b ∣ c 
goal: a * b ∣ a * c ↔ b ∣ c

full_name: mul_dvd_mul_iff_right
code: /-- Given two elements `a`, `b` of a commutative `CancelMonoidWithZero` and a nonzero
  element `c`, `a*c` divides `b*c` iff `a` divides `b`. -/
theorem mul_dvd_mul_iff_right [CancelCommMonoidWithZero α] {a b c : α} (hc : c ≠ 0) :
    a * c ∣ b * c ↔ a ∣ b 
goal: a * c ∣ b * c ↔ a ∣ b

full_name: DvdNotUnit
code: /-- `DvdNotUnit a b` expresses that `a` divides `b` "strictly", i.e. that `b` divided by `a`
is not a unit. -/
def DvdNotUnit (a b : α) : Prop 
goal: Prop

full_name: dvdNotUnit_of_dvd_of_not_dvd
code: theorem dvdNotUnit_of_dvd_of_not_dvd {a b : α} (hd : a ∣ b) (hnd : ¬b ∣ a) : DvdNotUnit a b 
goal: DvdNotUnit a b

full_name: isRelPrime_zero_left
code: theorem isRelPrime_zero_left : IsRelPrime 0 x ↔ IsUnit x 
goal: IsRelPrime 0 x ↔ IsUnit x

full_name: isRelPrime_zero_right
code: theorem isRelPrime_zero_right : IsRelPrime x 0 ↔ IsUnit x 
goal: IsRelPrime x 0 ↔ IsUnit x

full_name: not_isRelPrime_zero_zero
code: theorem not_isRelPrime_zero_zero [Nontrivial α] : ¬IsRelPrime (0 : α) 0 
goal: ¬IsRelPrime 0 0

full_name: IsRelPrime.ne_zero_or_ne_zero
code: theorem IsRelPrime.ne_zero_or_ne_zero [Nontrivial α] (h : IsRelPrime x y) : x ≠ 0 ∨ y ≠ 0 
goal: x ≠ 0 ∨ y ≠ 0

full_name: isRelPrime_of_no_nonunits_factors
code: theorem isRelPrime_of_no_nonunits_factors [MonoidWithZero α] {x y : α} (nonzero : ¬(x = 0 ∧ y = 0))
    (H : ∀ z, ¬ IsUnit z → z ≠ 0 → z ∣ x → ¬z ∣ y) : IsRelPrime x y 
goal: IsRelPrime x y

full_name: dvd_and_not_dvd_iff
code: theorem dvd_and_not_dvd_iff [CancelCommMonoidWithZero α] {x y : α} :
    x ∣ y ∧ ¬y ∣ x ↔ DvdNotUnit x y 
goal: x ∣ y ∧ ¬y ∣ x ↔ DvdNotUnit x y

full_name: ne_zero_of_dvd_ne_zero
code: theorem ne_zero_of_dvd_ne_zero {p q : α} (h₁ : q ≠ 0) (h₂ : p ∣ q) : p ≠ 0 
goal: p ≠ 0

full_name: isPrimal_zero
code: theorem isPrimal_zero : IsPrimal (0 : α) 
goal: IsPrimal 0

full_name: IsPrimal.mul
code: theorem IsPrimal.mul {α} [CancelCommMonoidWithZero α] {m n : α}
    (hm : IsPrimal m) (hn : IsPrimal n) : IsPrimal (m * n) 
goal: IsPrimal (m * n)

full_name: dvd_antisymm
code: theorem dvd_antisymm : a ∣ b → b ∣ a → a = b 
goal: a ∣ b → b ∣ a → a = b

full_name: dvd_antisymm'
code: theorem dvd_antisymm' : a ∣ b → b ∣ a → b = a 
goal: a ∣ b → b ∣ a → b = a

full_name: eq_of_forall_dvd
code: theorem eq_of_forall_dvd (h : ∀ c, a ∣ c ↔ b ∣ c) : a = b 
goal: a = b

full_name: eq_of_forall_dvd'
code: theorem eq_of_forall_dvd' (h : ∀ c, c ∣ a ↔ c ∣ b) : a = b 
goal: a = b

full_name: pow_dvd_pow_iff
code: lemma pow_dvd_pow_iff (ha₀ : a ≠ 0) (ha : ¬IsUnit a) : a ^ n ∣ a ^ m ↔ n ≤ m 
goal: a ^ n ∣ a ^ m ↔ n ≤ m