Documentation

Mathlib.Order.Preorder.Finite

Finite preorders and finite sets in a preorder #

This file shows that non-empty finite sets in a preorder have minimal/maximal elements, and contrapositively that non-empty sets without minimal or maximal elements are infinite.

theorem Finset.exists_maximalFor {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Finset ι) (hs : s.Nonempty) :
∃ (i : ι), MaximalFor (fun (x : ι) => x ∈ s) f i
theorem Finset.exists_minimalFor {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Finset ι) (hs : s.Nonempty) :
∃ (i : ι), MinimalFor (fun (x : ι) => x ∈ s) f i
theorem Finset.exists_maximal {α : Type u_2} [LE α] [IsTrans α LE.le] {s : Finset α} (hs : s.Nonempty) :
∃ (i : α), Maximal (fun (x : α) => x ∈ s) i
theorem Finset.exists_minimal {α : Type u_2} [LE α] [IsTrans α LE.le] {s : Finset α} (hs : s.Nonempty) :
∃ (i : α), Minimal (fun (x : α) => x ∈ s) i
theorem Finset.exists_le_maximal {α : Type u_2} [Preorder α] {a : α} (s : Finset α) (ha : a ∈ s) :
∃ (b : α), a ≤ b ∧ Maximal (fun (x : α) => x ∈ s) b
theorem Finset.exists_le_minimal {α : Type u_2} [Preorder α] {a : α} (s : Finset α) (ha : a ∈ s) :
∃ b ≤ a, Minimal (fun (x : α) => x ∈ s) b
theorem Set.Finite.exists_maximalFor {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Set ι) (h : s.Finite) (hs : s.Nonempty) :
∃ (i : ι), MaximalFor (fun (x : ι) => x ∈ s) f i
theorem Set.Finite.exists_minimalFor {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Set ι) (h : s.Finite) (hs : s.Nonempty) :
∃ (i : ι), MinimalFor (fun (x : ι) => x ∈ s) f i
theorem Set.Finite.exists_maximal {α : Type u_2} [LE α] [IsTrans α LE.le] {s : Set α} (h : s.Finite) (hs : s.Nonempty) :
∃ (i : α), Maximal (fun (x : α) => x ∈ s) i
theorem Set.Finite.exists_minimal {α : Type u_2} [LE α] [IsTrans α LE.le] {s : Set α} (h : s.Finite) (hs : s.Nonempty) :
∃ (i : α), Minimal (fun (x : α) => x ∈ s) i
theorem Set.Finite.exists_maximalFor' {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Set ι) (h : (f '' s).Finite) (hs : s.Nonempty) :
∃ (i : ι), MaximalFor (fun (x : ι) => x ∈ s) f i

A version of Finite.exists_maximalFor with the (weaker) hypothesis that the image of s is finite rather than s itself.

theorem Set.Finite.exists_minimalFor' {ι : Type u_1} {α : Type u_2} [LE α] [IsTrans α LE.le] (f : ι → α) (s : Set ι) (h : (f '' s).Finite) (hs : s.Nonempty) :
∃ (i : ι), MinimalFor (fun (x : ι) => x ∈ s) f i

A version of Finite.exists_minimalFor with the (weaker) hypothesis that the image of s is finite rather than s itself.

theorem Set.Finite.exists_le_maximal {α : Type u_2} [Preorder α] {s : Set α} {a : α} (hs : s.Finite) (ha : a ∈ s) :
∃ (b : α), a ≤ b ∧ Maximal (fun (x : α) => x ∈ s) b
theorem Set.Finite.exists_le_minimal {α : Type u_2} [Preorder α] {s : Set α} {a : α} (hs : s.Finite) (ha : a ∈ s) :
∃ b ≤ a, Minimal (fun (x : α) => x ∈ s) b
theorem Set.infinite_of_forall_exists_gt {α : Type u_2} [Preorder α] {s : Set α} [Nonempty α] (h : ∀ (a : α), ∃ b ∈ s, a < b) :
theorem Set.infinite_of_forall_exists_lt {α : Type u_2} [Preorder α] {s : Set α} [Nonempty α] (h : ∀ (a : α), ∃ b ∈ s, b < a) :
theorem Set.finite_isTop (α : Type u_2) [PartialOrder α] :
{a : α | IsTop a}.Finite
theorem Set.finite_isBot (α : Type u_2) [PartialOrder α] :
{a : α | IsBot a}.Finite
theorem Set.Infinite.exists_lt_map_eq_of_mapsTo {α : Type u_2} {β : Type u_3} [LinearOrder α] {s : Set α} {t : Set β} {f : α → β} (hs : s.Infinite) (hf : MapsTo f s t) (ht : t.Finite) :
∃ x ∈ s, ∃ y ∈ s, x < y ∧ f x = f y
theorem Set.Finite.exists_lt_map_eq_of_forall_mem {α : Type u_2} {β : Type u_3} [LinearOrder α] {t : Set β} {f : α → β} [Infinite α] (hf : ∀ (a : α), f a ∈ t) (ht : t.Finite) :
∃ (a : α) (b : α), a < b ∧ f a = f b
theorem Finite.exists_le_maximal {α : Type u_2} [Preorder α] [Finite α] {p : α → Prop} {a : α} (h : p a) :
∃ (b : α), a ≤ b ∧ Maximal p b
theorem Finite.exists_le_minimal {α : Type u_2} [Preorder α] [Finite α] {p : α → Prop} {a : α} (h : p a) :
∃ b ≤ a, Minimal p b