Module docstring
{"# Helper definitions and instances for Ordering
"}
{"# Helper definitions and instances for Ordering
"}
instReprOrdering_mathlib
instance
: Repr✝ (@Ordering✝)
Ordering.Compares
definition
[LT α] : Ordering → α → α → Prop
Ordering.compares_lt
theorem
[LT α] (a b : α) : Compares lt a b = (a < b)
@[simp] lemma compares_lt [LT α] (a b : α) : Compares lt a b = (a < b) := rfl
Ordering.compares_eq
theorem
[LT α] (a b : α) : Compares eq a b = (a = b)
@[simp] lemma compares_eq [LT α] (a b : α) : Compares eq a b = (a = b) := rfl
Ordering.compares_gt
theorem
[LT α] (a b : α) : Compares gt a b = (a > b)
@[simp] lemma compares_gt [LT α] (a b : α) : Compares gt a b = (a > b) := rfl
Ordering.dthen
definition
: (o : Ordering) → (o = .eq → Ordering) → Ordering
cmpUsing
definition
{α : Type u} (lt : α → α → Prop) [DecidableRel lt] (a b : α) : Ordering
/--
Lift a decidable relation to an `Ordering`,
assuming that incomparable terms are `Ordering.eq`.
-/
def cmpUsing {α : Type u} (lt : α → α → Prop) [DecidableRel lt] (a b : α) : Ordering :=
if lt a b then Ordering.lt else if lt b a then Ordering.gt else Ordering.eq
cmp
definition
{α : Type u} [LT α] [DecidableLT α] (a b : α) : Ordering
/--
Construct an `Ordering` from a type with a decidable `LT` instance,
assuming that incomparable terms are `Ordering.eq`.
-/
def cmp {α : Type u} [LT α] [DecidableLT α] (a b : α) : Ordering :=
cmpUsing (· < ·) a b