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.
It also provides uniqueness results for order embeddings and order homomorphisms on finite linear orders.
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_subsingleton_isCofinal
{α : Type u_2}
[LinearOrder α]
{s : Set α}
(hs : s.Finite)
(hs' : IsCofinal s)
:
∃ (t : Set α), t.Subsingleton ∧ IsCofinal t
If the cofinality of a linear order is finite, it's at most one.
@[deprecated "Use `WellFoundedLT.induction _ h` instead." (since := "2026-04-10")]
theorem
LinearOrder.strong_induction_of_finite
{α : Type u_4}
[LinearOrder α]
[Finite α]
{motive : α → Prop}
(h : ∀ (j : α), (∀ k < j, motive k) → motive j)
(i : α)
:
motive i
theorem
OrderEmbedding.range_eq_iff
{α : Type u_4}
{β : Type u_5}
[LinearOrder α]
[PartialOrder β]
[Finite α]
{f g : α ↪o β}
:
theorem
OrderHom.range_eq_iff
{α : Type u_4}
{β : Type u_5}
[LinearOrder α]
[PartialOrder β]
[Finite α]
{f g : α →o β}
(hf : Function.Injective ⇑f)
(hg : Function.Injective ⇑g)
:
theorem
OrderHom.eq_id_of_injective
{α : Type u_4}
[LinearOrder α]
[Finite α]
(f : α →o α)
(hf : Function.Injective ⇑f)
:
theorem
StrictMono.eq_id
{α : Type u_4}
[LinearOrder α]
[Finite α]
{f : α → α}
(hf : StrictMono f)
:
A strictly monotone self-map of a finite linear order is the identity.
theorem
StrictMono.apply_eq
{α : Type u_4}
[LinearOrder α]
[Finite α]
{f : α → α}
{x : α}
(hf : StrictMono f)
:
A strictly monotone self-map of a finite linear order fixes every point.