ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Localization.mem_range_mapToFractionRing_iff
theorem mem_range_mapToFractionRing_iff (B : Type*) [CommRing B] [Algebra A B] [IsLocalization S B]
    (hS : S ≤ A⁰) (x : K) :
    x ∈ (mapToFractionRing K S B hS).range ↔
      ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ 
Arguments: {A : Type u_1} (K : Type u_2) [CommRing A] (S : Submonoid A) [CommRing K] [Algebra A K] [IsFractionRing A K] (B : Type u_3) [CommRing B] [Algebra A B] [IsLocalization S B] (hS : S ≤ nonZeroDivisors A) (x : K)
Goal: x ∈ (Localization.mapToFractionRing K S B hS).range ↔ ∃ a s, ∃ (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, ⋯⟩
-- Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField
theorem mem_range_mapToFractionRing_iff_ofField (B : Type*) [CommRing B] [Algebra A B]
    [IsLocalization S B] (x : K) :
    x ∈ (mapToFractionRing K S B hS).range ↔
      ∃ (a s : A) (_ : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ 
Arguments: {A : Type u_1} (K : Type u_2) [CommRing A] (S : Submonoid A) (hS : S ≤ nonZeroDivisors A) [Field K] [Algebra A K] [IsFractionRing A K] (B : Type u_3) [CommRing B] [Algebra A B] [IsLocalization S B] (x : K)
Goal: x ∈ (Localization.mapToFractionRing K S B hS).range ↔
  ∃ a s, ∃ (_ : s ∈ S), x = (algebraMap A K) a * ((algebraMap A K) s)⁻¹
-- IsLocalization.card_le
theorem card_le : #L ≤ #R 
Arguments: {R : Type u} [CommRing R] (S : Submonoid R) {L : Type u} [CommRing L] [Algebra R L] [IsLocalization S L]
Goal: #L ≤ #R
-- IsLocalization.card
theorem card (hS : S ≤ R⁰) : #R = #L 
Arguments: {R : Type u} [CommRing R] (S : Submonoid R) (L : Type u) [CommRing L] [Algebra R L] [IsLocalization S L] (hS : S ≤ R⁰)
Goal: #R = #L
-- LocalRing.of_isUnit_or_isUnit_of_isUnit_add
theorem of_isUnit_or_isUnit_of_isUnit_add [Nontrivial R]
    (h : ∀ a b : R, IsUnit (a + b) → IsUnit a ∨ IsUnit b) : LocalRing R 
Arguments: {R : Type u_1} [CommSemiring R] [Nontrivial R] (h : ∀ (a b : R), IsUnit (a + b) → IsUnit a ∨ IsUnit b)
Goal: LocalRing R
-- LocalRing.of_nonunits_add
theorem of_nonunits_add [Nontrivial R]
    (h : ∀ a b : R, a ∈ nonunits R → b ∈ nonunits R → a + b ∈ nonunits R) : LocalRing R 
Arguments: {R : Type u_1} [CommSemiring R] [Nontrivial R] (h : ∀ (a b : R), a ∈ nonunits R → b ∈ nonunits R → a + b ∈ nonunits R)
Goal: LocalRing R
-- LocalRing.of_unique_max_ideal
theorem of_unique_max_ideal (h : ∃! I : Ideal R, I.IsMaximal) : LocalRing R 
Arguments: {R : Type u_1} [CommSemiring R] (h : ∃! I, I.IsMaximal)
Goal: LocalRing R
-- LocalRing.of_unique_nonzero_prime
theorem of_unique_nonzero_prime (h : ∃! P : Ideal R, P ≠ ⊥ ∧ Ideal.IsPrime P) : LocalRing R 
Arguments: {R : Type u_1} [CommSemiring R] (h : ∃! P, P ≠ ⊥ ∧ P.IsPrime)
Goal: LocalRing R
-- LocalRing.isUnit_or_isUnit_of_isUnit_add
theorem isUnit_or_isUnit_of_isUnit_add {a b : R} (h : IsUnit (a + b)) : IsUnit a ∨ IsUnit b 
Arguments: {R : Type u_1} [CommSemiring R] [LocalRing R] {a b : R} (h : IsUnit (a + b))
Goal: IsUnit a ∨ IsUnit b
-- LocalRing.nonunits_add
theorem nonunits_add {a b : R} (ha : a ∈ nonunits R) (hb : b ∈ nonunits R) : a + b ∈ nonunits R 
Arguments: {R : Type u_1} [CommSemiring R] [LocalRing R] {a b : R} (ha : a ∈ nonunits R) (hb : b ∈ nonunits R)
Goal: a + b ∈ nonunits R
-- LocalRing.of_isUnit_or_isUnit_one_sub_self
theorem of_isUnit_or_isUnit_one_sub_self [Nontrivial R] (h : ∀ a : R, IsUnit a ∨ IsUnit (1 - a)) :
    LocalRing R 
Arguments: {R : Type u_1} [CommRing R] [Nontrivial R] (h : ∀ (a : R), IsUnit a ∨ IsUnit (1 - a))
Goal: LocalRing R
-- LocalRing.isUnit_or_isUnit_one_sub_self
theorem isUnit_or_isUnit_one_sub_self (a : R) : IsUnit a ∨ IsUnit (1 - a) 
Arguments: {R : Type u_1} [CommRing R] [LocalRing R] (a : R)
Goal: IsUnit a ∨ IsUnit (1 - a)
-- LocalRing.isUnit_of_mem_nonunits_one_sub_self
theorem isUnit_of_mem_nonunits_one_sub_self (a : R) (h : 1 - a ∈ nonunits R) : IsUnit a 
Arguments: {R : Type u_1} [CommRing R] [LocalRing R] (a : R) (h : 1 - a ∈ nonunits R)
Goal: IsUnit a
-- LocalRing.isUnit_one_sub_self_of_mem_nonunits
theorem isUnit_one_sub_self_of_mem_nonunits (a : R) (h : a ∈ nonunits R) : IsUnit (1 - a) 
Arguments: {R : Type u_1} [CommRing R] [LocalRing R] (a : R) (h : a ∈ nonunits R)
Goal: IsUnit (1 - a)
-- LocalRing.of_surjective'
theorem of_surjective' [CommRing S] [Nontrivial S] (f : R →+* S) (hf : Function.Surjective f) :
    LocalRing S 
Arguments: {R : Type u_1} {S : Type u_2} [CommRing R] [LocalRing R] [CommRing S] [Nontrivial S] (f : R →+* S) (hf : Function.Surjective ⇑f)
Goal: LocalRing S
-- IsLocalization.Away.mul_invSelf
@[simp]
theorem mul_invSelf : algebraMap R S x * invSelf x = 1 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] [Algebra R S] (x : R) [IsLocalization.Away x S]
Goal: (algebraMap R S) x * IsLocalization.Away.invSelf x = 1
-- IsLocalization.Away.sec_spec
lemma sec_spec (s : S) : s * (algebraMap R S) (x ^ (IsLocalization.Away.sec x s).2) =
    algebraMap R S (IsLocalization.Away.sec x s).1 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] [Algebra R S] (x : R) [IsLocalization.Away x S] (s : S)
