ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- gcd_assoc
theorem gcd_assoc [NormalizedGCDMonoid α] (m n k : α) : gcd (gcd m n) k = gcd m (gcd n k) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (m n k : α)
Goal: gcd (gcd m n) k = gcd m (gcd n k)
-- gcd_assoc'
theorem gcd_assoc' [GCDMonoid α] (m n k : α) : Associated (gcd (gcd m n) k) (gcd m (gcd n k)) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: Associated (gcd (gcd m n) k) (gcd m (gcd n k))
-- gcd_eq_normalize
theorem gcd_eq_normalize [NormalizedGCDMonoid α] {a b c : α} (habc : gcd a b ∣ c)
    (hcab : c ∣ gcd a b) : gcd a b = normalize c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {a b c : α} (habc : gcd a b ∣ c) (hcab : c ∣ gcd a b)
Goal: gcd a b = normalize c
-- gcd_zero_left
@[simp]
theorem gcd_zero_left [NormalizedGCDMonoid α] (a : α) : gcd 0 a = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: gcd 0 a = normalize a
-- gcd_zero_left'
theorem gcd_zero_left' [GCDMonoid α] (a : α) : Associated (gcd 0 a) a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: Associated (gcd 0 a) a
-- gcd_zero_right
@[simp]
theorem gcd_zero_right [NormalizedGCDMonoid α] (a : α) : gcd a 0 = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: gcd a 0 = normalize a
-- gcd_zero_right'
theorem gcd_zero_right' [GCDMonoid α] (a : α) : Associated (gcd a 0) a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: Associated (gcd a 0) a
-- gcd_eq_zero_iff
@[simp]
theorem gcd_eq_zero_iff [GCDMonoid α] (a b : α) : gcd a b = 0 ↔ a = 0 ∧ b = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: gcd a b = 0 ↔ a = 0 ∧ b = 0
-- gcd_one_left
@[simp]
theorem gcd_one_left [NormalizedGCDMonoid α] (a : α) : gcd 1 a = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: gcd 1 a = 1
-- isUnit_gcd_one_left
@[simp]
theorem isUnit_gcd_one_left [GCDMonoid α] (a : α) : IsUnit (gcd 1 a) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: IsUnit (gcd 1 a)
-- gcd_one_left'
theorem gcd_one_left' [GCDMonoid α] (a : α) : Associated (gcd 1 a) 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: Associated (gcd 1 a) 1
-- gcd_one_right
@[simp]
theorem gcd_one_right [NormalizedGCDMonoid α] (a : α) : gcd a 1 = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: gcd a 1 = 1
-- isUnit_gcd_one_right
@[simp]
theorem isUnit_gcd_one_right [GCDMonoid α] (a : α) : IsUnit (gcd a 1) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: IsUnit (gcd a 1)
-- gcd_one_right'
theorem gcd_one_right' [GCDMonoid α] (a : α) : Associated (gcd a 1) 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a : α)
Goal: Associated (gcd a 1) 1
-- gcd_dvd_gcd
theorem gcd_dvd_gcd [GCDMonoid α] {a b c d : α} (hab : a ∣ b) (hcd : c ∣ d) : gcd a c ∣ gcd b d 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c d : α} (hab : a ∣ b) (hcd : c ∣ d)
Goal: gcd a c ∣ gcd b d
-- Associated.gcd
protected theorem Associated.gcd [GCDMonoid α]
    {a₁ a₂ b₁ b₂ : α} (ha : Associated a₁ a₂) (hb : Associated b₁ b₂) :
    Associated (gcd a₁ b₁) (gcd a₂ b₂) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a₁ a₂ b₁ b₂ : α} (ha : Associated a₁ a₂) (hb : Associated b₁ b₂)
Goal: Associated (gcd a₁ b₁) (gcd a₂ b₂)
-- gcd_same
@[simp]
theorem gcd_same [NormalizedGCDMonoid α] (a : α) : gcd a a = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: gcd a a = normalize a
-- gcd_mul_left
@[simp]
theorem gcd_mul_left [NormalizedGCDMonoid α] (a b c : α) :
    gcd (a * b) (a * c) = normalize a * gcd b c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b c : α)
