Successor and predecessor limits #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define the predicate order.is_succ_limit
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.is_pred_limit
analogously, and prove basic results.
Todo #
The plan is to eventually replace ordinal.is_limit
and cardinal.is_limit
with the common
predicate order.is_succ_limit
.
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.is_succ_limit a = ∀ (b : α), ¬b ⋖ a
See not_is_succ_limit_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
- order.is_succ_limit_rec_on b hs hl = dite (order.is_succ_limit b) (λ (hb : order.is_succ_limit b), hl b hb) (λ (hb : ¬order.is_succ_limit b), _.mpr (hs (classical.some _) _))
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.is_pred_limit a = ∀ (b : α), ¬a ⋖ b
Alias of the reverse direction of order.is_succ_limit_to_dual_iff
.
Alias of the reverse direction of order.is_pred_limit_to_dual_iff
.
See not_is_pred_limit_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.is_pred_limit_rec_on b hs hl = order.is_succ_limit_rec_on b hs (λ (a : αᵒᵈ) (ha : order.is_succ_limit a), hl (⇑order_dual.to_dual a) _)