@@ -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+
297319end RCLike
0 commit comments