Skip to content

Commit 7ec892f

Browse files
committed
Update Separation.lean
1 parent b72c034 commit 7ec892f

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Mathlib/Analysis/LocallyConvex/Separation.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,26 @@ theorem iInter_halfSpaces_eq (hs₁ : Convex ℝ s) (hs₂ : IsClosed s) :
294294
obtain ⟨y, hy, hxy⟩ := hx l
295295
exact ((hxy.trans_lt (hlA y hy)).trans hl).false
296296

297+
theorem iInter_halfSpaces_eq' (hs₁ : Convex ℝ s) (hs₂ : IsClosed s) :
298+
⋂ (l : StrongDual 𝕜 E) (c : ℝ) (_ : ∀ y ∈ s, re (l y) ≤ c), { x | re (l x) ≤ c } = s := by
299+
simp_rw [Set.iInter_setOf]
300+
refine Set.Subset.antisymm (fun x hx => ?_) fun x hx l c hc => hc x hx
301+
by_contra h
302+
obtain ⟨l, c, hls, hl⟩ := geometric_hahn_banach_closed_point (𝕜 := 𝕜) hs₁ hs₂ h
303+
exact (hl.trans_le (hx l c (fun y hy ↦ (hls y hy).le))).false
304+
305+
theorem iInter_countable_halfSpaces_eq [HereditarilyLindelofSpace E]
306+
(hs₁ : Convex ℝ s) (hs₂ : IsClosed s) :
307+
∃ l : ℕ → StrongDual 𝕜 E, ∃ c : ℕ → ℝ, ⋂ n, { x | re (l n x) ≤ c n } = s := by
308+
set ι := Σ (l : StrongDual 𝕜 E), { c : ℝ // ∀ y ∈ s, re (l y) ≤ c }
309+
set l : ι → StrongDual 𝕜 E := fun lc ↦ lc.1
310+
set c : ι → ℝ := fun lc ↦ lc.2.val
311+
set hc : ∀ i, ∀ y ∈ s, re (l i y) ≤ c i := fun lc ↦ lc.2.prop
312+
have : Nonempty ι := ⟨0, 0, fun _ _ ↦ by simp⟩
313+
have : ⋂ i : ι, { x | re (l i x) ≤ c i } = s := by
314+
simpa only [ι, iInter_sigma, iInter_subtype, l, c] using iInter_halfSpaces_eq' hs₁ hs₂
315+
obtain ⟨k, hk⟩ := eq_closed_inter_nat (fun i : ι ↦ { x | re (l i x) ≤ c i })
316+
(fun i ↦ isClosed_le (continuous_re.comp (l i).continuous) continuous_const)
317+
exact ⟨l ∘ k, c ∘ k, hk.trans this⟩
318+
297319
end RCLike

0 commit comments

Comments
 (0)