Documentation

Mathlib.RingTheory.DedekindDomain.Ideal.Lemmas

Dedekind domains and ideals #

In this file, we prove some results on the unique factorization monoid structure of the ideals. The unique factorization of ideals and invertibility of fractional ideals can be found in Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean.

Main definitions #

Implementation notes #

Often, definitions assume that Dedekind domains are not fields. We found it more practical to add a (h : Β¬ IsField A) assumption whenever this is explicitly needed.

References #

Tags #

dedekind domain, dedekind ring

theorem FractionalIdeal.exists_notMem_one_of_ne_bot {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [Algebra A K] [IsFractionRing A K] [IsDedekindDomain A] {I : Ideal A} (hI0 : I β‰  βŠ₯) (hI1 : I β‰  ⊀) :
βˆƒ x ∈ (↑I)⁻¹, x βˆ‰ 1
@[simp]
theorem Ideal.dvd_span_singleton {A : Type u_2} [CommRing A] [IsDedekindDomain A] {I : Ideal A} {x : A} :
I ∣ span {x} ↔ x ∈ I
theorem Ideal.prime_of_isPrime {A : Type u_2} [CommRing A] [IsDedekindDomain A] {P : Ideal A} (hP : P β‰  βŠ₯) (h : P.IsPrime) :
theorem Ideal.prime_of_mem_primesOver {A : Type u_2} [CommRing A] [IsDedekindDomain A] {R : Type u_4} [CommRing R] [Algebra R A] {p : Ideal R} [IsDomain R] [Module.IsTorsionFree R A] (hp : p β‰  βŠ₯) {P : Ideal A} (hP : P ∈ p.primesOver A) :
theorem Ideal.prime_iff_isPrime {A : Type u_2} [CommRing A] [IsDedekindDomain A] {P : Ideal A} (hP : P β‰  βŠ₯) :
Prime P ↔ P.IsPrime

In a Dedekind domain, the (nonzero) prime elements of the monoid with zero Ideal A are exactly the prime ideals.

theorem Ideal.isPrime_iff_bot_or_prime {A : Type u_2} [CommRing A] [IsDedekindDomain A] {P : Ideal A} :
P.IsPrime ↔ P = βŠ₯ ∨ Prime P

In a Dedekind domain, the prime ideals are the zero ideal together with the prime elements of the monoid with zero Ideal A.

@[simp]
theorem Ideal.prime_span_singleton_iff {A : Type u_2} [CommRing A] [IsDedekindDomain A] {a : A} :
Prime (span {a}) ↔ Prime a
theorem Ideal.pow_right_strictAnti {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I : Ideal A) (hI0 : I β‰  βŠ₯) (hI1 : I β‰  ⊀) :
StrictAnti fun (x : β„•) => I ^ x
theorem Ideal.pow_lt_self {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I : Ideal A) (hI0 : I β‰  βŠ₯) (hI1 : I β‰  ⊀) (e : β„•) (he : 2 ≀ e) :
I ^ e < I
theorem Ideal.exists_mem_pow_notMem_pow_succ {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I : Ideal A) (hI0 : I β‰  βŠ₯) (hI1 : I β‰  ⊀) (e : β„•) :
βˆƒ x ∈ I ^ e, x βˆ‰ I ^ (e + 1)
theorem Ideal.eq_prime_pow_of_succ_lt_of_le {A : Type u_2} [CommRing A] [IsDedekindDomain A] {P I : Ideal A} [P_prime : P.IsPrime] (hP : P β‰  βŠ₯) {i : β„•} (hlt : P ^ (i + 1) < I) (hle : I ≀ P ^ i) :
I = P ^ i
theorem Ideal.pow_succ_lt_pow {A : Type u_2} [CommRing A] [IsDedekindDomain A] {P : Ideal A} [P_prime : P.IsPrime] (hP : P β‰  βŠ₯) (i : β„•) :
P ^ (i + 1) < P ^ i
theorem Associates.le_singleton_iff {A : Type u_2} [CommRing A] [IsDedekindDomain A] (x : A) (n : β„•) (I : Ideal A) :
Associates.mk I ^ n ≀ Associates.mk (Ideal.span {x}) ↔ x ∈ I ^ n
theorem FractionalIdeal.le_inv_comm {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] {I J : FractionalIdeal (nonZeroDivisors A) K} (hI : I β‰  0) (hJ : J β‰  0) :
theorem FractionalIdeal.inv_le_comm {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] {I J : FractionalIdeal (nonZeroDivisors A) K} (hI : I β‰  0) (hJ : J β‰  0) :
@[simp]
theorem FractionalIdeal.inv_le_inv_iff {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] {I J : FractionalIdeal (nonZeroDivisors A) K} (hI : I β‰  0) (hJ : J β‰  0) :
theorem Ideal.exist_integer_multiples_notMem {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] {J : Ideal A} (hJ : J β‰  ⊀) {ΞΉ : Type u_4} (s : Finset ΞΉ) (f : ΞΉ β†’ K) {j : ΞΉ} (hjs : j ∈ s) (hjf : f j β‰  0) :
βˆƒ (a : K), (βˆ€ i ∈ s, IsLocalization.IsInteger A (a * f i)) ∧ βˆƒ i ∈ s, a * f i βˆ‰ ↑J

Strengthening of IsLocalization.exist_integer_multiples: Let J β‰  ⊀ be an ideal in a Dedekind domain A, and f β‰  0 a finite collection of elements of K = Frac(A), then we can multiply the elements of f by some a : K to find a collection of elements of A that is not completely contained in J.

theorem Ideal.mul_iInf {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I : Ideal A) {ΞΉ : Type u_4} [Nonempty ΞΉ] (J : ΞΉ β†’ Ideal A) :
I * β¨… (i : ΞΉ), J i = β¨… (i : ΞΉ), I * J i
theorem Ideal.iInf_mul {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I : Ideal A) {ΞΉ : Type u_4} [Nonempty ΞΉ] (J : ΞΉ β†’ Ideal A) :
(β¨… (i : ΞΉ), J i) * I = β¨… (i : ΞΉ), J i * I
theorem Ideal.mul_inf {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I J K : Ideal A) :
I * (J βŠ“ K) = I * J βŠ“ I * K
theorem Ideal.inf_mul {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I J K : Ideal A) :
(I βŠ“ J) * K = I * K βŠ“ J * K
theorem FractionalIdeal.mul_inf {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] (I J K✝ : FractionalIdeal (nonZeroDivisors A) K) :
I * (J βŠ“ K✝) = I * J βŠ“ I * K✝
theorem FractionalIdeal.inf_mul {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] (I J K✝ : FractionalIdeal (nonZeroDivisors A) K) :
(I βŠ“ J) * K✝ = I * K✝ βŠ“ J * K✝

GCD and LCM of ideals in a Dedekind domain #

We show that the gcd of two ideals in a Dedekind domain is just their supremum, and the lcm is their infimum, and use this to instantiate NormalizedGCDMonoid (Ideal A).

@[simp]
theorem Ideal.sup_mul_inf {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I J : Ideal A) :
(I βŠ” J) * (I βŠ“ J) = I * J
@[implicit_reducible]

Ideals in a Dedekind domain have gcd and lcm operators that (trivially) are compatible with the normalization operator.

@[simp]
theorem Ideal.gcd_eq_sup {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I J : Ideal A) :
gcd I J = I βŠ” J
@[simp]
theorem Ideal.lcm_eq_inf {A : Type u_2} [CommRing A] [IsDedekindDomain A] (I J : Ideal A) :
lcm I J = I βŠ“ J
theorem Ideal.isCoprime_iff_gcd {A : Type u_2} [CommRing A] [IsDedekindDomain A] {I J : Ideal A} :
IsCoprime I J ↔ gcd I J = 1
theorem FractionalIdeal.sup_mul_inf {A : Type u_2} {K : Type u_3} [CommRing A] [Field K] [IsDedekindDomain A] [Algebra A K] [IsFractionRing A K] (I J : FractionalIdeal (nonZeroDivisors A) K) :
(I βŠ“ J) * (I βŠ” J) = I * J
theorem irreducible_pow_sup {T : Type u_4} [CommRing T] [IsDedekindDomain T] {I J : Ideal T} (hI : I β‰  βŠ₯) (hJ : Irreducible J) (n : β„•) :
theorem irreducible_pow_sup_of_le {T : Type u_4} [CommRing T] [IsDedekindDomain T] {I J : Ideal T} (hJ : Irreducible J) (n : β„•) (hn : ↑n ≀ emultiplicity J I) :
J ^ n βŠ” I = J ^ n
theorem irreducible_pow_sup_of_ge {T : Type u_4} [CommRing T] [IsDedekindDomain T] {I J : Ideal T} (hI : I β‰  βŠ₯) (hJ : Irreducible J) (n : β„•) (hn : emultiplicity J I ≀ ↑n) :
J ^ n βŠ” I = J ^ multiplicity J I
theorem Ideal.eq_prime_pow_mul_coprime {T : Type u_4} [CommRing T] [IsDedekindDomain T] {I : Ideal T} (hI : I β‰  βŠ₯) (P : Ideal T) [hpm : P.IsMaximal] :
βˆƒ (Q : Ideal T), P βŠ” Q = ⊀ ∧ I = P ^ Multiset.count P (UniqueFactorizationMonoid.normalizedFactors I) * Q
theorem map_prime_of_equiv {T : Type u_4} [CommRing T] [IsDedekindDomain T] {R : Type u_5} [CommRing R] [IsDedekindDomain R] (f : T ≃+* R) {I : Ideal T} (hI : Prime I) (h : I β‰  βŠ₯) :

Height one spectrum of a Dedekind domain #

If R is a Dedekind domain of Krull dimension 1, the maximal ideals of R are exactly its nonzero prime ideals. We define HeightOneSpectrum and provide lemmas to recover the facts that prime ideals of height one are prime and irreducible.

The height one prime spectrum of a Dedekind domain R is the type of nonzero prime ideals of R. Note that this equals the maximal spectrum if R has Krull dimension 1.

Instances For
    theorem IsDedekindDomain.HeightOneSpectrum.ext_iff {R : Type u_1} {inst✝ : CommRing R} {x y : HeightOneSpectrum R} :
    x = y ↔ x.asIdeal = y.asIdeal
    theorem IsDedekindDomain.HeightOneSpectrum.ext {R : Type u_1} {inst✝ : CommRing R} {x y : HeightOneSpectrum R} (asIdeal : x.asIdeal = y.asIdeal) :
    x = y

    The (nonzero) prime elements of the monoid with zero Ideal R correspond to an element of type HeightOneSpectrum R.

    See IsDedekindDomain.HeightOneSpectrum.prime for the inverse direction.

    Instances For

      An equivalence between the height one and maximal spectra for rings of Krull dimension 1.

      Instances For
        theorem IsDedekindDomain.HeightOneSpectrum.ideal_ne_top_iff_exists {R : Type u_1} [CommRing R] [IsDedekindDomain R] (hR : Β¬IsField R) (I : Ideal R) :
        I β‰  ⊀ ↔ βˆƒ (P : HeightOneSpectrum R), I ≀ P.asIdeal

        An ideal of R is not the whole ring if and only if it is contained in an element of HeightOneSpectrum R

        A Dedekind domain is equal to the intersection of its localizations at all its height one non-zero prime ideals viewed as subalgebras of its field of fractions.

        def IsDedekindDomain.HeightOneSpectrum.comap {R : Type u_1} [CommRing R] {S : Type u_4} [CommRing S] (f : R β†’+* S) (hf : Function.Surjective ⇑f) (v : HeightOneSpectrum S) :

        A surjective ring homomorphism f : R β†’+* S induces a map from HeightOneSpectrum S to HeightOneSpectrum R sending v to v.asIdeal.comap f.

        Instances For
          @[simp]
          theorem IsDedekindDomain.HeightOneSpectrum.comap_asIdeal {R : Type u_1} [CommRing R] {S : Type u_4} [CommRing S] (f : R β†’+* S) (hf : Function.Surjective ⇑f) (v : HeightOneSpectrum S) :

          The isomorphism between HeightOneSpectrums of isomorphic rings.

          Instances For
            def idealFactorsFunOfQuotHom {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} {f : R β§Έ I β†’+* A β§Έ J} (hf : Function.Surjective ⇑f) :
            { p : Ideal R // p ∣ I } β†’o { p : Ideal A // p ∣ J }

            The map from ideals of R dividing I to the ideals of A dividing J induced by a homomorphism f : R/I β†’+* A/J

            Instances For
              @[simp]
              theorem idealFactorsFunOfQuotHom_coe_coe {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} {f : R β§Έ I β†’+* A β§Έ J} (hf : Function.Surjective ⇑f) (X : { p : Ideal R // p ∣ I }) :
              theorem idealFactorsFunOfQuotHom_comp {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} {B : Type u_4} [CommRing B] [IsDedekindDomain B] {L : Ideal B} {f : R β§Έ I β†’+* A β§Έ J} {g : A β§Έ J β†’+* B β§Έ L} (hf : Function.Surjective ⇑f) (hg : Function.Surjective ⇑g) :
              def idealFactorsEquivOfQuotEquiv {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} [IsDedekindDomain R] (f : R β§Έ I ≃+* A β§Έ J) :
              ↑{p : Ideal R | p ∣ I} ≃o ↑{p : Ideal A | p ∣ J}

              The bijection between ideals of R dividing I and the ideals of A dividing J induced by an isomorphism f : R/I β‰… A/J.

              Instances For
                theorem idealFactorsEquivOfQuotEquiv_is_dvd_iso {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} [IsDedekindDomain R] (f : R β§Έ I ≃+* A β§Έ J) {L M : Ideal R} (hL : L ∣ I) (hM : M ∣ I) :
                ↑((idealFactorsEquivOfQuotEquiv f) ⟨L, hL⟩) ∣ ↑((idealFactorsEquivOfQuotEquiv f) ⟨M, hM⟩) ↔ L ∣ M
                def normalizedFactorsEquivOfQuotEquiv {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} [IsDedekindDomain R] (f : R β§Έ I ≃+* A β§Έ J) (hI : I β‰  βŠ₯) (hJ : J β‰  βŠ₯) :

                The bijection between the sets of normalized factors of I and J induced by a ring isomorphism f : R/I β‰… A/J.

                Instances For
                  theorem normalizedFactorsEquivOfQuotEquiv_emultiplicity_eq_emultiplicity {R : Type u_1} {A : Type u_2} [CommRing R] [CommRing A] [IsDedekindDomain A] {I : Ideal R} {J : Ideal A} [IsDedekindDomain R] (f : R β§Έ I ≃+* A β§Έ J) (hI : I β‰  βŠ₯) (hJ : J β‰  βŠ₯) (L : Ideal R) (hL : L ∈ UniqueFactorizationMonoid.normalizedFactors I) :
                  emultiplicity (↑((normalizedFactorsEquivOfQuotEquiv f hI hJ) ⟨L, hL⟩)) J = emultiplicity L I

                  The map normalizedFactorsEquivOfQuotEquiv preserves multiplicities.

                  theorem Ring.DimensionLeOne.prime_le_prime_iff_eq {R : Type u_1} [CommRing R] [DimensionLEOne R] {P Q : Ideal R} [hP : P.IsPrime] [hQ : Q.IsPrime] (hP0 : P β‰  βŠ₯) :
                  P ≀ Q ↔ P = Q
                  theorem Ideal.IsPrime.mul_mem_pow {R : Type u_1} [CommRing R] [IsDedekindDomain R] (I : Ideal R) [hI : I.IsPrime] {a b : R} {n : β„•} (h : a * b ∈ I ^ n) :
                  a ∈ I ∨ b ∈ I ^ n

                  See also Ideal.IsMaximal.mul_mem_pow for maximal ideal.

                  theorem Ideal.IsPrime.mem_pow_mul {R : Type u_1} [CommRing R] [IsDedekindDomain R] (I : Ideal R) [hI : I.IsPrime] {a b : R} {n : β„•} (h : a * b ∈ I ^ n) :
                  a ∈ I ^ n ∨ b ∈ I

                  See also Ideal.IsMaximal.mem_pow_mul for maximal ideal.

                  theorem Ideal.count_normalizedFactors_eq {R : Type u_1} [CommRing R] [IsDedekindDomain R] {p x : Ideal R} [hp : p.IsPrime] {n : β„•} (hle : x ≀ p ^ n) (hlt : Β¬x ≀ p ^ (n + 1)) :
                  theorem count_associates_factors_eq {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I J : Ideal R} (hI : I β‰  0) (hJ : J.IsPrime) (hJβ‚€ : J β‰  βŠ₯) :

                  The number of times an ideal I occurs as normalized factor of another ideal J is stable when regarding these ideals as associated elements of the monoid of ideals.

                  theorem Ideal.count_associates_eq {R : Type u_1} [CommRing R] [IsDedekindDomain R] {a aβ‚€ x : R} {n : β„•} (hx : Prime x) (ha : Β¬x ∣ a) (heq : aβ‚€ = x ^ n * a) :
                  (Associates.mk (span {x})).count (Associates.mk (span {aβ‚€})).factors = n

                  Variant of UniqueFactorizationMonoid.count_normalizedFactors_eq for associated Ideals.

                  theorem Ideal.count_associates_eq' {R : Type u_1} [CommRing R] [IsDedekindDomain R] {a x : R} (hx : Prime x) {n : β„•} (hle : x ^ n ∣ a) (hlt : Β¬x ^ (n + 1) ∣ a) :

                  Variant of UniqueFactorizationMonoid.count_normalizedFactors_eq for associated Ideals.

                  theorem Ideal.le_mul_of_no_prime_factors {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I J K : Ideal R} (coprime : βˆ€ (P : Ideal R), J ≀ P β†’ K ≀ P β†’ Β¬P.IsPrime) (hJ : I ≀ J) (hK : I ≀ K) :
                  I ≀ J * K
                  theorem IsDedekindDomain.HeightOneSpectrum.inf_pow_eq_prod {R : Type u_1} [CommRing R] {ΞΉ : Type u_4} [IsDedekindDomain R] (s : Finset ΞΉ) (e : ΞΉ β†’ β„•) (f : ΞΉ β†’ HeightOneSpectrum R) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ f i β‰  f j) :
                  (s.inf fun (i : ι) => (f i).asIdeal ^ e i) = ∏ i ∈ s, (f i).asIdeal ^ e i

                  The intersection of distinct prime powers in a Dedekind domain is the product of these prime powers. See IsDedekindDomain.inf_pow_eq_prod_of_prime for the version in terms of Ideal R.

                  theorem IsDedekindDomain.inf_pow_eq_prod_of_prime {R : Type u_1} [CommRing R] {ΞΉ : Type u_4} [IsDedekindDomain R] (s : Finset ΞΉ) (f : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ i ∈ s, Prime (f i)) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ f i β‰  f j) :
                  (s.inf fun (i : ι) => f i ^ e i) = ∏ i ∈ s, f i ^ e i

                  The intersection of distinct prime powers in a Dedekind domain is the product of these prime powers.

                  @[deprecated IsDedekindDomain.inf_pow_eq_prod_of_prime (since := "2026-03-10")]
                  theorem IsDedekindDomain.inf_prime_pow_eq_prod {R : Type u_1} [CommRing R] {ΞΉ : Type u_4} [IsDedekindDomain R] (s : Finset ΞΉ) (f : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ i ∈ s, Prime (f i)) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ f i β‰  f j) :
                  (s.inf fun (i : ι) => f i ^ e i) = ∏ i ∈ s, f i ^ e i

                  Alias of IsDedekindDomain.inf_pow_eq_prod_of_prime.


                  The intersection of distinct prime powers in a Dedekind domain is the product of these prime powers.

                  noncomputable def IsDedekindDomain.HeightOneSpectrum.quotientEquivPiOfProdEq {R : Type u_1} [CommRing R] {ΞΉ : Type u_4} [IsDedekindDomain R] [Fintype ΞΉ] (I : Ideal R) (P : ΞΉ β†’ HeightOneSpectrum R) (e : ΞΉ β†’ β„•) (coprime : Pairwise fun (i j : ΞΉ) => P i β‰  P j) (prod_eq : ∏ i : ΞΉ, (P i).asIdeal ^ e i = I) :
                  R β§Έ I ≃+* ((i : ΞΉ) β†’ R β§Έ (P i).asIdeal ^ e i)

                  Chinese remainder theorem for a Dedekind domain: if the ideal I factors as ∏ i, P i ^ e i, then R ⧸ I factors as Π i, R ⧸ (P i ^ e i). See IsDedekindDomain.quotientEquivPiOfProdEq for the version in terms of Ideal R.

                  Instances For
                    noncomputable def IsDedekindDomain.quotientEquivPiOfProdEq {R : Type u_1} [CommRing R] [IsDedekindDomain R] {ΞΉ : Type u_4} [Fintype ΞΉ] (I : Ideal R) (P : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ (i : ΞΉ), Prime (P i)) (coprime : Pairwise fun (i j : ΞΉ) => P i β‰  P j) (prod_eq : ∏ i : ΞΉ, P i ^ e i = I) :
                    R β§Έ I ≃+* ((i : ΞΉ) β†’ R β§Έ P i ^ e i)

                    Chinese remainder theorem for a Dedekind domain: if the ideal I factors as ∏ i, P i ^ e i, then R ⧸ I factors as Π i, R ⧸ (P i ^ e i).

                    Instances For
                      noncomputable def IsDedekindDomain.quotientEquivPiFactors {R : Type u_1} [CommRing R] [IsDedekindDomain R] {I : Ideal R} (hI : I β‰  βŠ₯) :

                      Chinese remainder theorem for a Dedekind domain: R β§Έ I factors as Ξ  i, R β§Έ (P i ^ e i), where P i ranges over the prime factors of I and e i over the multiplicities.

                      Instances For
                        noncomputable def IsDedekindDomain.quotientEquivPiOfFinsetProdEq {R : Type u_1} [CommRing R] [IsDedekindDomain R] {ΞΉ : Type u_4} {s : Finset ΞΉ} (I : Ideal R) (P : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ i ∈ s, Prime (P i)) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ P i β‰  P j) (prod_eq : ∏ i ∈ s, P i ^ e i = I) :
                        R β§Έ I ≃+* ((i : β†₯s) β†’ R β§Έ P ↑i ^ e ↑i)

                        Chinese remainder theorem for a Dedekind domain: if the ideal I factors as ∏ i ∈ s, P i ^ e i, then R ⧸ I factors as Π (i : s), R ⧸ (P i ^ e i).

                        This is a version of IsDedekindDomain.quotientEquivPiOfProdEq where we restrict the product to a finite subset s of a potentially infinite indexing type ΞΉ.

                        Instances For
                          theorem IsDedekindDomain.exists_representative_mod_finset {R : Type u_1} [CommRing R] [IsDedekindDomain R] {ΞΉ : Type u_4} {s : Finset ΞΉ} (P : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ i ∈ s, Prime (P i)) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ P i β‰  P j) (x : (i : β†₯s) β†’ R β§Έ P ↑i ^ e ↑i) :
                          βˆƒ (y : R), βˆ€ (i : ΞΉ) (hi : i ∈ s), (Ideal.Quotient.mk (P i ^ e i)) y = x ⟨i, hi⟩

                          Corollary of the Chinese remainder theorem: given elements x i : R / P i ^ e i, we can choose a representative y : R such that y ≑ x i (mod P i ^ e i).

                          theorem IsDedekindDomain.exists_forall_sub_mem_ideal {R : Type u_1} [CommRing R] [IsDedekindDomain R] {ΞΉ : Type u_4} {s : Finset ΞΉ} (P : ΞΉ β†’ Ideal R) (e : ΞΉ β†’ β„•) (prime : βˆ€ i ∈ s, Prime (P i)) (coprime : βˆ€ i ∈ s, βˆ€ j ∈ s, i β‰  j β†’ P i β‰  P j) (x : β†₯s β†’ R) :
                          βˆƒ (y : R), βˆ€ (i : ΞΉ) (hi : i ∈ s), y - x ⟨i, hi⟩ ∈ P i ^ e i

                          Corollary of the Chinese remainder theorem: given elements x i : R, we can choose a representative y : R such that y - x i ∈ P i ^ e i.

                          The bijection between the (normalized) prime factors of r and the (normalized) prime factors of span {r}

                          Instances For

                            The bijection normalizedFactorsEquivSpanNormalizedFactors between the set of prime factors of r and the set of prime factors of the ideal ⟨r⟩ preserves multiplicities. See count_normalizedFactorsSpan_eq_count for the version stated in terms of multisets count.

                            The bijection normalized_factors_equiv_span_normalized_factors.symm between the set of prime factors of the ideal ⟨r⟩ and the set of prime factors of r preserves multiplicities.

                            The bijection between the set of prime factors of the ideal ⟨r⟩ and the set of prime factors of r preserves count of the corresponding multisets. See multiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_multiplicity for the version stated in terms of multiplicity.

                            @[reducible, inline]
                            noncomputable abbrev primesOverFinset {A : Type u_4} [CommRing A] (p : Ideal A) (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] :

                            The finite set of all prime factors of the pushforward of p.

                            Instances For
                              theorem coe_primesOverFinset {A : Type u_4} [CommRing A] {p : Ideal A} (hpb : p β‰  βŠ₯) [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] :
                              ↑(primesOverFinset p B) = p.primesOver B
                              theorem mem_primesOverFinset_iff {A : Type u_4} [CommRing A] {p : Ideal A} (hpb : p β‰  βŠ₯) [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] {P : Ideal B} :
                              P ∈ primesOverFinset p B ↔ P ∈ p.primesOver B
                              noncomputable def IsDedekindDomain.HeightOneSpectrum.equivPrimesOver {A : Type u_4} [CommRing A] {p : Ideal A} [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] (hp : p β‰  0) :
                              { v : HeightOneSpectrum B // v.asIdeal ∣ Ideal.map (algebraMap A B) p } ≃ ↑(p.primesOver B)

                              The bijection between the elements of the height one prime spectrum of B that divide the lift of the maximal ideal p in B and the primes over p in B.

                              Instances For
                                @[simp]
                                theorem IsDedekindDomain.HeightOneSpectrum.equivPrimesOver_apply {A : Type u_4} [CommRing A] {p : Ideal A} [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] (hp : p β‰  0) (v : { v : HeightOneSpectrum B // v.asIdeal ∣ Ideal.map (algebraMap A B) p }) :
                                ↑((equivPrimesOver B hp) v) = (↑v).asIdeal

                                The pullback of a height one prime in B to A.

                                Instances For
                                  @[implicit_reducible]
                                  noncomputable instance instFintypeElemIdealPrimesOver {A : Type u_4} [CommRing A] (p : Ideal A) [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] [Algebra.IsIntegral A B] :
                                  Fintype ↑(p.primesOver B)
                                  theorem primesOver_ncard_ne_zero {A : Type u_4} [CommRing A] (p : Ideal A) [hpm : p.IsMaximal] (B : Type u_5) [CommRing B] [IsDedekindDomain B] [Algebra A B] [IsDomain A] [Module.IsTorsionFree A B] [Algebra.IsIntegral A B] :
                                  (p.primesOver B).ncard β‰  0