Skip to content

Commit 64b39a7

Browse files
committed
refactor(Order): make CompletePartialOrder extend OrderBot
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly. Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
1 parent dd6c37f commit 64b39a7

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

Mathlib/Order/CompletePartialOrder.lean

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Christopher Hoskin
66
module
77

88
public import Mathlib.Order.OmegaCompletePartialOrder
9+
public import Mathlib.Order.BoundedOrder.Basic
910

1011
/-!
1112
# Complete Partial Orders
@@ -41,10 +42,24 @@ section CompletePartialOrder
4142
/--
4243
Complete partial orders are partial orders where every directed set has a least upper bound.
4344
-/
44-
class CompletePartialOrder (α : Type*) extends PartialOrder α, SupSet α where
45+
class CompletePartialOrder (α : Type*) extends PartialOrder α, SupSet α, OrderBot α where
4546
/-- For each directed set `d`, `sSup d` is the least upper bound of `d`. -/
4647
lubOfDirected : ∀ d, DirectedOn (· ≤ ·) d → IsLUB d (sSup d)
4748

49+
/-- Create a `CompletePartialOrder` from a `PartialOrder` and `SupSet`
50+
such that for every directed set `d`, `sSup d` is the least upper bound of `d`.
51+
52+
The bottom element is defined as `sSup ∅`.
53+
-/
54+
def completePartialOrderOfLubOfDirected (α : Type*) [H1 : PartialOrder α] [H2 : SupSet α]
55+
(lub_of_directed : ∀ d : Set α, DirectedOn (· ≤ ·) d → IsLUB d (sSup d)) :
56+
CompletePartialOrder α where
57+
__ := H1; __ := H2
58+
bot := sSup ∅
59+
bot_le := (isLUB_empty_iff.mp (lub_of_directed (∅ : Set α) (by simp only [DirectedOn,
60+
Set.mem_empty_iff_false, false_and, exists_const, imp_self, implies_true])))
61+
lubOfDirected := lub_of_directed
62+
4863
variable [CompletePartialOrder α] [Preorder β] {f : ι → α} {d : Set α} {a : α}
4964

5065
protected lemma DirectedOn.isLUB_sSup : DirectedOn (· ≤ ·) d → IsLUB d (sSup d) :=

0 commit comments

Comments
 (0)