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
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) :

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

In a Dedekind domain, the prime ideals are the zero ideal together with the prime elements of the monoid with zero Ideal 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 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

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

Equations
    @[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 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_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 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 {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.

      Equations
        Instances For

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

          Equations
            Instances For

              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 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

              Equations
                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 }) :
                  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.

                  Equations
                    Instances For

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

                      Equations
                        Instances For
                          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
                          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

                          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] [DecidableEq (Associates (Ideal R))] [(p : Associates (Ideal R)) β†’ Decidable (Irreducible p)] {a aβ‚€ x : R} {n : β„•} (hx : Prime x) (ha : Β¬x ∣ a) (heq : aβ‚€ = x ^ n * a) :

                          Variant of UniqueFactorizationMonoid.count_normalizedFactors_eq for associated Ideals.

                          theorem Ideal.count_associates_eq' {R : Type u_1} [CommRing R] [IsDedekindDomain R] [DecidableEq (Associates (Ideal R))] [(p : Associates (Ideal R)) β†’ Decidable (Irreducible p)] {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.inf_prime_pow_eq_prod {R : Type u_1} [CommRing R] [IsDedekindDomain R] {ΞΉ : Type u_4} (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.

                          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).

                          Equations
                            Instances For

                              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.

                              Equations
                                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 ΞΉ.

                                  Equations
                                    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}

                                      Equations
                                        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.

                                          Equations
                                            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
                                              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) :

                                              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.

                                              Equations
                                                Instances For
                                                  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)
                                                  Equations