Documentation

Mathlib.AlgebraicGeometry.AffineScheme

Affine schemes #

We define the category of AffineSchemes as the essential image of Spec. We also define predicates about affine schemes and affine open sets.

Main definitions #

The category of affine schemes

Instances For

    A Scheme is affine if the canonical map X ⟶ Spec Γ(X) is an isomorphism.

    Instances

      The canonical isomorphism X ≅ Spec Γ(X) for an affine scheme.

      Instances For

        Construct an affine scheme from a scheme and the information that it is affine. Also see AffineScheme.of for a typeclass version.

        Instances For
          @[simp]
          theorem AlgebraicGeometry.AffineScheme.mk_obj (X : Scheme) (x✝ : IsAffine X) :
          (mk X x✝).obj = X

          Construct an affine scheme from a scheme. Also see AffineScheme.mk for a non-typeclass version.

          Instances For

            Type check a morphism of schemes as a morphism in AffineScheme.

            Instances For

              If f : X ⟶ Y is a morphism between affine schemes, the corresponding arrow is isomorphic to the arrow of the morphism on prime spectra induced by the map on global sections.

              Instances For

                If f : A ⟶ B is a ring homomorphism, the corresponding arrow is isomorphic to the arrow of the morphism induced on global sections by the map on prime spectra.

                Instances For

                  Scheme.Γ.rightOp : Scheme ⥤ CommRingCatᵒᵖ preserves limits of diagrams consisting of affine schemes.

                  Scheme.Γ : Schemeᵒᵖ ⥤ CommRingCat preserves colimits of diagrams consisting of affine schemes.

                  The Spec functor into the category of affine schemes.

                  Instances For

                    We copy over instances from Scheme.Spec.toEssImage.

                    We copy over instances from Scheme.Spec.essImageInclusion.

                    The global section functor of an affine scheme.

                    Instances For

                      The category of affine schemes is equivalent to the category of commutative rings.

                      Instances For
                        @[implicit_reducible]

                        The forgetful functor AffineScheme ⥤ Scheme creates small limits.

                        An open subset of a scheme is affine if the open subscheme is affine.

                        Instances For

                          The set of affine opens as a subset of opens X.

                          Instances For
                            theorem AlgebraicGeometry.exists_isAffineOpen_mem_and_subset {X : Scheme} {x : X} {U : X.Opens} (hxU : x U) :
                            ∃ (W : X.Opens), IsAffineOpen W x W W.carrier U
                            @[deprecated AlgebraicGeometry.Scheme.isBasis_affineOpens (since := "2025-10-07")]

                            Alias of AlgebraicGeometry.Scheme.isBasis_affineOpens.

                            noncomputable def AlgebraicGeometry.Scheme.Opens.toSpecΓ {X : Scheme} (U : X.Opens) :

                            The canonical map U ⟶ Spec Γ(X, U) for an open U ⊆ X.

                            Instances For
                              noncomputable def AlgebraicGeometry.IsAffineOpen.isoSpec {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) :

                              The isomorphism U ≅ Spec Γ(X, U) for an affine U.

                              Instances For
                                @[deprecated AlgebraicGeometry.IsAffineOpen.isoSpec_hom_apply (since := "2025-10-07")]

                                Alias of AlgebraicGeometry.IsAffineOpen.isoSpec_hom_apply.

                                The open immersion Spec Γ(X, U) ⟶ X for an affine U.

                                Instances For
                                  @[deprecated AlgebraicGeometry.IsAffineOpen.SpecMap_appLE_fromSpec (since := "2025-10-07")]

                                  Alias of AlgebraicGeometry.IsAffineOpen.SpecMap_appLE_fromSpec.

                                  The affine open sets of an open subscheme corresponds to the affine open sets containing in the image.

                                  Instances For
                                    def AlgebraicGeometry.affineOpensRestrict {X : Scheme} (U : X.Opens) :
                                    (↑U).affineOpens { V : X.affineOpens // V U }

                                    The affine open sets of an open subscheme corresponds to the affine open sets containing in the subset.

                                    Instances For
                                      theorem AlgebraicGeometry.IsAffineOpen.exists_basicOpen_le {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {V : X.Opens} (x : V) (h : x U) :
                                      ∃ (f : (X.presheaf.obj (Opposite.op U))), X.basicOpen f V x X.basicOpen f

                                      Given an affine open U and some f : U, this is the canonical map Γ(𝒪ₓ, D(f)) ⟶ Γ(Spec 𝒪ₓ(U), D(f)) This is an isomorphism, as witnessed by an IsIso instance.

                                      Instances For
                                        theorem AlgebraicGeometry.exists_basicOpen_le_affine_inter {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {V : X.Opens} (hV : IsAffineOpen V) (x : X) (hx : x UV) :
                                        ∃ (f : (X.presheaf.obj (Opposite.op U))) (g : (X.presheaf.obj (Opposite.op V))), X.basicOpen f = X.basicOpen g x X.basicOpen f
                                        noncomputable def AlgebraicGeometry.IsAffineOpen.primeIdealOf {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) (x : U) :

                                        The prime ideal of 𝒪ₓ(U) corresponding to a point x : U.

                                        Instances For
                                          theorem AlgebraicGeometry.IsAffineOpen.comap_primeIdealOf_appLE {X Y : Scheme} {f : X Y} {x : X} (U : Y.Opens) (hU : IsAffineOpen U) (V : X.Opens) (hV : IsAffineOpen V) (hVU : V (TopologicalSpace.Opens.map f.base).obj U) (hx : x V) :
                                          PrimeSpectrum.comap (CommRingCat.Hom.hom (Scheme.Hom.appLE f U V hVU)) (hV.primeIdealOf x, hx) = hU.primeIdealOf f x,

                                          If a point x : U is a closed point, then its corresponding prime ideal is maximal.

                                          theorem AlgebraicGeometry.IsAffineOpen.mem_ideal_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {s : (X.presheaf.obj (Opposite.op U))} {I : Ideal (X.presheaf.obj (Opposite.op U))} :
                                          s I ∀ (x : X) (h : x U), (CategoryTheory.ConcreteCategory.hom (X.presheaf.germ U x h)) s Ideal.map (CommRingCat.Hom.hom (X.presheaf.germ U x h)) I
                                          theorem AlgebraicGeometry.IsAffineOpen.ideal_le_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {I J : Ideal (X.presheaf.obj (Opposite.op U))} :
                                          I J ∀ (x : X) (h : x U), Ideal.map (CommRingCat.Hom.hom (X.presheaf.germ U x h)) I Ideal.map (CommRingCat.Hom.hom (X.presheaf.germ U x h)) J
                                          theorem AlgebraicGeometry.IsAffineOpen.ideal_ext_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {I J : Ideal (X.presheaf.obj (Opposite.op U))} :
                                          I = J ∀ (x : X) (h : x U), Ideal.map (CommRingCat.Hom.hom (X.presheaf.germ U x h)) I = Ideal.map (CommRingCat.Hom.hom (X.presheaf.germ U x h)) J

                                          Given affine opens x ∈ V ⊆ f⁻¹(U), the stalk map of f at x is isomorphic to Localization.localRingHom of f.appLE U V.

                                          Instances For

                                            The basic open set of a section f on an affine open as an X.affineOpens.

                                            Instances For
                                              theorem AlgebraicGeometry.IsAffineOpen.iSup_basicOpen_eq_self_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {s : Set (X.presheaf.obj (Opposite.op U))} :
                                              ⨆ (f : s), X.basicOpen f = U Ideal.span s =

                                              In an affine open set U, a family of basic open covers U iff the sections span Γ(X, U). See iSup_basicOpen_of_span_eq_top for the inverse direction without the affine-ness assumption.

                                              @[deprecated AlgebraicGeometry.IsAffineOpen.iSup_basicOpen_eq_self_iff (since := "2025-10-07")]
                                              theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {s : Set (X.presheaf.obj (Opposite.op U))} :
                                              ⨆ (f : s), X.basicOpen f = U Ideal.span s =

                                              Alias of AlgebraicGeometry.IsAffineOpen.iSup_basicOpen_eq_self_iff.


                                              In an affine open set U, a family of basic open covers U iff the sections span Γ(X, U). See iSup_basicOpen_of_span_eq_top for the inverse direction without the affine-ness assumption.

                                              @[deprecated AlgebraicGeometry.IsAffineOpen.self_le_iSup_basicOpen_iff (since := "2025-10-07")]
                                              theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {s : Set (X.presheaf.obj (Opposite.op U))} :
                                              U ⨆ (f : s), X.basicOpen f Ideal.span s =

                                              Alias of AlgebraicGeometry.IsAffineOpen.self_le_iSup_basicOpen_iff.

                                              The restriction of Spec.map f to a basic open D(r) is isomorphic to Spec.map of the localization of f away from r.

                                              Instances For
                                                theorem AlgebraicGeometry.iSup_basicOpen_of_span_eq_top {X : Scheme} (U : X.Opens) (s : Set (X.presheaf.obj (Opposite.op U))) (hs : Ideal.span s = ) :
                                                is, X.basicOpen i = U

                                                Given a spanning set of Γ(X, U), the corresponding basic open sets cover U. See IsAffineOpen.basicOpen_union_eq_self_iff for the inverse direction for affine open sets.

                                                theorem AlgebraicGeometry.of_affine_open_cover {X : Scheme} {P : X.affineOpensProp} {ι : Sort u_2} (U : ιX.affineOpens) (iSup_U : ⨆ (i : ι), (U i) = ) (V : X.affineOpens) (basicOpen : ∀ (U : X.affineOpens) (f : (X.presheaf.obj (Opposite.op U))), P UP (X.affineBasicOpen f)) (openCover : ∀ (U : X.affineOpens) (s : Finset (X.presheaf.obj (Opposite.op U))), Ideal.span s = (∀ (f : s), P (X.affineBasicOpen f))P U) (hU : ∀ (i : ι), P (U i)) :
                                                P V

                                                Let P be a predicate on the affine open sets of X satisfying

                                                1. If P holds on U, then P holds on the basic open set of every section on U.
                                                2. If P holds for a family of basic open sets covering U, then P holds for U.
                                                3. There exists an affine open cover of X each satisfying P.

                                                Then P holds for every affine open of X.

                                                This is also known as the Affine communication lemma in [The rising sea][RisingSea].

                                                If φ is a monomorphism in CommRingCat, it is not in general true that Spec φ is epi. (ℤ ⊆ ℤ[1/2] but Spec ℤ[1/2] ⟶ Spec is not epi, since epi open immersions are isomorphisms) But if the range of f g : Spec R ⟶ X are contained in an common affine open U, one can still cancel Spec.map φ ≫ f = Spec.map φ ≫ g to get f = g.

                                                On a scheme X, the preimage of the zero locus of the prime spectrum of Γ(X, ⊤) under X.toSpecΓ : X ⟶ Spec Γ(X, ⊤) agrees with the associated zero locus on X.

                                                If X is affine, the image of the zero locus of global sections of X under X.isoSpec is the zero locus in terms of the prime spectrum of Γ(X, ⊤).

                                                If X is an affine scheme, every closed set of X is the zero locus of a set of global sections.

                                                theorem AlgebraicGeometry.Scheme.zeroLocus_inf (X : Scheme) {U : X.Opens} (I J : Ideal (X.presheaf.obj (Opposite.op U))) :
                                                X.zeroLocus (IJ) = X.zeroLocus I X.zeroLocus J
                                                theorem AlgebraicGeometry.Scheme.zeroLocus_biInf {X : Scheme} {U : X.Opens} {ι : Type u_1} (I : ιIdeal (X.presheaf.obj (Opposite.op U))) {t : Set ι} (ht : t.Finite) :
                                                X.zeroLocus (⨅ it, I i) = (⋃ it, X.zeroLocus (I i)) (↑U)
                                                theorem AlgebraicGeometry.Scheme.zeroLocus_biInf_of_nonempty {X : Scheme} {U : X.Opens} {ι : Type u_1} (I : ιIdeal (X.presheaf.obj (Opposite.op U))) {t : Set ι} (ht : t.Finite) (ht' : t.Nonempty) :
                                                X.zeroLocus (⨅ it, I i) = it, X.zeroLocus (I i)
                                                theorem AlgebraicGeometry.Scheme.zeroLocus_iInf {X : Scheme} {U : X.Opens} {ι : Type u_1} (I : ιIdeal (X.presheaf.obj (Opposite.op U))) [Finite ι] :
                                                X.zeroLocus (⨅ (i : ι), I i) = (⋃ (i : ι), X.zeroLocus (I i)) (↑U)
                                                theorem AlgebraicGeometry.Scheme.zeroLocus_iInf_of_nonempty {X : Scheme} {U : X.Opens} {ι : Type u_1} (I : ιIdeal (X.presheaf.obj (Opposite.op U))) [Finite ι] [Nonempty ι] :
                                                X.zeroLocus (⨅ (i : ι), I i) = ⋃ (i : ι), X.zeroLocus (I i)

                                                Given f : X ⟶ Spec A and some ideal I ≤ ker(A ⟶ Γ(X, ⊤)), this is the lift to X ⟶ Spec (A ⧸ I).

                                                Instances For
                                                  noncomputable def AlgebraicGeometry.specTargetImageIdeal {X : Scheme} {A : CommRingCat} (f : X Spec A) :
                                                  Ideal A

                                                  If X ⟶ Spec A is a morphism of schemes, then Spec of A ⧸ specTargetImage f is the scheme-theoretic image of f. For this quotient as an object of CommRingCat see specTargetImage below.

                                                  Instances For
                                                    noncomputable def AlgebraicGeometry.specTargetImage {X : Scheme} {A : CommRingCat} (f : X Spec A) :

                                                    If X ⟶ Spec A is a morphism of schemes, then Spec of specTargetImage f is the scheme-theoretic image of f and f factors as specTargetImageFactorization f ≫ Spec.map (specTargetImageRingHom f) (see specTargetImageFactorization_comp).

                                                    Instances For

                                                      If f : X ⟶ Spec A is a morphism of schemes, then f factors via the inclusion of Spec (specTargetImage f) into X.

                                                      Instances For

                                                        If f : X ⟶ Spec A is a morphism of schemes, the induced morphism on spectra of specTargetImageRingHom f is the inclusion of the scheme-theoretic image of f into Spec A.

                                                        Instances For

                                                          The stalk of Spec R at x is isomorphic to Rₚ, where p is the prime corresponding to x.

                                                          Instances For

                                                            Given a morphism of rings f : R ⟶ S, the stalk map of Spec S ⟶ Spec R at a prime of S is isomorphic to the localized ring homomorphism.

                                                            Instances For