Order types #
Order types are defined as the quotient of linear orders under order isomorphism. They are preordered by order embeddings.
Main definitions #
OrderType: the type of order types (in a given universe)OrderType.type α: given a typeαwith a linear order, this is the corresponding OrderType,
A preorder with a bottom element is registered on order types, where ⊥ is
0, the order type corresponding to the empty type.
Notation #
The following are notations in the OrderType namespace:
ωis a notation for the order type ofℕwith its natural order.
References #
- https://en.wikipedia.org/wiki/Order_type
- Dauben, J. W. Georg Cantor: His Mathematics and Philosophy of the Infinite. Princeton, NJ: Princeton University Press, 1990.
- Enderton, Herbert B. Elements of Set Theory. United Kingdom: Academic Press, 1977.
Tags #
order type, order isomorphism, linear order
Equivalence relation on linear orders on arbitrary types in universe u, given by order
isomorphism.
Equations
- OrderType.instSetoid = { r := fun (lin_ord₁ lin_ord₂ : LinOrd) => Nonempty (↑lin_ord₁ ≃o ↑lin_ord₂), iseqv := OrderType.instSetoid._proof_1✝ }
Instances For
OrderType.{u} is the type of linear orders in Type u, up to order isomorphism.
Equations
Instances For
A "canonical" type order-isomorphic to the order type o, living in the same universe.
This is defined through the axiom of choice.
Equations
- o.ToType = ↑(Quotient.out o)
Instances For
The local instance for some arbitrary linear order on Type u , order isomorphic within
order type o.
Equations
Basic properties of the order type #
The order type of the linear order on α.
Instances For
Equations
- OrderType.instZero = { zero := OrderType.type PEmpty.{?u.2 + 1} }
Equations
- OrderType.instInhabited = { default := 0 }
Equations
Alias of OrderType.type_congr.
Quotient.inductionOn specialized to OrderType.
Quotient.inductionOn₂ specialized to OrderType.
Quotient.inductionOn₃ specialized to OrderType.
To define a function on OrderType, it suffices to define it on all linear orders.
Equations
- o.liftOn f c = Quotient.liftOn o (fun (w : LinOrd) => f ↑w) ⋯
Instances For
Alias of OrderType.type_le_type.
Equations
- OrderType.instOrderBot = { bot := 0, bot_le := OrderType.zero_le }
ω is the first infinite ordinal, defined as the order type of ℕ.
Conventions for notations in identifiers:
- The recommended spelling of
ωin identifiers isomega0.
Equations
Instances For
ω is the first infinite ordinal, defined as the order type of ℕ.
Conventions for notations in identifiers:
- The recommended spelling of
ωin identifiers isomega0.
Equations
- OrderType.termω = Lean.ParserDescr.node `OrderType.termω 1024 (Lean.ParserDescr.symbol "ω")