ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- nonPrincipals_zorn
theorem nonPrincipals_zorn (c : Set (Ideal R)) (hs : c ⊆ nonPrincipals R)
    (hchain : IsChain (· ≤ ·) c) {K : Ideal R} (hKmem : K ∈ c) :
    ∃ I ∈ nonPrincipals R, ∀ J ∈ c, J ≤ I 
Arguments: {R : Type u} [CommRing R] (c : Set (Ideal R)) (hs : c ⊆ nonPrincipals R) (hchain : IsChain (fun x x_1 => x ≤ x_1) c) {K : Ideal R} (hKmem : K ∈ c)
Goal: ∃ I ∈ nonPrincipals R, ∀ J ∈ c, J ≤ I
-- IsPrincipalIdealRing.of_prime
theorem IsPrincipalIdealRing.of_prime (H : ∀ P : Ideal R, P.IsPrime → P.IsPrincipal) :
    IsPrincipalIdealRing R 
Arguments: {R : Type u} [CommRing R] (H : ∀ (P : Ideal R), P.IsPrime → Submodule.IsPrincipal P)
Goal: IsPrincipalIdealRing R
-- mem_reesAlgebra_iff
theorem mem_reesAlgebra_iff (f : R[X]) : f ∈ reesAlgebra I ↔ ∀ i, f.coeff i ∈ I ^ i 
Arguments: {R : Type u} [CommRing R] (I : Ideal R) (f : R[X])
Goal: f ∈ reesAlgebra I ↔ ∀ (i : ℕ), f.coeff i ∈ I ^ i
-- mem_reesAlgebra_iff_support
theorem mem_reesAlgebra_iff_support (f : R[X]) :
    f ∈ reesAlgebra I ↔ ∀ i ∈ f.support, f.coeff i ∈ I ^ i 
Arguments: {R : Type u} [CommRing R] (I : Ideal R) (f : R[X])
Goal: f ∈ reesAlgebra I ↔ ∀ i ∈ f.support, f.coeff i ∈ I ^ i
-- reesAlgebra.monomial_mem
theorem reesAlgebra.monomial_mem {I : Ideal R} {i : ℕ} {r : R} :
    monomial i r ∈ reesAlgebra I ↔ r ∈ I ^ i 
Arguments: {R : Type u} [CommRing R] {I : Ideal R} {i : ℕ} {r : R}
Goal: (Polynomial.monomial i) r ∈ reesAlgebra I ↔ r ∈ I ^ i
-- monomial_mem_adjoin_monomial
theorem monomial_mem_adjoin_monomial {I : Ideal R} {n : ℕ} {r : R} (hr : r ∈ I ^ n) :
    monomial n r ∈ Algebra.adjoin R (Submodule.map (monomial 1 : R →ₗ[R] R[X]) I : Set R[X]) 
Arguments: {R : Type u} [CommRing R] {I : Ideal R} {n : ℕ} {r : R} (hr : r ∈ I ^ n)
Goal: (Polynomial.monomial n) r ∈ Algebra.adjoin R ↑(Submodule.map (Polynomial.monomial 1) I)
-- adjoin_monomial_eq_reesAlgebra
theorem adjoin_monomial_eq_reesAlgebra :
    Algebra.adjoin R (Submodule.map (monomial 1 : R →ₗ[R] R[X]) I : Set R[X]) = reesAlgebra I 
Arguments: {R : Type u} [CommRing R] (I : Ideal R)
Goal: Algebra.adjoin R ↑(Submodule.map (Polynomial.monomial 1) I) = reesAlgebra I
-- reesAlgebra.fg
theorem reesAlgebra.fg (hI : I.FG) : (reesAlgebra I).FG 
Arguments: {R : Type u} [CommRing R] {I : Ideal R} (hI : I.FG)
Goal: (reesAlgebra I).FG
-- multiplicity.finite_iff_dom
theorem finite_iff_dom [DecidableRel ((· ∣ ·) : α → α → Prop)] {a b : α} :
    Finite a b ↔ (multiplicity a b).Dom 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity.Finite a b ↔ (multiplicity a b).Dom
