Zulip Chat Archive

Stream: mathlib4

Topic: Explicitly invoking the well-ordering principle


Jeremy Tan (Aug 01 2024 at 16:06):

Surely there's a theorem in mathlib for this, but library_search can't find it

lemma well_ordering_principle (s : Set ) (h : s.Nonempty) :  a  s,  b  s, a  b := by
  sorry

Where is it?

Jeremy Tan (Aug 01 2024 at 16:11):

This came up in the Carleson project (my code):

lemma antichain_decomposition_exists_k (h : p  𝔓pos (X := X)  𝔓₁) :  k, p  TilesAt k := by
  let C : Set  := {k | 𝓘 p  aux𝓒 k}
  have Cn : C.Nonempty := by
    rw [mem_inter_iff, 𝔓pos, mem_setOf] at h
    have vpos : 0 < volume (G  𝓘 p) := by
      rw [inter_comm]; exact h.1.trans_le (measure_mono inter_subset_left)
    obtain k, hk := exists_mem_aux𝓒 vpos; exact ⟨_, hk
  -- Then use the well-ordering principle to get `C`'s smallest element `s`. It can't be 0.
  -- So `p ∉ aux𝓒 (s - 1)` and `p ∈ TilesAt s`.
  sorry

Yaël Dillies (Aug 01 2024 at 16:14):

docs#WellFounded.min

Jireh Loreaux (Aug 01 2024 at 16:17):

And in particular docs#WellFounded.min_le

Yury G. Kudryashov (Aug 01 2024 at 17:53):

Also docs#Nat.sInf_mem and docs#csInf_le'

Yury G. Kudryashov (Aug 01 2024 at 17:54):

Or just docs#isLeast_csInf

Kevin Buzzard (Aug 04 2024 at 19:25):

Also note docs#Nat.find


Last updated: May 02 2025 at 03:31 UTC