mathlib documentation

order.min_max

max and min #

This file proves basic properties about maxima and minima on a linear_order.

Tags #

min, max

@[simp]
theorem le_min_iff {α : Type u} [linear_order α] {a b c : α} :
@[simp]
theorem le_max_iff {α : Type u} [linear_order α] {a b c : α} :
@[simp]
theorem min_le_iff {α : Type u} [linear_order α] {a b c : α} :
@[simp]
theorem max_le_iff {α : Type u} [linear_order α] {a b c : α} :
@[simp]
theorem lt_min_iff {α : Type u} [linear_order α] {a b c : α} :
a < linear_order.min b c a < b a < c
@[simp]
theorem lt_max_iff {α : Type u} [linear_order α] {a b c : α} :
a < linear_order.max b c a < b a < c
@[simp]
theorem min_lt_iff {α : Type u} [linear_order α] {a b c : α} :
linear_order.min a b < c a < c b < c
@[simp]
theorem max_lt_iff {α : Type u} [linear_order α] {a b c : α} :
linear_order.max a b < c a < c b < c
theorem max_le_max {α : Type u} [linear_order α] {a b c d : α} :
a cb dlinear_order.max a b linear_order.max c d
theorem min_le_min {α : Type u} [linear_order α] {a b c d : α} :
a cb dlinear_order.min a b linear_order.min c d
theorem le_max_of_le_left {α : Type u} [linear_order α] {a b c : α} :
a ba linear_order.max b c
theorem le_max_of_le_right {α : Type u} [linear_order α] {a b c : α} :
a ca linear_order.max b c
theorem lt_max_of_lt_left {α : Type u} [linear_order α] {a b c : α} (h : a < b) :
theorem lt_max_of_lt_right {α : Type u} [linear_order α] {a b c : α} (h : a < c) :
theorem min_le_of_left_le {α : Type u} [linear_order α] {a b c : α} :
a clinear_order.min a b c
theorem min_le_of_right_le {α : Type u} [linear_order α] {a b c : α} :
b clinear_order.min a b c
theorem min_lt_of_left_lt {α : Type u} [linear_order α] {a b c : α} (h : a < c) :
theorem min_lt_of_right_lt {α : Type u} [linear_order α] {a b c : α} (h : b < c) :
theorem min_le_max {α : Type u} [linear_order α] {a b : α} :
@[simp]
theorem min_eq_left_iff {α : Type u} [linear_order α] {a b : α} :
@[simp]
theorem min_eq_right_iff {α : Type u} [linear_order α] {a b : α} :
@[simp]
theorem max_eq_left_iff {α : Type u} [linear_order α] {a b : α} :
@[simp]
theorem max_eq_right_iff {α : Type u} [linear_order α] {a b : α} :
theorem min_cases {α : Type u} [linear_order α] (a b : α) :

For elements a and b of a linear order, either min a b = a and a ≤ b, or min a b = b and b < a. Use cases on this lemma to automate linarith in inequalities

theorem max_cases {α : Type u} [linear_order α] (a b : α) :

For elements a and b of a linear order, either max a b = a and b ≤ a, or max a b = b and a < b. Use cases on this lemma to automate linarith in inequalities

theorem min_eq_iff {α : Type u} [linear_order α] {a b c : α} :
linear_order.min a b = c a = c a b b = c b a
theorem max_eq_iff {α : Type u} [linear_order α] {a b c : α} :
linear_order.max a b = c a = c b a b = c a b
theorem min_lt_min_left_iff {α : Type u} [linear_order α] {a b c : α} :
theorem min_lt_min_right_iff {α : Type u} [linear_order α] {a b c : α} :
theorem max_lt_max_left_iff {α : Type u} [linear_order α] {a b c : α} :
theorem max_lt_max_right_iff {α : Type u} [linear_order α] {a b c : α} :
@[protected, instance]
def max_idem {α : Type u} [linear_order α] :

An instance asserting that max a a = a

@[protected, instance]
def min_idem {α : Type u} [linear_order α] :

An instance asserting that min a a = a

theorem min_lt_max {α : Type u} [linear_order α] {a b : α} :
theorem max_lt_max {α : Type u} [linear_order α] {a b c d : α} (h₁ : a < c) (h₂ : b < d) :
theorem min_lt_min {α : Type u} [linear_order α] {a b c d : α} (h₁ : a < c) (h₂ : b < d) :
theorem min_right_comm {α : Type u} [linear_order α] (a b c : α) :
theorem max.left_comm {α : Type u} [linear_order α] (a b c : α) :
theorem max.right_comm {α : Type u} [linear_order α] (a b c : α) :
theorem monotone_on.map_max {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {s : set α} {a b : α} (hf : monotone_on f s) (ha : a s) (hb : b s) :
f (linear_order.max a b) = linear_order.max (f a) (f b)
theorem monotone_on.map_min {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {s : set α} {a b : α} (hf : monotone_on f s) (ha : a s) (hb : b s) :
f (linear_order.min a b) = linear_order.min (f a) (f b)
theorem antitone_on.map_max {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {s : set α} {a b : α} (hf : antitone_on f s) (ha : a s) (hb : b s) :
f (linear_order.max a b) = linear_order.min (f a) (f b)
theorem antitone_on.map_min {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {s : set α} {a b : α} (hf : antitone_on f s) (ha : a s) (hb : b s) :
f (linear_order.min a b) = linear_order.max (f a) (f b)
theorem monotone.map_max {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {a b : α} (hf : monotone f) :
f (linear_order.max a b) = linear_order.max (f a) (f b)
theorem monotone.map_min {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {a b : α} (hf : monotone f) :
f (linear_order.min a b) = linear_order.min (f a) (f b)
theorem antitone.map_max {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {a b : α} (hf : antitone f) :
f (linear_order.max a b) = linear_order.min (f a) (f b)
theorem antitone.map_min {α : Type u} {β : Type v} [linear_order α] [linear_order β] {f : α → β} {a b : α} (hf : antitone f) :
f (linear_order.min a b) = linear_order.max (f a) (f b)
theorem min_rec {α : Type u} [linear_order α] {p : α → Prop} {x y : α} (hx : x yp x) (hy : y xp y) :
theorem max_rec {α : Type u} [linear_order α] {p : α → Prop} {x y : α} (hx : y xp x) (hy : x yp y) :
theorem min_rec' {α : Type u} [linear_order α] (p : α → Prop) {x y : α} (hx : p x) (hy : p y) :
theorem max_rec' {α : Type u} [linear_order α] (p : α → Prop) {x y : α} (hx : p x) (hy : p y) :
theorem min_choice {α : Type u} [linear_order α] (a b : α) :
theorem max_choice {α : Type u} [linear_order α] (a b : α) :
theorem le_of_max_le_left {α : Type u} [linear_order α] {a b c : α} (h : linear_order.max a b c) :
a c
theorem le_of_max_le_right {α : Type u} [linear_order α] {a b c : α} (h : linear_order.max a b c) :
b c