Documentation

Mathlib.RingTheory.Spectrum.Prime.Basic

Prime spectrum of a commutative (semi)ring #

For the Zariski topology, see Mathlib.RingTheory.Spectrum.Prime.Topology.

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

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.RingTheory.Spectrum.Prime.Topology.

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

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

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