ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- UniqueFactorizationMonoid.zero_not_mem_normalizedFactors
theorem zero_not_mem_normalizedFactors (x : α) : (0 : α) ∉ normalizedFactors x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] (x : α)
Goal: 0 ∉ UniqueFactorizationMonoid.normalizedFactors x
-- UniqueFactorizationMonoid.dvd_of_mem_normalizedFactors
theorem dvd_of_mem_normalizedFactors {a p : α} (H : p ∈ normalizedFactors a) : p ∣ a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] {a p : α} (H : p ∈ UniqueFactorizationMonoid.normalizedFactors a)
Goal: p ∣ a
-- UniqueFactorizationMonoid.mem_normalizedFactors_iff
theorem mem_normalizedFactors_iff [Unique αˣ] {p x : α} (hx : x ≠ 0) :
    p ∈ normalizedFactors x ↔ Prime p ∧ p ∣ x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] [Unique αˣ] {p x : α} (hx : x ≠ 0)
Goal: p ∈ UniqueFactorizationMonoid.normalizedFactors x ↔ Prime p ∧ p ∣ x
-- UniqueFactorizationMonoid.exists_associated_prime_pow_of_unique_normalized_factor
theorem exists_associated_prime_pow_of_unique_normalized_factor {p r : α}
    (h : ∀ {m}, m ∈ normalizedFactors r → m = p) (hr : r ≠ 0) : ∃ i : ℕ, Associated (p ^ i) r 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] {p r : α} (h : ∀ {m : α}, m ∈ UniqueFactorizationMonoid.normalizedFactors r → m = p) (hr : r ≠ 0)
Goal: ∃ i, p ^ i ~ᵤ r
-- UniqueFactorizationMonoid.normalizedFactors_prod_of_prime
theorem normalizedFactors_prod_of_prime [Nontrivial α] [Unique αˣ] {m : Multiset α}
    (h : ∀ p ∈ m, Prime p) : normalizedFactors m.prod = m 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] [Nontrivial α] [Unique αˣ] {m : Multiset α} (h : ∀ p ∈ m, Prime p)
Goal: UniqueFactorizationMonoid.normalizedFactors m.prod = m
-- UniqueFactorizationMonoid.mem_normalizedFactors_eq_of_associated
theorem mem_normalizedFactors_eq_of_associated {a b c : α} (ha : a ∈ normalizedFactors c)
    (hb : b ∈ normalizedFactors c) (h : Associated a b) : a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] {a b c : α} (ha : a ∈ UniqueFactorizationMonoid.normalizedFactors c) (hb : b ∈ UniqueFactorizationMonoid.normalizedFactors c) (h : a ~ᵤ b)
Goal: a = b
-- UniqueFactorizationMonoid.normalizedFactors_pos
@[simp]
theorem normalizedFactors_pos (x : α) (hx : x ≠ 0) : 0 < normalizedFactors x ↔ ¬IsUnit x 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] (x : α) (hx : x ≠ 0)
Goal: 0 < UniqueFactorizationMonoid.normalizedFactors x ↔ ¬IsUnit x
-- UniqueFactorizationMonoid.dvdNotUnit_iff_normalizedFactors_lt_normalizedFactors
theorem dvdNotUnit_iff_normalizedFactors_lt_normalizedFactors {x y : α} (hx : x ≠ 0) (hy : y ≠ 0) :
    DvdNotUnit x y ↔ normalizedFactors x < normalizedFactors y 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] {x y : α} (hx : x ≠ 0) (hy : y ≠ 0)
Goal: DvdNotUnit x y ↔ UniqueFactorizationMonoid.normalizedFactors x < UniqueFactorizationMonoid.normalizedFactors y
-- UniqueFactorizationMonoid.normalizedFactors_multiset_prod
theorem normalizedFactors_multiset_prod (s : Multiset α) (hs : 0 ∉ s) :
    normalizedFactors (s.prod) = (s.map normalizedFactors).sum 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [NormalizationMonoid α] [UniqueFactorizationMonoid α] (s : Multiset α) (hs : 0 ∉ s)
Goal: UniqueFactorizationMonoid.normalizedFactors s.prod = (Multiset.map UniqueFactorizationMonoid.normalizedFactors s).sum
-- UniqueFactorizationMonoid.isRelPrime_iff_no_prime_factors
theorem isRelPrime_iff_no_prime_factors {a b : R} (ha : a ≠ 0) :
    IsRelPrime a b ↔ ∀ ⦃d⦄, d ∣ a → d ∣ b → ¬Prime d 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a b : R} (ha : a ≠ 0)
Goal: IsRelPrime a b ↔ ∀ ⦃d : R⦄, d ∣ a → d ∣ b → ¬Prime d
-- UniqueFactorizationMonoid.dvd_of_dvd_mul_left_of_no_prime_factors
theorem dvd_of_dvd_mul_left_of_no_prime_factors {a b c : R} (ha : a ≠ 0)
    (h : ∀ ⦃d⦄, d ∣ a → d ∣ c → ¬Prime d) : a ∣ b * c → a ∣ b 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a b c : R} (ha : a ≠ 0) (h : ∀ ⦃d : R⦄, d ∣ a → d ∣ c → ¬Prime d)
Goal: a ∣ b * c → a ∣ b
-- UniqueFactorizationMonoid.dvd_of_dvd_mul_right_of_no_prime_factors
theorem dvd_of_dvd_mul_right_of_no_prime_factors {a b c : R} (ha : a ≠ 0)
    (no_factors : ∀ {d}, d ∣ a → d ∣ b → ¬Prime d) : a ∣ b * c → a ∣ c 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a b c : R} (ha : a ≠ 0) (no_factors : ∀ {d : R}, d ∣ a → d ∣ b → ¬Prime d)
Goal: a ∣ b * c → a ∣ c
-- UniqueFactorizationMonoid.exists_reduced_factors
theorem exists_reduced_factors :
    ∀ a ≠ (0 : R), ∀ b,
      ∃ a' b' c', IsRelPrime a' b' ∧ c' * a' = a ∧ c' * b' = b 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] (a : R)
Goal: a ≠ 0 → ∀ (b : R), ∃ a' b' c', IsRelPrime a' b' ∧ c' * a' = a ∧ c' * b' = b
-- UniqueFactorizationMonoid.exists_reduced_factors'
theorem exists_reduced_factors' (a b : R) (hb : b ≠ 0) :
    ∃ a' b' c', IsRelPrime a' b' ∧ c' * a' = a ∧ c' * b' = b 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] (a b : R) (hb : b ≠ 0)
Goal: ∃ a' b' c', IsRelPrime a' b' ∧ c' * a' = a ∧ c' * b' = b
-- UniqueFactorizationMonoid.pow_right_injective
theorem pow_right_injective {a : R} (ha0 : a ≠ 0) (ha1 : ¬IsUnit a) :
    Function.Injective (a ^ · : ℕ → R) 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a : R} (ha0 : a ≠ 0) (ha1 : ¬IsUnit a)
Goal: Function.Injective fun x => a ^ x
-- UniqueFactorizationMonoid.pow_eq_pow_iff
theorem pow_eq_pow_iff {a : R} (ha0 : a ≠ 0) (ha1 : ¬IsUnit a) {i j : ℕ} : a ^ i = a ^ j ↔ i = j 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a : R} (ha0 : a ≠ 0) (ha1 : ¬IsUnit a) {i j : ℕ}
Goal: a ^ i = a ^ j ↔ i = j
-- UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors
theorem le_multiplicity_iff_replicate_le_normalizedFactors {a b : R} {n : ℕ} (ha : Irreducible a)
    (hb : b ≠ 0) :
    ↑n ≤ multiplicity a b ↔ replicate n (normalize a) ≤ normalizedFactors b 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] [NormalizationMonoid R] [DecidableRel Dvd.dvd] {a b : R} {n : ℕ} (ha : Irreducible a) (hb : b ≠ 0)
