46 lines
1.3 KiB
Text
46 lines
1.3 KiB
Text
|
import .basic .functor
|
||
|
|
||
|
open category is_trunc eq function sigma sigma.ops
|
||
|
|
||
|
namespace category
|
||
|
structure strict_precategory[class] (ob : Type) extends precategory ob :=
|
||
|
(is_hset_ob : is_hset ob)
|
||
|
|
||
|
attribute strict_precategory.is_hset_ob [instance]
|
||
|
|
||
|
definition strict_precategory.mk' [reducible] (ob : Type) (C : precategory ob)
|
||
|
(H : is_hset ob) : strict_precategory ob :=
|
||
|
precategory.rec_on C strict_precategory.mk H
|
||
|
|
||
|
structure Strict_precategory : Type :=
|
||
|
(carrier : Type)
|
||
|
(struct : strict_precategory carrier)
|
||
|
|
||
|
attribute Strict_precategory.struct [instance] [coercion]
|
||
|
|
||
|
definition Strict_precategory.to_Precategory [coercion] [reducible]
|
||
|
(C : Strict_precategory) : Precategory :=
|
||
|
Precategory.mk (Strict_precategory.carrier C) C
|
||
|
|
||
|
open functor
|
||
|
|
||
|
definition precat_strict_precat : precategory Strict_precategory :=
|
||
|
precategory.mk (λ a b, functor a b)
|
||
|
(λ a b, @functor.is_hset_functor a b _)
|
||
|
(λ a b c g f, functor.compose g f)
|
||
|
(λ a, functor.id)
|
||
|
(λ a b c d h g f, !functor.assoc)
|
||
|
(λ a b f, !functor.id_left)
|
||
|
(λ a b f, !functor.id_right)
|
||
|
|
||
|
definition Precat_of_strict_precats := precategory.Mk precat_strict_precat
|
||
|
|
||
|
namespace ops
|
||
|
|
||
|
abbreviation SPreCat := Precat_of_strict_precats
|
||
|
--attribute precat_strict_precat [instance]
|
||
|
|
||
|
end ops
|
||
|
|
||
|
end category
|