File: Mathlib/Algebra/Divisibility/Units.lean

full_name: Units.coe_dvd
code: /-- Elements of the unit group of a monoid represented as elements of the monoid
    divide any element of the monoid. -/
theorem coe_dvd : ↑u ∣ a 
goal: ↑u ∣ a

full_name: Units.dvd_mul_right
code: /-- In a monoid, an element `a` divides an element `b` iff `a` divides all
    associates of `b`. -/
theorem dvd_mul_right : a ∣ b * u ↔ a ∣ b 
goal: a ∣ b * ↑u ↔ a ∣ b

full_name: Units.mul_right_dvd
code: /-- In a monoid, an element `a` divides an element `b` iff all associates of `a` divide `b`. -/
theorem mul_right_dvd : a * u ∣ b ↔ a ∣ b 
goal: a * ↑u ∣ b ↔ a ∣ b

full_name: Units.dvd_mul_left
code: /-- In a commutative monoid, an element `a` divides an element `b` iff `a` divides all left
    associates of `b`. -/
theorem dvd_mul_left : a ∣ u * b ↔ a ∣ b 
goal: a ∣ ↑u * b ↔ a ∣ b

full_name: Units.mul_left_dvd
code: /-- In a commutative monoid, an element `a` divides an element `b` iff all
  left associates of `a` divide `b`. -/
theorem mul_left_dvd : ↑u * a ∣ b ↔ a ∣ b 
goal: ↑u * a ∣ b ↔ a ∣ b

full_name: IsUnit.dvd
code: /-- Units of a monoid divide any element of the monoid. -/
@[simp]
theorem dvd (hu : IsUnit u) : u ∣ a 
goal: u ∣ a

full_name: IsUnit.dvd_mul_right
code: @[simp]
theorem dvd_mul_right (hu : IsUnit u) : a ∣ b * u ↔ a ∣ b 
goal: a ∣ b * u ↔ a ∣ b

full_name: IsUnit.mul_right_dvd
code: /-- In a monoid, an element a divides an element b iff all associates of `a` divide `b`. -/
@[simp]
theorem mul_right_dvd (hu : IsUnit u) : a * u ∣ b ↔ a ∣ b 
goal: a * u ∣ b ↔ a ∣ b

full_name: IsUnit.isPrimal
code: theorem isPrimal (hu : IsUnit u) : IsPrimal u 
goal: IsPrimal u

full_name: IsUnit.dvd_mul_left
code: /-- In a commutative monoid, an element `a` divides an element `b` iff `a` divides all left
    associates of `b`. -/
@[simp]
theorem dvd_mul_left (hu : IsUnit u) : a ∣ u * b ↔ a ∣ b 
goal: a ∣ u * b ↔ a ∣ b

full_name: IsUnit.mul_left_dvd
code: /-- In a commutative monoid, an element `a` divides an element `b` iff all
  left associates of `a` divide `b`. -/
@[simp]
theorem mul_left_dvd (hu : IsUnit u) : u * a ∣ b ↔ a ∣ b 
goal: u * a ∣ b ↔ a ∣ b

full_name: isUnit_iff_dvd_one
code: theorem isUnit_iff_dvd_one {x : α} : IsUnit x ↔ x ∣ 1 
goal: IsUnit x ↔ x ∣ 1

full_name: isUnit_iff_forall_dvd
code: theorem isUnit_iff_forall_dvd {x : α} : IsUnit x ↔ ∀ y, x ∣ y 
goal: IsUnit x ↔ ∀ (y : α), x ∣ y

full_name: isUnit_of_dvd_unit
code: theorem isUnit_of_dvd_unit {x y : α} (xy : x ∣ y) (hu : IsUnit y) : IsUnit x 
goal: IsUnit x

full_name: isUnit_of_dvd_one
code: theorem isUnit_of_dvd_one {a : α} (h : a ∣ 1) : IsUnit (a : α) 
goal: IsUnit a

