@@ -3,10 +3,9 @@ Copyright (c) 2024 Yoh Tanimoto. All rights reserved.
33Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Yoh Tanimoto, Oliver Butterley
55-/
6+ import Mathlib.MeasureTheory.Integral.Bochner.ContinuousLinearMap
67import Mathlib.MeasureTheory.Integral.RieszMarkovKakutani.Basic
7- import Mathlib.MeasureTheory.Integral.Bochner.Set
88import Mathlib.Order.Interval.Set.Union
9- import Mathlib.Algebra.Order.Module.PositiveLinearMap
109
1110/-!
1211# Riesz–Markov–Kakutani representation theorem for real-linear functionals
@@ -23,6 +22,8 @@ continuous functions have compact support.
2322* `RealRMK.rieszMeasure`: the measure induced by a real linear positive functional.
2423* `RealRMK.integral_rieszMeasure`: the Riesz–Markov–Kakutani representation theorem for a real
2524 linear positive functional.
25+ * `RealRMK.eq_of_integral_eq_on_Cc`: the uniqueness of the representing measure in the
26+ Riesz–Markov–Kakutani representation theorem.
2627
2728 ## Implementation notes
2829
@@ -339,4 +340,127 @@ theorem integral_rieszMeasure (f : C_c(X, ℝ)) : ∫ x, f x ∂(rieszMeasure Λ
339340 -- prove the inequality for `f`
340341 · exact integral_riesz_aux Λ f
341342
343+ lemma compare_measure_of_compact_sets {μ ν : Measure X} [Measure.OuterRegular ν]
344+ [MeasureTheory.IsFiniteMeasureOnCompacts ν] [MeasureTheory.IsFiniteMeasureOnCompacts μ]
345+ (hμν : ∀ (f : C_c(X, ℝ)), ∫ (x : X), f x ∂μ = ∫ (x : X), f x ∂ν) :
346+ ∀ K, IsCompact K → μ K ≤ ν K := by
347+ intro K hK
348+ apply ENNReal.le_of_forall_pos_le_add
349+ intro ε hε hν
350+ have lem1 : μ K ≠ ⊤ := by
351+ rw [← lt_top_iff_ne_top]
352+ exact MeasureTheory.IsFiniteMeasureOnCompacts.lt_top_of_isCompact hK
353+ have lem2 : ν K ≠ ⊤ := by rw [← lt_top_iff_ne_top]; exact hν
354+ rw [← ENNReal.coe_toNNReal lem1, ← ENNReal.coe_toNNReal lem2,
355+ ← ENNReal.coe_add, ENNReal.coe_le_coe, ← NNReal.coe_le_coe,
356+ NNReal.coe_add, ← ENNReal.toReal, ← ENNReal.toReal]
357+ have hV : ∃ V ⊇ K, IsOpen V ∧ ν V ≤ ν K + ε := by
358+ exact Set.exists_isOpen_le_add K ν (ne_of_gt (ENNReal.coe_lt_coe.mpr hε))
359+ rcases hV with ⟨V, pV1, pV2, pV3⟩
360+ have VltTop : ν V < ⊤ := by
361+ apply lt_of_le_of_lt
362+ · exact pV3
363+ · rw [WithTop.add_lt_top]; constructor
364+ · exact hν
365+ · exact ENNReal.coe_lt_top
366+ have hf : ∃ (f : C_c(X, ℝ)), Set.EqOn (⇑f) 1 K ∧ tsupport ⇑f ⊆ V
367+ ∧ ∀ (x : X), f x ∈ Set.Icc 0 1 := by
368+ exact exists_continuous_one_of_compact_subset_open hK pV2 pV1
369+ rcases hf with ⟨f, pf1, pf2, pf3⟩
370+ calc
371+ (μ K).toReal
372+ = μ.real K := by rw [measureReal_def]
373+ _ = ∫ (x : X), K.indicator 1 x ∂μ :=
374+ (integral_indicator_one (μ := μ) (IsCompact.measurableSet hK)).symm
375+ _ ≤ ∫ (x : X), (f x : ℝ) ∂μ := by
376+ apply integral_mono
377+ · apply IntegrableOn.integrable_indicator
378+ · apply ContinuousOn.integrableOn_compact hK continuousOn_const
379+ · exact IsCompact.measurableSet hK
380+ · exact Continuous.integrable_of_hasCompactSupport f.1 .2 f.2
381+ · intro x
382+ classical
383+ obtain (hA | hB) := @or_not (x ∈ K)
384+ · simp [hA, pf1 hA]
385+ · simp [hB, (pf3 x).1 ]
386+ _ = ∫ (x : X), (f x : ℝ) ∂ν := by exact hμν f
387+ _ ≤ ∫ (x : X), V.indicator 1 x ∂ν := by
388+ apply integral_mono
389+ · exact Continuous.integrable_of_hasCompactSupport f.1 .2 f.2
390+ · apply IntegrableOn.integrable_indicator
391+ · apply (integrableOn_const_iff (by finiteness)).mpr
392+ exact Or.inr VltTop
393+ · exact IsOpen.measurableSet pV2
394+ · intro x
395+ classical
396+ obtain (hA | hB) := @or_not (x ∈ V)
397+ · simp [hA, (pf3 x).2 ]
398+ · simp only [hB, not_false_eq_true, Set.indicator_of_notMem]
399+ exact le_of_eq (image_eq_zero_of_notMem_tsupport (Set.notMem_subset pf2 hB))
400+ _ = ν.real V := integral_indicator_one (IsOpen.measurableSet pV2)
401+ _ = (ν V).toReal := by rw [measureReal_def]
402+ _ ≤ (ν K).toReal + ↑ε := by
403+ rw [ENNReal.toReal, ENNReal.toReal, ← NNReal.coe_add,
404+ NNReal.coe_le_coe, ← ENNReal.coe_le_coe, ENNReal.coe_add,
405+ ENNReal.coe_toNNReal lem2, ENNReal.coe_toNNReal (ne_of_lt VltTop)]
406+ exact pV3
407+
408+ /-- If two regular measures give the same integral for every function in `C_c(X, ℝ)`,
409+ then they are equal. -/
410+ theorem eq_of_integral_eq_on_Cc {μ ν : Measure X} [Measure.Regular μ] [Measure.Regular ν]
411+ (hμν : ∀ (f : C_c(X, ℝ)), ∫ (x : X), f x ∂μ = ∫ (x : X), f x ∂ν) : μ = ν := by
412+ apply Measure.OuterRegular.eq_of_eq_on_isOpen
413+ apply Measure.InnerRegularWRT.eq_on_q_of_eq_on_p
414+ · exact Measure.Regular.innerRegular
415+ · exact Measure.Regular.innerRegular
416+ · intro K hK
417+ apply le_antisymm
418+ · exact compare_measure_of_compact_sets hμν K hK
419+ · exact compare_measure_of_compact_sets (fun f ↦ (hμν f).symm) K hK
420+
421+ /-- Let μ be a measure that is finite on compact sets. Then μ induces a positive
422+ linear functional on C_c(X, ℝ). -/
423+ noncomputable def integralPositiveLinearMap (μ : Measure X) [OpensMeasurableSpace X]
424+ [MeasureTheory.IsFiniteMeasureOnCompacts μ] : C_c(X, ℝ) →ₚ[ℝ] ℝ := by
425+ refine PositiveLinearMap.mk₀ ?_ ?_
426+ · refine ⟨⟨fun f ↦ ∫ (x : X), f x ∂μ, ?_⟩, ?_⟩
427+ · intro f g
428+ simp only [CompactlySupportedContinuousMap.coe_add, Pi.add_apply]
429+ refine integral_add' ?_ ?_
430+ · exact Continuous.integrable_of_hasCompactSupport f.1 .2 f.2
431+ · exact Continuous.integrable_of_hasCompactSupport g.1 .2 g.2
432+ · intro c f
433+ simp only [RingHom.id_apply]
434+ apply integral_const_mul_of_integrable
435+ exact Continuous.integrable_of_hasCompactSupport f.1 .2 f.2
436+ · intro f hf
437+ simp only [LinearMap.coe_mk, AddHom.coe_mk]
438+ exact integral_nonneg hf
439+
440+ /-- If two regular measures induce the same positive linear functional on `C_c(X, ℝ)`,
441+ then they are equal. -/
442+ theorem eq_of_eq_integralPositiveLinearMap {μ ν : Measure X}
443+ [Measure.Regular μ] [Measure.Regular ν]
444+ (hμν : integralPositiveLinearMap μ = integralPositiveLinearMap ν) : μ = ν := by
445+ apply eq_of_integral_eq_on_Cc
446+ intro f
447+ simp only [integralPositiveLinearMap, PositiveLinearMap.mk₀, PositiveLinearMap.mk.injEq,
448+ LinearMap.mk.injEq, AddHom.mk.injEq] at hμν
449+ exact congr_fun hμν f
450+
451+ /-The Riesz measure induced by a positive linear functional on `C_c(X, ℝ)` is regular.-/
452+ instance rieszMeasure_regular (Λ : C_c(X, ℝ) →ₚ[ℝ] ℝ) : (rieszMeasure Λ).Regular :=
453+ Content.regular (rieszContent (CompactlySupportedContinuousMap.toNNRealLinear Λ))
454+
455+ /-- RealRMK.rieszMeasure is a surjective function. That is, every regular measure is induced by a
456+ positive linear functional on `C_c(X, ℝ)`. -/
457+ theorem rieszMeasure_surjective {μ : Measure X} [Measure.Regular μ] :
458+ μ = rieszMeasure (integralPositiveLinearMap μ) := by
459+ apply eq_of_integral_eq_on_Cc
460+ intro f
461+ trans (integralPositiveLinearMap μ) f
462+ · simp [integralPositiveLinearMap]
463+ rfl
464+ · exact (integral_rieszMeasure (integralPositiveLinearMap μ) f).symm
465+
342466end RealRMK
0 commit comments