instance Std.instTransOrdOfLawfulOrderOrdOfIsPreorder {α : Type u} [Ord α] [LE α] [LawfulOrderOrd α] [IsPreorder α] :
TransOrd α
instance Std.instLawfulBEqOrdOfLawfulOrderOrdOfLawfulOrderBEq {α : Type u} [Ord α] [BEq α] [LE α] [LawfulOrderOrd α] [LawfulOrderBEq α] :
instance Std.instLawfulEqOrdOfLawfulOrderOrdOfIsPartialOrder {α : Type u} [Ord α] [LE α] [LawfulOrderOrd α] [IsPartialOrder α] :
instance Std.instLawfulEqOrdOfLawfulOrderOrdOfAntisymmLe {α : Type u} [Ord α] [LE α] [LawfulOrderOrd α] [Antisymm fun (x1 x2 : α) => x1 ≤ x2] :
instance Std.instAntisymmLeOfLawfulOrderOrdOfLawfulEqOrd {α : Type u} [Ord α] [LE α] [LawfulOrderOrd α] [LawfulEqOrd α] :
theorem Std.compare_eq_of_lt_iff {α : Type u} [LE α] [LT α] [LawfulOrderLT α] [Ord α] [LawfulOrderOrd α] {a b : α} {o : Ordering} (h₁ : a < b ↔ o = Ordering.lt) (h₂ : b < a ↔ o = Ordering.gt) :
theorem Std.IsLinearOrder.of_ord {α : Type u} [LE α] [Ord α] [LawfulOrderOrd α] [TransOrd α] [LawfulEqOrd α] :
theorem Std.LawfulOrderLT.of_ord (α : Type u) [Ord α] [LT α] [LE α] [LawfulOrderOrd α] (lt_iff_compare_eq_lt : ∀ (a b : α), a < b ↔ compare a b = Ordering.lt) :
This lemma derives a LawfulOrderLT α instance from a property involving an Ord α instance.
theorem Std.LawfulOrderBEq.of_ord (α : Type u) [Ord α] [BEq α] [LE α] [LawfulOrderOrd α] (beq_iff_compare_eq_eq : ∀ (a b : α), (a == b) = true ↔ compare a b = Ordering.eq) :
This lemma derives a LawfulOrderBEq α instance from a property involving an Ord α instance.
theorem Std.LawfulOrderInf.of_ord (α : Type u) [Ord α] [Min α] [LE α] [LawfulOrderOrd α] (compare_min_isLE_iff :
∀ (a b c : α), (compare a (min b c)).isLE = true ↔ (compare a b).isLE = true ∧ (compare a c).isLE = true) :
This lemma derives a LawfulOrderInf α instance from a property involving an Ord α instance.
theorem Std.LawfulOrderMin.of_ord (α : Type u) [Ord α] [Min α] [LE α] [LawfulOrderOrd α] (compare_min_isLE_iff :
∀ (a b c : α), (compare a (min b c)).isLE = true ↔ (compare a b).isLE = true ∧ (compare a c).isLE = true) (min_eq_or : ∀ (a b : α), min a b = a ∨ min a b = b) :
This lemma derives a LawfulOrderMin α instance from a property involving an Ord α instance.
theorem Std.LawfulOrderSup.of_ord (α : Type u) [Ord α] [Max α] [LE α] [LawfulOrderOrd α] (compare_max_isLE_iff :
∀ (a b c : α), (compare (max a b) c).isLE = true ↔ (compare a c).isLE = true ∧ (compare b c).isLE = true) :
This lemma derives a LawfulOrderSup α instance from a property involving an Ord α instance.
theorem Std.LawfulOrderMax.of_ord (α : Type u) [Ord α] [Max α] [LE α] [LawfulOrderOrd α] (compare_max_isLE_iff :
∀ (a b c : α), (compare (max a b) c).isLE = true ↔ (compare a c).isLE = true ∧ (compare b c).isLE = true) (max_eq_or : ∀ (a b : α), max a b = a ∨ max a b = b) :
This lemma derives a LawfulOrderMax α instance from a property involving an Ord α instance.
instance Std.instCommutativeMinOfLawfulOrderLeftLeaningMinOfIsLinearOrder {α : Type u_1} [LE α] [Min α] [LawfulOrderLeftLeaningMin α] [IsLinearOrder α] :
instance Std.instLawfulOrderBEqOfLawfulBEqOrdOfLawfulOrderOrd {α : Type u_1} [BEq α] [Ord α] [LE α] [LawfulBEqOrd α] [LawfulOrderOrd α] :
instance Std.lawfulOrderOrd_compareOfLessAndEq {α : Type u} [LE α] [LT α] [Total fun (x1 x2 : α) => x1 ≤ x2] [Antisymm fun (x1 x2 : α) => x1 ≤ x2] [DecidableLT α] [LawfulOrderLT α] [DecidableEq α] :
@[instance_reducible]
Derives an Ord α instance from an LE α instance. Because all elements are comparable with
compare, the resulting Ord α instance only makes sense if LE α is total.
Equations
- Classical.Order.instOrd = { compare := fun (a b : α) => if a ≤ b then if b ≤ a then Ordering.eq else Ordering.lt else Ordering.gt }
Instances For
instance Classical.Order.instLawfulOrderOrd {α : Type u} [LE α] [Std.Total fun (x1 x2 : α) => x1 ≤ x2] :