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.
For some applications, it is desirable to exclude minimal elements from being successor limits, or
maximal elements from being predecessor limits. As such, we also provide Order.IsSuccLimit and
Order.IsPredLimit, which exclude these cases.
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.
Use IsSuccLimit if you want to exclude the case of a minimal element.
Equations
- Order.IsSuccPrelimit a = ∀ (b : α), ¬b ⋖ a
Instances For
A predecessor pre-limit is a value that isn't covered by any other.
It's so named because in a predecessor order, a predecessor pre-limit can't be the predecessor of anything smaller.
Use IsPredLimit to exclude the case of a maximal element.
Equations
- Order.IsPredPrelimit a = ∀ (b : α), ¬a ⋖ b
Instances For
Alias of the reverse direction of Order.isSuccPrelimit_toDual_iff.
A successor limit is a value that isn't minimal and 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.
Use IsSuccPrelimit if you want to include the case of a minimal element.
Equations
- Order.IsSuccLimit a = (¬IsMin a ∧ Order.IsSuccPrelimit a)
Instances For
A predecessor limit is a value that isn't maximal and doesn't cover any other.
It's so named because in a predecessor order, a predecessor limit can't be the predecessor of anything larger.
Use IsPredPrelimit if you want to include the case of a maximal element.
Equations
- Order.IsPredLimit a = (¬IsMax a ∧ Order.IsPredPrelimit a)
Instances For
Given j < i with i a prelimit, IsSuccPrelimit.mid picks an arbitrary element strictly
between j and i.
Equations
- hi.mid hj = Classical.indefiniteDescription (Membership.mem (Set.Ioo j i)) ⋯
Instances For
See not_isSuccPrelimit_iff for a version that states that a is a successor of a value other
than itself.
Alias of Order.isPredPrelimit_of_lt_pred.
Predecessor limits #
Alias of the reverse direction of Order.isSuccLimit_toDual_iff.
Alias of the reverse direction of Order.isPredLimit_toDual_iff.
Induction principles #
A value can be built by building it on successors and successor pre-limits.
Equations
- Order.isSuccPrelimitRecOn b succ isSuccPrelimit = if hb : Order.IsSuccPrelimit b then isSuccPrelimit b hb else cast ⋯ (succ (Classical.choose ⋯) ⋯)
Instances For
A value can be built by building it on predecessors and predecessor pre-limits.
Equations
- Order.isPredPrelimitRecOn b succ isSuccPrelimit = if hb : Order.IsPredPrelimit b then isSuccPrelimit b hb else cast ⋯ (succ (Classical.choose ⋯) ⋯)
Instances For
A value can be built by building it on minimal elements, successors, and successor limits.
Equations
- Order.isSuccLimitRecOn b isMin succ isSuccLimit = Order.isSuccPrelimitRecOn b succ fun (a : α) (ha : Order.IsSuccPrelimit a) => if h : IsMin a then isMin a h else isSuccLimit a ⋯
Instances For
A value can be built by building it on maximal elements, predecessors, and predecessor limits.
Equations
- Order.isPredLimitRecOn b isMin succ isSuccLimit = Order.isPredPrelimitRecOn b succ fun (a : α) (ha : Order.IsPredPrelimit a) => if h : IsMax a then isMin a h else isSuccLimit a ⋯
Instances For
Recursion principle on a well-founded partial SuccOrder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recursion principle on a well-founded partial PredOrder.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recursion principle on a well-founded partial SuccOrder, separating out the case of a
minimal element.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Recursion principle on a well-founded partial PredOrder, separating out the case of a
minimal element.
Equations
- One or more equations did not get rendered due to their size.