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 #

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

Instances

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

    Equations
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.

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

      Equations
      Instances For

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

        Equations
        Instances For

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

          Equations
          Instances For
            def AlgebraicGeometry.IsAffineOpen.fromSpec {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) :
            AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (X.presheaf.toPrefunctor.obj (Opposite.op U))) X

            The open immersion Spec 𝒪ₓ(U) ⟶ X for an affine U.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              theorem AlgebraicGeometry.IsAffineOpen.fromSpec_app_self_apply {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (x : (CategoryTheory.forget CommRingCat).toPrefunctor.obj (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
              ((AlgebraicGeometry.IsAffineOpen.fromSpec hU).val.c.app (Opposite.op U)) x = ((AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (X.presheaf.toPrefunctor.obj (Opposite.op U)))).presheaf.toPrefunctor.map (CategoryTheory.eqToHom (_ : Opposite.op = Opposite.op (AlgebraicGeometry.IsAffineOpen.fromSpec hU⁻¹ᵁ U)))) ((AlgebraicGeometry.toSpecΓ (X.presheaf.toPrefunctor.obj (Opposite.op U))) x)
              theorem AlgebraicGeometry.IsAffineOpen.fromSpec_map_basicOpen' {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
              AlgebraicGeometry.IsAffineOpen.fromSpec hU⁻¹ᵁ X.basicOpen f = (AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (X.presheaf.toPrefunctor.obj (Opposite.op U)))).basicOpen ((AlgebraicGeometry.SpecΓIdentity.inv.app (X.presheaf.toPrefunctor.obj (Opposite.op U))) f)
              @[simp]
              theorem AlgebraicGeometry.IsAffineOpen.basicOpen_fromSpec_app {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
              (AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (X.presheaf.toPrefunctor.obj (Opposite.op U)))).basicOpen (((AlgebraicGeometry.IsAffineOpen.fromSpec hU).val.c.app (Opposite.op U)) f) = PrimeSpectrum.basicOpen f
              theorem AlgebraicGeometry.IsAffineOpen.basicOpenIsAffine {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
              theorem AlgebraicGeometry.IsAffineOpen.exists_basicOpen_le {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) {V : TopologicalSpace.Opens X.toPresheafedSpace} (x : V) (h : x U) :
              ∃ (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))), X.basicOpen f V x X.basicOpen f
              def AlgebraicGeometry.IsAffineOpen.basicOpenSectionsToAffine {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
              X.presheaf.toPrefunctor.obj (Opposite.op (X.basicOpen f)) (AlgebraicGeometry.Scheme.Spec.toPrefunctor.obj (Opposite.op (X.presheaf.toPrefunctor.obj (Opposite.op U)))).presheaf.toPrefunctor.obj (Opposite.op (PrimeSpectrum.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.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem AlgebraicGeometry.IsAffineOpen.isLocalization_basicOpen {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
                IsLocalization.Away f (X.presheaf.toPrefunctor.obj (Opposite.op (X.basicOpen f)))
                instance AlgebraicGeometry.isLocalization_away_of_isAffine {X : AlgebraicGeometry.Scheme} [AlgebraicGeometry.IsAffine X] (r : (X.presheaf.toPrefunctor.obj (Opposite.op ))) :
                IsLocalization.Away r (X.presheaf.toPrefunctor.obj (Opposite.op (X.basicOpen r)))
                Equations
                theorem AlgebraicGeometry.IsAffineOpen.isLocalization_of_eq_basicOpen {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) {V : TopologicalSpace.Opens X.toPresheafedSpace} (i : V U) (e : V = X.basicOpen f) :
                IsLocalization.Away f (X.presheaf.toPrefunctor.obj (Opposite.op V))
                Equations
                • One or more equations did not get rendered due to their size.
                theorem AlgebraicGeometry.IsAffineOpen.basicOpen_basicOpen_is_basicOpen {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) (g : (X.presheaf.toPrefunctor.obj (Opposite.op (X.basicOpen f)))) :
                ∃ (f' : (X.presheaf.toPrefunctor.obj (Opposite.op U))), X.basicOpen f' = X.basicOpen g
                theorem AlgebraicGeometry.exists_basicOpen_le_affine_inter {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) {V : TopologicalSpace.Opens X.toPresheafedSpace} (hV : AlgebraicGeometry.IsAffineOpen V) (x : X.toPresheafedSpace) (hx : x U V) :
                ∃ (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))) (g : (X.presheaf.toPrefunctor.obj (Opposite.op V))), X.basicOpen f = X.basicOpen g x X.basicOpen f
                noncomputable def AlgebraicGeometry.IsAffineOpen.primeIdealOf {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (x : U) :
                PrimeSpectrum (X.presheaf.toPrefunctor.obj (Opposite.op U))

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

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]

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

                  Equations
                  Instances For
                    theorem AlgebraicGeometry.IsAffineOpen.basicOpen_union_eq_self_iff {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (s : Set (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
                    ⨆ (f : s), X.basicOpen f = U Ideal.span s =
                    theorem AlgebraicGeometry.IsAffineOpen.self_le_basicOpen_union_iff {X : AlgebraicGeometry.Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : AlgebraicGeometry.IsAffineOpen U) (s : Set (X.presheaf.toPrefunctor.obj (Opposite.op U))) :
                    U ⨆ (f : s), X.basicOpen f Ideal.span s =
                    theorem AlgebraicGeometry.of_affine_open_cover {X : AlgebraicGeometry.Scheme} (V : (AlgebraicGeometry.Scheme.affineOpens X)) (S : Set (AlgebraicGeometry.Scheme.affineOpens X)) {P : (AlgebraicGeometry.Scheme.affineOpens X)Prop} (hP₁ : ∀ (U : (AlgebraicGeometry.Scheme.affineOpens X)) (f : (X.presheaf.toPrefunctor.obj (Opposite.op U))), P UP (AlgebraicGeometry.Scheme.affineBasicOpen X f)) (hP₂ : ∀ (U : (AlgebraicGeometry.Scheme.affineOpens X)) (s : Finset (X.presheaf.toPrefunctor.obj (Opposite.op U))), Ideal.span s = (∀ (f : { x : (X.presheaf.toPrefunctor.obj (Opposite.op U)) // x s }), P (AlgebraicGeometry.Scheme.affineBasicOpen X f))P U) (hS : ⋃ (i : S), i = Set.univ) (hS' : ∀ (U : S), P U) :
                    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].