Define Monoidal categories without depending on category of categories

This commit is contained in:
Frederik Hanghøj Iversen 2018-03-05 11:13:37 +01:00
parent 5902c6121b
commit a4890a42cf
2 changed files with 11 additions and 6 deletions

View file

@ -62,7 +62,7 @@ module _ ( ' : Level) where
-- The following to some extend depends on the category of categories being a -- The following to some extend depends on the category of categories being a
-- category. In some places it may not actually be needed, however. -- category. In some places it may not actually be needed, however.
module CatProducts { ' : Level} ( 𝔻 : Category ') where module CatProduct { ' : Level} ( 𝔻 : Category ') where
private private
:Object: = Object × Object 𝔻 :Object: = Object × Object 𝔻
:Arrow: : :Object: :Object: Set ' :Arrow: : :Object: :Object: Set '
@ -153,9 +153,10 @@ module CatProducts { ' : Level} ( 𝔻 : Category ') where
module _ { ' : Level} (unprovable : IsCategory (RawCat ')) where module _ { ' : Level} (unprovable : IsCategory (RawCat ')) where
private private
Cat = Cat ' unprovable Cat = Cat ' unprovable
module _ ( 𝔻 : Category ') where module _ ( 𝔻 : Category ') where
private private
module P = CatProducts 𝔻 module P = CatProduct 𝔻
instance instance
isProduct : IsProduct Cat P.proj₁ P.proj₂ isProduct : IsProduct Cat P.proj₁ P.proj₂

View file

@ -12,10 +12,14 @@ module _ (a b : Level) where
private private
= lsuc (a b) = lsuc (a b)
-- Might not need this to be able to form products of categories! -- *If* the category of categories existed `_×_` would be equivalent to the
postulate unprovable : IsCategory (Cat.RawCat a b) -- one brought into scope by doing:
--
open HasProducts (Cat.hasProducts unprovable) -- open HasProducts (Cat.hasProducts unprovable) using (_×_)
--
-- Since it doesn't we'll make the following (definitionally equivalent) ad-hoc definition.
_×_ : {a b} Category a b Category a b Category a b
× 𝔻 = Cat.CatProduct.obj 𝔻
record RawMonoidalCategory : Set where record RawMonoidalCategory : Set where
field field