Goal: ↑n ≤ multiplicity a b ↔ Multiset.replicate n (normalize a) ≤ UniqueFactorizationMonoid.normalizedFactors b
-- UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors
theorem multiplicity_eq_count_normalizedFactors [DecidableEq R] {a b : R} (ha : Irreducible a)
    (hb : b ≠ 0) : multiplicity a b = (normalizedFactors b).count (normalize a) 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] [NormalizationMonoid R] [DecidableRel Dvd.dvd] [DecidableEq R] {a b : R} (ha : Irreducible a) (hb : b ≠ 0)
Goal: multiplicity a b = ↑(Multiset.count (normalize a) (UniqueFactorizationMonoid.normalizedFactors b))
-- UniqueFactorizationMonoid.count_normalizedFactors_eq
theorem count_normalizedFactors_eq [DecidableEq R] {p x : R} (hp : Irreducible p)
    (hnorm : normalize p = p) {n : ℕ} (hle : p ^ n ∣ x) (hlt : ¬p ^ (n + 1) ∣ x) :
    (normalizedFactors x).count p = n 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] [NormalizationMonoid R] [DecidableEq R] {p x : R} (hp : Irreducible p) (hnorm : normalize p = p) {n : ℕ} (hle : p ^ n ∣ x) (hlt : ¬p ^ (n + 1) ∣ x)
Goal: Multiset.count p (UniqueFactorizationMonoid.normalizedFactors x) = n
-- UniqueFactorizationMonoid.count_normalizedFactors_eq'
theorem count_normalizedFactors_eq' [DecidableEq R] {p x : R} (hp : p = 0 ∨ Irreducible p)
    (hnorm : normalize p = p) {n : ℕ} (hle : p ^ n ∣ x) (hlt : ¬p ^ (n + 1) ∣ x) :
    (normalizedFactors x).count p = n 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] [NormalizationMonoid R] [DecidableEq R] {p x : R} (hp : p = 0 ∨ Irreducible p) (hnorm : normalize p = p) {n : ℕ} (hle : p ^ n ∣ x) (hlt : ¬p ^ (n + 1) ∣ x)
Goal: Multiset.count p (UniqueFactorizationMonoid.normalizedFactors x) = n
-- UniqueFactorizationMonoid.max_power_factor
@[deprecated WfDvdMonoid.max_power_factor (since := "2024-03-01")]
theorem max_power_factor {a₀ x : R} (h : a₀ ≠ 0) (hx : Irreducible x) :
    ∃ n : ℕ, ∃ a : R, ¬x ∣ a ∧ a₀ = x ^ n * a 