-- multiplicity.finite_def
theorem finite_def {a b : α} : Finite a b ↔ ∃ n : ℕ, ¬a ^ (n + 1) ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b : α}
Goal: multiplicity.Finite a b ↔ ∃ n, ¬a ^ (n + 1) ∣ b
-- multiplicity.not_dvd_one_of_finite_one_right
theorem not_dvd_one_of_finite_one_right {a : α} : Finite a 1 → ¬a ∣ 1 
Arguments: {α : Type u_1} [Monoid α] {a : α}
Goal: multiplicity.Finite a 1 → ¬a ∣ 1
-- multiplicity.Int.natCast_multiplicity
@[norm_cast]
theorem Int.natCast_multiplicity (a b : ℕ) : multiplicity (a : ℤ) (b : ℤ) = multiplicity a b 
Arguments: (a b : ℕ)
Goal: multiplicity ↑a ↑b = multiplicity a b
-- multiplicity.not_finite_iff_forall
theorem not_finite_iff_forall {a b : α} : ¬Finite a b ↔ ∀ n : ℕ, a ^ n ∣ b 
Arguments: {α : Type u_1} [Monoid α] {a b : α}
Goal: ¬multiplicity.Finite a b ↔ ∀ (n : ℕ), a ^ n ∣ b
-- multiplicity.not_unit_of_finite
theorem not_unit_of_finite {a b : α} (h : Finite a b) : ¬IsUnit a 
Arguments: {α : Type u_1} [Monoid α] {a b : α} (h : multiplicity.Finite a b)
Goal: ¬IsUnit a
-- multiplicity.finite_of_finite_mul_right
theorem finite_of_finite_mul_right {a b c : α} : Finite a (b * c) → Finite a b 
Arguments: {α : Type u_1} [Monoid α] {a b c : α}
Goal: multiplicity.Finite a (b * c) → multiplicity.Finite a b
-- multiplicity.pow_dvd_of_le_multiplicity
theorem pow_dvd_of_le_multiplicity {a b : α} {k : ℕ} :
    (k : PartENat) ≤ multiplicity a b → a ^ k ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ}
Goal: ↑k ≤ multiplicity a b → a ^ k ∣ b
-- multiplicity.pow_multiplicity_dvd
theorem pow_multiplicity_dvd {a b : α} (h : Finite a b) : a ^ get (multiplicity a b) h ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} (h : multiplicity.Finite a b)
Goal: a ^ (multiplicity a b).get h ∣ b
-- multiplicity.is_greatest
theorem is_greatest {a b : α} {m : ℕ} (hm : multiplicity a b < m) : ¬a ^ m ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {m : ℕ} (hm : multiplicity a b < ↑m)
Goal: ¬a ^ m ∣ b
-- multiplicity.is_greatest'
theorem is_greatest' {a b : α} {m : ℕ} (h : Finite a b) (hm : get (multiplicity a b) h < m) :
    ¬a ^ m ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {m : ℕ} (h : multiplicity.Finite a b) (hm : (multiplicity a b).get h < m)
Goal: ¬a ^ m ∣ b
-- multiplicity.pos_of_dvd
theorem pos_of_dvd {a b : α} (hfin : Finite a b) (hdiv : a ∣ b) :
    0 < (multiplicity a b).get hfin 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} (hfin : multiplicity.Finite a b) (hdiv : a ∣ b)
Goal: 0 < (multiplicity a b).get hfin
-- multiplicity.unique
theorem unique {a b : α} {k : ℕ} (hk : a ^ k ∣ b) (hsucc : ¬a ^ (k + 1) ∣ b) :
    (k : PartENat) = multiplicity a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ} (hk : a ^ k ∣ b) (hsucc : ¬a ^ (k + 1) ∣ b)
Goal: ↑k = multiplicity a b
-- multiplicity.unique'
theorem unique' {a b : α} {k : ℕ} (hk : a ^ k ∣ b) (hsucc : ¬a ^ (k + 1) ∣ b) :
    k = get (multiplicity a b) ⟨k, hsucc⟩ 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ} (hk : a ^ k ∣ b) (hsucc : ¬a ^ (k + 1) ∣ b)
Goal: k = (multiplicity a b).get ⋯
-- multiplicity.le_multiplicity_of_pow_dvd
theorem le_multiplicity_of_pow_dvd {a b : α} {k : ℕ} (hk : a ^ k ∣ b) :
    (k : PartENat) ≤ multiplicity a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ} (hk : a ^ k ∣ b)
