Martin Escardo, 3rd May 2022 The subtype Ordinal₃ 𝓤 of Ordinal 𝓤 consisting of trichotomous ordinals. \begin{code} {-# OPTIONS --safe --without-K #-} open import UF.FunExt module Ordinals.TrichotomousType (fe : FunExt) where open import MLTT.Spartan open import Notation.CanonicalMap open import Ordinals.Notions open import Ordinals.Type open import Ordinals.Underlying open import UF.Sets open import UF.Subsingletons Ordinal₃ : ∀ 𝓤 → 𝓤 ⁺ ̇ Ordinal₃ 𝓤 = Σ α ꞉ Ordinal 𝓤 , is-trichotomous-order (underlying-order α) instance canonical-map-Ordinal₃-Ordinal : Canonical-Map (Ordinal₃ 𝓤) (Ordinal 𝓤) ι {{canonical-map-Ordinal₃-Ordinal}} (α , _) = α instance underlying-type-of-3-ordinal : Underlying (Ordinal₃ 𝓤) ⟨_⟩ {{underlying-type-of-3-ordinal}} (α , _) = ⟨ α ⟩ underlying-order {{underlying-type-of-3-ordinal}} (α , _) = underlying-order α underlying-type-is-set₃ : FunExt → (β : Ordinal₃ 𝓤) → is-set ⟨ β ⟩ underlying-type-is-set₃ fe (α , t) = underlying-type-is-set fe α \end{code} Topped ordinals are ranged over by τ,υ. \begin{code} ≼-prop-valued : (τ : Ordinal₃ 𝓤) (x y : ⟨ τ ⟩) → is-prop (x ≼⟨ τ ⟩ y) ≼-prop-valued {𝓤} τ = extensional-po-is-prop-valued (underlying-order τ) fe (Prop-valuedness [ τ ]) 3is-well-ordered : (τ : Ordinal₃ 𝓤) → is-well-order (underlying-order τ) 3is-well-ordered ((X , _<_ , o) , t) = o 3is-trichotomous : (τ : Ordinal₃ 𝓤) → is-trichotomous-order (underlying-order τ) 3is-trichotomous ((X , _<_ , o) , t) = t \end{code}