Documentation

Mathlib.Geometry.RingedSpace.PresheafedSpace.Gluing

Gluing Structured spaces #

Given a family of gluing data of structured spaces (presheafed spaces, sheafed spaces, or locally ringed spaces), we may glue them together.

The construction should be "sealed" and considered as a black box, while only using the API provided.

Main definitions #

Main results #

Analogous results are also provided for SheafedSpace and LocallyRingedSpace.

Implementation details #

Almost the whole file is dedicated to showing tht ι i is an open immersion. The fact that this is an open embedding of topological spaces follows from Mathlib/Topology/Gluing.lean, and it remains to construct Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, ι i '' U) for each U ⊆ U i. Since Γ(𝒪_X, ι i '' U) is the limit of diagram_over_open, the components of the structure sheafs of the spaces in the gluing diagram, we need to construct a map ιInvApp_π_app : Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V) for each V in the gluing diagram.

We will refer to this diagram in the following doc strings. The X is the glued space, and the dotted arrow is a partial inverse guaranteed by the fact that it is an open immersion. The map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{U_j}, _) is given by the composition of the red arrows, and the map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{V_{jk}}, _) is given by the composition of the blue arrows. To lift this into a map from Γ(𝒪_X, ι i '' U), we also need to show that these commute with the maps in the diagram (the green arrows), which is just a lengthy diagram-chasing.

A family of gluing data consists of

  1. An index type J
  2. A presheafed space U i for each i : J.
  3. A presheafed space V i j for each i j : J. (Note that this is J × J → PresheafedSpace C rather than J → J → PresheafedSpace C to connect to the limits library easier.)
  4. An open immersion f i j : V i j ⟶ U i for each i j : ι.
  5. A transition map t i j : V i j ⟶ V j i for each i j : ι. such that
  6. f i i is an isomorphism.
  7. t i i is the identity.
  8. V i j ×[U i] V i k ⟶ V i j ⟶ V j i factors through V j k ×[U j] V j i ⟶ V j i via some t' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i.
  9. t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.

We can then glue the spaces U i together by identifying V i j with V j i, such that the U i's are open subspaces of the glued space.