Goal: ↑k ≤ multiplicity a b
-- multiplicity.pow_dvd_iff_le_multiplicity
theorem pow_dvd_iff_le_multiplicity {a b : α} {k : ℕ} :
    a ^ k ∣ b ↔ (k : PartENat) ≤ multiplicity a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ}
Goal: a ^ k ∣ b ↔ ↑k ≤ multiplicity a b
-- multiplicity.multiplicity_lt_iff_not_dvd
theorem multiplicity_lt_iff_not_dvd {a b : α} {k : ℕ} :
    multiplicity a b < (k : PartENat) ↔ ¬a ^ k ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {k : ℕ}
Goal: multiplicity a b < ↑k ↔ ¬a ^ k ∣ b
-- multiplicity.eq_coe_iff
theorem eq_coe_iff {a b : α} {n : ℕ} :
    multiplicity a b = (n : PartENat) ↔ a ^ n ∣ b ∧ ¬a ^ (n + 1) ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {n : ℕ}
Goal: multiplicity a b = ↑n ↔ a ^ n ∣ b ∧ ¬a ^ (n + 1) ∣ b
-- multiplicity.eq_top_iff
theorem eq_top_iff {a b : α} : multiplicity a b = ⊤ ↔ ∀ n : ℕ, a ^ n ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b = ⊤ ↔ ∀ (n : ℕ), a ^ n ∣ b
-- multiplicity.isUnit_left
@[simp]
theorem isUnit_left {a : α} (b : α) (ha : IsUnit a) : multiplicity a b = ⊤ 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (b : α) (ha : IsUnit a)
Goal: multiplicity a b = ⊤
-- multiplicity.one_left
theorem one_left (b : α) : multiplicity 1 b = ⊤ 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] (b : α)
Goal: multiplicity 1 b = ⊤
-- multiplicity.get_one_right
@[simp]
theorem get_one_right {a : α} (ha : Finite a 1) : get (multiplicity a 1) ha = 0 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (ha : multiplicity.Finite a 1)
Goal: (multiplicity a 1).get ha = 0
-- multiplicity.unit_left
theorem unit_left (a : α) (u : αˣ) : multiplicity (u : α) a = ⊤ 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] (a : α) (u : αˣ)
Goal: multiplicity (↑u) a = ⊤
-- multiplicity.multiplicity_eq_zero
theorem multiplicity_eq_zero {a b : α} : multiplicity a b = 0 ↔ ¬a ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b = 0 ↔ ¬a ∣ b
-- multiplicity.multiplicity_ne_zero
theorem multiplicity_ne_zero {a b : α} : multiplicity a b ≠ 0 ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b ≠ 0 ↔ a ∣ b
-- multiplicity.eq_top_iff_not_finite
theorem eq_top_iff_not_finite {a b : α} : multiplicity a b = ⊤ ↔ ¬Finite a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b = ⊤ ↔ ¬multiplicity.Finite a b
-- multiplicity.ne_top_iff_finite
theorem ne_top_iff_finite {a b : α} : multiplicity a b ≠ ⊤ ↔ Finite a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b ≠ ⊤ ↔ multiplicity.Finite a b
-- multiplicity.lt_top_iff_finite
theorem lt_top_iff_finite {a b : α} : multiplicity a b < ⊤ ↔ Finite a b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity a b < ⊤ ↔ multiplicity.Finite a b
-- multiplicity.exists_eq_pow_mul_and_not_dvd
theorem exists_eq_pow_mul_and_not_dvd {a b : α} (hfin : Finite a b) :
    ∃ c : α, b = a ^ (multiplicity a b).get hfin * c ∧ ¬a ∣ c 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} (hfin : multiplicity.Finite a b)
Goal: ∃ c, b = a ^ (multiplicity a b).get hfin * c ∧ ¬a ∣ c
-- multiplicity.multiplicity_le_multiplicity_iff
theorem multiplicity_le_multiplicity_iff {a b : α} {c d : β} :
    multiplicity a b ≤ multiplicity c d ↔ ∀ n : ℕ, a ^ n ∣ b → c ^ n ∣ d 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [Monoid β] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {c d : β}
