Comparison #
This file provides basic results about orderings and comparison in linear orders.
Definitions #
CmpLE: AnOrderingfrom≤.Ordering.Compares: Turns anOrderinginto<and=propositions.linearOrderOfCompares: Constructs aLinearOrderinstance from the fact that any two elements that are not one strictly less than the other either way are equal.
Like cmp, but uses a ≤ on the type instead of <. Given two elements x and y, returns a
three-way comparison result Ordering.
Equations
- cmpLE x y = if x ≤ y then if y ≤ x then Ordering.eq else Ordering.lt else Ordering.gt
 
Instances For
theorem
cmpLE_eq_cmp
{α : Type u_3}
[Preorder α]
[IsTotal α fun (x1 x2 : α) => x1 ≤ x2]
[DecidableRel fun (x1 x2 : α) => x1 ≤ x2]
[DecidableRel fun (x1 x2 : α) => x1 < x2]
(x y : α)
 :
theorem
Ordering.Compares.of_swap
{α : Type u_1}
[LT α]
{a b : α}
{o : Ordering}
 :
o.swap.Compares a b → o.Compares b a
Alias of the forward direction of Ordering.compares_swap.
theorem
Ordering.Compares.swap
{α : Type u_1}
[LT α]
{a b : α}
{o : Ordering}
 :
o.Compares b a → o.swap.Compares a b
Alias of the reverse direction of Ordering.compares_swap.
theorem
Ordering.compares_iff_of_compares_impl
{α : Type u_1}
{β : Type u_2}
[LinearOrder α]
[Preorder β]
{a b : α}
{a' b' : β}
(h : ∀ {o : Ordering}, o.Compares a b → o.Compares a' b')
(o : Ordering)
 :
o.Compares a b ↔ o.Compares a' b'
@[deprecated Ordering.swap_then (since := "2024-09-13")]
theorem
Ordering.Compares.cmp_eq
{α : Type u_1}
[LinearOrder α]
{a b : α}
{o : Ordering}
(h : o.Compares a b)
 :
@[simp]
@[simp]
@[simp]
@[simp]
def
linearOrderOfCompares
{α : Type u_1}
[Preorder α]
(cmp : α → α → Ordering)
(h : ∀ (a b : α), (cmp a b).Compares a b)
 :
Generate a linear order structure from a preorder and cmp function.
Equations
- One or more equations did not get rendered due to their size.
 
Instances For
@[simp]
@[simp]
@[simp]
theorem
cmp_eq_cmp_symm
{α : Type u_1}
[LinearOrder α]
{x y : α}
{β : Type u_3}
[LinearOrder β]
{x' y' : β}
 :
theorem
lt_iff_lt_of_cmp_eq_cmp
{α : Type u_1}
[LinearOrder α]
{x y : α}
{β : Type u_3}
[LinearOrder β]
{x' y' : β}
(h : cmp x y = cmp x' y')
 :
theorem
le_iff_le_of_cmp_eq_cmp
{α : Type u_1}
[LinearOrder α]
{x y : α}
{β : Type u_3}
[LinearOrder β]
{x' y' : β}
(h : cmp x y = cmp x' y')
 :
theorem
eq_iff_eq_of_cmp_eq_cmp
{α : Type u_1}
[LinearOrder α]
{x y : α}
{β : Type u_3}
[LinearOrder β]
{x' y' : β}
(h : cmp x y = cmp x' y')
 :