fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0
Set.exists_le_in_minLayer_of_le
Carleson.ToMathlib.MinLayer · Carleson/ToMathlib/MinLayer.lean:94 to 113
Mathematical statement
Exact Lean statement
lemma exists_le_in_minLayer_of_le (ha : a ∈ A.minLayer n) (hm : m ≤ n) :
∃ c ∈ A.minLayer m, c ≤ aComplete declaration
Lean source
Full Lean sourceLean 4
lemma exists_le_in_minLayer_of_le (ha : a ∈ A.minLayer n) (hm : m ≤ n) : ∃ c ∈ A.minLayer m, c ≤ a := by induction n, hm using Nat.le_induction generalizing a with | base => use a | succ n _ ih => have nma : a ∉ A.minLayer n := disjoint_right.mp (disjoint_minLayer_of_ne (by lia)) ha rw [minLayer, mem_setOf, minimal_iff] at ha nma have al : a ∈ A \ ⋃ (l < n), A.minLayer l := by have : a ∈ A \ ⋃ (k < n + 1), A.minLayer k := ha.1 push (_ ∈ _) at this ⊢; push Not at this ⊢ exact ⟨this.1, fun l hl h ↦ this.2 l (Nat.lt_succ_of_lt hl) h⟩ simp_rw [al, true_and] at nma; push Not at nma; obtain ⟨a', ha', la⟩ := nma have ma' : a' ∈ A.minLayer n := by by_contra h have a'l : a' ∈ A \ ⋃ (l < n + 1), A.minLayer l := by have : ∀ l, l < n + 1 ↔ l < n ∨ l = n := by lia simp_all [iUnion_or, iUnion_union_distrib] exact absurd (ha.2 a'l la.1) (ne_eq _ _ ▸ la.2) obtain ⟨c, mc, lc⟩ := ih ma'; use c, mc, lc.trans la.1