Goal: gcd (a * b) (a * c) = normalize a * gcd b c
-- gcd_mul_left'
theorem gcd_mul_left' [GCDMonoid α] (a b c : α) :
    Associated (gcd (a * b) (a * c)) (a * gcd b c) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b c : α)
Goal: Associated (gcd (a * b) (a * c)) (a * gcd b c)
-- gcd_mul_right
@[simp]
theorem gcd_mul_right [NormalizedGCDMonoid α] (a b c : α) :
    gcd (b * a) (c * a) = gcd b c * normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b c : α)
Goal: gcd (b * a) (c * a) = gcd b c * normalize a
-- gcd_mul_right'
@[simp]
theorem gcd_mul_right' [GCDMonoid α] (a b c : α) :
    Associated (gcd (b * a) (c * a)) (gcd b c * a) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b c : α)
Goal: Associated (gcd (b * a) (c * a)) (gcd b c * a)
-- gcd_eq_left_iff
theorem gcd_eq_left_iff [NormalizedGCDMonoid α] (a b : α) (h : normalize a = a) :
    gcd a b = a ↔ a ∣ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α) (h : normalize a = a)
Goal: gcd a b = a ↔ a ∣ b
-- gcd_eq_right_iff
theorem gcd_eq_right_iff [NormalizedGCDMonoid α] (a b : α) (h : normalize b = b) :
    gcd a b = b ↔ b ∣ a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α) (h : normalize b = b)
Goal: gcd a b = b ↔ b ∣ a
-- gcd_dvd_gcd_mul_left
theorem gcd_dvd_gcd_mul_left [GCDMonoid α] (m n k : α) : gcd m n ∣ gcd (k * m) n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: gcd m n ∣ gcd (k * m) n
-- gcd_dvd_gcd_mul_right
theorem gcd_dvd_gcd_mul_right [GCDMonoid α] (m n k : α) : gcd m n ∣ gcd (m * k) n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: gcd m n ∣ gcd (m * k) n
-- gcd_dvd_gcd_mul_left_right
theorem gcd_dvd_gcd_mul_left_right [GCDMonoid α] (m n k : α) : gcd m n ∣ gcd m (k * n) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: gcd m n ∣ gcd m (k * n)
-- gcd_dvd_gcd_mul_right_right
theorem gcd_dvd_gcd_mul_right_right [GCDMonoid α] (m n k : α) : gcd m n ∣ gcd m (n * k) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: gcd m n ∣ gcd m (n * k)
-- Associated.gcd_eq_left
theorem Associated.gcd_eq_left [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α) :
    gcd m k = gcd n k 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α)
Goal: gcd m k = gcd n k
-- Associated.gcd_eq_right
theorem Associated.gcd_eq_right [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α) :
    gcd k m = gcd k n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α)
Goal: gcd k m = gcd k n
-- dvd_gcd_mul_of_dvd_mul
theorem dvd_gcd_mul_of_dvd_mul [GCDMonoid α] {m n k : α} (H : k ∣ m * n) : k ∣ gcd k m * n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {m n k : α} (H : k ∣ m * n)
Goal: k ∣ gcd k m * n
-- dvd_gcd_mul_iff_dvd_mul
theorem dvd_gcd_mul_iff_dvd_mul [GCDMonoid α] {m n k : α} : k ∣ gcd k m * n ↔ k ∣ m * n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {m n k : α}
Goal: k ∣ gcd k m * n ↔ k ∣ m * n
-- dvd_mul_gcd_of_dvd_mul
theorem dvd_mul_gcd_of_dvd_mul [GCDMonoid α] {m n k : α} (H : k ∣ m * n) : k ∣ m * gcd k n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {m n k : α} (H : k ∣ m * n)
Goal: k ∣ m * gcd k n
-- dvd_mul_gcd_iff_dvd_mul
theorem dvd_mul_gcd_iff_dvd_mul [GCDMonoid α] {m n k : α} : k ∣ m * gcd k n ↔ k ∣ m * n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {m n k : α}
Goal: k ∣ m * gcd k n ↔ k ∣ m * n
-- gcd_mul_dvd_mul_gcd
theorem gcd_mul_dvd_mul_gcd [GCDMonoid α] (k m n : α) : gcd k (m * n) ∣ gcd k m * gcd k n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (k m n : α)
Goal: gcd k (m * n) ∣ gcd k m * gcd k n
-- gcd_pow_right_dvd_pow_gcd
theorem gcd_pow_right_dvd_pow_gcd [GCDMonoid α] {a b : α} {k : ℕ} :
    gcd a (b ^ k) ∣ gcd a b ^ k 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b : α} {k : ℕ}