Goal: multiplicity a b ≤ multiplicity c d ↔ ∀ (n : ℕ), a ^ n ∣ b → c ^ n ∣ d
-- multiplicity.multiplicity_eq_multiplicity_iff
theorem multiplicity_eq_multiplicity_iff {a b : α} {c d : β} :
    multiplicity a b = multiplicity c d ↔ ∀ n : ℕ, a ^ n ∣ b ↔ c ^ n ∣ d 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [Monoid β] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} {c d : β}
Goal: multiplicity a b = multiplicity c d ↔ ∀ (n : ℕ), a ^ n ∣ b ↔ c ^ n ∣ d
-- multiplicity.le_multiplicity_map
theorem le_multiplicity_map {F : Type*} [FunLike F α β] [MonoidHomClass F α β]
    (f : F) {a b : α} : multiplicity a b ≤ multiplicity (f a) (f b) 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [Monoid β] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {F : Type u_3} [FunLike F α β] [MonoidHomClass F α β] (f : F) {a b : α}
Goal: multiplicity a b ≤ multiplicity (f a) (f b)
-- multiplicity.multiplicity_map_eq
theorem multiplicity_map_eq {F : Type*} [EquivLike F α β] [MulEquivClass F α β]
    (f : F) {a b : α} : multiplicity (f a) (f b) = multiplicity a b 
Arguments: {α : Type u_1} {β : Type u_2} [Monoid α] [Monoid β] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {F : Type u_3} [EquivLike F α β] [MulEquivClass F α β] (f : F) {a b : α}
Goal: multiplicity (f a) (f b) = multiplicity a b
-- multiplicity.multiplicity_le_multiplicity_of_dvd_right
theorem multiplicity_le_multiplicity_of_dvd_right {a b c : α} (h : b ∣ c) :
    multiplicity a b ≤ multiplicity a c 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b c : α} (h : b ∣ c)
Goal: multiplicity a b ≤ multiplicity a c
-- multiplicity.eq_of_associated_right
theorem eq_of_associated_right {a b c : α} (h : Associated b c) :
    multiplicity a b = multiplicity a c 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b c : α} (h : Associated b c)