full_name: not_isUnit_of_not_isUnit_dvd
code: theorem not_isUnit_of_not_isUnit_dvd {a b : α} (ha : ¬IsUnit a) (hb : a ∣ b) : ¬IsUnit b 
goal: ¬IsUnit b

full_name: IsRelPrime
code: /-- `x` and `y` are relatively prime if every common divisor is a unit. -/
def IsRelPrime [Monoid α] (x y : α) : Prop 
goal: Prop

full_name: IsRelPrime.symm
code: @[symm] theorem IsRelPrime.symm (H : IsRelPrime x y) : IsRelPrime y x 
goal: IsRelPrime y x

full_name: isRelPrime_comm
code: theorem isRelPrime_comm : IsRelPrime x y ↔ IsRelPrime y x 
goal: IsRelPrime x y ↔ IsRelPrime y x

full_name: isRelPrime_self
code: theorem isRelPrime_self : IsRelPrime x x ↔ IsUnit x 
goal: IsRelPrime x x ↔ IsUnit x

full_name: IsUnit.isRelPrime_left
code: theorem IsUnit.isRelPrime_left (h : IsUnit x) : IsRelPrime x y 
goal: IsRelPrime x y

full_name: IsUnit.isRelPrime_right
code: theorem IsUnit.isRelPrime_right (h : IsUnit y) : IsRelPrime x y 
goal: IsRelPrime x y

full_name: isRelPrime_one_left
code: theorem isRelPrime_one_left : IsRelPrime 1 x 
goal: IsRelPrime 1 x

full_name: isRelPrime_one_right
code: theorem isRelPrime_one_right : IsRelPrime x 1 
goal: IsRelPrime x 1

full_name: IsRelPrime.of_mul_left_left
code: theorem IsRelPrime.of_mul_left_left (H : IsRelPrime (x * y) z) : IsRelPrime x z 
goal: IsRelPrime x z

full_name: IsRelPrime.of_mul_left_right
code: theorem IsRelPrime.of_mul_left_right (H : IsRelPrime (x * y) z) : IsRelPrime y z 
goal: IsRelPrime y z

full_name: IsRelPrime.of_mul_right_left
code: theorem IsRelPrime.of_mul_right_left (H : IsRelPrime x (y * z)) : IsRelPrime x y 
goal: IsRelPrime x y

full_name: IsRelPrime.of_mul_right_right
code: theorem IsRelPrime.of_mul_right_right (H : IsRelPrime x (y * z)) : IsRelPrime x z 
goal: IsRelPrime x z

full_name: IsRelPrime.of_dvd_left
code: theorem IsRelPrime.of_dvd_left (h : IsRelPrime y z) (dvd : x ∣ y) : IsRelPrime x z 
goal: IsRelPrime x z

full_name: IsRelPrime.of_dvd_right
code: theorem IsRelPrime.of_dvd_right (h : IsRelPrime z y) (dvd : x ∣ y) : IsRelPrime z x 
goal: IsRelPrime z x

full_name: IsRelPrime.isUnit_of_dvd
code: theorem IsRelPrime.isUnit_of_dvd (H : IsRelPrime x y) (d : x ∣ y) : IsUnit x 
goal: IsUnit x

full_name: isRelPrime_mul_unit_left_left
code: theorem isRelPrime_mul_unit_left_left : IsRelPrime (x * y) z ↔ IsRelPrime y z 
goal: IsRelPrime (x * y) z ↔ IsRelPrime y z

full_name: isRelPrime_mul_unit_left_right
code: theorem isRelPrime_mul_unit_left_right : IsRelPrime y (x * z) ↔ IsRelPrime y z 
goal: IsRelPrime y (x * z) ↔ IsRelPrime y z

full_name: isRelPrime_mul_unit_left
code: theorem isRelPrime_mul_unit_left : IsRelPrime (x * y) (x * z) ↔ IsRelPrime y z 
goal: IsRelPrime (x * y) (x * z) ↔ IsRelPrime y z