Goal: gcd a (b ^ k) ∣ gcd a b ^ k
-- gcd_pow_left_dvd_pow_gcd
theorem gcd_pow_left_dvd_pow_gcd [GCDMonoid α] {a b : α} {k : ℕ} : gcd (a ^ k) b ∣ gcd a b ^ k 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b : α} {k : ℕ}
Goal: gcd (a ^ k) b ∣ gcd a b ^ k
-- pow_dvd_of_mul_eq_pow
theorem pow_dvd_of_mul_eq_pow [GCDMonoid α] {a b c d₁ d₂ : α} (ha : a ≠ 0) (hab : IsUnit (gcd a b))
    {k : ℕ} (h : a * b = c ^ k) (hc : c = d₁ * d₂) (hd₁ : d₁ ∣ a) : d₁ ^ k ≠ 0 ∧ d₁ ^ k ∣ a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c d₁ d₂ : α} (ha : a ≠ 0) (hab : IsUnit (gcd a b)) {k : ℕ} (h : a * b = c ^ k) (hc : c = d₁ * d₂) (hd₁ : d₁ ∣ a)
Goal: d₁ ^ k ≠ 0 ∧ d₁ ^ k ∣ a
-- exists_associated_pow_of_mul_eq_pow
theorem exists_associated_pow_of_mul_eq_pow [GCDMonoid α] {a b c : α} (hab : IsUnit (gcd a b))
    {k : ℕ} (h : a * b = c ^ k) : ∃ d : α, Associated (d ^ k) a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c : α} (hab : IsUnit (gcd a b)) {k : ℕ} (h : a * b = c ^ k)
Goal: ∃ d, Associated (d ^ k) a
-- exists_eq_pow_of_mul_eq_pow
theorem exists_eq_pow_of_mul_eq_pow [GCDMonoid α] [Unique αˣ] {a b c : α} (hab : IsUnit (gcd a b))
    {k : ℕ} (h : a * b = c ^ k) : ∃ d : α, a = d ^ k 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] [Unique αˣ] {a b c : α} (hab : IsUnit (gcd a b)) {k : ℕ} (h : a * b = c ^ k)
Goal: ∃ d, a = d ^ k
-- gcd_greatest
theorem gcd_greatest {α : Type*} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {a b d : α}
    (hda : d ∣ a) (hdb : d ∣ b) (hd : ∀ e : α, e ∣ a → e ∣ b → e ∣ d) :
    GCDMonoid.gcd a b = normalize d 
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {a b d : α} (hda : d ∣ a) (hdb : d ∣ b) (hd : ∀ (e : α), e ∣ a → e ∣ b → e ∣ d)
Goal: gcd a b = normalize d
-- gcd_greatest_associated
theorem gcd_greatest_associated {α : Type*} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b d : α}
    (hda : d ∣ a) (hdb : d ∣ b) (hd : ∀ e : α, e ∣ a → e ∣ b → e ∣ d) :
    Associated d (GCDMonoid.gcd a b) 
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b d : α} (hda : d ∣ a) (hdb : d ∣ b) (hd : ∀ (e : α), e ∣ a → e ∣ b → e ∣ d)
Goal: Associated d (gcd a b)
-- isUnit_gcd_of_eq_mul_gcd
theorem isUnit_gcd_of_eq_mul_gcd {α : Type*} [CancelCommMonoidWithZero α] [GCDMonoid α]
    {x y x' y' : α} (ex : x = gcd x y * x') (ey : y = gcd x y * y') (h : gcd x y ≠ 0) :
    IsUnit (gcd x' y') 
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [GCDMonoid α] {x y x' y' : α} (ex : x = gcd x y * x') (ey : y = gcd x y * y') (h : gcd x y ≠ 0)
Goal: IsUnit (gcd x' y')
-- extract_gcd
theorem extract_gcd {α : Type*} [CancelCommMonoidWithZero α] [GCDMonoid α] (x y : α) :
    ∃ x' y', x = gcd x y * x' ∧ y = gcd x y * y' ∧ IsUnit (gcd x' y') 