Goal: multiplicity a b = multiplicity a c
-- multiplicity.dvd_of_multiplicity_pos
theorem dvd_of_multiplicity_pos {a b : α} (h : (0 : PartENat) < multiplicity a b) : a ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} (h : 0 < multiplicity a b)
Goal: a ∣ b
-- multiplicity.dvd_iff_multiplicity_pos
theorem dvd_iff_multiplicity_pos {a b : α} : (0 : PartENat) < multiplicity a b ↔ a ∣ b 
Arguments: {α : Type u_1} [Monoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: 0 < multiplicity a b ↔ a ∣ b
-- multiplicity.finite_nat_iff
theorem finite_nat_iff {a b : ℕ} : Finite a b ↔ a ≠ 1 ∧ 0 < b 
Arguments: {a b : ℕ}
Goal: multiplicity.Finite a b ↔ a ≠ 1 ∧ 0 < b
-- multiplicity.finite_of_finite_mul_left
theorem finite_of_finite_mul_left {a b c : α} : Finite a (b * c) → Finite a c 
Arguments: {α : Type u_1} [CommMonoid α] {a b c : α}
Goal: multiplicity.Finite a (b * c) → multiplicity.Finite a c
-- multiplicity.isUnit_right
theorem isUnit_right {a b : α} (ha : ¬IsUnit a) (hb : IsUnit b) : multiplicity a b = 0 
Arguments: {α : Type u_1} [CommMonoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α} (ha : ¬IsUnit a) (hb : IsUnit b)
Goal: multiplicity a b = 0
-- multiplicity.one_right
theorem one_right {a : α} (ha : ¬IsUnit a) : multiplicity a 1 = 0 
Arguments: {α : Type u_1} [CommMonoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (ha : ¬IsUnit a)
Goal: multiplicity a 1 = 0
-- multiplicity.unit_right
theorem unit_right {a : α} (ha : ¬IsUnit a) (u : αˣ) : multiplicity a u = 0 
Arguments: {α : Type u_1} [CommMonoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (ha : ¬IsUnit a) (u : αˣ)
Goal: multiplicity a ↑u = 0
-- multiplicity.multiplicity_le_multiplicity_of_dvd_left
theorem multiplicity_le_multiplicity_of_dvd_left {a b c : α} (hdvd : a ∣ b) :
    multiplicity b c ≤ multiplicity a c 
Arguments: {α : Type u_1} [CommMonoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b c : α} (hdvd : a ∣ b)
Goal: multiplicity b c ≤ multiplicity a c
-- multiplicity.eq_of_associated_left
theorem eq_of_associated_left {a b c : α} (h : Associated a b) :
    multiplicity b c = multiplicity a c 
Arguments: {α : Type u_1} [CommMonoid α] [DecidableRel fun x x_1 => x ∣ x_1] {a b c : α} (h : Associated a b)
Goal: multiplicity b c = multiplicity a c
-- multiplicity.ne_zero_of_finite
theorem ne_zero_of_finite {a b : α} (h : Finite a b) : b ≠ 0 
Arguments: {α : Type u_1} [MonoidWithZero α] {a b : α} (h : multiplicity.Finite a b)
Goal: b ≠ 0
-- multiplicity.zero
@[simp]
protected theorem zero (a : α) : multiplicity a 0 = ⊤ 
Arguments: {α : Type u_1} [MonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] (a : α)
Goal: multiplicity a 0 = ⊤
-- multiplicity.multiplicity_zero_eq_zero_of_ne_zero
@[simp]
theorem multiplicity_zero_eq_zero_of_ne_zero (a : α) (ha : a ≠ 0) : multiplicity 0 a = 0 
Arguments: {α : Type u_1} [MonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] (a : α) (ha : a ≠ 0)
Goal: multiplicity 0 a = 0
-- multiplicity.multiplicity_mk_eq_multiplicity
theorem multiplicity_mk_eq_multiplicity
    [DecidableRel ((· ∣ ·) : Associates α → Associates α → Prop)] {a b : α} :
    multiplicity (Associates.mk a) (Associates.mk b) = multiplicity a b 
Arguments: {α : Type u_1} [CommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {a b : α}
Goal: multiplicity (Associates.mk a) (Associates.mk b) = multiplicity a b
-- multiplicity.min_le_multiplicity_add
theorem min_le_multiplicity_add {p a b : α} :
    min (multiplicity p a) (multiplicity p b) ≤ multiplicity p (a + b) 
Arguments: {α : Type u_1} [Semiring α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α}
Goal: min (multiplicity p a) (multiplicity p b) ≤ multiplicity p (a + b)
-- multiplicity.neg
@[simp]
protected theorem neg (a b : α) : multiplicity a (-b) = multiplicity a b 
Arguments: {α : Type u_1} [Ring α] [DecidableRel fun x x_1 => x ∣ x_1] (a b : α)
Goal: multiplicity a (-b) = multiplicity a b
-- multiplicity.Int.natAbs
theorem Int.natAbs (a : ℕ) (b : ℤ) : multiplicity a b.natAbs = multiplicity (a : ℤ) b 
Arguments: (a : ℕ) (b : ℤ)
Goal: multiplicity a b.natAbs = multiplicity (↑a) b
-- multiplicity.multiplicity_add_of_gt
theorem multiplicity_add_of_gt {p a b : α} (h : multiplicity p b < multiplicity p a) :
    multiplicity p (a + b) = multiplicity p b 
Arguments: {α : Type u_1} [Ring α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α} (h : multiplicity p b < multiplicity p a)
Goal: multiplicity p (a + b) = multiplicity p b
-- multiplicity.multiplicity_sub_of_gt
theorem multiplicity_sub_of_gt {p a b : α} (h : multiplicity p b < multiplicity p a) :
    multiplicity p (a - b) = multiplicity p b 
Arguments: {α : Type u_1} [Ring α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α} (h : multiplicity p b < multiplicity p a)
Goal: multiplicity p (a - b) = multiplicity p b
-- multiplicity.multiplicity_add_eq_min
theorem multiplicity_add_eq_min {p a b : α} (h : multiplicity p a ≠ multiplicity p b) :
    multiplicity p (a + b) = min (multiplicity p a) (multiplicity p b) 
Arguments: {α : Type u_1} [Ring α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α} (h : multiplicity p a ≠ multiplicity p b)
Goal: multiplicity p (a + b) = min (multiplicity p a) (multiplicity p b)
-- multiplicity.finite_mul_aux
theorem finite_mul_aux {p : α} (hp : Prime p) {a b : α} :
    ∀ {n m : ℕ}, ¬p ^ (n + 1) ∣ a → ¬p ^ (m + 1) ∣ b → ¬p ^ (n + m + 1) ∣ a * b
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : α} (hp : Prime p) {a b : α} {n m : ℕ}
Goal: ¬p ^ (n + 1) ∣ a → ¬p ^ (m + 1) ∣ b → ¬p ^ (n + m + 1) ∣ a * b
-- multiplicity.finite_mul
theorem finite_mul {p a b : α} (hp : Prime p) : Finite p a → Finite p b → Finite p (a * b) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p a b : α} (hp : Prime p)
Goal: multiplicity.Finite p a → multiplicity.Finite p b → multiplicity.Finite p (a * b)
-- multiplicity.finite_mul_iff
theorem finite_mul_iff {p a b : α} (hp : Prime p) : Finite p (a * b) ↔ Finite p a ∧ Finite p b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p a b : α} (hp : Prime p)
Goal: multiplicity.Finite p (a * b) ↔ multiplicity.Finite p a ∧ multiplicity.Finite p b
-- multiplicity.finite_pow
theorem finite_pow {p a : α} (hp : Prime p) : ∀ {k : ℕ} (_ : Finite p a), Finite p (a ^ k)
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p a : α} (hp : Prime p) {k : ℕ}
Goal: multiplicity.Finite p a → multiplicity.Finite p (a ^ k)
-- multiplicity.multiplicity_self
@[simp]
theorem multiplicity_self {a : α} (ha : ¬IsUnit a) (ha0 : a ≠ 0) : multiplicity a a = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (ha : ¬IsUnit a) (ha0 : a ≠ 0)
Goal: multiplicity a a = 1
-- multiplicity.get_multiplicity_self
@[simp]
theorem get_multiplicity_self {a : α} (ha : Finite a a) : get (multiplicity a a) ha = 1 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {a : α} (ha : multiplicity.Finite a a)
Goal: (multiplicity a a).get ha = 1
-- multiplicity.mul'
protected theorem mul' {p a b : α} (hp : Prime p) (h : (multiplicity p (a * b)).Dom) :
    get (multiplicity p (a * b)) h =
      get (multiplicity p a) ((finite_mul_iff hp).1 h).1 +
        get (multiplicity p b) ((finite_mul_iff hp).1 h).2 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α} (hp : Prime p) (h : (multiplicity p (a * b)).Dom)
