Documentation

Mathlib.AlgebraicGeometry.Stalk

Stalks of a Scheme #

Main definitions and results #

noncomputable def AlgebraicGeometry.IsAffineOpen.fromSpecStalk {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {x : X.toPresheafedSpace} (hxU : x U) :
Spec (X.presheaf.stalk x) X

A morphism from Spec(O_x) to X, which is defined with the help of an affine open neighborhood U of x.

Equations
Instances For
    theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq {X : Scheme} {U V : X.Opens} (hU : IsAffineOpen U) (hV : IsAffineOpen V) (x : X.toPresheafedSpace) (hxU : x U) (hxV : x V) :
    hU.fromSpecStalk hxU = hV.fromSpecStalk hxV

    The morphism from Spec(O_x) to X given by IsAffineOpen.fromSpec does not depend on the affine open neighborhood of x we choose.

    noncomputable def AlgebraicGeometry.Scheme.fromSpecStalk (X : Scheme) (x : X.toPresheafedSpace) :
    Spec (X.presheaf.stalk x) X

    If x is a point of X, this is the canonical morphism from Spec(O_x) to X.

    Equations
    • X.fromSpecStalk x = .fromSpecStalk
    Instances For
      noncomputable instance AlgebraicGeometry.instOverSpecStalkCommRingCatPresheaf (X : Scheme) (x : X.toPresheafedSpace) :
      (Spec (X.presheaf.stalk x)).Over X
      Equations
      @[simp]
      theorem AlgebraicGeometry.instOverSpecStalkCommRingCatPresheaf_over (X : Scheme) (x : X.toPresheafedSpace) :
      Spec (X.presheaf.stalk x) X = X.fromSpecStalk x
      @[simp]
      theorem AlgebraicGeometry.instCanonicallyOver_over (X : Scheme) (x : X.toPresheafedSpace) :
      Spec (X.presheaf.stalk x) X = X.fromSpecStalk x
      @[simp]
      theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_eq_fromSpecStalk {X : Scheme} {U : X.Opens} (hU : IsAffineOpen U) {x : X.toPresheafedSpace} (hxU : x U) :
      hU.fromSpecStalk hxU = X.fromSpecStalk x
      instance AlgebraicGeometry.IsAffineOpen.fromSpecStalk_isPreimmersion {X : Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : IsAffineOpen U) (x : X.toPresheafedSpace) (hx : x U) :
      IsPreimmersion (hU.fromSpecStalk hx)
      instance AlgebraicGeometry.instIsPreimmersionFromSpecStalk {X : Scheme} (x : X.toPresheafedSpace) :
      IsPreimmersion (X.fromSpecStalk x)
      theorem AlgebraicGeometry.IsAffineOpen.fromSpecStalk_closedPoint {X : Scheme} {U : TopologicalSpace.Opens X.toPresheafedSpace} (hU : IsAffineOpen U) {x : X.toPresheafedSpace} (hxU : x U) :
      (hU.fromSpecStalk hxU).base (IsLocalRing.closedPoint (X.presheaf.stalk x)) = x
      @[simp]
      theorem AlgebraicGeometry.Scheme.fromSpecStalk_closedPoint {X : Scheme} {x : X.toPresheafedSpace} :
      (X.fromSpecStalk x).base (IsLocalRing.closedPoint (X.presheaf.stalk x)) = x
      theorem AlgebraicGeometry.Scheme.fromSpecStalk_app {X : Scheme} {U : X.Opens} {x : X.toPresheafedSpace} (hxU : x U) :
      Hom.app (X.fromSpecStalk x) U = CategoryTheory.CategoryStruct.comp (X.presheaf.germ U x hxU) (CategoryTheory.CategoryStruct.comp (ΓSpecIso (X.presheaf.stalk x)).inv ((Spec (X.presheaf.stalk x)).presheaf.map (CategoryTheory.homOfLE ).op))
      theorem AlgebraicGeometry.Scheme.fromSpecStalk_appTop {X : Scheme} {x : X.toPresheafedSpace} :
      Hom.appTop (X.fromSpecStalk x) = CategoryTheory.CategoryStruct.comp (X.presheaf.germ x trivial) (CategoryTheory.CategoryStruct.comp (ΓSpecIso (X.presheaf.stalk x)).inv ((Spec (X.presheaf.stalk x)).presheaf.map (CategoryTheory.homOfLE ).op))
      @[simp]
      theorem AlgebraicGeometry.Scheme.Spec_map_stalkSpecializes_fromSpecStalk {X : Scheme} {x y : X.toPresheafedSpace} (h : x y) :
      CategoryTheory.CategoryStruct.comp (Spec.map (X.presheaf.stalkSpecializes h)) (X.fromSpecStalk y) = X.fromSpecStalk x
      @[simp]
      theorem AlgebraicGeometry.Scheme.Spec_map_stalkSpecializes_fromSpecStalk_assoc {X : Scheme} {x y : X.toPresheafedSpace} (h : x y) {Z : Scheme} (h✝ : X Z) :
      CategoryTheory.CategoryStruct.comp (Spec.map (X.presheaf.stalkSpecializes h)) (CategoryTheory.CategoryStruct.comp (X.fromSpecStalk y) h✝) = CategoryTheory.CategoryStruct.comp (X.fromSpecStalk x) h✝
      instance AlgebraicGeometry.Scheme.instIsOverMapStalkSpecializesCommRingCatPresheaf {X : Scheme} {x y : X.toPresheafedSpace} (h : x y) :
      Hom.IsOver (Spec.map (X.presheaf.stalkSpecializes h)) X
      @[simp]
      theorem AlgebraicGeometry.Scheme.Spec_map_stalkMap_fromSpecStalk {X Y : Scheme} (f : X Y) {x : X.toPresheafedSpace} :
      CategoryTheory.CategoryStruct.comp (Spec.map (Hom.stalkMap f x)) (Y.fromSpecStalk (f.base x)) = CategoryTheory.CategoryStruct.comp (X.fromSpecStalk x) f
      instance AlgebraicGeometry.Scheme.instIsOverMapStalkMapOverInferInstanceOverClass {X Y : Scheme} [X.Over Y] {x : X.toPresheafedSpace} :
      theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk (R : CommRingCat) (x : (Spec R).toPresheafedSpace) :
      (Spec R).fromSpecStalk x = Spec.map (CategoryTheory.CategoryStruct.comp (ΓSpecIso R).inv ((Spec R).presheaf.germ x trivial))
      theorem AlgebraicGeometry.Scheme.Spec_fromSpecStalk' (R : CommRingCat) (x : (Spec R).toPresheafedSpace) :
      (Spec R).fromSpecStalk x = Spec.map (StructureSheaf.toStalk (↑R) x)

      A variant of Spec_fromSpecStalk that breaks abstraction boundaries.

      theorem AlgebraicGeometry.Scheme.range_fromSpecStalk {X : Scheme} {x : X.toPresheafedSpace} :
      Set.range (X.fromSpecStalk x).base = {y : X.toPresheafedSpace | y x}

      Stacks Tag 01J7

      noncomputable def AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) :
      Spec (X.presheaf.stalk x) U

      The canonical map Spec 𝒪_{X, x} ⟶ U given x ∈ U ⊆ X.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem_ι {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) :
        CategoryTheory.CategoryStruct.comp (U.fromSpecStalkOfMem x hxU) U = X.fromSpecStalk x
        @[simp]
        theorem AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem_ι_assoc {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) {Z : Scheme} (h : X Z) :
        instance AlgebraicGeometry.Scheme.instIsOverFromSpecStalkOfMem {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) :
        Hom.IsOver (U.fromSpecStalkOfMem x hxU) X
        theorem AlgebraicGeometry.Scheme.fromSpecStalk_toSpecΓ (X : Scheme) (x : X.toPresheafedSpace) :
        CategoryTheory.CategoryStruct.comp (X.fromSpecStalk x) X.toSpecΓ = Spec.map (X.presheaf.germ x trivial)
        theorem AlgebraicGeometry.Scheme.fromSpecStalk_toSpecΓ_assoc (X : Scheme) (x : X.toPresheafedSpace) {Z : Scheme} (h : Spec (X.presheaf.obj (Opposite.op )) Z) :
        @[simp]
        theorem AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem_toSpecΓ {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) :
        CategoryTheory.CategoryStruct.comp (U.fromSpecStalkOfMem x hxU) U.toSpecΓ = Spec.map (X.presheaf.germ U x hxU)
        @[simp]
        theorem AlgebraicGeometry.Scheme.Opens.fromSpecStalkOfMem_toSpecΓ_assoc {X : Scheme} (U : X.Opens) (x : X.toPresheafedSpace) (hxU : x U) {Z : Scheme} (h : Spec (X.presheaf.obj (Opposite.op U)) Z) :
        CategoryTheory.CategoryStruct.comp (U.fromSpecStalkOfMem x hxU) (CategoryTheory.CategoryStruct.comp U.toSpecΓ h) = CategoryTheory.CategoryStruct.comp (Spec.map (X.presheaf.germ U x hxU)) h
        noncomputable def AlgebraicGeometry.stalkClosedPointIso (R : CommRingCat) [IsLocalRing R] :
        (Spec R).presheaf.stalk (IsLocalRing.closedPoint R) R

        For a local ring (R, 𝔪), this is the isomorphism between the stalk of Spec R at 𝔪 and R.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def AlgebraicGeometry.Scheme.stalkClosedPointTo {X : Scheme} {R : CommRingCat} [IsLocalRing R] (f : Spec R X) :
          X.presheaf.stalk (f.base (IsLocalRing.closedPoint R)) R

          Given a local ring (R, 𝔪) and a morphism f : Spec R ⟶ X, they induce a (local) ring homomorphism φ : 𝒪_{X, f 𝔪} ⟶ R.

          This is inverse to φ ↦ Spec.map φ ≫ X.fromSpecStalk (f 𝔪). See SpecToEquivOfLocalRing.

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

            Copy of isLocalHom_stalkClosedPointTo which unbundles the comm ring.

            Useful for use in combination with CommRingCat.of K for a field K.

            theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo_Spec_fromSpecStalk {X : Scheme} {R : CommRingCat} [IsLocalRing R] {x : X.toPresheafedSpace} (f : X.presheaf.stalk x R) [IsLocalHom f.hom] (U : X.Opens) (hU : (CategoryTheory.CategoryStruct.comp (Spec.map f) (X.fromSpecStalk x)).base (IsLocalRing.closedPoint R) U) :
            theorem AlgebraicGeometry.Scheme.germ_stalkClosedPointTo_Spec_fromSpecStalk_assoc {X : Scheme} {R : CommRingCat} [IsLocalRing R] {x : X.toPresheafedSpace} (f : X.presheaf.stalk x R) [IsLocalHom f.hom] (U : X.Opens) (hU : (CategoryTheory.CategoryStruct.comp (Spec.map f) (X.fromSpecStalk x)).base (IsLocalRing.closedPoint R) U) {Z : CommRingCat} (h : R Z) :
            theorem AlgebraicGeometry.Scheme.stalkClosedPointTo_fromSpecStalk {X : Scheme} (x : X.toPresheafedSpace) :
            stalkClosedPointTo (X.fromSpecStalk x) = (X.presheaf.stalkCongr ).hom
            theorem AlgebraicGeometry.SpecToEquivOfLocalRing_eq_iff {X : Scheme} {R : CommRingCat} {f₁ f₂ : (x : X.toPresheafedSpace) × { f : X.presheaf.stalk x R // IsLocalHom f.hom }} :
            f₁ = f₂ ∃ (h₁ : f₁.fst = f₂.fst), f₁.snd = CategoryTheory.CategoryStruct.comp (X.presheaf.stalkCongr ).hom f₂.snd

            useful lemma for applications of SpecToEquivOfLocalRing

            noncomputable def AlgebraicGeometry.SpecToEquivOfLocalRing (X : Scheme) (R : CommRingCat) [IsLocalRing R] :
            (Spec R X) (x : X.toPresheafedSpace) × { f : X.presheaf.stalk x R // IsLocalHom f.hom }

            Given a local ring R and scheme X, morphisms Spec R ⟶ X corresponds to pairs (x, f) where x : X and f : 𝒪_{X, x} ⟶ R is a local ring homomorphism.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem AlgebraicGeometry.SpecToEquivOfLocalRing_symm_apply (X : Scheme) (R : CommRingCat) [IsLocalRing R] (xf : (x : X.toPresheafedSpace) × { f : X.presheaf.stalk x R // IsLocalHom f.hom }) :
              (SpecToEquivOfLocalRing X R).symm xf = CategoryTheory.CategoryStruct.comp (Spec.map xf.snd) (X.fromSpecStalk xf.fst)