Add goals for propositionality of products

This commit is contained in:
Frederik Hanghøj Iversen 2018-03-08 10:38:46 +01:00
parent 1ef57a19f4
commit 486238e114

View file

@ -18,11 +18,13 @@ module _ {a b : Level} ( : Category a b) where
proj₁ : [ obj , A ] proj₁ : [ obj , A ]
proj₂ : [ obj , B ] proj₂ : [ obj , B ]
-- FIXME Not sure this is actually a proposition - so this name is
-- misleading.
record IsProduct (raw : RawProduct) : Set (a b) where record IsProduct (raw : RawProduct) : Set (a b) where
open RawProduct raw public open RawProduct raw public
field field
isProduct : {X : Object} (x₁ : [ X , A ]) (x₂ : [ X , B ]) isProduct : {X : Object} (f : [ X , A ]) (g : [ X , B ])
∃![ x ] ( [ proj₁ x ] x₁ P.× [ proj₂ x ] x₂) ∃![ f×g ] ( [ proj₁ f×g ] f P.× [ proj₂ f×g ] g)
-- | Arrow product -- | Arrow product
_P[_×_] : {X} (π₁ : [ X , A ]) (π₂ : [ X , B ]) _P[_×_] : {X} (π₁ : [ X , A ]) (π₂ : [ X , B ])
@ -56,6 +58,9 @@ module _ {a b : Level} ( : Category a b) where
× [ g snd ] × [ g snd ]
] ]
module Propositionality where module Propositionality {a b : Level} { : Category a b} {A B : Category.Object } where
-- TODO `isProp (Product ...)` propProduct : isProp (Product A B)
-- TODO `isProp (HasProducts ...)` propProduct = {!!}
propHasProducts : isProp (HasProducts )
propHasProducts = {!!}