Goal: (multiplicity p (a * b)).get h = (multiplicity p a).get ⋯ + (multiplicity p b).get ⋯
-- multiplicity.mul
protected theorem mul {p a b : α} (hp : Prime p) :
    multiplicity p (a * b) = multiplicity p a + multiplicity p b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p a b : α} (hp : Prime p)
Goal: multiplicity p (a * b) = multiplicity p a + multiplicity p b
-- multiplicity.Finset.prod
theorem Finset.prod {β : Type*} {p : α} (hp : Prime p) (s : Finset β) (f : β → α) :
    multiplicity p (∏ x ∈ s, f x) = ∑ x ∈ s, multiplicity p (f x) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {β : Type u_3} {p : α} (hp : Prime p) (s : Finset β) (f : β → α)
Goal: multiplicity p (∏ x ∈ s, f x) = ∑ x ∈ s, multiplicity p (f x)
-- multiplicity.pow'
protected theorem pow' {p a : α} (hp : Prime p) (ha : Finite p a) :
    ∀ {k : ℕ}, get (multiplicity p (a ^ k)) (finite_pow hp ha) = k * get (multiplicity p a) ha 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p a : α} (hp : Prime p) (ha : multiplicity.Finite p a) {k : ℕ}
Goal: (multiplicity p (a ^ k)).get ⋯ = k * (multiplicity p a).get ha
-- multiplicity.pow
theorem pow {p a : α} (hp : Prime p) : ∀ {k : ℕ}, multiplicity p (a ^ k) = k • multiplicity p a
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p a : α} (hp : Prime p) {k : ℕ}
Goal: multiplicity p (a ^ k) = k • multiplicity p a
-- multiplicity.multiplicity_pow_self
theorem multiplicity_pow_self {p : α} (h0 : p ≠ 0) (hu : ¬IsUnit p) (n : ℕ) :
    multiplicity p (p ^ n) = n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p : α} (h0 : p ≠ 0) (hu : ¬IsUnit p) (n : ℕ)