Goal: s * (algebraMap R S) (x ^ (IsLocalization.Away.sec x s).2) = (algebraMap R S) (IsLocalization.Away.sec x s).1
-- IsLocalization.Away.AwayMap.lift_eq
@[simp]
theorem AwayMap.lift_eq (hg : IsUnit (g x)) (a : R) : lift x hg ((algebraMap R S) a) = g a 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] [Algebra R S] {P : Type u_3} [CommSemiring P] (x : R) [IsLocalization.Away x S] {g : R →+* P} (hg : IsUnit (g x)) (a : R)
Goal: (IsLocalization.Away.lift x hg) ((algebraMap R S) a) = g a
-- IsLocalization.Away.AwayMap.lift_comp
@[simp]
theorem AwayMap.lift_comp (hg : IsUnit (g x)) : (lift x hg).comp (algebraMap R S) = g 
Arguments: {R : Type u_1} [CommSemiring R] {S : Type u_2} [CommSemiring S] [Algebra R S] {P : Type u_3} [CommSemiring P] (x : R) [IsLocalization.Away x S] {g : R →+* P} (hg : IsUnit (g x))
Goal: (IsLocalization.Away.lift x hg).comp (algebraMap R S) = g
-- IsLocalization.Away.mapₐ_apply
@[simp]
lemma mapₐ_apply (f : A →ₐ[R] B) (a : A) [Away a Aₚ] [Away (f a) Bₚ] (x : Aₚ) :
    mapₐ Aₚ Bₚ f a x = map Aₚ Bₚ f.toRingHom a x 
