Skip to content

Commit faca14a

Browse files
committed
feat(Order/WellFoundedSet): sufficient conditions for unique minima of well-founded sets (#18977)
This PR adds two results about minima in well-founded sets. For preorders, if an element is strictly smaller than all others, then it is equal to the minimum. For partial orders, if an element is less than or equal to all elements, then it is equal to the minimum. We add an application to the support of Hahn series.
1 parent 320404f commit faca14a

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

Mathlib/Order/WellFoundedSet.lean

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,8 +594,25 @@ theorem isWF_min_singleton (a) {hs : IsWF ({a} : Set α)} {hn : ({a} : Set α).N
594594
hs.min hn = a :=
595595
eq_of_mem_singleton (IsWF.min_mem hs hn)
596596

597+
theorem IsWF.min_eq_of_lt (hs : s.IsWF) (ha : a ∈ s) (hlt : ∀ b ∈ s, b ≠ a → a < b) :
598+
hs.min (nonempty_of_mem ha) = a := by
599+
by_contra h
600+
exact (hs.not_lt_min (nonempty_of_mem ha) ha) (hlt (hs.min (nonempty_of_mem ha))
601+
(hs.min_mem (nonempty_of_mem ha)) h)
602+
597603
end Preorder
598604

605+
section PartialOrder
606+
607+
variable [PartialOrder α] {s : Set α} {a : α}
608+
609+
theorem IsWF.min_eq_of_le (hs : s.IsWF) (ha : a ∈ s) (hle : ∀ b ∈ s, a ≤ b) :
610+
hs.min (nonempty_of_mem ha) = a :=
611+
(eq_of_le_of_not_lt (hle (hs.min (nonempty_of_mem ha))
612+
(hs.min_mem (nonempty_of_mem ha))) (hs.not_lt_min (nonempty_of_mem ha) ha)).symm
613+
614+
end PartialOrder
615+
599616
section LinearOrder
600617

601618
variable [LinearOrder α] {s t : Set α} {a : α}

Mathlib/RingTheory/HahnSeries/Basic.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,11 @@ theorem orderTop_eq_top_iff {x : HahnSeries Γ R} : orderTop x = ⊤ ↔ x = 0 :
248248
exact ne_zero_iff_orderTop.mp
249249
· simp_all only [orderTop_zero, implies_true]
250250

251+
theorem orderTop_eq_of_le {x : HahnSeries Γ R} {g : Γ} (hg : g ∈ x.support)
252+
(hx : ∀ g' ∈ x.support, g ≤ g') : orderTop x = g := by
253+
rw [orderTop_of_ne <| support_nonempty_iff.mp <| Set.nonempty_of_mem hg,
254+
x.isWF_support.min_eq_of_le hg hx]
255+
251256
theorem untop_orderTop_of_ne_zero {x : HahnSeries Γ R} (hx : x ≠ 0) :
252257
WithTop.untop x.orderTop (ne_zero_iff_orderTop.mp hx) =
253258
x.isWF_support.min (support_nonempty_iff.2 hx) :=

0 commit comments

Comments
 (0)