Goal: multiplicity p (p ^ n) = ↑n
-- multiplicity.multiplicity_pow_self_of_prime
theorem multiplicity_pow_self_of_prime {p : α} (hp : Prime p) (n : ℕ) :
    multiplicity p (p ^ n) = n 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableRel fun x x_1 => x ∣ x_1] {p : α} (hp : Prime p) (n : ℕ)
Goal: multiplicity p (p ^ n) = ↑n
-- multiplicity_eq_zero_of_coprime
theorem multiplicity_eq_zero_of_coprime {p a b : ℕ} (hp : p ≠ 1)
    (hle : multiplicity p a ≤ multiplicity p b) (hab : Nat.Coprime a b) : multiplicity p a = 0 
Arguments: {p a b : ℕ} (hp : p ≠ 1) (hle : multiplicity p a ≤ multiplicity p b) (hab : a.Coprime b)
Goal: multiplicity p a = 0
-- multiplicity.finite_int_iff_natAbs_finite
theorem finite_int_iff_natAbs_finite {a b : ℤ} : Finite a b ↔ Finite a.natAbs b.natAbs 
Arguments: {a b : ℤ}
Goal: multiplicity.Finite a b ↔ multiplicity.Finite a.natAbs b.natAbs
-- multiplicity.finite_int_iff
theorem finite_int_iff {a b : ℤ} : Finite a b ↔ a.natAbs ≠ 1 ∧ b ≠ 0 
Arguments: {a b : ℤ}
Goal: multiplicity.Finite a b ↔ a.natAbs ≠ 1 ∧ b ≠ 0
-- Ideal.finite_factors
theorem Ideal.finite_factors {I : Ideal R} (hI : I ≠ 0) :
    {v : HeightOneSpectrum R | v.asIdeal ∣ I}.Finite 
Arguments: {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I : Ideal R} (hI : I ≠ 0)
Goal: {v | v.asIdeal ∣ I}.Finite
-- Associates.finite_factors
theorem Associates.finite_factors {I : Ideal R} (hI : I ≠ 0) :
    ∀ᶠ v : HeightOneSpectrum R in Filter.cofinite,
      ((Associates.mk v.asIdeal).count (Associates.mk I).factors : ℤ) = 0 
Arguments: {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I : Ideal R} (hI : I ≠ 0)
Goal: ∀ᶠ (v : IsDedekindDomain.HeightOneSpectrum R) in Filter.cofinite,
  ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
-- Ideal.finite_mulSupport
theorem finite_mulSupport {I : Ideal R} (hI : I ≠ 0) :
    (mulSupport fun v : HeightOneSpectrum R => v.maxPowDividing I).Finite 
Arguments: {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I : Ideal R} (hI : I ≠ 0)
Goal: (Function.mulSupport fun v => v.maxPowDividing I).Finite
-- Ideal.finite_mulSupport_coe
theorem finite_mulSupport_coe {I : Ideal R} (hI : I ≠ 0) :
    (mulSupport fun v : HeightOneSpectrum R => (v.asIdeal : FractionalIdeal R⁰ K) ^
      ((Associates.mk v.asIdeal).count (Associates.mk I).factors : ℤ)).Finite 
Arguments: {R : Type u_1} [CommRing R] {K : Type u_2} [Field K] [Algebra R K] [IsFractionRing R K] [IsDedekindDomain R] {I : Ideal R} (hI : I ≠ 0)
Goal: (Function.mulSupport fun v => ↑v.asIdeal ^ ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors)).Finite
-- Ideal.finite_mulSupport_inv
theorem finite_mulSupport_inv {I : Ideal R} (hI : I ≠ 0) :
    (mulSupport fun v : HeightOneSpectrum R => (v.asIdeal : FractionalIdeal R⁰ K) ^
      (-((Associates.mk v.asIdeal).count (Associates.mk I).factors : ℤ))).Finite 
Arguments: {R : Type u_1} [CommRing R] {K : Type u_2} [Field K] [Algebra R K] [IsFractionRing R K] [IsDedekindDomain R] {I : Ideal R} (hI : I ≠ 0)
Goal: (Function.mulSupport fun v => ↑v.asIdeal ^ (-↑((Associates.mk v.asIdeal).count (Associates.mk I).factors))).Finite