Skip to content

Commit f8e5374

Browse files
committed
feat(MeasureTheory): triangle inequality for the variation of vector measures (#39103)
We show that the variation of vector measures satisfies the triangle inequality. As an application, we show that integrals are additive in vector measures and bilinear forms in #30230. Coauthored by @yoh-tanimoto. Created with the help of Codex.
1 parent 1b6d405 commit f8e5374

1 file changed

Lines changed: 38 additions & 2 deletions

File tree

  • Mathlib/MeasureTheory/VectorMeasure/Variation

Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ variable {X V : Type*} {mX : MeasurableSpace X}
3939

4040
section Basic
4141

42-
variable [TopologicalSpace V] [ENormedAddCommMonoid V] [T2Space V]
42+
variable [TopologicalSpace V] [ENormedAddCommMonoid V] [T2Space V] {μ ν : VectorMeasure X V}
4343

4444
@[simp]
4545
lemma variation_apply (μ : VectorMeasure X V) (s : Set X) :
@@ -96,11 +96,44 @@ lemma absolutelyContinuous (μ : VectorMeasure X V) : μ ≪ᵥ μ.ennrealVariat
9696
grw [enorm_measure_le_variation, ← ennrealVariation_apply _ hsm, hs]
9797
· exact μ.not_measurable' hsm
9898

99+
lemma variation_le_of_forall_enorm_le {m : Measure X} (h : ∀ E, MeasurableSet E → ‖μ E‖ₑ ≤ m E) :
100+
μ.variation ≤ m := by
101+
refine Measure.le_intro fun s hs _ => ?_
102+
simp only [variation_apply, preVariation, ennrealToMeasure_apply hs, ennrealPreVariation_apply,
103+
preVariationFun, hs, dite_true, iSup_le_iff]
104+
intro i
105+
calc
106+
∑ x ∈ i.parts, ‖μ x‖ₑ ≤ ∑ x ∈ i.parts, m x := Finset.sum_le_sum (fun s hs => h s s.property)
107+
_ = m (i.parts.sup Subtype.val) := by
108+
rw [sup_set_eq_biUnion]
109+
refine (MeasureTheory.measure_biUnion_finset ?_ fun b _ => b.property).symm
110+
intro a ha b hb hab
111+
simpa [disjoint_iff, Subtype.ext_iff] using i.disjoint ha hb hab
112+
_ ≤ m s := by
113+
rw [sup_set_eq_biUnion]
114+
exact measure_mono <| Set.iUnion₂_subset fun _ hp => Subtype.coe_le_coe.mpr (i.le hp)
115+
116+
lemma variation_add_le [ContinuousAdd V] : variation (μ + ν) ≤ variation μ + variation ν := by
117+
refine variation_le_of_forall_enorm_le fun E _ => ?_
118+
calc
119+
_ ≤ ‖μ E‖ₑ + ‖ν E‖ₑ := enorm_add_le _ _
120+
_ ≤ μ.variation E + ν.variation E := by
121+
gcongr <;> exact enorm_measure_le_variation _ E
122+
123+
lemma variation_finsetSum_le [ContinuousAdd V] {ι} (s : Finset ι) (μ : ι → VectorMeasure X V) :
124+
(∑ i ∈ s, μ i).variation ≤ ∑ i ∈ s, (μ i).variation := by
125+
classical
126+
induction s using Finset.induction_on with
127+
| empty => simp
128+
| insert i s his ih =>
129+
simpa [Finset.sum_insert his] using
130+
variation_add_le.trans (add_le_add_right ih ((μ i).variation))
131+
99132
end Basic
100133

101134
section NormedAddCommGroup
102135

103-
variable [NormedAddCommGroup V] {μ : VectorMeasure X V}
136+
variable [NormedAddCommGroup V] {μ ν : VectorMeasure X V}
104137

105138
theorem norm_measure_le_variation {E : Set X} (hE : μ.variation E ≠ ∞ := by finiteness) :
106139
‖μ E‖ ≤ μ.variation.real E := by
@@ -111,6 +144,9 @@ variable (μ) in
111144
@[simp]
112145
lemma variation_neg : (-μ).variation = μ.variation := by simp [variation]
113146

147+
lemma variation_sub_le : (μ - ν).variation ≤ μ.variation + ν.variation := by
148+
grw [sub_eq_add_neg, variation_add_le, variation_neg]
149+
114150
end NormedAddCommGroup
115151

116152
end MeasureTheory.VectorMeasure

0 commit comments

Comments
 (0)