Arguments: {R : Type u_1} [CommSemiring R] {A : Type u_5} [CommRing A] [Algebra R A] {B : Type u_6} [CommRing B] [Algebra R B] (Aₚ : Type u_7) [CommRing Aₚ] [Algebra A Aₚ] [Algebra R Aₚ] [IsScalarTower R A Aₚ] (Bₚ : Type u_8) [CommRing Bₚ] [Algebra B Bₚ] [Algebra R Bₚ] [IsScalarTower R B Bₚ] (f : A →ₐ[R] B) (a : A) [IsLocalization.Away a Aₚ] [IsLocalization.Away (f a) Bₚ] (x : Aₚ)
Goal: (IsLocalization.Away.mapₐ Aₚ Bₚ f a) x = (IsLocalization.Away.map Aₚ Bₚ f.toRingHom a) x
-- IsLocalization.Away.mapₐ_injective_of_injective
lemma mapₐ_injective_of_injective {f : A →ₐ[R] B} (a : A) [Away a Aₚ] [Away (f a) Bₚ]
    (hf : Function.Injective f) : Function.Injective (mapₐ Aₚ Bₚ f a) 
Arguments: {R : Type u_1} [CommSemiring R] {A : Type u_5} [CommRing A] [Algebra R A] {B : Type u_6} [CommRing B] [Algebra R B] {Aₚ : Type u_7} [CommRing Aₚ] [Algebra A Aₚ] [Algebra R Aₚ] [IsScalarTower R A Aₚ] {Bₚ : Type u_8} [CommRing Bₚ] [Algebra B Bₚ] [Algebra R Bₚ] [IsScalarTower R B Bₚ] {f : A →ₐ[R] B} (a : A) [IsLocalization.Away a Aₚ] [IsLocalization.Away (f a) Bₚ] (hf : Function.Injective ⇑f)
Goal: Function.Injective ⇑(IsLocalization.Away.mapₐ Aₚ Bₚ f a)
-- IsLocalization.Away.mapₐ_surjective_of_surjective
lemma mapₐ_surjective_of_surjective {f : A →ₐ[R] B} (a : A) [Away a Aₚ] [Away (f a) Bₚ]
    (hf : Function.Surjective f) : Function.Surjective (mapₐ Aₚ Bₚ f a) 
Arguments: {R : Type u_1} [CommSemiring R] {A : Type u_5} [CommRing A] [Algebra R A] {B : Type u_6} [CommRing B] [Algebra R B] {Aₚ : Type u_7} [CommRing Aₚ] [Algebra A Aₚ] [Algebra R Aₚ] [IsScalarTower R A Aₚ] {Bₚ : Type u_8} [CommRing Bₚ] [Algebra B Bₚ] [Algebra R Bₚ] [IsScalarTower R B Bₚ] {f : A →ₐ[R] B} (a : A) [IsLocalization.Away a Aₚ] [IsLocalization.Away (f a) Bₚ] (hf : Function.Surjective ⇑f)
Goal: Function.Surjective ⇑(IsLocalization.Away.mapₐ Aₚ Bₚ f a)
-- IsLocalization.away_of_isUnit_of_bijective
theorem away_of_isUnit_of_bijective {R : Type*} (S : Type*) [CommRing R] [CommRing S]
    [Algebra R S] {r : R} (hr : IsUnit r) (H : Function.Bijective (algebraMap R S)) :
    IsLocalization.Away r S 
