Module docstring
{"# HasPullback
HasPullback f g and pullback f g provides API for HasLimit and limit in the case of
pullacks.
Main definitions
HasPullback f g: this is an abbreviation forHasLimit (cospan f g), and is a typeclass used to express the fact that a given pair of morphisms has a pullback.HasPullbacks: expresses the fact thatCadmits all pullbacks, it is implemented as an abbreviation forHasLimitsOfShape WalkingCospan Cpullback f g: Given aHasPullback f ginstance, this function returns the choice of a limit object corresponding to the pullback offandg. It fits into the following diagram:pullback f g ---pullback.snd f g---> Y | | | | pullback.snd f g g | | v v X --------------f--------------> ZHasPushout f g: this is an abbreviation forHasColimit (span f g), and is a typeclass used to express the fact that a given pair of morphisms has a pushout.HasPushouts: expresses the fact thatCadmits all pushouts, it is implemented as an abbreviation forHasColimitsOfShape WalkingSpan Cpushout f g: Given aHasPushout f ginstance, this function returns the choice of a colimit object corresponding to the pushout offandg. It fits into the following diagram:X --------------f--------------> Y | | g pushout.inr f g | | v v Z ---pushout.inl f g---> pushout f g
Main results & API
The following API is available for using the universal property of
pullback f g:lift,lift_fst,lift_snd,lift',hom_ext(for uniqueness).pullback.mapis the induced map between pullbacksW ×ₛ X ⟶ Y ×ₜ Zgiven pointwise (compatible) mapsW ⟶ Y,X ⟶ ZandS ⟶ T.pullbackComparison: Given a functorG, this is the natural morphismG.obj (pullback f g) ⟶ pullback (G.map f) (G.map g)pullbackSymmetryprovides the natural isomorphismpullback f g ≅ pullback g f
(The dual results for pushouts are also available)