Successor and predecessor limits #
We define the predicate Order.IsSuccLimit
for "successor limits", values that don't cover any
others. They are so named since they can't be the successors of anything smaller. We define
Order.IsPredLimit
analogously, and prove basic results.
Todo #
The plan is to eventually replace Ordinal.IsLimit
and Cardinal.IsLimit
with the common
predicate Order.IsSuccLimit
.
Successor limits #
A successor limit is a value that doesn't cover any other.
It's so named because in a successor order, a successor limit can't be the successor of anything smaller.
Equations
- Order.IsSuccLimit a = ∀ (b : α), ¬b ⋖ a
Instances For
See not_isSuccLimit_iff
for a version that states that a
is a successor of a value other
than itself.
A value can be built by building it on successors and successor limits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Predecessor limits #
A predecessor limit is a value that isn't covered by any other.
It's so named because in a predecessor order, a predecessor limit can't be the predecessor of anything greater.
Equations
- Order.IsPredLimit a = ∀ (b : α), ¬a ⋖ b
Instances For
Alias of the reverse direction of Order.isSuccLimit_toDual_iff
.
Alias of the reverse direction of Order.isPredLimit_toDual_iff
.
See not_isPredLimit_iff
for a version that states that a
is a successor of a value other
than itself.
A value can be built by building it on predecessors and predecessor limits.
Equations
- Order.isPredLimitRecOn b hs hl = Order.isSuccLimitRecOn b hs fun x ha => hl x (_ : Order.IsPredLimit (↑OrderDual.toDual x))