Define Monoidal categories without depending on category of categories
This commit is contained in:
parent
5902c6121b
commit
a4890a42cf
|
@ -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₂
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue