Enumerating sets of ordinals by ordinals #
The ordinals have the peculiar property that every subset bounded above is a small type, while
themselves not being small. As a consequence of this, every unbounded subset of Ordinal is order
isomorphic to Ordinal.
We define this correspondence as enumOrd, and use it to then define an order isomorphism
enumOrdOrderIso.
This can be thought of as an ordinal analog of Nat.nth.
Enumerator function for an unbounded set of ordinals.
The definition is an implementation detail; this function is entirely characterized by being an
order isomorphism. See enumOrdOrderIso.
Equations
- Ordinal.enumOrd s o = sInf (s ∩ {b : Ordinal.{?u.11} | ∀ c < o, Ordinal.enumOrd s c < b})
Instances For
A characterization of enumOrd: it is the unique strict monotonic function with range s.
If s is closed under nonempty suprema, then its enumerator function is normal.
See also enumOrd_isNormal_iff_isClosed.
An order isomorphism between an unbounded set of ordinals and the ordinals.
Equations
- Ordinal.enumOrdOrderIso s hs = StrictMono.orderIsoOfSurjective (fun (o : Ordinal.{?u.12}) => ⟨Ordinal.enumOrd s o, ⋯⟩) ⋯ ⋯