Documentation

Mathlib.Order.Defs.PartialOrder

Orders #

Defines classes for preorders and partial orders and proves some basic lemmas about them.

Definition of Preorder and lemmas about types with a Preorder #

class Preorder (α : Type u_2) extends LE α, LT α :
Type u_2

A preorder is a reflexive, transitive relation with a < b defined in the obvious way.

Instances
@[simp]
theorem le_refl {α : Type u_1} [Preorder α] (a : α) :
a a

The relation on a preorder is reflexive.

theorem le_rfl {α : Type u_1} [Preorder α] {a : α} :
a a

A version of le_refl where the argument is implicit

theorem le_trans {α : Type u_1} [Preorder α] {a b c : α} :
a bb ca c

The relation on a preorder is transitive.

theorem lt_iff_le_not_le {α : Type u_1} [Preorder α] {a b : α} :
a < b a b ¬b a
theorem lt_of_le_not_le {α : Type u_1} [Preorder α] {a b : α} (hab : a b) (hba : ¬b a) :
a < b
@[deprecated "No deprecation message was provided." (since := "2024-07-30")]
theorem le_not_le_of_lt {α : Type u_1} [Preorder α] {a b : α} :
a < ba b ¬b a
theorem le_of_eq {α : Type u_1} [Preorder α] {a b : α} (hab : a = b) :
a b
theorem le_of_lt {α : Type u_1} [Preorder α] {a b : α} (hab : a < b) :
a b
theorem not_le_of_lt {α : Type u_1} [Preorder α] {a b : α} (hab : a < b) :
¬b a
theorem not_le_of_gt {α : Type u_1} [Preorder α] {a b : α} (hab : a > b) :
¬a b
theorem not_lt_of_le {α : Type u_1} [Preorder α] {a b : α} (hab : a b) :
¬b < a
theorem not_lt_of_ge {α : Type u_1} [Preorder α] {a b : α} (hab : a b) :
¬a < b
theorem LT.lt.not_le {α : Type u_1} [Preorder α] {a b : α} (hab : a < b) :
¬b a

Alias of not_le_of_lt.

theorem LE.le.not_lt {α : Type u_1} [Preorder α] {a b : α} (hab : a b) :
¬b < a

Alias of not_lt_of_le.

theorem ge_trans {α : Type u_1} [Preorder α] {a b c : α} :
a bb ca c
theorem lt_irrefl {α : Type u_1} [Preorder α] (a : α) :
¬a < a
theorem gt_irrefl {α : Type u_1} [Preorder α] (a : α) :
¬a > a
theorem lt_of_lt_of_le {α : Type u_1} [Preorder α] {a b c : α} (hab : a < b) (hbc : b c) :
a < c
theorem lt_of_le_of_lt {α : Type u_1} [Preorder α] {a b c : α} (hab : a b) (hbc : b < c) :
a < c
theorem gt_of_gt_of_ge {α : Type u_1} [Preorder α] {a b c : α} (h₁ : a > b) (h₂ : b c) :
a > c
theorem gt_of_ge_of_gt {α : Type u_1} [Preorder α] {a b c : α} (h₁ : a b) (h₂ : b > c) :
a > c
theorem lt_trans {α : Type u_1} [Preorder α] {a b c : α} (hab : a < b) (hbc : b < c) :
a < c
theorem gt_trans {α : Type u_1} [Preorder α] {a b c : α} :
a > bb > ca > c
theorem ne_of_lt {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
a b
theorem ne_of_gt {α : Type u_1} [Preorder α] {a b : α} (h : b < a) :
a b
theorem lt_asymm {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
¬b < a
theorem not_lt_of_gt {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
¬b < a

Alias of lt_asymm.

theorem not_lt_of_lt {α : Type u_1} [Preorder α] {a b : α} (h : a < b) :
¬b < a

Alias of lt_asymm.

theorem le_of_lt_or_eq {α : Type u_1} [Preorder α] {a b : α} (h : a < b a = b) :
a b
theorem le_of_eq_or_lt {α : Type u_1} [Preorder α] {a b : α} (h : a = b a < b) :
a b
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
@[instance 900]
Equations
def decidableLTOfDecidableLE {α : Type u_1} [Preorder α] [DecidableRel fun (x1 x2 : α) => x1 x2] :
DecidableRel fun (x1 x2 : α) => x1 < x2

< is decidable if is.

Equations

Definition of PartialOrder and lemmas about types with a partial order #

theorem le_antisymm {α : Type u_1} [PartialOrder α] {a b : α} :
a bb aa = b
theorem eq_of_le_of_le {α : Type u_1} [PartialOrder α] {a b : α} :
a bb aa = b

Alias of le_antisymm.

theorem le_antisymm_iff {α : Type u_1} [PartialOrder α] {a b : α} :
a = b a b b a
theorem lt_of_le_of_ne {α : Type u_1} [PartialOrder α] {a b : α} :
a ba ba < b
def decidableEqOfDecidableLE {α : Type u_1} [PartialOrder α] [DecidableRel fun (x1 x2 : α) => x1 x2] :

Equality is decidable if is.

Equations
theorem Decidable.lt_or_eq_of_le {α : Type u_1} [PartialOrder α] {a b : α} [DecidableRel fun (x1 x2 : α) => x1 x2] (hab : a b) :
a < b a = b
theorem Decidable.eq_or_lt_of_le {α : Type u_1} [PartialOrder α] {a b : α} [DecidableRel fun (x1 x2 : α) => x1 x2] (hab : a b) :
a = b a < b
theorem Decidable.le_iff_lt_or_eq {α : Type u_1} [PartialOrder α] {a b : α} [DecidableRel fun (x1 x2 : α) => x1 x2] :
a b a < b a = b
theorem lt_or_eq_of_le {α : Type u_1} [PartialOrder α] {a b : α} :
a ba < b a = b
theorem le_iff_lt_or_eq {α : Type u_1} [PartialOrder α] {a b : α} :
a b a < b a = b