Gluing data #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define glue_data
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 states lemmas about its
interaction with a functor that preserves certain pullbacks.
- J : Type ?
- 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), category_theory.mono (self.f i j)) . "apply_instance"
- f_has_pullback : (∀ (i j k : self.J), category_theory.limits.has_pullback (self.f i j) (self.f i k)) . "apply_instance"
- f_id : (∀ (i : self.J), category_theory.is_iso (self.f i i)) . "apply_instance"
- t : Π (i j : self.J), self.V (i, j) ⟶ self.V (j, i)
- t_id : ∀ (i : self.J), self.t i i = 𝟙 (self.V (i, i))
- t' : Π (i j k : self.J), category_theory.limits.pullback (self.f i j) (self.f i k) ⟶ category_theory.limits.pullback (self.f j k) (self.f j i)
- t_fac : ∀ (i j k : self.J), self.t' i j k ≫ category_theory.limits.pullback.snd = category_theory.limits.pullback.fst ≫ self.t i j
- cocycle : ∀ (i j k : self.J), self.t' i j k ≫ self.t' j k i ≫ self.t' k i j = 𝟙 (category_theory.limits.pullback (self.f i j) (self.f i k))
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 = 𝟙 _
.
Instances for category_theory.glue_data
- category_theory.glue_data.has_sizeof_inst
(Implementation) The disjoint union of U i
.
Equations
- D.sigma_opens = ∐ D.U
(Implementation) The diagram to take colimit of.
Equations
- D.diagram = {L := D.J × D.J, R := D.J, fst_from := prod.fst D.J, snd_from := prod.snd D.J, left := D.V, right := D.U, fst := λ (_x : D.J × D.J), category_theory.glue_data.diagram._match_1 D _x, snd := λ (_x : D.J × D.J), category_theory.glue_data.diagram._match_2 D _x}
- category_theory.glue_data.diagram._match_1 D (i, j) = D.f i j
- category_theory.glue_data.diagram._match_2 D (i, j) = D.t i j ≫ D.f j i
The glued object given a family of gluing data.
Equations
The map D.U i ⟶ D.glued
for each i
.
Equations
Instances for category_theory.glue_data.ι
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.V_pullback_cone i j = category_theory.limits.pullback_cone.mk (D.f i j) (D.t i j ≫ D.f j i) _
The projection ∐ D.U ⟶ D.glued
given by the colimit.
Equations
Instances for category_theory.glue_data.π
A functor that preserves the pullbacks of f i j
and f i k
can map a family of glue data.
Equations
- D.map_glue_data F = {J := D.J, U := λ (i : D.J), F.obj (D.U i), V := λ (i : D.J × D.J), F.obj (D.V i), f := λ (i j : D.J), F.map (D.f i j), f_mono := _, f_has_pullback := _, f_id := _, t := λ (i j : D.J), F.map (D.t i j), t_id := _, t' := λ (i j k : D.J), (category_theory.limits.preserves_pullback.iso F (D.f i j) (D.f i k)).inv ≫ F.map (D.t' i j k) ≫ (category_theory.limits.preserves_pullback.iso F (D.f j k) (D.f j i)).hom, t_fac := _, cocycle := _}
The diagram of the image of a glue_data
under a functor F
is naturally isomorphic to the
original diagram of the glue_data
via F
.
Equations
- D.diagram_iso F = category_theory.nat_iso.of_components (λ (x : category_theory.limits.walking_multispan D.diagram.fst_from D.diagram.snd_from), category_theory.glue_data.diagram_iso._match_1 D F x) _
- category_theory.glue_data.diagram_iso._match_1 D F (category_theory.limits.walking_multispan.right b) = category_theory.iso.refl ((D.diagram.multispan ⋙ F).obj (category_theory.limits.walking_multispan.right b))
- category_theory.glue_data.diagram_iso._match_1 D F (category_theory.limits.walking_multispan.left a) = category_theory.iso.refl ((D.diagram.multispan ⋙ F).obj (category_theory.limits.walking_multispan.left a))
If F
preserves the gluing, we obtain an iso between the glued objects.
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
- D.V_pullback_cone_is_limit_of_map F i j hc = category_theory.limits.is_limit_of_reflects F (⇑((category_theory.limits.is_limit_map_cone_pullback_cone_equiv F _).symm) (let e : category_theory.limits.cospan (F.map (D.ι i)) (F.map (D.ι j)) ≅ category_theory.limits.cospan ((D.map_glue_data F).ι i) ((D.map_glue_data F).ι j) := category_theory.nat_iso.of_components (λ (x : category_theory.limits.walking_cospan), option.cases_on x (D.glued_iso F) (λ (x : category_theory.limits.walking_pair), category_theory.iso.refl ((category_theory.limits.cospan (F.map (D.ι i)) (F.map (D.ι j))).obj (option.some x)))) _ in ⇑(category_theory.limits.is_limit.postcompose_hom_equiv e (category_theory.limits.pullback_cone.mk (F.map (D.f i j)) (F.map (D.t i j ≫ D.f j i)) _)) (hc.of_iso_limit (category_theory.limits.cones.ext (category_theory.iso.refl ((D.map_glue_data F).V_pullback_cone i j).X) _))))
If there is a forgetful functor into Type
that preserves enough (co)limits, then D.ι
will
be jointly surjective.