Arguments: {R : Type u_4} (S : Type u_5) [CommRing R] [CommRing S] [Algebra R S] {r : R} (hr : IsUnit r) (H : Function.Bijective ⇑(algebraMap R S))
Goal: IsLocalization.Away r S
-- IsLocalization.away_of_isIdempotentElem
lemma away_of_isIdempotentElem {R S} [CommRing R] [CommRing S] [Algebra R S]
    {e : R} (he : IsIdempotentElem e)
    (H : RingHom.ker (algebraMap R S) = Ideal.span {1 - e})
    (H' : Function.Surjective (algebraMap R S)) :
    IsLocalization.Away e S 
Arguments: {R : Type u_4} {S : Type u_5} [CommRing R] [CommRing S] [Algebra R S] {e : R} (he : IsIdempotentElem e) (H : RingHom.ker (algebraMap R S) = Ideal.span {1 - e}) (H' : Function.Surjective ⇑(algebraMap R S))
Goal: IsLocalization.Away e S
-- selfZPow_of_nonneg
theorem selfZPow_of_nonneg {n : ℤ} (hn : 0 ≤ n) : selfZPow x B n = algebraMap R B x ^ n.natAbs 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] {n : ℤ} (hn : 0 ≤ n)
Goal: selfZPow x B n = (algebraMap R B) x ^ n.natAbs
-- selfZPow_natCast
@[simp]
theorem selfZPow_natCast (d : ℕ) : selfZPow x B d = algebraMap R B x ^ d 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] (d : ℕ)
Goal: selfZPow x B ↑d = (algebraMap R B) x ^ d
-- selfZPow_zero
@[simp]
theorem selfZPow_zero : selfZPow x B 0 = 1 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B]
Goal: selfZPow x B 0 = 1
-- selfZPow_of_neg
theorem selfZPow_of_neg {n : ℤ} (hn : n < 0) :
    selfZPow x B n = mk' _ (1 : R) (Submonoid.pow x n.natAbs) 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] {n : ℤ} (hn : n < 0)
Goal: selfZPow x B n = IsLocalization.mk' B 1 (Submonoid.pow x n.natAbs)
-- selfZPow_of_nonpos
theorem selfZPow_of_nonpos {n : ℤ} (hn : n ≤ 0) :
    selfZPow x B n = mk' _ (1 : R) (Submonoid.pow x n.natAbs) 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] {n : ℤ} (hn : n ≤ 0)
Goal: selfZPow x B n = IsLocalization.mk' B 1 (Submonoid.pow x n.natAbs)
-- selfZPow_neg_natCast
@[simp]
theorem selfZPow_neg_natCast (d : ℕ) : selfZPow x B (-d) = mk' _ (1 : R) (Submonoid.pow x d) 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] (d : ℕ)
Goal: selfZPow x B (-↑d) = IsLocalization.mk' B 1 (Submonoid.pow x d)
-- selfZPow_sub_natCast
@[simp]
theorem selfZPow_sub_natCast {n m : ℕ} :
    selfZPow x B (n - m) = mk' _ (x ^ n) (Submonoid.pow x m) 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] {n m : ℕ}
