Documentation

Mathlib.RingTheory.PrimeSpectrum

Prime spectrum of a commutative (semi)ring as a type #

The prime spectrum of a commutative (semi)ring is the type of all prime ideals.

For the Zariski topology, see AlgebraicGeometry.PrimeSpectrum.Basic.

(It is also naturally endowed with a sheaf of rings, which is constructed in AlgebraicGeometry.StructureSheaf.)

Main definitions #

Conventions #

We denote subsets of (semi)rings with s, s', etc... whereas we denote subsets of prime spectra with t, t', etc...

Inspiration/contributors #

The contents of this file draw inspiration from https://github.com/ramonfmir/lean-scheme which has contributions from Ramon Fernandez Mir, Kevin Buzzard, Kenny Lau, and Chris Hughes (on an earlier repository).

structure PrimeSpectrum (R : Type u) [CommSemiring R] :

The prime spectrum of a commutative (semi)ring R is the type of all prime ideals of R.

It is naturally endowed with a topology (the Zariski topology), and a sheaf of commutative rings (see AlgebraicGeometry.StructureSheaf). It is a fundamental building block in algebraic geometry.

  • asIdeal : Ideal R
  • isPrime : self.asIdeal.IsPrime
Instances For
    theorem PrimeSpectrum.ext {R : Type u} {inst✝ : CommSemiring R} {x y : PrimeSpectrum R} (asIdeal : x.asIdeal = y.asIdeal) :
    x = y
    @[deprecated PrimeSpectrum.isPrime]
    theorem PrimeSpectrum.IsPrime {R : Type u} [CommSemiring R] (self : PrimeSpectrum R) :
    self.asIdeal.IsPrime

    Alias of PrimeSpectrum.isPrime.

    The prime spectrum of the zero ring is empty.

    def PrimeSpectrum.equivSubtype (R : Type u) [CommSemiring R] :
    PrimeSpectrum R { I : Ideal R // I.IsPrime }

    The prime spectrum is in bijection with the set of prime ideals.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem PrimeSpectrum.equivSubtype_symm_apply_asIdeal (R : Type u) [CommSemiring R] (I : { I : Ideal R // I.IsPrime }) :
      ((PrimeSpectrum.equivSubtype R).symm I).asIdeal = I

      The map from the direct sum of prime spectra to the prime spectrum of a direct product.

      Equations
      Instances For

        The prime spectrum of R × S is in bijection with the disjoint unions of the prime spectrum of R and the prime spectrum of S.

        Equations
        Instances For
          @[simp]
          theorem PrimeSpectrum.primeSpectrumProd_symm_inl_asIdeal {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (x : PrimeSpectrum R) :
          ((PrimeSpectrum.primeSpectrumProd R S).symm (Sum.inl x)).asIdeal = x.asIdeal.prod
          @[simp]
          theorem PrimeSpectrum.primeSpectrumProd_symm_inr_asIdeal {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (x : PrimeSpectrum S) :
          ((PrimeSpectrum.primeSpectrumProd R S).symm (Sum.inr x)).asIdeal = .prod x.asIdeal

          The zero locus of a set s of elements of a commutative (semi)ring R is the set of all prime ideals of the ring that contain the set s.

          An element f of R can be thought of as a dependent function on the prime spectrum of R. At a point x (a prime ideal) the function (i.e., element) f takes values in the quotient ring R modulo the prime ideal x. In this manner, zeroLocus s is exactly the subset of PrimeSpectrum R where all "functions" in s vanish simultaneously.

          Equations
          Instances For
            @[simp]
            theorem PrimeSpectrum.mem_zeroLocus {R : Type u} [CommSemiring R] (x : PrimeSpectrum R) (s : Set R) :
            x PrimeSpectrum.zeroLocus s s x.asIdeal

            The vanishing ideal of a set t of points of the prime spectrum of a commutative ring R is the intersection of all the prime ideals in the set t.

            An element f of R can be thought of as a dependent function on the prime spectrum of R. At a point x (a prime ideal) the function (i.e., element) f takes values in the quotient ring R modulo the prime ideal x. In this manner, vanishingIdeal t is exactly the ideal of R consisting of all "functions" that vanish on all of t.

            Equations
            Instances For
              theorem PrimeSpectrum.coe_vanishingIdeal {R : Type u} [CommSemiring R] (t : Set (PrimeSpectrum R)) :
              (PrimeSpectrum.vanishingIdeal t) = {f : R | xt, f x.asIdeal}
              theorem PrimeSpectrum.mem_vanishingIdeal {R : Type u} [CommSemiring R] (t : Set (PrimeSpectrum R)) (f : R) :
              f PrimeSpectrum.vanishingIdeal t xt, f x.asIdeal

              zeroLocus and vanishingIdeal form a galois connection.

              theorem PrimeSpectrum.zeroLocus_iSup {R : Type u} [CommSemiring R] {ι : Sort u_1} (I : ιIdeal R) :
              PrimeSpectrum.zeroLocus (⨆ (i : ι), I i) = ⋂ (i : ι), PrimeSpectrum.zeroLocus (I i)
              theorem PrimeSpectrum.zeroLocus_iUnion {R : Type u} [CommSemiring R] {ι : Sort u_1} (s : ιSet R) :
              PrimeSpectrum.zeroLocus (⋃ (i : ι), s i) = ⋂ (i : ι), PrimeSpectrum.zeroLocus (s i)
              theorem PrimeSpectrum.zeroLocus_iUnion₂ {R : Type u} [CommSemiring R] {ι : Sort u_1} {κ : ιSort u_2} (s : (i : ι) → κ iSet R) :
              PrimeSpectrum.zeroLocus (⋃ (i : ι), ⋃ (j : κ i), s i j) = ⋂ (i : ι), ⋂ (j : κ i), PrimeSpectrum.zeroLocus (s i j)
              theorem PrimeSpectrum.zeroLocus_bUnion {R : Type u} [CommSemiring R] (s : Set (Set R)) :
              PrimeSpectrum.zeroLocus (⋃ s's, s') = s's, PrimeSpectrum.zeroLocus s'
              theorem PrimeSpectrum.vanishingIdeal_iUnion {R : Type u} [CommSemiring R] {ι : Sort u_1} (t : ιSet (PrimeSpectrum R)) :
              PrimeSpectrum.vanishingIdeal (⋃ (i : ι), t i) = ⨅ (i : ι), PrimeSpectrum.vanishingIdeal (t i)
              @[simp]
              theorem PrimeSpectrum.zeroLocus_pow {R : Type u} [CommSemiring R] (I : Ideal R) {n : } (hn : n 0) :

              The specialization order #

              We endow PrimeSpectrum R with a partial order induced from the ideal lattice. This is exactly the specialization order. See the corresponding section at Mathlib.AlgebraicGeometry.PrimeSpectrum.Basic.

              Equations
              @[simp]
              theorem PrimeSpectrum.asIdeal_le_asIdeal {R : Type u} [CommSemiring R] (x y : PrimeSpectrum R) :
              x.asIdeal y.asIdeal x y
              @[simp]
              theorem PrimeSpectrum.asIdeal_lt_asIdeal {R : Type u} [CommSemiring R] (x y : PrimeSpectrum R) :
              x.asIdeal < y.asIdeal x < y
              Equations
              Equations
              • PrimeSpectrum.instUnique = { default := , uniq := }
              theorem PrimeSpectrum.exists_primeSpectrum_prod_le (R : Type u) [CommRing R] [IsNoetherianRing R] (I : Ideal R) :
              ∃ (Z : Multiset (PrimeSpectrum R)), (Multiset.map PrimeSpectrum.asIdeal Z).prod I

              In a noetherian ring, every ideal contains a product of prime ideals ([samuel, § 3.3, Lemma 3])

              theorem PrimeSpectrum.exists_primeSpectrum_prod_le_and_ne_bot_of_domain {A : Type u} [CommRing A] [IsDomain A] [IsNoetherianRing A] (h_fA : ¬IsField A) {I : Ideal A} (h_nzI : I ) :
              ∃ (Z : Multiset (PrimeSpectrum A)), (Multiset.map PrimeSpectrum.asIdeal Z).prod I (Multiset.map PrimeSpectrum.asIdeal Z).prod

              In a noetherian integral domain which is not a field, every non-zero ideal contains a non-zero product of prime ideals; in a field, the whole ring is a non-zero ideal containing only 0 as product or prime ideals ([samuel, § 3.3, Lemma 3])

              @[reducible, inline]
              abbrev RingHom.specComap {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (f : R →+* S) :

              The pullback of an element of PrimeSpectrum S along a ring homomorphism f : R →+* S. The bundled continuous version is PrimeSpectrum.comap.

              Equations
              • f.specComap y = { asIdeal := Ideal.comap f y.asIdeal, isPrime := }
              Instances For
                @[simp]
                theorem PrimeSpectrum.specComap_asIdeal {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R →+* S) (y : PrimeSpectrum S) :
                (f.specComap y).asIdeal = Ideal.comap f y.asIdeal
                @[simp]
                theorem PrimeSpectrum.specComap_id {R : Type u} [CommSemiring R] :
                (RingHom.id R).specComap = fun (x : PrimeSpectrum R) => x
                @[simp]
                theorem PrimeSpectrum.specComap_comp {R : Type u} {S : Type v} {S' : Type u_1} [CommSemiring R] [CommSemiring S] [CommSemiring S'] (f : R →+* S) (g : S →+* S') :
                (g.comp f).specComap = f.specComap g.specComap
                theorem PrimeSpectrum.specComap_comp_apply {R : Type u} {S : Type v} {S' : Type u_1} [CommSemiring R] [CommSemiring S] [CommSemiring S'] (f : R →+* S) (g : S →+* S') (x : PrimeSpectrum S') :
                (g.comp f).specComap x = f.specComap (g.specComap x)

                RingHom.specComap of an isomorphism of rings as an equivalence of their prime spectra.

                Equations
                • PrimeSpectrum.comapEquiv e = { toFun := e.symm.toRingHom.specComap, invFun := e.toRingHom.specComap, left_inv := , right_inv := }
                Instances For
                  @[simp]
                  theorem PrimeSpectrum.comapEquiv_apply {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (e : R ≃+* S) (a✝ : PrimeSpectrum R) :
                  (PrimeSpectrum.comapEquiv e) a✝ = e.symm.toRingHom.specComap a✝
                  @[simp]
                  theorem PrimeSpectrum.comapEquiv_symm_apply {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (e : R ≃+* S) (a✝ : PrimeSpectrum S) :
                  (PrimeSpectrum.comapEquiv e).symm a✝ = e.toRingHom.specComap a✝
                  theorem PrimeSpectrum.localization_specComap_range {R : Type u} (S : Type v) [CommSemiring R] [CommSemiring S] [Algebra R S] (M : Submonoid R) [IsLocalization M S] :
                  Set.range (algebraMap R S).specComap = {p : PrimeSpectrum R | Disjoint M p.asIdeal}
                  def PrimeSpectrum.sigmaToPi {ι : Type u_3} (R : ιType u_2) [(i : ι) → CommSemiring (R i)] :
                  (i : ι) × PrimeSpectrum (R i)PrimeSpectrum ((i : ι) → R i)

                  The canonical map from a disjoint union of prime spectra of commutative semirings to the prime spectrum of the product semiring.

                  Equations
                  Instances For
                    @[simp]
                    theorem PrimeSpectrum.sigmaToPi_asIdeal {ι : Type u_3} (R : ιType u_2) [(i : ι) → CommSemiring (R i)] (a✝ : (i : ι) × PrimeSpectrum (R i)) :
                    (PrimeSpectrum.sigmaToPi R a✝).asIdeal = Ideal.comap (Pi.evalRingHom R a✝.fst) a✝.snd.asIdeal
                    theorem PrimeSpectrum.sigmaToPi_injective {ι : Type u_3} (R : ιType u_2) [(i : ι) → CommSemiring (R i)] :
                    theorem PrimeSpectrum.exists_maximal_nmem_range_sigmaToPi_of_infinite {ι : Type u_3} (R : ιType u_2) [(i : ι) → CommSemiring (R i)] [Infinite ι] [∀ (i : ι), Nontrivial (R i)] :
                    ∃ (I : Ideal ((i : ι) → R i)) (x : I.IsMaximal), { asIdeal := I, isPrime := }Set.range (PrimeSpectrum.sigmaToPi R)

                    An infinite product of nontrivial commutative semirings has a maximal ideal outside of the range of sigmaToPi, i.e. is not of the form πᵢ⁻¹(𝔭) for some prime 𝔭 ⊂ R i, where πᵢ : (Π i, R i) →+* R i is the projection. For a complete description of all prime ideals, see https://math.stackexchange.com/a/1563190.

                    theorem PrimeSpectrum.sigmaToPi_not_surjective_of_infinite {ι : Type u_3} (R : ιType u_2) [(i : ι) → CommSemiring (R i)] [Infinite ι] [∀ (i : ι), Nontrivial (R i)] :