Pullback and pushout squares #
We provide another API for pullbacks and pushouts.
IsPullback fst snd f g is the proposition that
P --fst--> X
| |
snd f
| |
v v
Y ---g---> Z
is a pullback square.
(And similarly for IsPushout.)
We provide the glue to go back and forth to the usual IsLimit API for pullbacks, and prove
IsPullback (pullback.fst f g) (pullback.snd f g) f g
for the usual pullback f g provided by the HasLimit API.
The proposition that a square
P --fst--> X
| |
snd f
| |
v v
Y ---g---> Z
is a pullback square. (Also known as a fibered product or Cartesian square.)
- isLimit' : Nonempty (Limits.IsLimit (Limits.PullbackCone.mk fst snd ⋯))
the pullback cone is a limit
Instances For
The proposition that a square
Z ---f---> X
| |
g inl
| |
v v
Y --inr--> P
is a pushout square. (Also known as a fiber coproduct or co-Cartesian square.)
- isColimit' : Nonempty (Limits.IsColimit (Limits.PushoutCocone.mk inl inr ⋯))
the pushout cocone is a colimit
Instances For
The (limiting) PullbackCone f g implicit in the statement
that we have an IsPullback fst snd f g.
Instances For
The cone obtained from IsPullback fst snd f g is a limit cone.
Instances For
API for PullbackCone.IsLimit.lift for IsPullback
Equations
- hP.lift h k w = CategoryTheory.Limits.PullbackCone.IsLimit.lift hP.isLimit h k w
Instances For
If c is a limiting pullback cone, then we have an IsPullback c.fst c.snd f g.
A variant of of_isLimit that is more useful with apply.
Variant of of_isLimit for an arbitrary cone on a diagram WalkingCospan ⥤ C.
The pullback provided by HasPullback f g fits into an IsPullback.
Any object at the top left of a pullback square is isomorphic to the object at the top left of any other pullback square with the same cospan.
Equations
Instances For
Any object at the top left of a pullback square is
isomorphic to the pullback provided by the HasLimit API.
Equations
- h.isoPullback = (CategoryTheory.Limits.limit.isoLimitCone { cone := h.cone, isLimit := h.isLimit }).symm
Instances For
The (colimiting) PushoutCocone f g implicit in the statement
that we have an IsPushout f g inl inr.
Instances For
The cocone obtained from IsPushout f g inl inr is a colimit cocone.
Instances For
API for PushoutCocone.IsColimit.lift for IsPushout
Equations
- hP.desc h k w = CategoryTheory.Limits.PushoutCocone.IsColimit.desc hP.isColimit h k w
Instances For
If c is a colimiting pushout cocone, then we have an IsPushout f g c.inl c.inr.
A variant of of_isColimit that is more useful with apply.
Variant of of_isColimit for an arbitrary cocone on a diagram WalkingSpan ⥤ C.
The pushout provided by HasPushout f g fits into an IsPushout.
Any object at the bottom right of a pushout square is isomorphic to the object at the bottom right of any other pushout square with the same span.
Equations
Instances For
Any object at the top left of a pullback square is
isomorphic to the pullback provided by the HasLimit API.
Equations
- h.isoPushout = (CategoryTheory.Limits.colimit.isoColimitCocone { cocone := h.cocone, isColimit := h.isColimit }).symm