full_name: isRelPrime_mul_unit_right_left
code: theorem isRelPrime_mul_unit_right_left : IsRelPrime (y * x) z ↔ IsRelPrime y z 
goal: IsRelPrime (y * x) z ↔ IsRelPrime y z

full_name: isRelPrime_mul_unit_right_right
code: theorem isRelPrime_mul_unit_right_right : IsRelPrime y (z * x) ↔ IsRelPrime y z 
goal: IsRelPrime y (z * x) ↔ IsRelPrime y z

full_name: isRelPrime_mul_unit_right
code: theorem isRelPrime_mul_unit_right : IsRelPrime (y * x) (z * x) ↔ IsRelPrime y z 
goal: IsRelPrime (y * x) (z * x) ↔ IsRelPrime y z

full_name: IsRelPrime.dvd_of_dvd_mul_right_of_isPrimal
code: theorem IsRelPrime.dvd_of_dvd_mul_right_of_isPrimal (H1 : IsRelPrime x z) (H2 : x ∣ y * z)
    (h : IsPrimal x) : x ∣ y 
goal: x ∣ y

full_name: IsRelPrime.dvd_of_dvd_mul_left_of_isPrimal
code: theorem IsRelPrime.dvd_of_dvd_mul_left_of_isPrimal (H1 : IsRelPrime x y) (H2 : x ∣ y * z)
    (h : IsPrimal x) : x ∣ z 
goal: x ∣ z

full_name: IsRelPrime.mul_dvd_of_right_isPrimal
code: theorem IsRelPrime.mul_dvd_of_right_isPrimal (H : IsRelPrime x y) (H1 : x ∣ z) (H2 : y ∣ z)
    (hy : IsPrimal y) : x * y ∣ z 
goal: x * y ∣ z

full_name: IsRelPrime.mul_dvd_of_left_isPrimal
code: theorem IsRelPrime.mul_dvd_of_left_isPrimal (H : IsRelPrime x y) (H1 : x ∣ z) (H2 : y ∣ z)
    (hx : IsPrimal x) : x * y ∣ z 
goal: x * y ∣ z

full_name: IsRelPrime.dvd_of_dvd_mul_right
code: theorem IsRelPrime.dvd_of_dvd_mul_right (H1 : IsRelPrime x z) (H2 : x ∣ y * z) : x ∣ y 
goal: x ∣ y

full_name: IsRelPrime.dvd_of_dvd_mul_left
code: theorem IsRelPrime.dvd_of_dvd_mul_left (H1 : IsRelPrime x y) (H2 : x ∣ y * z) : x ∣ z 
goal: x ∣ z

full_name: IsRelPrime.mul_left
code: theorem IsRelPrime.mul_left (H1 : IsRelPrime x z) (H2 : IsRelPrime y z) : IsRelPrime (x * y) z 
goal: IsRelPrime (x * y) z

full_name: IsRelPrime.mul_right
code: theorem IsRelPrime.mul_right (H1 : IsRelPrime x y) (H2 : IsRelPrime x z) :
    IsRelPrime x (y * z) 
goal: IsRelPrime x (y * z)

full_name: IsRelPrime.mul_left_iff
code: theorem IsRelPrime.mul_left_iff : IsRelPrime (x * y) z ↔ IsRelPrime x z ∧ IsRelPrime y z 
goal: IsRelPrime (x * y) z ↔ IsRelPrime x z ∧ IsRelPrime y z

full_name: IsRelPrime.mul_right_iff
code: theorem IsRelPrime.mul_right_iff : IsRelPrime x (y * z) ↔ IsRelPrime x y ∧ IsRelPrime x z 
goal: IsRelPrime x (y * z) ↔ IsRelPrime x y ∧ IsRelPrime x z

full_name: IsRelPrime.mul_dvd
code: theorem IsRelPrime.mul_dvd (H : IsRelPrime x y) (H1 : x ∣ z) (H2 : y ∣ z) : x * y ∣ z 
goal: x * y ∣ z