Arguments: {α : Type u_2} [CancelCommMonoidWithZero α] [GCDMonoid α] (x y : α)
Goal: ∃ x' y', x = gcd x y * x' ∧ y = gcd x y * y' ∧ IsUnit (gcd x' y')
-- associated_gcd_left_iff
theorem associated_gcd_left_iff [GCDMonoid α] {x y : α} : Associated x (gcd x y) ↔ x ∣ y 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {x y : α}
Goal: Associated x (gcd x y) ↔ x ∣ y
-- associated_gcd_right_iff
theorem associated_gcd_right_iff [GCDMonoid α] {x y : α} : Associated y (gcd x y) ↔ y ∣ x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {x y : α}
Goal: Associated y (gcd x y) ↔ y ∣ x
-- Irreducible.isUnit_gcd_iff
theorem Irreducible.isUnit_gcd_iff [GCDMonoid α] {x y : α} (hx : Irreducible x) :
    IsUnit (gcd x y) ↔ ¬(x ∣ y) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {x y : α} (hx : Irreducible x)
Goal: IsUnit (gcd x y) ↔ ¬x ∣ y
-- Irreducible.gcd_eq_one_iff
theorem Irreducible.gcd_eq_one_iff [NormalizedGCDMonoid α] {x y : α} (hx : Irreducible x) :
    gcd x y = 1 ↔ ¬(x ∣ y) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {x y : α} (hx : Irreducible x)
