Successor and predecessor limits #
We define the predicate Order.IsSuccPrelimit
for "successor pre-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.IsPredPrelimit
analogously, and prove basic results.
TODO #
For some applications, it's desirable to exclude the case where an element is minimal. A future PR
will introduce IsSuccLimit
for this usage.
The plan is to eventually replace Ordinal.IsLimit
and Cardinal.IsLimit
with the common
predicate Order.IsSuccLimit
.
Successor limits #
A successor pre-limit is a value that doesn't cover any other.
It's so named because in a successor order, a successor pre-limit can't be the successor of anything smaller.
For some applications, it's desirable to exclude the case where an element is minimal. A future PR
will introduce IsSuccLimit
for this usage.
Equations
- Order.IsSuccPrelimit a = ∀ (b : α), ¬b ⋖ a
Instances For
Alias of Order.IsSuccPrelimit
.
A successor pre-limit is a value that doesn't cover any other.
It's so named because in a successor order, a successor pre-limit can't be the successor of anything smaller.
For some applications, it's desirable to exclude the case where an element is minimal. A future PR
will introduce IsSuccLimit
for this usage.
Equations
Instances For
Alias of Order.isSuccPrelimit_of_dense
.
Alias of IsMin.isSuccPrelimit
.
Alias of Order.isSuccPrelimit_bot
.
Alias of Order.IsSuccPrelimit.isMax
.
Alias of Order.IsSuccPrelimit.succ_ne
.
Alias of Order.not_isSuccPrelimit_succ
.
Alias of Order.IsSuccPrelimit.isMin_of_noMax
.
Alias of Order.isSuccPrelimit_iff_of_noMax
.
Alias of Order.not_isSuccPrelimit_of_noMax
.
Alias of Order.isSuccPrelimit_of_succ_ne
.
Alias of Order.not_isSuccPrelimit_iff
.
See not_isSuccPrelimit_iff
for a version that states that a
is a successor of a value other
than itself.
Alias of Order.mem_range_succ_of_not_isSuccPrelimit
.
See not_isSuccPrelimit_iff
for a version that states that a
is a successor of a value other
than itself.
Alias of Order.mem_range_succ_or_isSuccPrelimit
.
Alias of Order.isSuccPrelimit_of_succ_lt
.
Alias of Order.IsSuccPrelimit.succ_lt
.
Alias of Order.IsSuccPrelimit.succ_lt_iff
.
Alias of Order.isSuccPrelimit_iff_succ_lt
.
Alias of Order.isSuccPrelimit_iff_succ_ne
.
Alias of Order.not_isSuccPrelimit_iff'
.
Alias of Order.IsSuccPrelimit.isMin
.
Alias of Order.isSuccPrelimit_iff
.
Alias of Order.not_isSuccPrelimit
.
Predecessor limits #
A successor pre-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.
For some applications, it's desirable to exclude the case where an element is maximal. A future PR
will introduce IsPredLimit
for this usage.
Equations
- Order.IsPredPrelimit a = ∀ (b : α), ¬a ⋖ b
Instances For
Alias of Order.IsPredPrelimit
.
A successor pre-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.
For some applications, it's desirable to exclude the case where an element is maximal. A future PR
will introduce IsPredLimit
for this usage.
Equations
Instances For
Alias of Order.isPredPrelimit_of_dense
.
Alias of Order.isSuccPrelimit_toDual_iff
.
Alias of Order.isPredPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isSuccPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isPredPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isSuccPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isSuccPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isPredPrelimit_toDual_iff
.
Alias of the reverse direction of Order.isPredPrelimit_toDual_iff
.
Alias of IsMax.isPredPrelimit
.
Alias of Order.isPredPrelimit_top
.
Alias of Order.IsPredPrelimit.isMin
.
Alias of Order.IsPredPrelimit.pred_ne
.
Alias of Order.not_isPredPrelimit_pred
.
Alias of Order.IsPredPrelimit.isMax_of_noMin
.
Alias of Order.isPredPrelimit_iff_of_noMin
.
Alias of Order.not_isPredPrelimit_of_noMin
.
Alias of Order.isPredPrelimit_of_pred_ne
.
Alias of Order.not_isPredPrelimit_iff
.
See not_isPredPrelimit_iff
for a version that states that a
is a successor of a value other
than itself.
Alias of Order.mem_range_pred_of_not_isPredPrelimit
.
See not_isPredPrelimit_iff
for a version that states that a
is a successor of a value other
than itself.
Alias of Order.mem_range_pred_or_isPredPrelimit
.
Alias of Order.isPredPrelimit_of_pred_lt
.
Alias of Order.IsPredPrelimit.lt_pred
.
Alias of Order.IsPredPrelimit.lt_pred_iff
.
Alias of Order.isPredPrelimit_iff_lt_pred
.
Alias of Order.IsPredPrelimit.isMax
.
Alias of Order.isPredPrelimit_iff
.
Alias of Order.not_isPredPrelimit
.
Induction principles #
A value can be built by building it on successors and successor limits.
Equations
- Order.isSuccPrelimitRecOn b hs hl = if hb : Order.IsSuccPrelimit b then hl b hb else let_fun H := ⋯; ⋯.mpr (hs (Classical.choose ⋯) ⋯)
Instances For
Alias of Order.isSuccPrelimitRecOn
.
A value can be built by building it on successors and successor limits.
Instances For
Alias of Order.isSuccPrelimitRecOn_limit
.
Alias of Order.isSuccPrelimitRecOn_succ'
.
Alias of Order.isSuccPrelimitRecOn_succ
.
A value can be built by building it on predecessors and predecessor limits.
Equations
- Order.isPredPrelimitRecOn b hs hl = Order.isSuccPrelimitRecOn b hs fun (x : αᵒᵈ) (ha : Order.IsSuccPrelimit x) => hl x ⋯
Instances For
Alias of Order.isPredPrelimitRecOn
.
A value can be built by building it on predecessors and predecessor limits.
Instances For
Alias of Order.isPredPrelimitRecOn_limit
.
Alias of Order.isPredPrelimitRecOn_pred'
.
Alias of Order.isPredPrelimitRecOn_pred
.
Recursion principle on a well-founded partial SuccOrder
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Alias of SuccOrder.prelimitRecOn
.
Recursion principle on a well-founded partial SuccOrder
.
Instances For
Alias of SuccOrder.prelimitRecOn_limit
.
Alias of SuccOrder.prelimitRecOn_succ
.
Recursion principle on a well-founded partial PredOrder
.
Equations
- PredOrder.prelimitRecOn b hp hl = SuccOrder.prelimitRecOn b hp fun (a : αᵒᵈ) (ha : Order.IsSuccPrelimit a) => hl a ⋯
Instances For
Alias of PredOrder.prelimitRecOn
.
Recursion principle on a well-founded partial PredOrder
.
Instances For
Alias of PredOrder.prelimitRecOn_limit
.
Alias of PredOrder.prelimitRecOn_pred
.