-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathBasic.lean
More file actions
113 lines (88 loc) · 4.31 KB
/
Basic.lean
File metadata and controls
113 lines (88 loc) · 4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/-
Copyright (c) 2025 Oliver Butterley. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Oliver Butterley, Yoh Tanimoto
-/
module
public import Mathlib.MeasureTheory.VectorMeasure.Variation.Defs
/-!
# Properties of variation
We prove basic properties of `variation` for `μ : VectorMeasure X V` in `ENormedAddCommMonoid V` on
`MeasurableSpace X`. It is defined as the supremum over partitions `{Eᵢ}` of `E`, of the quantity
`∑ᵢ, ‖μ(Eᵢ)‖`. This definition allows one to define the integral against
such vector-valued measures.
## Main results
* `enorm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`.
* `variation_zero`: `(0 : VectorMeasure X V).variation = 0`.
* `variation_neg`: `(-μ).variation = μ.variation`.
* `absolutelyContinuous`: `μ ≪ᵥ μ.variation`.
## References
* [Walter Rudin, Real and Complex Analysis.][Rud87]
-/
public section
open Finset
open scoped ENNReal
namespace MeasureTheory.VectorMeasure
variable {X V : Type*} {mX : MeasurableSpace X}
[TopologicalSpace V] [ENormedAddCommMonoid V] [T2Space V]
@[simp]
lemma variation_apply (μ : VectorMeasure X V) (s : Set X) :
μ.variation s = preVariation (‖μ ·‖ₑ) (isSigmaSubadditiveSetFun_enorm μ) (by simp) s := rfl
@[simp]
lemma ennrealVariation_apply (μ : VectorMeasure X V) {s : Set X} (hs : MeasurableSet s) :
μ.ennrealVariation s = μ.variation s := Measure.toENNRealVectorMeasure_apply_measurable hs
/-- Measure version of `sum_le_preVariationFun_of_subset`. -/
lemma le_variation (μ : VectorMeasure X V) {s : Set X} (hs : MeasurableSet s) {P : Finset (Set X)}
(hP₁ : ∀ t ∈ P, t ⊆ s) (hP₂ : (P : Set (Set X)).PairwiseDisjoint id) :
∑ p ∈ P, ‖μ p‖ₑ ≤ μ.variation s := by
classical
set Q := Finpartition.ofPairwiseDisjoint P hP₂ with defQ
set Q' := Q.ofSubset (filter_subset MeasurableSet Q.parts) rfl with defQ'
have hQ' : ∀ t ∈ Q'.parts, t ⊆ s := by simp [Q', Q]; grind
calc
∑ p ∈ P, ‖μ p‖ₑ = ∑ p ∈ Q.parts, ‖μ p‖ₑ :=
(Finpartition.sum_ofPairwiseDisjoint_eq_sum hP₂ (by simp)).symm
_ = ∑ p ∈ Q'.parts, ‖μ p‖ₑ := (Q.sum_ofSubset_eq_sum _ _ _ (by simp_all)).symm
_ ≤ ∑ p ∈ (Q'.extendOfLE (Finset.sup_le hQ')).parts, ‖μ p‖ₑ :=
sum_le_sum_of_subset (Q'.parts_subset_extendOfLE (Finset.sup_le hQ'))
_ ≤ μ.variation s := by
simp only [variation_apply, preVariation_apply, ennrealToMeasure_apply hs,
ennrealPreVariation_apply]
apply preVariation.sum_le' (fun p => ‖μ p‖ₑ) hs
intro p hp
rcases Q'.mem_parts_or_eq_sdiff_of_mem_extendOfLE _ hp with h | rfl
· simp_all
simp only [sup_set_eq_biUnion, id_eq]
exact hs.diff <| .biUnion (Finset.countable_toSet _) (by simp)
theorem enorm_measure_le_variation (μ : VectorMeasure X V) (E : Set X) :
‖μ E‖ₑ ≤ variation μ E := by
by_cases hE : MeasurableSet E
swap; · simp [μ.not_measurable' hE]
by_cases hE' : (⟨E, hE⟩ : Subtype MeasurableSet) = ⊥
· simp_all
simp only [variation_apply, preVariation, ennrealToMeasure_apply hE, ennrealPreVariation_apply]
calc
‖μ E‖ₑ = ∑ p ∈ (Finpartition.indiscrete hE').parts, ‖μ p‖ₑ := by simp
_ ≤ preVariationFun (‖μ ·‖ₑ) E := by apply preVariation.sum_le
@[simp]
lemma variation_zero : (0 : VectorMeasure X V).variation = 0 := by
simp only [variation, coe_zero, Pi.zero_apply, enorm_zero]
exact preVariation_zero
@[simp]
lemma variation_neg {V : Type*} [NormedAddCommGroup V] (μ : MeasureTheory.VectorMeasure X V) :
(-μ).variation = μ.variation := by simp [variation]
lemma absolutelyContinuous (μ : VectorMeasure X V) : μ ≪ᵥ μ.ennrealVariation := by
intro s hs
by_cases hsm : MeasurableSet s
· suffices ‖μ s‖ₑ ≤ 0 by simp_all
grw [enorm_measure_le_variation, ← ennrealVariation_apply _ hsm, hs]
· exact μ.not_measurable' hsm
end MeasureTheory.VectorMeasure
section
open MeasureTheory VectorMeasure
variable {X V : Type*} {mX : MeasurableSpace X} [NormedAddCommGroup V] {μ : VectorMeasure X V}
theorem norm_measure_le_variation {E : Set X} (hE : μ.variation E ≠ ⊤) :
‖μ E‖ ≤ μ.variation.real E := by
rw [measureReal_def, ← toReal_enorm, ENNReal.toReal_le_toReal (enorm_ne_top) hE]
exact enorm_measure_le_variation μ E
end