Use long name for product object
This commit is contained in:
parent
486238e114
commit
63b5f5c68d
|
@ -152,9 +152,9 @@ module _ {ℓ ℓ' : Level} (unprovable : IsCategory (RawCat ℓ ℓ')) where
|
||||||
module P = CatProduct ℂ 𝔻
|
module P = CatProduct ℂ 𝔻
|
||||||
|
|
||||||
rawProduct : RawProduct Catℓ ℂ 𝔻
|
rawProduct : RawProduct Catℓ ℂ 𝔻
|
||||||
RawProduct.obj rawProduct = P.obj
|
RawProduct.object rawProduct = P.obj
|
||||||
RawProduct.proj₁ rawProduct = P.proj₁
|
RawProduct.proj₁ rawProduct = P.proj₁
|
||||||
RawProduct.proj₂ rawProduct = P.proj₂
|
RawProduct.proj₂ rawProduct = P.proj₂
|
||||||
|
|
||||||
isProduct : IsProduct Catℓ _ _ rawProduct
|
isProduct : IsProduct Catℓ _ _ rawProduct
|
||||||
IsProduct.isProduct isProduct = P.isProduct
|
IsProduct.isProduct isProduct = P.isProduct
|
||||||
|
|
|
@ -66,9 +66,9 @@ module _ {ℓ : Level} where
|
||||||
proj₂ lem = refl
|
proj₂ lem = refl
|
||||||
|
|
||||||
rawProduct : RawProduct 𝓢 0A 0B
|
rawProduct : RawProduct 𝓢 0A 0B
|
||||||
RawProduct.obj rawProduct = 0A×0B
|
RawProduct.object rawProduct = 0A×0B
|
||||||
RawProduct.proj₁ rawProduct = Data.Product.proj₁
|
RawProduct.proj₁ rawProduct = Data.Product.proj₁
|
||||||
RawProduct.proj₂ rawProduct = Data.Product.proj₂
|
RawProduct.proj₂ rawProduct = Data.Product.proj₂
|
||||||
|
|
||||||
isProduct : IsProduct 𝓢 _ _ rawProduct
|
isProduct : IsProduct 𝓢 _ _ rawProduct
|
||||||
IsProduct.isProduct isProduct {X = X} f g
|
IsProduct.isProduct isProduct {X = X} f g
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{-# OPTIONS --allow-unsolved-metas #-}
|
||||||
module Cat.Category.Product where
|
module Cat.Category.Product where
|
||||||
|
|
||||||
open import Agda.Primitive
|
open import Agda.Primitive
|
||||||
|
@ -14,9 +15,9 @@ module _ {ℓa ℓb : Level} (ℂ : Category ℓa ℓb) where
|
||||||
record RawProduct : Set (ℓa ⊔ ℓb) where
|
record RawProduct : Set (ℓa ⊔ ℓb) where
|
||||||
no-eta-equality
|
no-eta-equality
|
||||||
field
|
field
|
||||||
obj : Object
|
object : Object
|
||||||
proj₁ : ℂ [ obj , A ]
|
proj₁ : ℂ [ object , A ]
|
||||||
proj₂ : ℂ [ obj , B ]
|
proj₂ : ℂ [ object , B ]
|
||||||
|
|
||||||
-- FIXME Not sure this is actually a proposition - so this name is
|
-- FIXME Not sure this is actually a proposition - so this name is
|
||||||
-- misleading.
|
-- misleading.
|
||||||
|
@ -28,7 +29,7 @@ module _ {ℓa ℓb : Level} (ℂ : Category ℓa ℓb) where
|
||||||
|
|
||||||
-- | Arrow product
|
-- | Arrow product
|
||||||
_P[_×_] : ∀ {X} → (π₁ : ℂ [ X , A ]) (π₂ : ℂ [ X , B ])
|
_P[_×_] : ∀ {X} → (π₁ : ℂ [ X , A ]) (π₂ : ℂ [ X , B ])
|
||||||
→ ℂ [ X , obj ]
|
→ ℂ [ X , object ]
|
||||||
_P[_×_] π₁ π₂ = P.proj₁ (isProduct π₁ π₂)
|
_P[_×_] π₁ π₂ = P.proj₁ (isProduct π₁ π₂)
|
||||||
|
|
||||||
record Product : Set (ℓa ⊔ ℓb) where
|
record Product : Set (ℓa ⊔ ℓb) where
|
||||||
|
@ -43,7 +44,7 @@ module _ {ℓa ℓb : Level} (ℂ : Category ℓa ℓb) where
|
||||||
product : ∀ (A B : Object) → Product A B
|
product : ∀ (A B : Object) → Product A B
|
||||||
|
|
||||||
_×_ : Object → Object → Object
|
_×_ : Object → Object → Object
|
||||||
A × B = Product.obj (product A B)
|
A × B = Product.object (product A B)
|
||||||
|
|
||||||
-- | Parallel product of arrows
|
-- | Parallel product of arrows
|
||||||
--
|
--
|
||||||
|
|
Loading…
Reference in a new issue