Goal: gcd x y = 1 ↔ ¬x ∣ y
-- gcd_neg'
lemma gcd_neg' [GCDMonoid α] {a b : α} : Associated (gcd a (-b)) (gcd a b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [HasDistribNeg α] [GCDMonoid α] {a b : α}
Goal: Associated (gcd a (-b)) (gcd a b)
-- gcd_neg
lemma gcd_neg [NormalizedGCDMonoid α] {a b : α} : gcd a (-b) = gcd a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [HasDistribNeg α] [NormalizedGCDMonoid α] {a b : α}
Goal: gcd a (-b) = gcd a b
-- neg_gcd'
lemma neg_gcd' [GCDMonoid α] {a b : α} : Associated (gcd (-a) b) (gcd a b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [HasDistribNeg α] [GCDMonoid α] {a b : α}
Goal: Associated (gcd (-a) b) (gcd a b)
-- neg_gcd
lemma neg_gcd [NormalizedGCDMonoid α] {a b : α} : gcd (-a) b = gcd a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [HasDistribNeg α] [NormalizedGCDMonoid α] {a b : α}
Goal: gcd (-a) b = gcd a b
-- lcm_dvd_iff
theorem lcm_dvd_iff [GCDMonoid α] {a b c : α} : lcm a b ∣ c ↔ a ∣ c ∧ b ∣ c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c : α}
Goal: lcm a b ∣ c ↔ a ∣ c ∧ b ∣ c
-- dvd_lcm_left
theorem dvd_lcm_left [GCDMonoid α] (a b : α) : a ∣ lcm a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: a ∣ lcm a b
-- dvd_lcm_right
theorem dvd_lcm_right [GCDMonoid α] (a b : α) : b ∣ lcm a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: b ∣ lcm a b
-- lcm_dvd
theorem lcm_dvd [GCDMonoid α] {a b c : α} (hab : a ∣ b) (hcb : c ∣ b) : lcm a c ∣ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c : α} (hab : a ∣ b) (hcb : c ∣ b)
Goal: lcm a c ∣ b
-- lcm_eq_zero_iff
@[simp]
theorem lcm_eq_zero_iff [GCDMonoid α] (a b : α) : lcm a b = 0 ↔ a = 0 ∨ b = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: lcm a b = 0 ↔ a = 0 ∨ b = 0
-- normalize_lcm
@[simp 1100]
theorem normalize_lcm [NormalizedGCDMonoid α] (a b : α) : normalize (lcm a b) = lcm a b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α)
Goal: normalize (lcm a b) = lcm a b
-- lcm_comm
theorem lcm_comm [NormalizedGCDMonoid α] (a b : α) : lcm a b = lcm b a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α)
Goal: lcm a b = lcm b a
-- lcm_comm'
theorem lcm_comm' [GCDMonoid α] (a b : α) : Associated (lcm a b) (lcm b a) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (a b : α)
Goal: Associated (lcm a b) (lcm b a)
-- lcm_assoc
theorem lcm_assoc [NormalizedGCDMonoid α] (m n k : α) : lcm (lcm m n) k = lcm m (lcm n k) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (m n k : α)
Goal: lcm (lcm m n) k = lcm m (lcm n k)
-- lcm_assoc'
theorem lcm_assoc' [GCDMonoid α] (m n k : α) : Associated (lcm (lcm m n) k) (lcm m (lcm n k)) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: Associated (lcm (lcm m n) k) (lcm m (lcm n k))
-- lcm_eq_normalize
theorem lcm_eq_normalize [NormalizedGCDMonoid α] {a b c : α} (habc : lcm a b ∣ c)
    (hcab : c ∣ lcm a b) : lcm a b = normalize c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {a b c : α} (habc : lcm a b ∣ c) (hcab : c ∣ lcm a b)
Goal: lcm a b = normalize c
-- lcm_dvd_lcm
theorem lcm_dvd_lcm [GCDMonoid α] {a b c d : α} (hab : a ∣ b) (hcd : c ∣ d) : lcm a c ∣ lcm b d 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b c d : α} (hab : a ∣ b) (hcd : c ∣ d)
Goal: lcm a c ∣ lcm b d
-- Associated.lcm
protected theorem Associated.lcm [GCDMonoid α]
    {a₁ a₂ b₁ b₂ : α} (ha : Associated a₁ a₂) (hb : Associated b₁ b₂) :
    Associated (lcm a₁ b₁) (lcm a₂ b₂) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a₁ a₂ b₁ b₂ : α} (ha : Associated a₁ a₂) (hb : Associated b₁ b₂)
Goal: Associated (lcm a₁ b₁) (lcm a₂ b₂)
-- lcm_units_coe_left
@[simp]
theorem lcm_units_coe_left [NormalizedGCDMonoid α] (u : αˣ) (a : α) : lcm (↑u) a = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (u : αˣ) (a : α)
Goal: lcm (↑u) a = normalize a
-- lcm_units_coe_right
@[simp]
theorem lcm_units_coe_right [NormalizedGCDMonoid α] (a : α) (u : αˣ) : lcm a ↑u = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α) (u : αˣ)
Goal: lcm a ↑u = normalize a
-- lcm_one_left
@[simp]
theorem lcm_one_left [NormalizedGCDMonoid α] (a : α) : lcm 1 a = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: lcm 1 a = normalize a
-- lcm_one_right
@[simp]
theorem lcm_one_right [NormalizedGCDMonoid α] (a : α) : lcm a 1 = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: lcm a 1 = normalize a
-- lcm_same
@[simp]
theorem lcm_same [NormalizedGCDMonoid α] (a : α) : lcm a a = normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α)
Goal: lcm a a = normalize a
-- lcm_eq_one_iff
@[simp]
theorem lcm_eq_one_iff [NormalizedGCDMonoid α] (a b : α) : lcm a b = 1 ↔ a ∣ 1 ∧ b ∣ 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α)
Goal: lcm a b = 1 ↔ a ∣ 1 ∧ b ∣ 1
-- lcm_mul_left
@[simp]
theorem lcm_mul_left [NormalizedGCDMonoid α] (a b c : α) :
    lcm (a * b) (a * c) = normalize a * lcm b c 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b c : α)
Goal: lcm (a * b) (a * c) = normalize a * lcm b c
-- lcm_mul_right
@[simp]
theorem lcm_mul_right [NormalizedGCDMonoid α] (a b c : α) :
    lcm (b * a) (c * a) = lcm b c * normalize a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b c : α)
Goal: lcm (b * a) (c * a) = lcm b c * normalize a
-- lcm_eq_left_iff
theorem lcm_eq_left_iff [NormalizedGCDMonoid α] (a b : α) (h : normalize a = a) :
    lcm a b = a ↔ b ∣ a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α) (h : normalize a = a)
Goal: lcm a b = a ↔ b ∣ a
-- lcm_eq_right_iff
theorem lcm_eq_right_iff [NormalizedGCDMonoid α] (a b : α) (h : normalize b = b) :
    lcm a b = b ↔ a ∣ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] (a b : α) (h : normalize b = b)
Goal: lcm a b = b ↔ a ∣ b
-- lcm_dvd_lcm_mul_left
theorem lcm_dvd_lcm_mul_left [GCDMonoid α] (m n k : α) : lcm m n ∣ lcm (k * m) n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: lcm m n ∣ lcm (k * m) n
-- lcm_dvd_lcm_mul_right
theorem lcm_dvd_lcm_mul_right [GCDMonoid α] (m n k : α) : lcm m n ∣ lcm (m * k) n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: lcm m n ∣ lcm (m * k) n
-- lcm_dvd_lcm_mul_left_right
theorem lcm_dvd_lcm_mul_left_right [GCDMonoid α] (m n k : α) : lcm m n ∣ lcm m (k * n) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: lcm m n ∣ lcm m (k * n)
-- lcm_dvd_lcm_mul_right_right
theorem lcm_dvd_lcm_mul_right_right [GCDMonoid α] (m n k : α) : lcm m n ∣ lcm m (n * k) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] (m n k : α)
Goal: lcm m n ∣ lcm m (n * k)
-- lcm_eq_of_associated_left
theorem lcm_eq_of_associated_left [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α) :
    lcm m k = lcm n k 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α)
Goal: lcm m k = lcm n k
-- lcm_eq_of_associated_right
theorem lcm_eq_of_associated_right [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α) :
    lcm k m = lcm k n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizedGCDMonoid α] {m n : α} (h : Associated m n) (k : α)
Goal: lcm k m = lcm k n
-- normUnit_eq_one
@[simp]
theorem normUnit_eq_one (x : α) : normUnit x = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [Unique αˣ] (x : α)
Goal: normUnit x = 1
-- normalize_eq
theorem normalize_eq (x : α) : normalize x = x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [Unique αˣ] (x : α)
Goal: normalize x = x
-- associatesEquivOfUniqueUnits_apply
@[simps]
def associatesEquivOfUniqueUnits : Associates α ≃* α 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [Unique αˣ]
Goal: ∀ (a : Associates α), associatesEquivOfUniqueUnits a = a.out
-- associatesEquivOfUniqueUnits_symm_apply
@[simps]
def associatesEquivOfUniqueUnits : Associates α ≃* α 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [Unique αˣ] (a : α)
Goal: associatesEquivOfUniqueUnits.symm a = Associates.mk a
-- gcd_eq_of_dvd_sub_right
theorem gcd_eq_of_dvd_sub_right {a b c : α} (h : a ∣ b - c) : gcd a b = gcd a c 
Arguments: {α : Type u_1} [CommRing α] [IsDomain α] [NormalizedGCDMonoid α] {a b c : α} (h : a ∣ b - c)
Goal: gcd a b = gcd a c
-- gcd_eq_of_dvd_sub_left
theorem gcd_eq_of_dvd_sub_left {a b c : α} (h : a ∣ b - c) : gcd b a = gcd c a 
Arguments: {α : Type u_1} [CommRing α] [IsDomain α] [NormalizedGCDMonoid α] {a b c : α} (h : a ∣ b - c)
Goal: gcd b a = gcd c a
-- _private.Mathlib.Algebra.GCDMonoid.Basic.0.map_mk_unit_aux
private theorem map_mk_unit_aux [DecidableEq α] {f : Associates α →* α}
    (hinv : Function.RightInverse f Associates.mk) (a : α) :
    a * ↑(Classical.choose (associated_map_mk hinv a)) = f (Associates.mk a) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableEq α] {f : Associates α →* α} (hinv : Function.RightInverse (⇑f) Associates.mk) (a : α)