Goal: selfZPow x B (↑n - ↑m) = IsLocalization.mk' B (x ^ n) (Submonoid.pow x m)
-- selfZPow_add
@[simp]
theorem selfZPow_add {n m : ℤ} : selfZPow x B (n + m) = selfZPow x B n * selfZPow x B m 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] {n m : ℤ}
Goal: selfZPow x B (n + m) = selfZPow x B n * selfZPow x B m
-- selfZPow_mul_neg
theorem selfZPow_mul_neg (d : ℤ) : selfZPow x B d * selfZPow x B (-d) = 1 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] (d : ℤ)
Goal: selfZPow x B d * selfZPow x B (-d) = 1
-- selfZPow_neg_mul
theorem selfZPow_neg_mul (d : ℤ) : selfZPow x B (-d) * selfZPow x B d = 1 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] (d : ℤ)
Goal: selfZPow x B (-d) * selfZPow x B d = 1
-- selfZPow_pow_sub
theorem selfZPow_pow_sub (a : R) (b : B) (m d : ℤ) :
    selfZPow x B (m - d) * mk' B a (1 : Submonoid.powers x) = b ↔
      selfZPow x B m * mk' B a (1 : Submonoid.powers x) = selfZPow x B d * b 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] (a : R) (b : B) (m d : ℤ)
Goal: selfZPow x B (m - d) * IsLocalization.mk' B a 1 = b ↔ selfZPow x B m * IsLocalization.mk' B a 1 = selfZPow x B d * b
-- exists_reduced_fraction'
theorem exists_reduced_fraction' {b : B} (hb : b ≠ 0) (hx : Irreducible x) :
    ∃ (a : R) (n : ℤ), ¬x ∣ a ∧ selfZPow x B n * algebraMap R B a = b 
Arguments: {R : Type u_1} [CommRing R] (x : R) (B : Type u_2) [CommRing B] [Algebra R B] [IsLocalization.Away x B] [IsDomain R] [WfDvdMonoid R] {b : B} (hb : b ≠ 0) (hx : Irreducible x)
Goal: ∃ a n, ¬x ∣ a ∧ selfZPow x B n * (algebraMap R B) a = b
-- LocalRing.isUnit_or_isUnit_of_add_one
class LocalRing (R : Type*) [Semiring R] extends Nontrivial R : Prop where
  of_is_unit_or_is_unit_of_add_one ::
    isUnit_or_isUnit_of_add_one {a b : R} (h : a + b = 1) : IsUnit a ∨ IsUnit b
Arguments: {R : Type u_1} [Semiring R] [self : LocalRing R] {a b : R} (h : a + b = 1)
Goal: IsUnit a ∨ IsUnit b
-- Associates.isAtom_iff
theorem Associates.isAtom_iff {p : Associates M} (h₁ : p ≠ 0) : IsAtom p ↔ Irreducible p 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {p : Associates M} (h₁ : p ≠ 0)
Goal: IsAtom p ↔ Irreducible p
-- DivisorChain.exists_chain_of_prime_pow
theorem exists_chain_of_prime_pow {p : Associates M} {n : ℕ} (hn : n ≠ 0) (hp : Prime p) :
    ∃ c : Fin (n + 1) → Associates M,
      c 1 = p ∧ StrictMono c ∧ ∀ {r : Associates M}, r ≤ p ^ n ↔ ∃ i, r = c i 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {p : Associates M} {n : ℕ} (hn : n ≠ 0) (hp : Prime p)
Goal: ∃ c, c 1 = p ∧ StrictMono c ∧ ∀ {r : Associates M}, r ≤ p ^ n ↔ ∃ i, r = c i
-- DivisorChain.element_of_chain_not_isUnit_of_index_ne_zero
theorem element_of_chain_not_isUnit_of_index_ne_zero {n : ℕ} {i : Fin (n + 1)} (i_pos : i ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) : ¬IsUnit (c i) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {n : ℕ} {i : Fin (n + 1)} (i_pos : i ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c)
Goal: ¬IsUnit (c i)
-- DivisorChain.first_of_chain_isUnit
theorem first_of_chain_isUnit {q : Associates M} {n : ℕ} {c : Fin (n + 1) → Associates M}
    (h₁ : StrictMono c) (h₂ : ∀ {r}, r ≤ q ↔ ∃ i, r = c i) : IsUnit (c 0) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {q : Associates M} {n : ℕ} {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i)
