Skip to content

Commit acfa016

Browse files
committed
add Pushout Colimit proofs
1 parent b2ab2fa commit acfa016

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{-# OPTIONS --without-K --safe #-}
2+
3+
open import Categories.Category.Core using (Category)
4+
5+
module Categories.Diagram.Pushout.Colimit {o ℓ e} (C : Category o ℓ e) where
6+
7+
open import Categories.Functor.Core using (Functor)
8+
open import Categories.Diagram.Pushout C using (Pushout)
9+
open import Categories.Category.Instance.Span using (Span; SpanObj; SpanArr)
10+
11+
import Categories.Diagram.Colimit as Colim
12+
import Categories.Diagram.Duality as Dual
13+
import Categories.Diagram.Pullback.Limit as PBLim
14+
15+
private
16+
module C = Category C
17+
open Category C using (_⇒_; Obj)
18+
19+
module _ {F : Functor Span C} where
20+
open Functor F using (F₀; F₁)
21+
open Colim F using (Colimit)
22+
open Dual C using (coPullback⇒Pushout; Colimit⇒coLimit)
23+
open PBLim C.op using (limit⇒pullback)
24+
25+
private
26+
open SpanObj
27+
open SpanArr
28+
29+
W = F₀ center
30+
A = F₀ left
31+
B = F₀ right
32+
33+
W⇒A : W ⇒ A
34+
W⇒A = F₁ span-arrˡ
35+
36+
W⇒B : W ⇒ B
37+
W⇒B = F₁ span-arrʳ
38+
39+
colimit⇒pushout : Colimit Pushout W⇒A W⇒B
40+
colimit⇒pushout colim = coPullback⇒Pushout (limit⇒pullback (Colimit⇒coLimit colim))
41+
42+
module _ {fA fB gA : Obj} {f : fB ⇒ fA} {g : fB ⇒ gA} (p : Pushout f g) where
43+
open PBLim C.op using (pullback⇒limit-F; pullback⇒limit)
44+
open Dual C using (coLimit⇒Colimit; Pushout⇒coPullback)
45+
46+
pushout⇒colimit-F : Functor Span C
47+
pushout⇒colimit-F = Functor.op (pullback⇒limit-F (Pushout⇒coPullback p))
48+
49+
open Colim pushout⇒colimit-F using (Colimit)
50+
51+
pushout⇒colimit : Colimit
52+
pushout⇒colimit = coLimit⇒Colimit (pullback⇒limit (Pushout⇒coPullback p))

0 commit comments

Comments
 (0)