Pullbacks #
We define a category WalkingCospan
(resp. WalkingSpan
), which is the index category
for the given data for a pullback (resp. pushout) diagram. Convenience methods cospan f g
and span f g
construct functors from the walking (co)span, hitting the given morphisms.
We define pullback f g
and pushout f g
as limits and colimits of such functors.
References #
The type of objects for the diagram indexing a pullback, defined as a special case of
WidePullbackShape
.
Equations
Instances For
The left point of the walking cospan.
Instances For
The right point of the walking cospan.
Instances For
The central point of the walking cospan.
Equations
Instances For
The type of objects for the diagram indexing a pushout, defined as a special case of
WidePushoutShape
.
Equations
Instances For
The left point of the walking span.
Instances For
The right point of the walking span.
Instances For
The central point of the walking span.
Equations
Instances For
The type of arrows for the diagram indexing a pullback.
Equations
- CategoryTheory.Limits.WalkingCospan.Hom = CategoryTheory.Limits.WidePullbackShape.Hom
Instances For
The left arrow of the walking cospan.
Equations
Instances For
The right arrow of the walking cospan.
Equations
Instances For
The identity arrows of the walking cospan.
Equations
Instances For
The type of arrows for the diagram indexing a pushout.
Equations
- CategoryTheory.Limits.WalkingSpan.Hom = CategoryTheory.Limits.WidePushoutShape.Hom
Instances For
The left arrow of the walking span.
Equations
Instances For
The right arrow of the walking span.
Equations
Instances For
The identity arrows of the walking span.
Equations
Instances For
To construct an isomorphism of cones over the walking cospan,
it suffices to construct an isomorphism
of the cone points and check it commutes with the legs to left
and right
.
Equations
Instances For
To construct an isomorphism of cocones over the walking span,
it suffices to construct an isomorphism
of the cocone points and check it commutes with the legs from left
and right
.
Equations
Instances For
cospan f g
is the functor from the walking cospan hitting f
and g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
span f g
is the functor from the walking span hitting f
and g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every diagram indexing a pullback is naturally isomorphic (actually, equal) to a cospan
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every diagram indexing a pushout is naturally isomorphic (actually, equal) to a span
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor applied to a cospan is a cospan.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functor applied to a span is a span.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct an isomorphism of cospans from components.
Equations
- CategoryTheory.Limits.cospanExt iX iY iZ wf wg = CategoryTheory.NatIso.ofComponents fun X => Option.casesOn X iZ fun val => CategoryTheory.Limits.WalkingPair.casesOn val iX iY
Instances For
Construct an isomorphism of spans from components.
Equations
- CategoryTheory.Limits.spanExt iX iY iZ wf wg = CategoryTheory.NatIso.ofComponents fun X => Option.casesOn X iX fun val => CategoryTheory.Limits.WalkingPair.casesOn val iY iZ
Instances For
A pullback cone is just a cone on the cospan formed by two morphisms f : X ⟶ Z
and
g : Y ⟶ Z
.
Equations
Instances For
The first projection of a pullback cone.
Equations
Instances For
The second projection of a pullback cone.
Equations
Instances For
This is a slightly more convenient method to verify that a pullback cone is a limit cone. It only asks for a proof of facts that carry any mathematical content
Equations
- CategoryTheory.Limits.PullbackCone.isLimitAux t lift fac_left fac_right uniq = CategoryTheory.Limits.IsLimit.mk lift
Instances For
This is another convenient method to verify that a pullback cone is a limit cone. It
only asks for a proof of facts that carry any mathematical content, and allows access to the
same s
for all parts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pullback cone on f
and g
is determined by morphisms fst : W ⟶ X
and snd : W ⟶ Y
such that fst ≫ f = snd ≫ g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
To check whether a morphism is equalized by the maps of a pullback cone, it suffices to check
it for fst t
and snd t
To construct an isomorphism of pullback cones, it suffices to construct an isomorphism
of the cone points and check it commutes with fst
and snd
.
Equations
Instances For
If t
is a limit pullback cone over f
and g
and h : W ⟶ X
and k : W ⟶ Y
are such that
h ≫ f = k ≫ g
, then we get l : W ⟶ t.pt
, which satisfies l ≫ fst t = h
and l ≫ snd t = k
, see IsLimit.lift_fst
and IsLimit.lift_snd
.
Equations
Instances For
If t
is a limit pullback cone over f
and g
and h : W ⟶ X
and k : W ⟶ Y
are such that
h ≫ f = k ≫ g
, then we have l : W ⟶ t.pt
satisfying l ≫ fst t = h
and l ≫ snd t = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a more convenient formulation to show that a PullbackCone
constructed using
PullbackCone.mk
is a limit cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The flip of a pullback square is a pullback square.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback cone (𝟙 X, 𝟙 X)
for the pair (f, f)
is a limit if f
is a mono. The converse is
shown in mono_of_pullback_is_id
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
f
is a mono if the pullback cone (𝟙 X, 𝟙 X)
is a limit for the pair (f, f)
. The converse is
given in PullbackCone.is_id_of_mono
.
Suppose f
and g
are two morphisms with a common codomain and s
is a limit cone over the
diagram formed by f
and g
. Suppose f
and g
both factor through a monomorphism h
via
x
and y
, respectively. Then s
is also a limit cone over the diagram formed by x
and
y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If W
is the pullback of f, g
,
it is also the pullback of f ≫ i, g ≫ i
for any mono i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pushout cocone is just a cocone on the span formed by two morphisms f : X ⟶ Y
and
g : X ⟶ Z
.
Equations
Instances For
The first inclusion of a pushout cocone.
Equations
Instances For
The second inclusion of a pushout cocone.
Equations
Instances For
This is a slightly more convenient method to verify that a pushout cocone is a colimit cocone. It only asks for a proof of facts that carry any mathematical content
Equations
- CategoryTheory.Limits.PushoutCocone.isColimitAux t desc fac_left fac_right uniq = CategoryTheory.Limits.IsColimit.mk desc
Instances For
This is another convenient method to verify that a pushout cocone is a colimit cocone. It
only asks for a proof of facts that carry any mathematical content, and allows access to the
same s
for all parts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pushout cocone on f
and g
is determined by morphisms inl : Y ⟶ W
and inr : Z ⟶ W
such
that f ≫ inl = g ↠ inr
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
To check whether a morphism is coequalized by the maps of a pushout cocone, it suffices to check
it for inl t
and inr t
If t
is a colimit pushout cocone over f
and g
and h : Y ⟶ W
and k : Z ⟶ W
are
morphisms satisfying f ≫ h = g ≫ k
, then we have a factorization l : t.pt ⟶ W
such that
inl t ≫ l = h
and inr t ≫ l = k
, see IsColimit.inl_desc
and IsColimit.inr_desc
Equations
Instances For
If t
is a colimit pushout cocone over f
and g
and h : Y ⟶ W
and k : Z ⟶ W
are
morphisms satisfying f ≫ h = g ≫ k
, then we have a factorization l : t.pt ⟶ W
such that
inl t ≫ l = h
and inr t ≫ l = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
To construct an isomorphism of pushout cocones, it suffices to construct an isomorphism
of the cocone points and check it commutes with inl
and inr
.
Equations
Instances For
This is a more convenient formulation to show that a PushoutCocone
constructed using
PushoutCocone.mk
is a colimit cocone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The flip of a pushout square is a pushout square.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pushout cocone (𝟙 X, 𝟙 X)
for the pair (f, f)
is a colimit if f
is an epi. The converse is
shown in epi_of_isColimit_mk_id_id
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
f
is an epi if the pushout cocone (𝟙 X, 𝟙 X)
is a colimit for the pair (f, f)
.
The converse is given in PushoutCocone.isColimitMkIdId
.
Suppose f
and g
are two morphisms with a common domain and s
is a colimit cocone over the
diagram formed by f
and g
. Suppose f
and g
both factor through an epimorphism h
via
x
and y
, respectively. Then s
is also a colimit cocone over the diagram formed by x
and
y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If W
is the pushout of f, g
,
it is also the pushout of h ≫ f, h ≫ g
for any epi h
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a helper construction that can be useful when verifying that a category has all
pullbacks. Given F : WalkingCospan ⥤ C
, which is really the same as
cospan (F.map inl) (F.map inr)
, and a pullback cone on F.map inl
and F.map inr
, we
get a cone on F
.
If you're thinking about using this, have a look at hasPullbacks_of_hasLimit_cospan
,
which you may find to be an easier way of achieving your goal.
Equations
- CategoryTheory.Limits.Cone.ofPullbackCone t = { pt := t.pt, π := CategoryTheory.CategoryStruct.comp t.π (CategoryTheory.Limits.diagramIsoCospan F).inv }
Instances For
This is a helper construction that can be useful when verifying that a category has all
pushout. Given F : WalkingSpan ⥤ C
, which is really the same as
span (F.map fst) (F.map snd)
, and a pushout cocone on F.map fst
and F.map snd
,
we get a cocone on F
.
If you're thinking about using this, have a look at hasPushouts_of_hasColimit_span
, which
you may find to be an easier way of achieving your goal.
Equations
- CategoryTheory.Limits.Cocone.ofPushoutCocone t = { pt := t.pt, ι := CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diagramIsoSpan F).hom t.ι }
Instances For
Given F : WalkingCospan ⥤ C
, which is really the same as cospan (F.map inl) (F.map inr)
,
and a cone on F
, we get a pullback cone on F.map inl
and F.map inr
.
Equations
- CategoryTheory.Limits.PullbackCone.ofCone t = { pt := t.pt, π := CategoryTheory.CategoryStruct.comp t.π (CategoryTheory.Limits.diagramIsoCospan F).hom }
Instances For
A diagram WalkingCospan ⥤ C
is isomorphic to some PullbackCone.mk
after
composing with diagramIsoCospan
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given F : WalkingSpan ⥤ C
, which is really the same as span (F.map fst) (F.map snd)
,
and a cocone on F
, we get a pushout cocone on F.map fst
and F.map snd
.
Equations
- CategoryTheory.Limits.PushoutCocone.ofCocone t = { pt := t.pt, ι := CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diagramIsoSpan F).inv t.ι }
Instances For
A diagram WalkingSpan ⥤ C
is isomorphic to some PushoutCocone.mk
after composing with
diagramIsoSpan
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
HasPullback f g
represents a particular choice of limiting cone
for the pair of morphisms f : X ⟶ Z
and g : Y ⟶ Z
.
Equations
Instances For
HasPushout f g
represents a particular choice of colimiting cocone
for the pair of morphisms f : X ⟶ Y
and g : X ⟶ Z
.
Equations
Instances For
pullback f g
computes the pullback of a pair of morphisms with the same target.
Equations
Instances For
pushout f g
computes the pushout of a pair of morphisms with the same source.
Equations
Instances For
The first projection of the pullback of f
and g
.
Equations
- CategoryTheory.Limits.pullback.fst = CategoryTheory.Limits.limit.π (CategoryTheory.Limits.cospan f g) CategoryTheory.Limits.WalkingCospan.left
Instances For
The second projection of the pullback of f
and g
.
Equations
- CategoryTheory.Limits.pullback.snd = CategoryTheory.Limits.limit.π (CategoryTheory.Limits.cospan f g) CategoryTheory.Limits.WalkingCospan.right
Instances For
The first inclusion into the pushout of f
and g
.
Equations
- CategoryTheory.Limits.pushout.inl = CategoryTheory.Limits.colimit.ι (CategoryTheory.Limits.span f g) CategoryTheory.Limits.WalkingSpan.left
Instances For
The second inclusion into the pushout of f
and g
.
Equations
- CategoryTheory.Limits.pushout.inr = CategoryTheory.Limits.colimit.ι (CategoryTheory.Limits.span f g) CategoryTheory.Limits.WalkingSpan.right
Instances For
A pair of morphisms h : W ⟶ X
and k : W ⟶ Y
satisfying h ≫ f = k ≫ g
induces a morphism
pullback.lift : W ⟶ pullback f g
.
Equations
Instances For
A pair of morphisms h : Y ⟶ W
and k : Z ⟶ W
satisfying f ≫ h = g ≫ k
induces a morphism
pushout.desc : pushout f g ⟶ W
.
Equations
Instances For
A pair of morphisms h : W ⟶ X
and k : W ⟶ Y
satisfying h ≫ f = k ≫ g
induces a morphism
l : W ⟶ pullback f g
such that l ≫ pullback.fst = h
and l ≫ pullback.snd = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pair of morphisms h : Y ⟶ W
and k : Z ⟶ W
satisfying f ≫ h = g ≫ k
induces a morphism
l : pushout f g ⟶ W
such that pushout.inl ≫ l = h
and pushout.inr ≫ l = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given such a diagram, then there is a natural morphism W ×ₛ X ⟶ Y ×ₜ Z
.
W ⟶ Y ↘ ↘ S ⟶ T ↗ ↗ X ⟶ Z
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical map X ×ₛ Y ⟶ X ×ₜ Y
given S ⟶ T
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given such a diagram, then there is a natural morphism W ⨿ₛ X ⟶ Y ⨿ₜ Z
.
W ⟶ Y
↗ ↗ S ⟶ T ↘ ↘ X ⟶ Z
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical map X ⨿ₛ Y ⟶ X ⨿ₜ Y
given S ⟶ T
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two morphisms into a pullback are equal if their compositions with the pullback morphisms are equal
The pullback cone built from the pullback projections is a pullback.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback of a monomorphism is a monomorphism
The pullback of a monomorphism is a monomorphism
The map X ×[Z] Y ⟶ X × Y
is mono.
Two morphisms out of a pushout are equal if their compositions with the pushout morphisms are equal
The pushout cocone built from the pushout coprojections is a pushout.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pushout of an epimorphism is an epimorphism
The pushout of an epimorphism is an epimorphism
The map X ⨿ Y ⟶ X ⨿[Z] Y
is epi.
If f₁ = f₂
and g₁ = g₂
, we may construct a canonical
isomorphism pullback f₁ g₁ ≅ pullback f₂ g₂
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f₁ = f₂
and g₁ = g₂
, we may construct a canonical
isomorphism pushout f₁ g₁ ≅ pullback f₂ g₂
Equations
- One or more equations did not get rendered due to their size.
Instances For
The comparison morphism for the pullback of f,g
.
This is an isomorphism iff G
preserves the pullback of f,g
; see
CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean
Equations
- One or more equations did not get rendered due to their size.
Instances For
The comparison morphism for the pushout of f,g
.
This is an isomorphism iff G
preserves the pushout of f,g
; see
CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean
Equations
- One or more equations did not get rendered due to their size.
Instances For
Making this a global instance would make the typeclass search go in an infinite loop.
The isomorphism X ×[Z] Y ≅ Y ×[Z] X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Making this a global instance would make the typeclass search go in an infinite loop.
The isomorphism Y ⨿[X] Z ≅ Z ⨿[X] Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback of f, g
is also the pullback of f ≫ i, g ≫ i
for any mono i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f : X ⟶ Z
is iso, then X ×[Z] Y ≅ Y
. This is the explicit limit cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify that the constructed limit cone is indeed a limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If g : Y ⟶ Z
is iso, then X ×[Z] Y ≅ X
. This is the explicit limit cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify that the constructed limit cone is indeed a limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pushout of f, g
is also the pullback of h ≫ f, h ≫ g
for any epi h
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f : X ⟶ Y
is iso, then Y ⨿[X] Z ≅ Z
. This is the explicit colimit cocone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify that the constructed cocone is indeed a colimit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If f : X ⟶ Z
is iso, then Y ⨿[X] Z ≅ Y
. This is the explicit colimit cocone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify that the constructed cocone is indeed a colimit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
X₁ - f₁ -> X₂ - f₂ -> X₃ | | | i₁ i₂ i₃ ∨ ∨ ∨ Y₁ - g₁ -> Y₂ - g₂ -> Y₃
Then the big square is a pullback if both the small squares are.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
X₁ - f₁ -> X₂ - f₂ -> X₃ | | | i₁ i₂ i₃ ∨ ∨ ∨ Y₁ - g₁ -> Y₂ - g₂ -> Y₃
Then the big square is a pushout if both the small squares are.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
X₁ - f₁ -> X₂ - f₂ -> X₃ | | | i₁ i₂ i₃ ∨ ∨ ∨ Y₁ - g₁ -> Y₂ - g₂ -> Y₃
Then the left square is a pullback if the right square and the big square are.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
X₁ - f₁ -> X₂ - f₂ -> X₃ | | | i₁ i₂ i₃ ∨ ∨ ∨ Y₁ - g₁ -> Y₂ - g₂ -> Y₃
Then the right square is a pushout if the left square and the big square are.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism W ×[X] (X ×[Z] Y) ≅ W ×[Z] Y
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism (Y ⨿[X] Z) ⨿[Z] W ≅ Y ×[X] W
Equations
- One or more equations did not get rendered due to their size.
Instances For
(X₁ ×[Y₁] X₂) ×[Y₂] X₃
is the pullback (X₁ ×[Y₁] X₂) ×[X₂] (X₂ ×[Y₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(X₁ ×[Y₁] X₂) ×[Y₂] X₃
is the pullback X₁ ×[Y₁] (X₂ ×[Y₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
X₁ ×[Y₁] (X₂ ×[Y₂] X₃)
is the pullback (X₁ ×[Y₁] X₂) ×[X₂] (X₂ ×[Y₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
X₁ ×[Y₁] (X₂ ×[Y₂] X₃)
is the pullback (X₁ ×[Y₁] X₂) ×[Y₂] X₃
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism (X₁ ×[Y₁] X₂) ×[Y₂] X₃ ≅ X₁ ×[Y₁] (X₂ ×[Y₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(X₁ ⨿[Z₁] X₂) ⨿[Z₂] X₃
is the pushout (X₁ ⨿[Z₁] X₂) ×[X₂] (X₂ ⨿[Z₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(X₁ ⨿[Z₁] X₂) ⨿[Z₂] X₃
is the pushout X₁ ⨿[Z₁] (X₂ ⨿[Z₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
X₁ ⨿[Z₁] (X₂ ⨿[Z₂] X₃)
is the pushout (X₁ ⨿[Z₁] X₂) ×[X₂] (X₂ ⨿[Z₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
X₁ ⨿[Z₁] (X₂ ⨿[Z₂] X₃)
is the pushout (X₁ ⨿[Z₁] X₂) ⨿[Z₂] X₃
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism (X₁ ⨿[Z₁] X₂) ⨿[Z₂] X₃ ≅ X₁ ⨿[Z₁] (X₂ ⨿[Z₂] X₃)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
HasPullbacks
represents a choice of pullback for every pair of morphisms
See https://stacks.math.columbia.edu/tag/001W
Equations
Instances For
HasPushouts
represents a choice of pushout for every pair of morphisms
Equations
Instances For
If C
has all limits of diagrams cospan f g
, then it has all pullbacks
If C
has all colimits of diagrams span f g
, then it has all pushouts
The duality equivalence WalkingSpanᵒᵖ ≌ WalkingCospan
Equations
Instances For
The duality equivalence WalkingCospanᵒᵖ ≌ WalkingSpan
Equations
Instances For
Having wide pullback at any universe level implies having binary pullbacks.
Having wide pushout at any universe level implies having binary pushouts.
Given a morphism f : X ⟶ Y
, we can take morphisms over Y
to morphisms over X
via
pullbacks. This is right adjoint to over.map
(TODO)
Equations
- One or more equations did not get rendered due to their size.