Ian Ray, 9 August 2023 updated 11 January 2024.

Constructing the two element poset.

\begin{code}

{-# OPTIONS --safe --without-K --exact-split #-}

open import MLTT.Spartan
open import UF.FunExt
open import UF.PropTrunc

open import UF.Subsingletons
open import UF.SubtypeClassifier

module OrderedTypes.TwoElementPoset
 (pt : propositional-truncations-exist)
 (fe : Fun-Ext)
 where

open import Locales.Frame pt fe hiding (𝟚; ; )

2-Poset : Poset 𝓤₀ 𝓤₀
2-Poset = (𝟚 , 2-ord , 2-ord-is-partial-order)
 where
  2-ord : 𝟚  𝟚   Ω 𝓤₀
  2-ord  x = (𝟙 , 𝟙-is-prop)
  2-ord   = (𝟘 , 𝟘-is-prop)
  2-ord   = (𝟙 , 𝟙-is-prop)

  2-ord-is-partial-order : is-partial-order 𝟚 2-ord
  2-ord-is-partial-order = (2-ord-is-preorder , 2-ord-is-antisymmetric)
   where
    2-ord-is-preorder : is-preorder 2-ord holds
    2-ord-is-preorder = (2-ord-is-reflexive , 2-ord-is-transitive)
     where
      2-ord-is-reflexive : is-reflexive 2-ord holds
      2-ord-is-reflexive  = 
      2-ord-is-reflexive  = 

      2-ord-is-transitive : is-transitive 2-ord holds
      2-ord-is-transitive  y z p q = 
      2-ord-is-transitive    p q = 

    2-ord-is-antisymmetric : is-antisymmetric 2-ord 
    2-ord-is-antisymmetric {} {} p q = refl
    2-ord-is-antisymmetric {} {} p q = refl

\end{code}