Gluing data #
We define GlueData
as a family of data needed to glue topological spaces, schemes, etc. We
provide the API to realize it as a multispan diagram, and also state lemmas about its
interaction with a functor that preserves certain pullbacks.
A gluing datum consists of
- An index type
J
- An object
U i
for eachi : J
. - An object
V i j
for eachi j : J
. - A monomorphism
f i j : V i j ⟶ U i
for eachi j : J
. - A transition map
t i j : V i j ⟶ V j i
for eachi j : J
. such that f i i
is an isomorphism.t i i
is the identity.- The pullback for
f i j
andf i k
exists. V i j ×[U i] V i k ⟶ V i j ⟶ V j i
factors throughV j k ×[U j] V j i ⟶ V j i
via somet' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i
.t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _
.
- J : Type v
- U : self.J → C
- V : self.J × self.J → C
- f (i j : self.J) : self.V (i, j) ⟶ self.U i
- f_mono (i j : self.J) : CategoryTheory.Mono (self.f i j)
- f_hasPullback (i j k : self.J) : CategoryTheory.Limits.HasPullback (self.f i j) (self.f i k)
- f_id (i : self.J) : CategoryTheory.IsIso (self.f i i)
- t (i j : self.J) : self.V (i, j) ⟶ self.V (j, i)
- t_id (i : self.J) : self.t i i = CategoryTheory.CategoryStruct.id (self.V (i, i))
- t' (i j k : self.J) : CategoryTheory.Limits.pullback (self.f i j) (self.f i k) ⟶ CategoryTheory.Limits.pullback (self.f j k) (self.f j i)
- t_fac (i j k : self.J) : CategoryTheory.CategoryStruct.comp (self.t' i j k) (CategoryTheory.Limits.pullback.snd (self.f j k) (self.f j i)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (self.f i j) (self.f i k)) (self.t i j)
- cocycle (i j k : self.J) : CategoryTheory.CategoryStruct.comp (self.t' i j k) (CategoryTheory.CategoryStruct.comp (self.t' j k i) (self.t' k i j)) = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback (self.f i j) (self.f i k))
Instances For
(Implementation) The disjoint union of U i
.
Instances For
(Implementation) The diagram to take colimit of.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The glued object given a family of gluing data.
Equations
- D.glued = CategoryTheory.Limits.multicoequalizer D.diagram
Instances For
The map D.U i ⟶ D.glued
for each i
.
Equations
- D.ι i = CategoryTheory.Limits.Multicoequalizer.π D.diagram i
Instances For
The pullback cone spanned by V i j ⟶ U i
and V i j ⟶ U j
.
This will often be a pullback diagram.
Equations
- D.vPullbackCone i j = CategoryTheory.Limits.PullbackCone.mk (D.f i j) (CategoryTheory.CategoryStruct.comp (D.t i j) (D.f j i)) ⋯
Instances For
The projection ∐ D.U ⟶ D.glued
given by the colimit.
Equations
- D.π = CategoryTheory.Limits.Multicoequalizer.sigmaπ D.diagram
Instances For
A functor that preserves the pullbacks of f i j
and f i k
can map a family of glue data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diagram of the image of a GlueData
under a functor F
is naturally isomorphic to the
original diagram of the GlueData
via F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If F
preserves the gluing, we obtain an iso between the glued objects.
Equations
- D.gluedIso F = CategoryTheory.preservesColimitIso F D.diagram.multispan ≪≫ CategoryTheory.Limits.HasColimit.isoOfNatIso (D.diagramIso F)
Instances For
If F
preserves the gluing, and reflects the pullback of U i ⟶ glued
and U j ⟶ glued
,
then F
reflects the fact that V_pullback_cone
is a pullback.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If there is a forgetful functor into Type
that preserves enough (co)limits, then D.ι
will
be jointly surjective.
This is a variant of GlueData
that only requires conditions on V (i, j)
when i ≠ j
.
See GlueData.ofGlueData'
- J : Type v
Indexing type of a glue data.
- U : self.J → C
Objects of a glue data to be glued.
- V (i j : self.J) : i ≠ j → C
Objects representing the intersections.
The inclusion maps of the intersection into the object.
- f_hasPullback (i j k : self.J) (hij : i ≠ j) (hik : i ≠ k) : CategoryTheory.Limits.HasPullback (self.f i j hij) (self.f i k hik)
The transition maps between the intersections.
- t' (i j k : self.J) (hij : i ≠ j) (hik : i ≠ k) (hjk : j ≠ k) : CategoryTheory.Limits.pullback (self.f i j hij) (self.f i k hik) ⟶ CategoryTheory.Limits.pullback (self.f j k hjk) (self.f j i ⋯)
The transition maps between the intersection of intersections.
- t_fac (i j k : self.J) (hij : i ≠ j) (hik : i ≠ k) (hjk : j ≠ k) : CategoryTheory.CategoryStruct.comp (self.t' i j k hij hik hjk) (CategoryTheory.Limits.pullback.snd (self.f j k hjk) (self.f j i ⋯)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (self.f i j hij) (self.f i k hik)) (self.t i j hij)
- t_inv (i j : self.J) (hij : i ≠ j) : CategoryTheory.CategoryStruct.comp (self.t i j hij) (self.t j i ⋯) = CategoryTheory.CategoryStruct.id (self.V i j hij)
- cocycle (i j k : self.J) (hij : i ≠ j) (hik : i ≠ k) (hjk : j ≠ k) : CategoryTheory.CategoryStruct.comp (self.t' i j k hij hik hjk) (CategoryTheory.CategoryStruct.comp (self.t' j k i hjk ⋯ ⋯) (self.t' k i j ⋯ ⋯ hij)) = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback (self.f i j hij) (self.f i k hik))
Instances For
(Implementation detail) the constructed GlueData.f
from a GlueData'
.
Equations
- D.f' i j = if h : i = j then CategoryTheory.eqToHom ⋯ else CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) (D.f i j h)
Instances For
(Implementation detail) the constructed GlueData.t'
from a GlueData'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The constructed GlueData
of a GlueData'
, where GlueData'
is a variant of GlueData
that only
requires conditions on V (i, j)
when i ≠ j
.
Equations
- One or more equations did not get rendered due to their size.