Martin Escardo, 29 June 2018
The subtype Ordinalsᵀ of ordinals with a top element.
\begin{code}
{-# OPTIONS --without-K --exact-split --safe --auto-inline #-}
open import UF.FunExt
module Ordinals.ToppedType
(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.Base
open import UF.Subsingletons
\end{code}
To get closure under sums constructively, we need to restrict to
particular kinds of ordinals. Having a top element is a simple
sufficient condition, which holds in the applications we have in mind
(for compact ordinals). Classically, the topped ordinals are the
successor ordinals. Constructively, ℕ∞ is an example of an ordinal
with a top element which is not a successor ordinal, as its top
element is not isolated.
\begin{code}
Ordinalᵀ : ∀ 𝓤 → 𝓤 ⁺ ̇
Ordinalᵀ 𝓤 = Σ α ꞉ Ordinal 𝓤 , has-top (underlying-order α)
instance
canonical-map-Ordinalᵀ-Ordinal : Canonical-Map (Ordinalᵀ 𝓤) (Ordinal 𝓤)
ι {{canonical-map-Ordinalᵀ-Ordinal}} (α , _) = α
instance
underlying-type-of-topped-ordinal : Underlying (Ordinalᵀ 𝓤)
⟨_⟩ {{underlying-type-of-topped-ordinal}} (α , _) = ⟨ α ⟩
underlying-order {{underlying-type-of-topped-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}
tis-well-ordered : (τ : Ordinalᵀ 𝓤) → is-well-order (underlying-order τ)
tis-well-ordered ((X , _<_ , o) , t) = o
≾-prop-valued : (τ : Ordinalᵀ 𝓤) (x y : ⟨ τ ⟩) → is-prop (x ≾⟨ τ ⟩ y)
≾-prop-valued {𝓤} τ = ≾-is-prop-valued
(underlying-order τ)
(fe 𝓤 𝓤₀)
(Prop-valuedness [ τ ])
topped : (τ : Ordinalᵀ 𝓤) → has-top (underlying-order τ)
topped (α , t) = t
top : (τ : Ordinalᵀ 𝓤) → ⟨ τ ⟩
top (α , (x , i)) = x
top-is-top : (τ : Ordinalᵀ 𝓤) → is-top (underlying-order τ) (top τ)
top-is-top (α , (x , i)) = i
open import TypeTopology.InfProperty
has-infs-of-complemented-subsets : Ordinalᵀ 𝓤 → 𝓤 ̇
has-infs-of-complemented-subsets τ = has-inf (underlying-weak-order τ)
\end{code}