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
1 changed files with 10 additions and 5 deletions

View File

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