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
-- category. In some places it may not actually be needed, however.
module CatProducts { ' : Level} ( 𝔻 : Category ') where
module CatProduct { ' : Level} ( 𝔻 : Category ') where
private
:Object: = Object × Object 𝔻
:Arrow: : :Object: :Object: Set '
@ -153,9 +153,10 @@ module CatProducts { ' : Level} ( 𝔻 : Category ') where
module _ { ' : Level} (unprovable : IsCategory (RawCat ')) where
private
Cat = Cat ' unprovable
module _ ( 𝔻 : Category ') where
private
module P = CatProducts 𝔻
module P = CatProduct 𝔻
instance
isProduct : IsProduct Cat P.proj₁ P.proj₂

View file

@ -12,10 +12,14 @@ module _ (a b : Level) where
private
= lsuc (a b)
-- Might not need this to be able to form products of categories!
postulate unprovable : IsCategory (Cat.RawCat a b)
open HasProducts (Cat.hasProducts unprovable)
-- *If* the category of categories existed `_×_` would be equivalent to the
-- one brought into scope by doing:
--
-- 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
field