e96e4a677d
Also define the pushout of categories and the pushout of groupoids
32 lines
1.1 KiB
Text
32 lines
1.1 KiB
Text
/-
|
|
Copyright (c) 2016 Floris van Doorn. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
|
|
Authors: Floris van Doorn
|
|
-/
|
|
|
|
import ..groupoid ..functor.basic
|
|
|
|
open eq is_trunc iso trunc functor
|
|
|
|
namespace category
|
|
|
|
definition fundamental_precategory [constructor] (A : Type) : Precategory :=
|
|
precategory.MK A
|
|
(λa a', trunc 0 (a = a'))
|
|
_
|
|
(λa₁ a₂ a₃ q p, tconcat p q)
|
|
(λa, tidp)
|
|
(λa₁ a₂ a₃ a₄ r q p, tassoc p q r)
|
|
(λa₁ a₂, tcon_tidp)
|
|
(λa₁ a₂, tidp_tcon)
|
|
|
|
definition fundamental_groupoid [constructor] (A : Type) : Groupoid :=
|
|
groupoid.MK (fundamental_precategory A)
|
|
(λa b p, is_iso.mk (tinverse p) (right_tinv p) (left_tinv p))
|
|
|
|
definition fundamental_groupoid_functor [constructor] {A B : Type} (f : A → B) :
|
|
fundamental_groupoid A ⇒ fundamental_groupoid B :=
|
|
functor.mk f (λa a', tap f) (λa, tap_tidp f) (λa₁ a₂ a₃ q p, tap_tcon f p q)
|
|
|
|
end category
|