{-# OPTIONS --safe #-} module Cubical.Categories.Instances.Posets where open import Cubical.Foundations.Prelude open import Cubical.Foundations.Function as Function open import Cubical.Foundations.HLevels open import Cubical.Foundations.Structure open import Cubical.Relation.Binary.Order.Poset open import Cubical.Relation.Binary.Order.Poset.Mappings open import Cubical.Categories.Category open Category hiding (_∘_) PosetsCategory : ∀ ℓ ℓ' → Category (ℓ-max (ℓ-suc ℓ) (ℓ-suc ℓ')) (ℓ-max ℓ ℓ') PosetsCategory ℓ ℓ' .ob = Poset ℓ ℓ' PosetsCategory ℓ ℓ' .Hom[_,_] P Q = Σ[ f ∈ (⟨ P ⟩ → ⟨ Q ⟩) ] IsIsotone (str P) f (str Q) PosetsCategory ℓ ℓ' .id = idfun _ , isisotone λ _ _ → idfun _ PosetsCategory ℓ ℓ' ._⋆_ (f , fMon) (g , gMon) = g ∘ f , IsIsotone-∘ _ _ _ _ _ fMon gMon PosetsCategory ℓ ℓ' .⋆IdL _ = refl PosetsCategory ℓ ℓ' .⋆IdR _ = refl PosetsCategory ℓ ℓ' .⋆Assoc _ _ _ = refl PosetsCategory ℓ ℓ' .isSetHom {x = P} {y = Q} = isSetΣSndProp (isSet→ Q.is-set) λ _ → isPropIsIsotone _ _ _ where module Q = PosetStr (str Q)