Arguments: {R : Type u_2} [CancelCommMonoidWithZero R] [UniqueFactorizationMonoid R] {a₀ x : R} (h : a₀ ≠ 0) (hx : Irreducible x)
Goal: ∃ n a, ¬x ∣ a ∧ a₀ = x ^ n * a
-- UniqueFactorizationMonoid.prime_pow_coprime_prod_of_coprime_insert
theorem prime_pow_coprime_prod_of_coprime_insert [DecidableEq α] {s : Finset α} (i : α → ℕ) (p : α)
    (hps : p ∉ s) (is_prime : ∀ q ∈ insert p s, Prime q)
    (is_coprime : ∀ᵉ (q ∈ insert p s) (q' ∈ insert p s), q ∣ q' → q = q') :
    IsRelPrime (p ^ i p) (∏ p' ∈ s, p' ^ i p') 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [DecidableEq α] {s : Finset α} (i : α → ℕ) (p : α) (hps : p ∉ s) (is_prime : ∀ q ∈ insert p s, Prime q) (is_coprime : ∀ q ∈ insert p s, ∀ q' ∈ insert p s, q ∣ q' → q = q')
Goal: IsRelPrime (p ^ i p) (∏ p' ∈ s, p' ^ i p')
-- UniqueFactorizationMonoid.induction_on_prime_power
-- @[elab_as_elim] Porting note: commented out
theorem induction_on_prime_power {P : α → Prop} (s : Finset α) (i : α → ℕ)
    (is_prime : ∀ p ∈ s, Prime p) (is_coprime : ∀ᵉ (p ∈ s) (q ∈ s), p ∣ q → p = q)
    (h1 : ∀ {x}, IsUnit x → P x) (hpr : ∀ {p} (i : ℕ), Prime p → P (p ^ i))
    (hcp : ∀ {x y}, IsRelPrime x y → P x → P y → P (x * y)) :
    P (∏ p ∈ s, p ^ i p) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {P : α → Prop} (s : Finset α) (i : α → ℕ) (is_prime : ∀ p ∈ s, Prime p) (is_coprime : ∀ p ∈ s, ∀ q ∈ s, p ∣ q → p = q) (h1 : ∀ {x : α}, IsUnit x → P x) (hpr : ∀ {p : α} (i : ℕ), Prime p → P (p ^ i)) (hcp : ∀ {x y : α}, IsRelPrime x y → P x → P y → P (x * y))
Goal: P (∏ p ∈ s, p ^ i p)
-- UniqueFactorizationMonoid.induction_on_coprime
@[elab_as_elim]
theorem induction_on_coprime {P : α → Prop} (a : α) (h0 : P 0) (h1 : ∀ {x}, IsUnit x → P x)
    (hpr : ∀ {p} (i : ℕ), Prime p → P (p ^ i))
    (hcp : ∀ {x y}, IsRelPrime x y → P x → P y → P (x * y)) : P a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {P : α → Prop} (a : α) (h0 : P 0) (h1 : ∀ {x : α}, IsUnit x → P x) (hpr : ∀ {p : α} (i : ℕ), Prime p → P (p ^ i)) (hcp : ∀ {x y : α}, IsRelPrime x y → P x → P y → P (x * y))
Goal: P a
-- UniqueFactorizationMonoid.multiplicative_prime_power
-- @[elab_as_elim] Porting note: commented out
theorem multiplicative_prime_power {f : α → β} (s : Finset α) (i j : α → ℕ)
    (is_prime : ∀ p ∈ s, Prime p) (is_coprime : ∀ᵉ (p ∈ s) (q ∈ s), p ∣ q → p = q)
    (h1 : ∀ {x y}, IsUnit y → f (x * y) = f x * f y)
    (hpr : ∀ {p} (i : ℕ), Prime p → f (p ^ i) = f p ^ i)
    (hcp : ∀ {x y}, IsRelPrime x y → f (x * y) = f x * f y) :
    f (∏ p ∈ s, p ^ (i p + j p)) = f (∏ p ∈ s, p ^ i p) * f (∏ p ∈ s, p ^ j p) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {β : Type u_3} [CancelCommMonoidWithZero β] {f : α → β} (s : Finset α) (i j : α → ℕ) (is_prime : ∀ p ∈ s, Prime p) (is_coprime : ∀ p ∈ s, ∀ q ∈ s, p ∣ q → p = q) (h1 : ∀ {x y : α}, IsUnit y → f (x * y) = f x * f y) (hpr : ∀ {p : α} (i : ℕ), Prime p → f (p ^ i) = f p ^ i) (hcp : ∀ {x y : α}, IsRelPrime x y → f (x * y) = f x * f y)
Goal: f (∏ p ∈ s, p ^ (i p + j p)) = f (∏ p ∈ s, p ^ i p) * f (∏ p ∈ s, p ^ j p)
-- UniqueFactorizationMonoid.multiplicative_of_coprime
theorem multiplicative_of_coprime (f : α → β) (a b : α) (h0 : f 0 = 0)
    (h1 : ∀ {x y}, IsUnit y → f (x * y) = f x * f y)
    (hpr : ∀ {p} (i : ℕ), Prime p → f (p ^ i) = f p ^ i)
    (hcp : ∀ {x y}, IsRelPrime x y → f (x * y) = f x * f y) :
    f (a * b) = f a * f b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {β : Type u_3} [CancelCommMonoidWithZero β] (f : α → β) (a b : α) (h0 : f 0 = 0) (h1 : ∀ {x y : α}, IsUnit y → f (x * y) = f x * f y) (hpr : ∀ {p : α} (i : ℕ), Prime p → f (p ^ i) = f p ^ i) (hcp : ∀ {x y : α}, IsRelPrime x y → f (x * y) = f x * f y)
Goal: f (a * b) = f a * f b
-- Associates.FactorSet.coe_add
theorem FactorSet.coe_add {a b : Multiset { a : Associates α // Irreducible a }} :
    (↑(a + b) : FactorSet α) = a + b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {a b : Multiset { a // Irreducible a }}
Goal: ↑(a + b) = ↑a + ↑b
-- Associates.FactorSet.sup_add_inf_eq_add
theorem FactorSet.sup_add_inf_eq_add [DecidableEq (Associates α)] :
    ∀ a b : FactorSet α, a ⊔ b + a ⊓ b = a + b
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableEq (Associates α)] (a b : Associates.FactorSet α)
Goal: a ⊔ b + a ⊓ b = a + b
-- Associates.prod_top
@[simp]
theorem prod_top : (⊤ : FactorSet α).prod = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α]
Goal: ⊤.prod = 0
-- Associates.prod_coe
@[simp]
theorem prod_coe {s : Multiset { a : Associates α // Irreducible a }} :
    FactorSet.prod (s : FactorSet α) = (s.map (↑)).prod 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {s : Multiset { a // Irreducible a }}
Goal: Associates.FactorSet.prod ↑s = (Multiset.map Subtype.val s).prod
-- Associates.prod_add
@[simp]
theorem prod_add : ∀ a b : FactorSet α, (a + b).prod = a.prod * b.prod
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] (a b : Associates.FactorSet α)
Goal: (a + b).prod = a.prod * b.prod
-- Associates.prod_mono
@[gcongr]
theorem prod_mono : ∀ {a b : FactorSet α}, a ≤ b → a.prod ≤ b.prod
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {a b : Associates.FactorSet α}
Goal: a ≤ b → a.prod ≤ b.prod
-- Associates.FactorSet.prod_eq_zero_iff
theorem FactorSet.prod_eq_zero_iff [Nontrivial α] (p : FactorSet α) : p.prod = 0 ↔ p = ⊤ 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [Nontrivial α] (p : Associates.FactorSet α)
Goal: p.prod = 0 ↔ p = ⊤
-- Associates.count_some
@[simp]
theorem count_some (hp : Irreducible p) (s : Multiset _) :
    count p (WithTop.some s) = s.count ⟨p, hp⟩ 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {p : Associates α} (hp : Irreducible p) (s : Multiset { a // Irreducible a })
Goal: p.count ↑s = Multiset.count ⟨p, hp⟩ s
-- Associates.count_zero
@[simp]
theorem count_zero (hp : Irreducible p) : count p (0 : FactorSet α) = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {p : Associates α} (hp : Irreducible p)
Goal: p.count 0 = 0
-- Associates.count_reducible
theorem count_reducible (hp : ¬Irreducible p) : count p = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {p : Associates α} (hp : ¬Irreducible p)
Goal: p.count = 0
-- Associates.factorSetMem_eq_mem
@[simp]
theorem factorSetMem_eq_mem (p : Associates α) (s : FactorSet α) : FactorSetMem p s = (p ∈ s) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] (p : Associates α) (s : Associates.FactorSet α)
Goal: p.FactorSetMem s = (p ∈ s)
-- Associates.mem_factorSet_top
theorem mem_factorSet_top {p : Associates α} {hp : Irreducible p} : p ∈ (⊤ : FactorSet α) 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : Associates α} {hp : Irreducible p}
Goal: p ∈ ⊤
-- Associates.mem_factorSet_some
theorem mem_factorSet_some {p : Associates α} {hp : Irreducible p}
    {l : Multiset { a : Associates α // Irreducible a }} :
    p ∈ (l : FactorSet α) ↔ Subtype.mk p hp ∈ l 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : Associates α} {hp : Irreducible p} {l : Multiset { a // Irreducible a }}
Goal: p ∈ ↑l ↔ ⟨p, hp⟩ ∈ l
-- Associates.reducible_not_mem_factorSet
theorem reducible_not_mem_factorSet {p : Associates α} (hp : ¬Irreducible p) (s : FactorSet α) :
    ¬p ∈ s 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : Associates α} (hp : ¬Irreducible p) (s : Associates.FactorSet α)
Goal: p ∉ s
-- Associates.irreducible_of_mem_factorSet
theorem irreducible_of_mem_factorSet {p : Associates α} {s : FactorSet α} (h : p ∈ s) :
    Irreducible p 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] {p : Associates α} {s : Associates.FactorSet α} (h : p ∈ s)
Goal: Irreducible p
-- Associates.unique'
theorem unique' {p q : Multiset (Associates α)} :
    (∀ a ∈ p, Irreducible a) → (∀ a ∈ q, Irreducible a) → p.prod = q.prod → p = q 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {p q : Multiset (Associates α)}
Goal: (∀ a ∈ p, Irreducible a) → (∀ a ∈ q, Irreducible a) → p.prod = q.prod → p = q
-- Associates.FactorSet.unique
theorem FactorSet.unique [Nontrivial α] {p q : FactorSet α} (h : p.prod = q.prod) : p = q 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Nontrivial α] {p q : Associates.FactorSet α} (h : p.prod = q.prod)
Goal: p = q
-- Associates.prod_le_prod_iff_le
theorem prod_le_prod_iff_le [Nontrivial α] {p q : Multiset (Associates α)}
    (hp : ∀ a ∈ p, Irreducible a) (hq : ∀ a ∈ q, Irreducible a) : p.prod ≤ q.prod ↔ p ≤ q 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Nontrivial α] {p q : Multiset (Associates α)} (hp : ∀ a ∈ p, Irreducible a) (hq : ∀ a ∈ q, Irreducible a)
Goal: p.prod ≤ q.prod ↔ p ≤ q
-- Associates.map_subtype_coe_factors'
@[simp]
theorem map_subtype_coe_factors' {a : α} :
    (factors' a).map (↑) = (factors a).map Associates.mk 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a : α}
Goal: Multiset.map Subtype.val (Associates.factors' a) = Multiset.map Associates.mk (UniqueFactorizationMonoid.factors a)
-- Associates.factors'_cong
theorem factors'_cong {a b : α} (h : a ~ᵤ b) : factors' a = factors' b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a b : α} (h : a ~ᵤ b)
Goal: Associates.factors' a = Associates.factors' b
-- Associates.factors_zero
@[simp]
theorem factors_zero : (0 : Associates α).factors = ⊤ 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α]
Goal: Associates.factors 0 = ⊤
-- Associates.factors_mk
@[simp]
theorem factors_mk (a : α) (h : a ≠ 0) : (Associates.mk a).factors = factors' a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] (a : α) (h : a ≠ 0)
Goal: (Associates.mk a).factors = ↑(Associates.factors' a)
-- Associates.factors_prod
@[simp]
theorem factors_prod (a : Associates α) : a.factors.prod = a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] (a : Associates α)
Goal: a.factors.prod = a
-- Associates.prod_factors
@[simp]
theorem prod_factors [Nontrivial α] (s : FactorSet α) : s.prod.factors = s 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Nontrivial α] (s : Associates.FactorSet α)
Goal: s.prod.factors = s
-- Associates.factors_subsingleton
@[nontriviality]
theorem factors_subsingleton [Subsingleton α] {a : Associates α} : a.factors = ⊤ 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Subsingleton α] {a : Associates α}
Goal: a.factors = ⊤
-- Associates.factors_eq_top_iff_zero
theorem factors_eq_top_iff_zero {a : Associates α} : a.factors = ⊤ ↔ a = 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a : Associates α}
Goal: a.factors = ⊤ ↔ a = 0
-- Associates.factors_eq_some_iff_ne_zero
theorem factors_eq_some_iff_ne_zero {a : Associates α} :
    (∃ s : Multiset { p : Associates α // Irreducible p }, a.factors = s) ↔ a ≠ 0 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a : Associates α}
Goal: (∃ s, a.factors = ↑s) ↔ a ≠ 0
-- Associates.eq_of_factors_eq_factors
theorem eq_of_factors_eq_factors {a b : Associates α} (h : a.factors = b.factors) : a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a b : Associates α} (h : a.factors = b.factors)
Goal: a = b
-- Associates.eq_of_prod_eq_prod
theorem eq_of_prod_eq_prod [Nontrivial α] {a b : FactorSet α} (h : a.prod = b.prod) : a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Nontrivial α] {a b : Associates.FactorSet α} (h : a.prod = b.prod)
Goal: a = b
-- Associates.factors_mul
@[simp]
theorem factors_mul (a b : Associates α) : (a * b).factors = a.factors + b.factors 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] (a b : Associates α)
Goal: (a * b).factors = a.factors + b.factors
-- Associates.factors_mono
@[gcongr]
theorem factors_mono : ∀ {a b : Associates α}, a ≤ b → a.factors ≤ b.factors
  
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a b : Associates α}
Goal: a ≤ b → a.factors ≤ b.factors
-- Associates.factors_le
@[simp]
theorem factors_le {a b : Associates α} : a.factors ≤ b.factors ↔ a ≤ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a b : Associates α}
Goal: a.factors ≤ b.factors ↔ a ≤ b
-- Associates.eq_factors_of_eq_counts
theorem eq_factors_of_eq_counts {a b : Associates α} (ha : a ≠ 0) (hb : b ≠ 0)
    (h : ∀ p : Associates α, Irreducible p → p.count a.factors = p.count b.factors) :
    a.factors = b.factors 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {a b : Associates α} (ha : a ≠ 0) (hb : b ≠ 0) (h : ∀ (p : Associates α), Irreducible p → p.count a.factors = p.count b.factors)
Goal: a.factors = b.factors
-- Associates.eq_of_eq_counts
theorem eq_of_eq_counts {a b : Associates α} (ha : a ≠ 0) (hb : b ≠ 0)
    (h : ∀ p : Associates α, Irreducible p → p.count a.factors = p.count b.factors) : a = b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {a b : Associates α} (ha : a ≠ 0) (hb : b ≠ 0) (h : ∀ (p : Associates α), Irreducible p → p.count a.factors = p.count b.factors)
Goal: a = b
-- Associates.count_le_count_of_factors_le
theorem count_le_count_of_factors_le {a b p : Associates α} (hb : b ≠ 0) (hp : Irreducible p)
    (h : a.factors ≤ b.factors) : p.count a.factors ≤ p.count b.factors 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {a b p : Associates α} (hb : b ≠ 0) (hp : Irreducible p) (h : a.factors ≤ b.factors)
Goal: p.count a.factors ≤ p.count b.factors
-- Associates.count_le_count_of_le
theorem count_le_count_of_le {a b p : Associates α} (hb : b ≠ 0) (hp : Irreducible p) (h : a ≤ b) :
    p.count a.factors ≤ p.count b.factors 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [DecidableEq (Associates α)] [(p : Associates α) → Decidable (Irreducible p)] {a b p : Associates α} (hb : b ≠ 0) (hp : Irreducible p) (h : a ≤ b)
Goal: p.count a.factors ≤ p.count b.factors
-- Associates.prod_le
theorem prod_le [Nontrivial α] {a b : FactorSet α} : a.prod ≤ b.prod ↔ a ≤ b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] [Nontrivial α] {a b : Associates.FactorSet α}
Goal: a.prod ≤ b.prod ↔ a ≤ b
-- Associates.sup_mul_inf
theorem sup_mul_inf (a b : Associates α) : (a ⊔ b) * (a ⊓ b) = a * b 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] (a b : Associates α)
Goal: (a ⊔ b) * (a ⊓ b) = a * b
-- Associates.dvd_of_mem_factors
theorem dvd_of_mem_factors {a p : Associates α} (hm : p ∈ factors a) :
    p ∣ a 
Arguments: {α : Type u_1} [CancelCommMonoidWithZero α] [UniqueFactorizationMonoid α] {a p : Associates α} (hm : p ∈ a.factors)
Goal: p ∣ a