Goal: IsUnit (c 0)
-- DivisorChain.second_of_chain_is_irreducible
theorem second_of_chain_is_irreducible {q : Associates M} {n : ℕ} (hn : n ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r}, r ≤ q ↔ ∃ i, r = c i)
    (hq : q ≠ 0) : Irreducible (c 1) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {q : Associates M} {n : ℕ} (hn : n ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hq : q ≠ 0)
Goal: Irreducible (c 1)
-- DivisorChain.eq_second_of_chain_of_prime_dvd
theorem eq_second_of_chain_of_prime_dvd {p q r : Associates M} {n : ℕ} (hn : n ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c)
    (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hp : Prime p) (hr : r ∣ q) (hp' : p ∣ r) :
    p = c 1 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {p q r : Associates M} {n : ℕ} (hn : n ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hp : Prime p) (hr : r ∣ q) (hp' : p ∣ r)
Goal: p = c 1
-- DivisorChain.card_subset_divisors_le_length_of_chain
theorem card_subset_divisors_le_length_of_chain {q : Associates M} {n : ℕ}
    {c : Fin (n + 1) → Associates M} (h₂ : ∀ {r}, r ≤ q ↔ ∃ i, r = c i) {m : Finset (Associates M)}
    (hm : ∀ r, r ∈ m → r ≤ q) : m.card ≤ n + 1 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {q : Associates M} {n : ℕ} {c : Fin (n + 1) → Associates M} (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) {m : Finset (Associates M)} (hm : ∀ r ∈ m, r ≤ q)
Goal: m.card ≤ n + 1
-- DivisorChain.element_of_chain_eq_pow_second_of_chain
theorem element_of_chain_eq_pow_second_of_chain {q r : Associates M} {n : ℕ} (hn : n ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r}, r ≤ q ↔ ∃ i, r = c i)
    (hr : r ∣ q) (hq : q ≠ 0) : ∃ i : Fin (n + 1), r = c 1 ^ (i : ℕ) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] [UniqueFactorizationMonoid M] {q r : Associates M} {n : ℕ} (hn : n ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hr : r ∣ q) (hq : q ≠ 0)
Goal: ∃ i, r = c 1 ^ ↑i
-- DivisorChain.eq_pow_second_of_chain_of_has_chain
theorem eq_pow_second_of_chain_of_has_chain {q : Associates M} {n : ℕ} (hn : n ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c)
    (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hq : q ≠ 0) : q = c 1 ^ n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] [UniqueFactorizationMonoid M] {q : Associates M} {n : ℕ} (hn : n ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hq : q ≠ 0)
Goal: q = c 1 ^ n
-- DivisorChain.isPrimePow_of_has_chain
theorem isPrimePow_of_has_chain {q : Associates M} {n : ℕ} (hn : n ≠ 0)
    {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c)
    (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hq : q ≠ 0) : IsPrimePow q 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] [UniqueFactorizationMonoid M] {q : Associates M} {n : ℕ} (hn : n ≠ 0) {c : Fin (n + 1) → Associates M} (h₁ : StrictMono c) (h₂ : ∀ {r : Associates M}, r ≤ q ↔ ∃ i, r = c i) (hq : q ≠ 0)
