{- TODO: -}
module Cubical.Categories.Instances.Props where

open import Cubical.Foundations.Prelude
open import Cubical.Foundations.HLevels
open import Cubical.Foundations.Structure


open import Cubical.Categories.Category
open import Cubical.Categories.HLevels
open import Cubical.Categories.Functor
open import Cubical.Categories.Instances.Thin
open import Cubical.Categories.Instances.Sets

private
  variable  : Level

open Functor

PROP :    Category (ℓ-suc ) 
PROP  = ThinCategory (hProp )  P Q   P    Q )
   {a} z  z)
   {a} {b} {c} z z₁ z₂  z₁ (z z₂))
  λ {b = Q}  isProp→ (Q .snd)

hasPropHomsPROP : hasPropHoms (PROP )
hasPropHomsPROP {y = Q} = isProp→ (Q .snd)

PROP→SET : Functor (PROP ) (SET )
PROP→SET .F-ob P =  P  , (isProp→isSet (P .snd))
PROP→SET .F-hom = λ z  z
PROP→SET .F-id = refl
PROP→SET .F-seq = λ _ _  refl