PullbackCone #
This file provides API for interacting with cones (resp. cocones) in the case of pullbacks (resp. pushouts).
Main definitions #
PullbackCone f g: Given morphismsf : X ⟶ Zandg : Y ⟶ Z, a termt : PullbackCone f gprovides the data of a cone pictured as followst.pt ---t.snd---> Y | | t.fst g | | v v X -----f------> ZThe type
PullbackCone f gis implemented as an abbreviation forCone (cospan f g), so general results about cones are also available forPullbackCone f g.PushoutCone f g: Given morphismsf : X ⟶ Yandg : X ⟶ Z, a termt : PushoutCone f gprovides the data of a cocone pictured as followsX -----f------> Y | | g t.inr | | v v Z ---t.inl---> t.ptSimilar to
PullbackCone,PushoutCone f gis implemented as an abbreviation forCocone (span f g), so general results about cocones are also available forPushoutCone f g.
API #
We summarize the most important parts of the API for pullback cones here. The dual notions for pushout cones is also available in this file.
Various ways of constructing pullback cones:
PullbackCone.mkconstructs a term ofPullbackCone f ggiven morphismsfstandsndsuch thatfst ≫ f = snd ≫ g.PullbackCone.flipis thePullbackConeobtained by flippingfstandsnd.
Interaction with IsLimit:
PullbackCone.isLimitAuxandPullbackCone.isLimitAux'provide two convenient ways to show that a givenPullbackConeis a limit cone.PullbackCone.isLimit.mkprovides a convenient way to show that aPullbackConeconstructed usingPullbackCone.mkis a limit cone.PullbackCone.IsLimit.liftandPullbackCone.IsLimit.lift'provides convenient ways for constructing the morphisms to the point of a limitPullbackConefrom the universal property.PullbackCone.IsLimit.hom_extprovides a convenient way to show that two morphisms to the point of a limitPullbackConeare equal.
References #
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
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 two morphisms are 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
The natural isomorphism between a pullback cone and the corresponding pullback cone
reconstructed using PullbackCone.mk.
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
- t.isLimitAux lift fac_left fac_right uniq = { lift := lift, fac := ⋯, uniq := uniq }
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
- t.isLimitAux' create = t.isLimitAux (fun (s : CategoryTheory.Limits.PullbackCone f g) => ↑(create s)) ⋯ ⋯ ⋯
Instances For
This is a more convenient formulation to show that a PullbackCone constructed using
PullbackCone.mk is a limit cone.
Equations
- CategoryTheory.Limits.PullbackCone.IsLimit.mk eq lift fac_left fac_right uniq = (CategoryTheory.Limits.PullbackCone.mk fst snd eq).isLimitAux lift fac_left fac_right ⋯
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
- CategoryTheory.Limits.PullbackCone.IsLimit.lift ht h k w = ht.lift (CategoryTheory.Limits.PullbackCone.mk h k w)
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
Instances For
The pullback cone reconstructed using PullbackCone.mk from a pullback cone that is a
limit, is also a limit.
Equations
Instances For
The pullback cone obtained by flipping fst and snd.
Equations
- t.flip = CategoryTheory.Limits.PullbackCone.mk t.snd t.fst ⋯
Instances For
Flipping a pullback cone twice gives an isomorphic cone.
Equations
Instances For
The flip of a pullback square is a pullback square.
Equations
- CategoryTheory.Limits.PullbackCone.flipIsLimit ht = CategoryTheory.Limits.PullbackCone.IsLimit.mk ⋯ (fun (s : CategoryTheory.Limits.PullbackCone g f) => ht.lift s.flip) ⋯ ⋯ ⋯
Instances For
A square is a pullback square if its flip is.
Equations
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
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
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
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
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
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
The natural isomorphism between a pushout cocone and the corresponding pushout cocone
reconstructed using PushoutCocone.mk.
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
- t.isColimitAux desc fac_left fac_right uniq = { desc := desc, fac := ⋯, uniq := uniq }
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
- t.isColimitAux' create = t.isColimitAux (fun (s : CategoryTheory.Limits.PushoutCocone f g) => ↑(create s)) ⋯ ⋯ ⋯
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, 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
Instances For
This is a more convenient formulation to show that a PushoutCocone constructed using
PushoutCocone.mk is a colimit cocone.
Equations
- CategoryTheory.Limits.PushoutCocone.IsColimit.mk eq desc fac_left fac_right uniq = (CategoryTheory.Limits.PushoutCocone.mk inl inr eq).isColimitAux desc fac_left fac_right ⋯
Instances For
The pushout cocone reconstructed using PushoutCocone.mk from a pushout cocone that is a
colimit, is also a colimit.
Equations
Instances For
The pushout cocone obtained by flipping inl and inr.
Equations
Instances For
Flipping a pushout cocone twice gives an isomorphic cocone.
Equations
Instances For
The flip of a pushout square is a pushout square.
Equations
- CategoryTheory.Limits.PushoutCocone.flipIsColimit ht = CategoryTheory.Limits.PushoutCocone.IsColimit.mk ⋯ (fun (s : CategoryTheory.Limits.PushoutCocone g f) => ht.desc s.flip) ⋯ ⋯ ⋯
Instances For
A square is a pushout square if its flip is.
Equations
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
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
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.