Goal: IsPrimePow q
-- factor_orderIso_map_one_eq_bot
theorem factor_orderIso_map_one_eq_bot {m : Associates M} {n : Associates N}
    (d : { l : Associates M // l ≤ m } ≃o { l : Associates N // l ≤ n }) :
    (d ⟨1, one_dvd m⟩ : Associates N) = 1 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] {m : Associates M} {n : Associates N} (d : { l // l ≤ m } ≃o { l // l ≤ n })
Goal: ↑(d ⟨1, ⋯⟩) = 1
-- coe_factor_orderIso_map_eq_one_iff
theorem coe_factor_orderIso_map_eq_one_iff {m u : Associates M} {n : Associates N} (hu' : u ≤ m)
    (d : Set.Iic m ≃o Set.Iic n) : (d ⟨u, hu'⟩ : Associates N) = 1 ↔ u = 1 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] {m u : Associates M} {n : Associates N} (hu' : u ≤ m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n))
Goal: ↑(d ⟨u, hu'⟩) = 1 ↔ u = 1
-- pow_image_of_prime_by_factor_orderIso_dvd
theorem pow_image_of_prime_by_factor_orderIso_dvd
    {m p : Associates M} {n : Associates N} (hn : n ≠ 0) (hp : p ∈ normalizedFactors m)
    (d : Set.Iic m ≃o Set.Iic n) {s : ℕ} (hs' : p ^ s ≤ m) :
    (d ⟨p, dvd_of_mem_normalizedFactors hp⟩ : Associates N) ^ s ≤ n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [UniqueFactorizationMonoid N] [UniqueFactorizationMonoid M] {m p : Associates M} {n : Associates N} (hn : n ≠ 0) (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n)) {s : ℕ} (hs' : p ^ s ≤ m)
Goal: ↑(d ⟨p, ⋯⟩) ^ s ≤ n
-- map_prime_of_factor_orderIso
theorem map_prime_of_factor_orderIso {m p : Associates M} {n : Associates N} (hn : n ≠ 0)
    (hp : p ∈ normalizedFactors m) (d : Set.Iic m ≃o Set.Iic n) :
    Prime (d ⟨p, dvd_of_mem_normalizedFactors hp⟩ : Associates N) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [UniqueFactorizationMonoid N] [UniqueFactorizationMonoid M] {m p : Associates M} {n : Associates N} (hn : n ≠ 0) (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n))
Goal: Prime ↑(d ⟨p, ⋯⟩)
-- mem_normalizedFactors_factor_orderIso_of_mem_normalizedFactors
theorem mem_normalizedFactors_factor_orderIso_of_mem_normalizedFactors {m p : Associates M}
    {n : Associates N} (hn : n ≠ 0) (hp : p ∈ normalizedFactors m) (d : Set.Iic m ≃o Set.Iic n) :
    (d ⟨p, dvd_of_mem_normalizedFactors hp⟩ : Associates N) ∈ normalizedFactors n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [UniqueFactorizationMonoid N] [UniqueFactorizationMonoid M] {m p : Associates M} {n : Associates N} (hn : n ≠ 0) (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n))
Goal: ↑(d ⟨p, ⋯⟩) ∈ UniqueFactorizationMonoid.normalizedFactors n
-- multiplicity_prime_le_multiplicity_image_by_factor_orderIso
theorem multiplicity_prime_le_multiplicity_image_by_factor_orderIso {m p : Associates M}
    {n : Associates N} (hp : p ∈ normalizedFactors m) (d : Set.Iic m ≃o Set.Iic n) :
    multiplicity p m ≤ multiplicity (↑(d ⟨p, dvd_of_mem_normalizedFactors hp⟩)) n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [UniqueFactorizationMonoid N] [UniqueFactorizationMonoid M] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {m p : Associates M} {n : Associates N} (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n))
Goal: multiplicity p m ≤ multiplicity (↑(d ⟨p, ⋯⟩)) n
-- multiplicity_prime_eq_multiplicity_image_by_factor_orderIso
theorem multiplicity_prime_eq_multiplicity_image_by_factor_orderIso {m p : Associates M}
    {n : Associates N} (hn : n ≠ 0) (hp : p ∈ normalizedFactors m) (d : Set.Iic m ≃o Set.Iic n) :
    multiplicity p m = multiplicity (↑(d ⟨p, dvd_of_mem_normalizedFactors hp⟩)) n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [UniqueFactorizationMonoid N] [UniqueFactorizationMonoid M] [DecidableRel fun x x_1 => x ∣ x_1] [DecidableRel fun x x_1 => x ∣ x_1] {m p : Associates M} {n : Associates N} (hn : n ≠ 0) (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) (d : ↑(Set.Iic m) ≃o ↑(Set.Iic n))
Goal: multiplicity p m = multiplicity (↑(d ⟨p, ⋯⟩)) n
-- mkFactorOrderIsoOfFactorDvdEquiv_symm_apply_coe
@[simps]
def mkFactorOrderIsoOfFactorDvdEquiv {m : M} {n : N} {d : { l : M // l ∣ m } ≃ { l : N // l ∣ n }}
    (hd : ∀ l l', (d l : N) ∣ d l' ↔ (l : M) ∣ (l' : M)) :
    Set.Iic (Associates.mk m) ≃o Set.Iic (Associates.mk n) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [Unique Mˣ] [Unique Nˣ] {m : M} {n : N} {d : { l // l ∣ m } ≃ { l // l ∣ n }} (hd : ∀ (l l' : { l // l ∣ m }), ↑(d l) ∣ ↑(d l') ↔ ↑l ∣ ↑l') (l : ↑(Set.Iic (Associates.mk n)))
Goal: ↑((RelIso.symm (mkFactorOrderIsoOfFactorDvdEquiv hd)) l) = Associates.mk ↑(d.symm ⟨associatesEquivOfUniqueUnits ↑l, ⋯⟩)
-- mkFactorOrderIsoOfFactorDvdEquiv_apply_coe
@[simps]
def mkFactorOrderIsoOfFactorDvdEquiv {m : M} {n : N} {d : { l : M // l ∣ m } ≃ { l : N // l ∣ n }}
    (hd : ∀ l l', (d l : N) ∣ d l' ↔ (l : M) ∣ (l' : M)) :
    Set.Iic (Associates.mk m) ≃o Set.Iic (Associates.mk n) 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [Unique Mˣ] [Unique Nˣ] {m : M} {n : N} {d : { l // l ∣ m } ≃ { l // l ∣ n }} (hd : ∀ (l l' : { l // l ∣ m }), ↑(d l) ∣ ↑(d l') ↔ ↑l ∣ ↑l') (l : ↑(Set.Iic (Associates.mk m)))
Goal: ↑((mkFactorOrderIsoOfFactorDvdEquiv hd) l) = Associates.mk ↑(d ⟨associatesEquivOfUniqueUnits ↑l, ⋯⟩)
-- mem_normalizedFactors_factor_dvd_iso_of_mem_normalizedFactors
theorem mem_normalizedFactors_factor_dvd_iso_of_mem_normalizedFactors {m p : M} {n : N} (hm : m ≠ 0)
    (hn : n ≠ 0) (hp : p ∈ normalizedFactors m) {d : { l : M // l ∣ m } ≃ { l : N // l ∣ n }}
    (hd : ∀ l l', (d l : N) ∣ d l' ↔ (l : M) ∣ (l' : M)) :
    ↑(d ⟨p, dvd_of_mem_normalizedFactors hp⟩) ∈ normalizedFactors n 
Arguments: {M : Type u_1} [CancelCommMonoidWithZero M] {N : Type u_2} [CancelCommMonoidWithZero N] [Unique Mˣ] [Unique Nˣ] [UniqueFactorizationMonoid M] [UniqueFactorizationMonoid N] {m p : M} {n : N} (hm : m ≠ 0) (hn : n ≠ 0) (hp : p ∈ UniqueFactorizationMonoid.normalizedFactors m) {d : { l // l ∣ m } ≃ { l // l ∣ n }} (hd : ∀ (l l' : { l // l ∣ m }), ↑(d l) ∣ ↑(d l') ↔ ↑l ∣ ↑l')
Goal: ↑(d ⟨p, ⋯⟩) ∈ UniqueFactorizationMonoid.normalizedFactors n