Documentation

Mathlib.Geometry.RingedSpace.OpenImmersion

Open immersions of structured spaces #

We say that a morphism of presheafed spaces f : X ⟶ Y is an open immersion if the underlying map of spaces is an open embedding f : X ⟶ U ⊆ Y, and the sheaf map Y(V) ⟶ f _* X(V) is an iso for each V ⊆ U.

Abbreviations are also provided for SheafedSpace, LocallyRingedSpace and Scheme.

Main definitions #

Main results #

An open immersion of PresheafedSpaces is an open embedding f : X ⟶ U ⊆ Y of the underlying spaces, such that the sheaf map Y(V) ⟶ f _* X(V) is an iso for each V ⊆ U.

Instances
    @[reducible, inline]

    A morphism of SheafedSpaces is an open immersion if it is an open immersion as a morphism of PresheafedSpaces

    Equations
    Instances For
      @[reducible, inline]

      A morphism of LocallyRingedSpaces is an open immersion if it is an open immersion as a morphism of SheafedSpaces

      Equations
      Instances For
        @[reducible, inline]

        The functor Opens X ⥤ Opens Y associated with an open immersion f : X ⟶ Y.

        Equations
        Instances For

          An open immersion f : X ⟶ Y induces an isomorphism X ≅ Y|_{f(X)}.

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

            The composition of two open immersions is an open immersion.

            noncomputable def AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : PresheafedSpace C} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X) :
            X.presheaf.obj (Opposite.op U) Y.presheaf.obj (Opposite.op ((opensFunctor f).obj U))

            For an open immersion f : X ⟶ Y and an open set U ⊆ X, we have the map X(U) ⟶ Y(U).

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp_app_apply {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : PresheafedSpace C} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X) [inst : CategoryTheory.HasForget C] (x : (CategoryTheory.forget C).obj (X.presheaf.obj (Opposite.op U))) :
              (f.c.app (Opposite.op ((opensFunctor f).obj U))) ((invApp f U) x) = (X.presheaf.map (CategoryTheory.eqToHom )) x

              A variant of app_inv_app that gives an eqToHom instead of homOfLe.

              An isomorphism is an open immersion.

              @[simp]
              theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofRestrict_invApp {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : PresheafedSpace C) {Y : TopCat} {f : Y TopCat.of X} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h)) :
              invApp (X.ofRestrict h) U = CategoryTheory.CategoryStruct.id ((X.restrict h).presheaf.obj (Opposite.op U))
              theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofRestrict_invApp_apply {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : PresheafedSpace C) {Y : TopCat} {f : Y TopCat.of X} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h)) [inst : CategoryTheory.HasForget C] (x : (CategoryTheory.forget C).obj ((X.restrict h).presheaf.obj (Opposite.op U))) :
              (invApp (X.ofRestrict h) U) x = x

              An open immersion is an iso if the underlying continuous map is epi.

              (Implementation.) The projection map when constructing the pullback along an open immersion.

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

                We construct the pullback along an open immersion via restricting along the pullback of the maps of underlying spaces (which is also an open embedding).

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

                  (Implementation.) Any cone over cospan f g indeed factors through the constructed cone.

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

                    The constructed pullback cone is indeed the pullback.

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

                      The universal property of open immersions: For an open immersion f : X ⟶ Z, given any morphism of schemes g : Y ⟶ Z whose topological image is contained in the image of f, we can lift this morphism to a unique Y ⟶ X that commutes with these maps.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.lift_uniq {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : PresheafedSpace C} (f : X Z) [hf : IsOpenImmersion f] (g : Y Z) (H : Set.range g.base Set.range f.base) (l : Y X) (hl : CategoryTheory.CategoryStruct.comp l f = g) :
                        l = lift f g H

                        Two open immersions with equal range is isomorphic.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoOfRangeEq_inv {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : PresheafedSpace C} (f : X Z) [hf : IsOpenImmersion f] (g : Y Z) [IsOpenImmersion g] (e : Set.range f.base = Set.range g.base) :
                          (isoOfRangeEq f g e).inv = lift f g
                          @[simp]
                          theorem AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.isoOfRangeEq_hom {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : PresheafedSpace C} (f : X Z) [hf : IsOpenImmersion f] (g : Y Z) [IsOpenImmersion g] (e : Set.range f.base = Set.range g.base) :
                          (isoOfRangeEq f g e).hom = lift g f

                          If X ⟶ Y is an open immersion, and Y is a SheafedSpace, then so is X.

                          Equations
                          Instances For

                            If X ⟶ Y is an open immersion of PresheafedSpaces, and Y is a SheafedSpace, we can upgrade it into a morphism of SheafedSpaces.

                            Equations
                            Instances For

                              If X ⟶ Y is an open immersion, and Y is a LocallyRingedSpace, then so is X.

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

                                If X ⟶ Y is an open immersion of PresheafedSpaces, and Y is a LocallyRingedSpace, we can upgrade it into a morphism of LocallyRingedSpace.

                                Equations
                                Instances For

                                  Suppose X Y : SheafedSpace C, where C is a concrete category, whose forgetful functor reflects isomorphisms, preserves limits and filtered colimits. Then a morphism X ⟶ Y that is a topological open embedding is an open immersion iff every stalk map is an iso.

                                  @[reducible, inline]

                                  The functor Opens X ⥤ Opens Y associated with an open immersion f : X ⟶ Y.

                                  Equations
                                  Instances For
                                    noncomputable def AlgebraicGeometry.SheafedSpace.IsOpenImmersion.invApp {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : SheafedSpace C} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X.toPresheafedSpace) :
                                    X.presheaf.obj (Opposite.op U) Y.presheaf.obj (Opposite.op ((opensFunctor f).obj U))

                                    For an open immersion f : X ⟶ Y and an open set U ⊆ X, we have the map X(U) ⟶ Y(U).

                                    Equations
                                    Instances For
                                      theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.invApp_app_apply {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : SheafedSpace C} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X.toPresheafedSpace) [inst : CategoryTheory.HasForget C] (x : (CategoryTheory.forget C).obj (X.presheaf.obj (Opposite.op U))) :
                                      (f.c.app (Opposite.op ((opensFunctor f).obj U))) ((invApp f U) x) = (X.presheaf.map (CategoryTheory.eqToHom )) x
                                      theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.app_inv_app' {C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : SheafedSpace C} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens Y.toPresheafedSpace) (hU : U Set.range f.base) :

                                      A variant of app_inv_app that gives an eqToHom instead of homOfLe.

                                      @[simp]
                                      theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.ofRestrict_invApp {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : SheafedSpace C) {Y : TopCat} {f : Y TopCat.of X.toPresheafedSpace} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h).toPresheafedSpace) :
                                      invApp (X.ofRestrict h) U = CategoryTheory.CategoryStruct.id ((X.restrict h).presheaf.obj (Opposite.op U))
                                      theorem AlgebraicGeometry.SheafedSpace.IsOpenImmersion.ofRestrict_invApp_apply {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] (X : SheafedSpace C) {Y : TopCat} {f : Y TopCat.of X.toPresheafedSpace} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h).toPresheafedSpace) [inst : CategoryTheory.HasForget C] (x : (CategoryTheory.forget C).obj ((X.restrict h).presheaf.obj (Opposite.op U))) :
                                      (invApp (X.ofRestrict h) U) x = (CategoryTheory.CategoryStruct.id ((X.restrict h).presheaf.obj (Opposite.op U))) x

                                      An open immersion is an iso if the underlying continuous map is epi.

                                      An explicit pullback cone over cospan f g if f is an open immersion.

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

                                        The constructed pullbackConeOfLeft is indeed limiting.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift {X Y Z : LocallyRingedSpace} (f : X Z) (g : Y Z) [H : IsOpenImmersion f] (H' : Set.range g.base Set.range f.base) :
                                          Y X

                                          The universal property of open immersions: For an open immersion f : X ⟶ Z, given any morphism of schemes g : Y ⟶ Z whose topological image is contained in the image of f, we can lift this morphism to a unique Y ⟶ X that commutes with these maps.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_uniq {X Y Z : LocallyRingedSpace} (f : X Z) (g : Y Z) [H : IsOpenImmersion f] (H' : Set.range g.base Set.range f.base) (l : Y X) (hl : CategoryTheory.CategoryStruct.comp l f = g) :
                                            l = lift f g H'
                                            theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.lift_range {X Y Z : LocallyRingedSpace} (f : X Z) (g : Y Z) [H : IsOpenImmersion f] (H' : Set.range g.base Set.range f.base) :
                                            Set.range (lift f g H').base = f.base ⁻¹' Set.range g.base

                                            An open immersion is isomorphic to the induced open subscheme on its image.

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

                                              The functor Opens X ⥤ Opens Y associated with an open immersion f : X ⟶ Y.

                                              Equations
                                              Instances For
                                                theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.of_stalk_iso {X Y : LocallyRingedSpace} (f : X Y) (hf : Topology.IsOpenEmbedding f.base) [stalk_iso : ∀ (x : X.toPresheafedSpace), CategoryTheory.IsIso (Hom.stalkMap f x)] :

                                                Suppose X Y : SheafedSpace C, where C is a concrete category, whose forgetful functor reflects isomorphisms, preserves limits and filtered colimits. Then a morphism X ⟶ Y that is a topological open embedding is an open immersion iff every stalk map is an iso.

                                                noncomputable def AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.invApp {X Y : LocallyRingedSpace} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X.toTopCat) :
                                                X.presheaf.obj (Opposite.op U) Y.presheaf.obj (Opposite.op ((opensFunctor f).obj U))

                                                For an open immersion f : X ⟶ Y and an open set U ⊆ X, we have the map X(U) ⟶ Y(U).

                                                Equations
                                                Instances For
                                                  theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.invApp_app_apply {X Y : LocallyRingedSpace} (f : X Y) [H : IsOpenImmersion f] (U : TopologicalSpace.Opens X.toTopCat) (x : (CategoryTheory.forget CommRingCat).obj (X.presheaf.obj (Opposite.op U))) :
                                                  (f.c.app (Opposite.op ((opensFunctor f).obj U))) ((invApp f U) x) = (X.presheaf.map (CategoryTheory.eqToHom )) x

                                                  A variant of app_inv_app that gives an eqToHom instead of homOfLe.

                                                  @[simp]
                                                  theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.ofRestrict_invApp (X : LocallyRingedSpace) {Y : TopCat} {f : Y TopCat.of X.toPresheafedSpace} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h).toPresheafedSpace) :
                                                  invApp (X.ofRestrict h) U = CategoryTheory.CategoryStruct.id ((X.restrict h).presheaf.obj (Opposite.op U))
                                                  theorem AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.ofRestrict_invApp_apply (X : LocallyRingedSpace) {Y : TopCat} {f : Y TopCat.of X.toPresheafedSpace} (h : Topology.IsOpenEmbedding f) (U : TopologicalSpace.Opens (X.restrict h).toPresheafedSpace) (x : (CategoryTheory.forget CommRingCat).obj ((X.restrict h).presheaf.obj (Opposite.op U))) :
                                                  (invApp (X.ofRestrict h) U) x = x