@@ -233,3 +233,96 @@ protected lemma ConcaveOn.locallyLipschitz (hf : ConcaveOn ℝ univ f) : Locally
233233
234234-- proof_wanted ConcaveOn.continuousOn_intrinsicInterior (hf : ConcaveOn ℝ C f) :
235235-- ContinuousOn f (intrinsicInterior ℝ C)
236+
237+ section Intervals
238+
239+ lemma ConvexOn.continuousOn_Ici {f : ℝ → ℝ} {y : ℝ} (hf_cvx : ConvexOn ℝ (Ici y) f)
240+ (hf_cont : ContinuousWithinAt f (Ici y) y) :
241+ ContinuousOn f (Ici y) := by
242+ intro x hx
243+ rcases eq_or_lt_of_le (α := ℝ) hx with rfl | hxy
244+ · exact hf_cont
245+ · have h := hf_cvx.continuousOn_interior x
246+ simp only [nonempty_Iio, interior_Ici', mem_Ioi] at h
247+ rw [continuousWithinAt_iff_continuousAt (Ioi_mem_nhds hxy)] at h
248+ exact (h hxy).continuousWithinAt
249+
250+ lemma ConcaveOn.continuousOn_Ici {f : ℝ → ℝ} {y : ℝ} (hf_cnv : ConcaveOn ℝ (Ici y) f)
251+ (hf_cont : ContinuousWithinAt f (Ici y) y) :
252+ ContinuousOn f (Ici y) := by
253+ simpa using hf_cnv.neg.continuousOn_Ici hf_cont.neg
254+
255+ lemma ConvexOn.continuousOn_Iic {f : ℝ → ℝ} {y : ℝ} (hf_cvx : ConvexOn ℝ (Iic y) f)
256+ (hf_cont : ContinuousWithinAt f (Iic y) y) :
257+ ContinuousOn f (Iic y) := by
258+ intro x hx
259+ rcases eq_or_lt_of_le (α := ℝ) hx with rfl | hxy
260+ · exact hf_cont
261+ · have h := hf_cvx.continuousOn_interior x
262+ simp only [nonempty_Ioi, interior_Iic', mem_Iio] at h
263+ rw [continuousWithinAt_iff_continuousAt (Iio_mem_nhds hxy)] at h
264+ exact (h hxy).continuousWithinAt
265+
266+ lemma ConcaveOn.continuousOn_Iic {f : ℝ → ℝ} {y : ℝ} (hf_cnv : ConcaveOn ℝ (Iic y) f)
267+ (hf_cont : ContinuousWithinAt f (Iic y) y) :
268+ ContinuousOn f (Iic y) := by
269+ simpa using hf_cnv.neg.continuousOn_Iic hf_cont.neg
270+
271+ lemma ConvexOn.continuousOn_Ioc {f : ℝ → ℝ} {y z : ℝ} (hf_cvx : ConvexOn ℝ (Ioc y z) f)
272+ (hf_cont : ContinuousWithinAt f (Iic z) z) :
273+ ContinuousOn f (Ioc y z) := by
274+ intro x hx
275+ rcases eq_or_lt_of_le (α := ℝ) hx.2 with rfl | hxz
276+ · rw [continuousWithinAt_Ioc_iff_Iic hx.1 ]
277+ exact hf_cont
278+ · have h := hf_cvx.continuousOn_interior x
279+ simp only [interior_Ioc, mem_Ioo, hx.1 , hxz, and_self, forall_const] at h
280+ rw [continuousWithinAt_iff_continuousAt (Ioo_mem_nhds hx.1 hxz)] at h
281+ exact h.continuousWithinAt
282+
283+ lemma ConcaveOn.continuousOn_Ioc {f : ℝ → ℝ} {y z : ℝ} (hf_cnv : ConcaveOn ℝ (Ioc y z) f)
284+ (hf_cont : ContinuousWithinAt f (Iic z) z) :
285+ ContinuousOn f (Ioc y z) := by
286+ simpa using hf_cnv.neg.continuousOn_Ioc hf_cont.neg
287+
288+ lemma ConvexOn.continuousOn_Ico {f : ℝ → ℝ} {y z : ℝ} (hf_cvx : ConvexOn ℝ (Ico y z) f)
289+ (hf_cont : ContinuousWithinAt f (Ici y) y) :
290+ ContinuousOn f (Ico y z) := by
291+ intro x hx
292+ rcases eq_or_lt_of_le (α := ℝ) hx.1 with rfl | hyx
293+ · rw [continuousWithinAt_Ico_iff_Ici hx.2 ]
294+ exact hf_cont
295+ · have h := hf_cvx.continuousOn_interior x
296+ simp only [interior_Ico, mem_Ioo, hyx, hx.2 , and_self, forall_const] at h
297+ rw [continuousWithinAt_iff_continuousAt (Ioo_mem_nhds hyx hx.2 )] at h
298+ exact h.continuousWithinAt
299+
300+ lemma ConcaveOn.continuousOn_Ico {f : ℝ → ℝ} {y z : ℝ} (hf_cnv : ConcaveOn ℝ (Ico y z) f)
301+ (hf_cont : ContinuousWithinAt f (Ici y) y) :
302+ ContinuousOn f (Ico y z) := by
303+ simpa using hf_cnv.neg.continuousOn_Ico hf_cont.neg
304+
305+ lemma ConvexOn.continuousOn_Icc {f : ℝ → ℝ} {y z : ℝ} (hf_cvx : ConvexOn ℝ (Icc y z) f)
306+ (hyz : y < z)
307+ (hfy : ContinuousWithinAt f (Ici y) y) (hfz : ContinuousWithinAt f (Iic z) z) :
308+ ContinuousOn f (Icc y z) := by
309+ suffices ContinuousOn f (Ico y z) ∧ ContinuousOn f (Ioc y z) by
310+ intro x hx
311+ rcases eq_or_lt_of_le (α := ℝ) hx.1 with rfl | hyx
312+ · exact hfy.mono (by grind)
313+ rcases eq_or_lt_of_le (α := ℝ) hx.2 with rfl | hxz
314+ · exact hfz.mono (by grind)
315+ have hx := this.1 x (by grind)
316+ rw [continuousWithinAt_iff_continuousAt (Ico_mem_nhds hyx hxz)] at hx
317+ exact hx.continuousWithinAt
318+ refine ⟨ConvexOn.continuousOn_Ico ?_ hfy, ConvexOn.continuousOn_Ioc ?_ hfz⟩
319+ · exact hf_cvx.subset Ico_subset_Icc_self (convex_Ico y z)
320+ · exact hf_cvx.subset Ioc_subset_Icc_self (convex_Ioc y z)
321+
322+ lemma ConcaveOn.continuousOn_Icc {f : ℝ → ℝ} {y z : ℝ} (hf_cnv : ConcaveOn ℝ (Icc y z) f)
323+ (hyz : y < z)
324+ (hfy : ContinuousWithinAt f (Ici y) y) (hfz : ContinuousWithinAt f (Iic z) z) :
325+ ContinuousOn f (Icc y z) := by
326+ simpa using hf_cnv.neg.continuousOn_Icc hyz hfy.neg hfz.neg
327+
328+ end Intervals
0 commit comments