Skip to content

Commit

Permalink
Fibre products are pullbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
ncfavier committed Jan 9, 2025
1 parent 0767260 commit 96e28d1
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/Cat/Instances/Slice.lagda.md
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,35 @@ product in $\cC/c.$
```
-->
<!--
```agda
module _
{f g : /-Obj c} {p : /-Obj c} {π₁ : C/c.Hom p f} {π₂ : C/c.Hom p g}
(prod : is-product (Slice C c) π₁ π₂)
where
private module prod = is-product prod
```
-->
We can go in the other direction as well, hence products in a slice
category correspond precisely to pullbacks in the base category.
```agda
open is-pullback
is-fibre-product→is-pullback : is-pullback C (π₁ .map) (f .map) (π₂ .map) (g .map)
is-fibre-product→is-pullback .square = π₁ .commutes ∙ sym (π₂ .commutes)
is-fibre-product→is-pullback .universal {P} {p₁} {p₂} square =
prod.⟨ record { map = p₁ ; commutes = refl }
, record { map = p₂ ; commutes = sym square } ⟩ .map
is-fibre-product→is-pullback .p₁∘universal = ap map prod.π₁∘⟨⟩
is-fibre-product→is-pullback .p₂∘universal = ap map prod.π₂∘⟨⟩
is-fibre-product→is-pullback .unique {lim' = lim'} fac₁ fac₂ = ap map $
prod.unique
{other = record { map = lim' ; commutes = ap (C._∘ lim') (sym (π₁ .commutes)) ∙ C.pullr fac₁}}
(ext fac₁) (ext fac₂)
```
While products and terminal objects in $\cC/X$ do not correspond to
those in $\cC$, _pullbacks_ (and equalisers) are precisely equivalent. A
square is a pullback in $\cC/X$ _precisely if_ its image in $\cC$,
Expand Down

0 comments on commit 96e28d1

Please sign in to comment.