Instances For
    @[inline, reducible]

    The glue data of topological spaces associated to a family of glue data of PresheafedSpaces.

    Equations
    Instances For
      theorem AlgebraicGeometry.PresheafedSpace.GlueData.pullback_base {C : Type u} [CategoryTheory.Category.{v, u} C] (D : AlgebraicGeometry.PresheafedSpace.GlueData C) (i : D.J) (j : D.J) (k : D.J) (S : Set (D.V (i, j))) :
      CategoryTheory.Limits.pullback.snd.base '' (CategoryTheory.Limits.pullback.fst.base ⁻¹' S) = (D.f i k).base ⁻¹' ((D.f i j).base '' S)
      @[simp]
      theorem AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app {C : Type u} [CategoryTheory.Category.{v, u} C] (D : AlgebraicGeometry.PresheafedSpace.GlueData C) (i : D.J) (j : D.J) (k : D.J) (U : TopologicalSpace.Opens (D.V (i, j))) :
      CategoryTheory.CategoryStruct.comp (AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp U) ((D.f i k).c.app (Opposite.op ((AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.openFunctor ).obj U))) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst.c.app (Opposite.op U)) (CategoryTheory.CategoryStruct.comp (AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp { unop := { carrier := CategoryTheory.Limits.pullback.fst.base ⁻¹' (Opposite.op U).unop, is_open' := } }.unop) ((D.V (i, k)).presheaf.map (CategoryTheory.eqToHom )))

      The red and the blue arrows in this diagram commute.

      We can prove the eq along with the lemma. Thus this is bundled together here, and the lemma itself is separated below.

      (Implementation). The map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{U_j}, 𝖣.ι j ⁻¹' (𝖣.ι i '' U))

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app' {C : Type u} [CategoryTheory.Category.{v, u} C] (D : AlgebraicGeometry.PresheafedSpace.GlueData C) [CategoryTheory.Limits.HasLimits C] (i : D.J) (j : D.J) (k : D.J) (U : TopologicalSpace.Opens (D.U i)) :
        ∃ (eq : Opposite.op ((AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.openFunctor ).obj { unop := { carrier := (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (D.t j i) (D.f i j))).base ⁻¹' (Opposite.op U).unop, is_open' := } }.unop) = (TopologicalSpace.Opens.map (D.f j k).base).op.obj (Opposite.op ((TopologicalSpace.Opens.map (CategoryTheory.GlueData.ι D.toGlueData j).base).obj ((IsOpenMap.functor ).obj U)))), CategoryTheory.CategoryStruct.comp (AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap D i j U) ((D.f j k).c.app (Opposite.op ((TopologicalSpace.Opens.map (CategoryTheory.GlueData.ι D.toGlueData j).base).obj ((IsOpenMap.functor ).obj U)))) = CategoryTheory.CategoryStruct.comp ((CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (D.t j i) (D.f i j))).c.app (Opposite.op U)) (CategoryTheory.CategoryStruct.comp (AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.invApp { unop := { carrier := (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (D.t j i) (D.f i j))).base ⁻¹' (Opposite.op U).unop, is_open' := } }.unop) ((D.V (j, k)).presheaf.map (CategoryTheory.eqToHom eq)))
        @[inline, reducible]

        (Implementation) Given an open subset of one of the spaces U ⊆ Uᵢ, the sheaf component of the image ι '' U in the glued space is the limit of this diagram.

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

          (Implementation) The projection from the limit of diagram_over_open to a component of D.U j.

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

            (Implementation) We construct the map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V) for each V in the gluing diagram. We will lift these maps into ιInvApp.

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

              (Implementation) The natural map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U). This forms the inverse of (𝖣.ι i).c.app (op U).

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

                The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.

                Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X

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

                  A family of gluing data consists of

                  1. An index type J
                  2. A sheafed space U i for each i : J.
                  3. A sheafed space V i j for each i j : J. (Note that this is J × J → SheafedSpace C rather than J → J → SheafedSpace C to connect to the limits library easier.)
                  4. An open immersion f i j : V i j ⟶ U i for each i j : ι.
                  5. A transition map t i j : V i j ⟶ V j i for each i j : ι. such that
                  6. f i i is an isomorphism.
                  7. t i i is the identity.
                  8. V i j ×[U i] V i k ⟶ V i j ⟶ V j i factors through V j k ×[U j] V j i ⟶ V j i via some t' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i.
                  9. t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.

                  We can then glue the spaces U i together by identifying V i j with V j i, such that the U i's are open subspaces of the glued space.

                  Instances For
                    @[inline, reducible]

                    The glue data of presheafed spaces associated to a family of glue data of sheafed spaces.

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

                      The gluing as sheafed spaces is isomorphic to the gluing as presheafed spaces.

                      Equations
                      Instances For
                        theorem AlgebraicGeometry.SheafedSpace.GlueData.ι_jointly_surjective {C : Type u} [CategoryTheory.Category.{v, u} C] (D : AlgebraicGeometry.SheafedSpace.GlueData C) [CategoryTheory.Limits.HasLimits C] (x : (CategoryTheory.GlueData.glued D.toGlueData).toPresheafedSpace) :
                        ∃ (i : D.J) (y : (D.U i).toPresheafedSpace), (CategoryTheory.GlueData.ι D.toGlueData i).base y = x

                        The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.

                        Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X

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

                          A family of gluing data consists of

                          1. An index type J
                          2. A locally ringed space U i for each i : J.
                          3. A locally ringed space V i j for each i j : J. (Note that this is J × J → LocallyRingedSpace rather than J → J → LocallyRingedSpace to connect to the limits library easier.)
                          4. An open immersion f i j : V i j ⟶ U i for each i j : ι.
                          5. A transition map t i j : V i j ⟶ V j i for each i j : ι. such that
                          6. f i i is an isomorphism.
                          7. t i i is the identity.
                          8. V i j ×[U i] V i k ⟶ V i j ⟶ V j i factors through V j k ×[U j] V j i ⟶ V j i via some t' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i.
                          9. t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.

                          We can then glue the spaces U i together by identifying V i j with V j i, such that the U i's are open subspaces of the glued space.

                          Instances For
                            @[inline, reducible]

                            The glue data of ringed spaces associated to a family of glue data of locally ringed spaces.

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

                              The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.

                              Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X

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