Goal: a * ↑(Classical.choose ⋯) = f (Associates.mk a)
-- CommGroupWithZero.coe_normUnit
@[simp]
theorem coe_normUnit {a : G₀} (h0 : a ≠ 0) : (↑(normUnit a) : G₀) = a⁻¹ 
Arguments: (G₀ : Type u_2) [CommGroupWithZero G₀] [DecidableEq G₀] {a : G₀} (h0 : a ≠ 0)
Goal: ↑(normUnit a) = a⁻¹
-- CommGroupWithZero.normalize_eq_one
theorem normalize_eq_one {a : G₀} (h0 : a ≠ 0) : normalize a = 1 
Arguments: (G₀ : Type u_2) [CommGroupWithZero G₀] [DecidableEq G₀] {a : G₀} (h0 : a ≠ 0)
Goal: normalize a = 1
-- Associates.gcd_mk_mk
theorem gcd_mk_mk {a b : α} : gcd (Associates.mk a) (Associates.mk b) = Associates.mk (gcd a b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b : α}
Goal: gcd (Associates.mk a) (Associates.mk b) = Associates.mk (gcd a b)
-- Associates.lcm_mk_mk
theorem lcm_mk_mk {a b : α} : lcm (Associates.mk a) (Associates.mk b) = Associates.mk (lcm a b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [GCDMonoid α] {a b : α}
Goal: lcm (Associates.mk a) (Associates.mk b) = Associates.mk (lcm a b)
-- AlgebraicGeometry.IsPreimmersion.base_embedding
@[mk_iff]
class IsPreimmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_embedding : Embedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.IsPreimmersion f]
Goal: Embedding ⇑f.val.base
-- AlgebraicGeometry.isPreimmersion_iff
@[mk_iff]
class IsPreimmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_embedding : Embedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X ⟶ Y)
Goal: AlgebraicGeometry.IsPreimmersion f ↔
  Embedding ⇑f.val.base ∧
    ∀ (x : ↑↑X.toPresheafedSpace), Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)
-- AlgebraicGeometry.IsPreimmersion.surj_on_stalks
@[mk_iff]
class IsPreimmersion {X Y : Scheme} (f : X ⟶ Y) : Prop where
  base_embedding : Embedding f.1.base
  surj_on_stalks : ∀ x, Function.Surjective (f.stalkMap x)
Arguments: {X Y : AlgebraicGeometry.Scheme} {f : X ⟶ Y} [self : AlgebraicGeometry.IsPreimmersion f] (x : ↑↑X.toPresheafedSpace)
Goal: Function.Surjective ⇑(AlgebraicGeometry.Scheme.Hom.stalkMap f x)
-- AlgebraicGeometry.Scheme.Hom.embedding
lemma Scheme.Hom.embedding {X Y : Scheme} (f : Hom X Y) [IsPreimmersion f] : Embedding f.1.base 
Arguments: {X Y : AlgebraicGeometry.Scheme} (f : X.Hom Y) [AlgebraicGeometry.IsPreimmersion f]
Goal: Embedding ⇑f.val.base