-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat(MeasureTheory/VectorMeasure): add integral of a vector-valued function against a vector measure #28499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yoh-tanimoto
wants to merge
124
commits into
leanprover-community:master
Choose a base branch
from
yoh-tanimoto:yoh-tanimoto-vectormeasure-integral
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+274
−0
Open
feat(MeasureTheory/VectorMeasure): add integral of a vector-valued function against a vector measure #28499
Changes from 119 commits
Commits
Show all changes
124 commits
Select commit
Hold shift + click to select a range
21aae86
Draft version
oliver-butterley e2b20d9
trim imports
oliver-butterley e009f64
Revert "trim imports"
oliver-butterley 5a390b5
Filter.Tendsto.enorm'
oliver-butterley bed1aa6
enorm_prod_le_of_le
oliver-butterley 6ab2d07
enorm_tsum_le_tsum_enorm
oliver-butterley 5b2e24d
explicit
oliver-butterley c3793f3
comment in docstring
oliver-butterley 9bb3663
Merge commit 'c3793f3be149421e18bf18df612a438b9762b7e2' into oliver-b…
oliver-butterley 6dc88ea
clean
oliver-butterley c5f96a0
Reduced assumptions
oliver-butterley 730777a
variation_of_ENNReal
oliver-butterley d456743
variation_SignedMeasure placeholder
oliver-butterley ddebcc7
isInnerPart_of_empty
oliver-butterley dcdbbb6
isInnerPart_self
oliver-butterley 0861ff7
isInnerPart_monotone
oliver-butterley e2bf357
variables
oliver-butterley eb4d4a6
placeholder statements
oliver-butterley 4321c77
isInnerPart_iUnion
oliver-butterley 81af146
isInnerPart_of_disjoint
oliver-butterley 9f65dbb
restriction_isInnerPart
oliver-butterley 6193c13
supPartSum_empty'
oliver-butterley 729dd8b
supSumPart_lt
oliver-butterley a2eab8f
supSumPart_le
oliver-butterley a2e614f
le_supSumPart
oliver-butterley 8a4209e
notes
oliver-butterley 22b45b5
var_aux
oliver-butterley 4b5b63b
sum_part_le_tsum_sum_part
oliver-butterley 5d7a442
sum_part_le_tsum_sum_part
oliver-butterley 57c8cb8
isSubadditive_enorm_measure
oliver-butterley e6a0a9c
update toolchain to v4.20.1-rc1
kim-em 0f91010
le_var_aux_iUnion
oliver-butterley 4345cfa
le_var_aux_iUnion'
oliver-butterley 5c0c94b
chore: bump toolchain to v4.20.1
Vierkantor 1f0a3a0
sum_le_tsum'
oliver-butterley 8c272eb
variation
oliver-butterley f2dd655
clean
oliver-butterley c15b5f4
norm_measure_le_variation
oliver-butterley a185aaa
variation μ = μ
oliver-butterley 42bcdea
Merge commit '5c0c94b3f563ed756b48b9439788c53b0d56a897' into oliver-b…
oliver-butterley 50cb736
correction
oliver-butterley 2df1c9a
correction
oliver-butterley db8204f
Revert "Merge commit '5c0c94b3f563ed756b48b9439788c53b0d56a897' into …
oliver-butterley bb83c81
Revert "correction"
oliver-butterley 2bf838d
Revert "correction"
oliver-butterley 0bb1903
Merge branch 'master' into oliver-butterley/Variation
oliver-butterley 58fdd28
correcting merge
oliver-butterley 5176426
correcting
oliver-butterley 9195b21
correction
oliver-butterley 564d3df
correction
oliver-butterley 029e12d
correction
oliver-butterley 1a2c0a7
correction
oliver-butterley 0ab31cc
comments
oliver-butterley aef3011
few improvements
oliver-butterley 5e13065
monotone_of_ENNReal
oliver-butterley 48366cf
🎨
oliver-butterley b38d025
biUnion_Finset
oliver-butterley 77b6624
docstring
oliver-butterley 7045c0b
improved ENNReal.sum_le_tsum'
oliver-butterley e7263bf
variation_SignedMeasure overview
oliver-butterley d25afb6
le_variation'
oliver-butterley 4bb84db
to do
oliver-butterley 8e49d8c
comments
oliver-butterley 32fe360
variation_SignedMeasure (hard direction done)
oliver-butterley 508063e
to do
oliver-butterley 71b720e
μ (s ∩ p) - μ (sᶜ ∩ p)
oliver-butterley 5da1d5b
sketch of proof with sign error
oliver-butterley 76e18b0
|μ p| ≤ μ (s ∩ p) - μ (sᶜ ∩ p)
oliver-butterley 78ade6e
messy but close
oliver-butterley 5dbc563
no sorry (but huge mess at the end)
oliver-butterley 11f5917
few refinements
oliver-butterley a955336
Merge branch 'master' into oliver-butterley/Variation
oliver-butterley 09de77d
mk_all
oliver-butterley 91650e3
comment
oliver-butterley c374b13
remove have
oliver-butterley 51aecd1
refine imports
oliver-butterley e2af081
remove variation'
oliver-butterley 88dca42
`signedMeasure_totalVariation_eq`
oliver-butterley f22bdf4
organize more
oliver-butterley f6925f3
μ ≪ᵥ μ.variation
oliver-butterley 0b8fadf
missed simp
oliver-butterley 34ec607
spaces, etc
oliver-butterley cb405ec
absolutelyContinuous
oliver-butterley e7470a7
min-imports
oliver-butterley 8aa4fb2
Merge branch 'master' into oliver-butterley/Variation
oliver-butterley 40e0068
divide file
oliver-butterley a32ee53
update Mathlib.lean
oliver-butterley c574aa9
Polar decomposition
oliver-butterley 235a27f
Merge branch 'master' into oliver-butterley/Variation
oliver-butterley 3112096
reduce to defs
oliver-butterley 69a078b
update imports
oliver-butterley 75eb79d
reduce lemmas
oliver-butterley fe224e4
update imports
oliver-butterley 9eacf04
Merge commit '69a078bb703e8914d89ec793fff6fd5359dd2c3d' into variatio…
oliver-butterley 7ba4d1e
update imports
oliver-butterley 168264c
add lemma
oliver-butterley ebbea8c
correct problems
oliver-butterley e8b25e8
summary
oliver-butterley 04a2211
remove #
oliver-butterley 78a4894
Merge commit '04a22113d4d97aee5df8d4997a8c6a519046820b' into variatio…
oliver-butterley acc231c
update mathlib.lean
oliver-butterley d3f8231
Merge remote-tracking branch 'oliver-butterley/variation-lemmas-1' in…
yoh-tanimoto 78f133d
Create Integral.lean
yoh-tanimoto 6aae6ca
Update Mathlib.lean
yoh-tanimoto 59bb59b
rename
yoh-tanimoto b3073df
remove duplicate
yoh-tanimoto af44b78
add docstrings
yoh-tanimoto 825a92b
docstring, `withParing.integral` as CLM
yoh-tanimoto 22ceb53
linter
yoh-tanimoto addc0ed
Merge remote-tracking branch 'upstream/master' into yoh-tanimoto-vect…
yoh-tanimoto fc4b26b
Merge branch 'master' into yoh-tanimoto-vectormeasure-integral
yoh-tanimoto 3df6d4c
Update Defs.lean
yoh-tanimoto 0610d69
adapt merge master
yoh-tanimoto 3f1be56
Update Lemmas.lean
yoh-tanimoto f752977
module
yoh-tanimoto 627162d
Merge branch 'master' into yoh-tanimoto-vectormeasure-integral
yoh-tanimoto 5537595
remove lemmas.lean
yoh-tanimoto 99e0f35
Update Integral.lean
yoh-tanimoto cb58ecf
Update Integral.lean
yoh-tanimoto 3d6f285
Apply suggestions from code review
yoh-tanimoto 3040edc
rename, add lemma
yoh-tanimoto f8a9dc7
change definition (the reference measure)
yoh-tanimoto 8698921
docstring, remove `CompleteSpace G`
yoh-tanimoto 8a76c1f
Merge branch 'master' into yoh-tanimoto-vectormeasure-integral
yoh-tanimoto File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,208 @@ | ||
| /- | ||
| Copyright (c) 2025 Yoh Tanimoto. All rights reserved. | ||
| Released under Apache 2.0 license as described in the file LICENSE. | ||
| Authors: Yoh Tanimoto | ||
| -/ | ||
| module | ||
|
|
||
| public import Mathlib.Analysis.InnerProductSpace.Basic | ||
| public import Mathlib.MeasureTheory.Integral.SetToL1 | ||
| public import Mathlib.MeasureTheory.VectorMeasure.Variation.Basic | ||
|
|
||
| /-! | ||
| # Integral of vector-valued function against vector measure | ||
|
|
||
| We extend the definition of the Bochner integral (of vector-valued function against `ℝ≥0∞`-valued | ||
| measure) to vector measures through a bilinear pairing. | ||
| Let `E`, `F` be normed vector spaces, and `G` be a Banach space (complete normed vector space). | ||
| We fix a continuous linear pairing `B : E →L[ℝ] F →L[ℝ] → G` and an `F`-valued vector measure `μ` | ||
| on a measurable space `α`. | ||
| The vector measure `μ` gives the total variation measure `μ.totalvariation` on `α`. | ||
| For an L1 function `f : α → E` with respect to this total variation measure, | ||
| we define the `G`-valued integral, which is informally written `∫ B (f x) ∂μ x`. | ||
|
|
||
| The pairing integral is defined through the general setting `setToL1` which sends a set function to | ||
| a continuous linear map on the type of L1 functions, see the file | ||
| `Mathlib/MeasureTheory/Integral/SetToL1.lean`. | ||
|
|
||
| ## Main definitions | ||
|
|
||
| The pairing integral is defined through the extension process described in the file | ||
| `Mathlib/MeasureTheory/Integral/SetToL1.lean`, which follows these steps: | ||
|
|
||
| 1. Define the integral of the indicator of a set. This is `weightedVectorSMul B μ s x = B x (μ s)`. | ||
| `weightedVectorSMul B μ` is shown to be linear in the value `x` and `DominatedFinMeasAdditive` | ||
| (defined in the file `Mathlib/MeasureTheory/Integral/SetToL1.lean`) with respect to the set `s`. | ||
|
|
||
| 2. Define the structure `VectorMeasureWithPairing`, combining a pairing of two normed vector spaces | ||
| and a vector measure. | ||
|
|
||
| 3. Define the pairing integral on L1 functions `f` as `setToL1 (...) f`. Note that, differently | ||
| from the definition of Bochner integral, here `setToL1` is already a continuous linear map from | ||
| L1 functions, not from step functions. | ||
|
|
||
| ## Note | ||
|
|
||
| Let be `Bμ : VectorMeasureWithPairing`. | ||
| We often consider L1 functions with respect to the total variation of `Bμ.vectorMeasure`: | ||
| * `α →₁[Bμ.vectorMeasure.variation] E` : `E`-valued functions in L1 space. | ||
|
|
||
| -/ | ||
|
|
||
| @[expose] public section | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| open ENNReal Set MeasureTheory VectorMeasure ContinuousLinearMap | ||
|
|
||
| namespace MeasureTheory | ||
|
|
||
| section weightedVectorSMul | ||
|
|
||
| variable {α E F G : Type*} [MeasurableSpace α] | ||
| [NormedAddCommGroup E] [NormedSpace ℝ E] | ||
| [NormedAddCommGroup F] [NormedSpace ℝ F] | ||
| [NormedAddCommGroup G] [NormedSpace ℝ G] | ||
| (B : E →L[ℝ] F →L[ℝ] G) (μ : VectorMeasure α F) | ||
|
|
||
| /-- Given a set `s`, return the continuous linear map `fun x : E => B x (μ s)`, where the `B` is a | ||
| `G`-valued bilinear form on `E` `F` and `μ` is an `F`-valued vector measure. The extension of that | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| set function through `setToL1` gives the pairing integral of L1 functions. -/ | ||
| noncomputable def weightedVectorSMul (s : Set α) : E →L[ℝ] G where | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| toFun x := B x (μ s) | ||
| map_add' _ _ := map_add₂ B _ _ (μ s) | ||
| map_smul' _ _ := map_smulₛₗ₂ B _ _ (μ s) | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| @[simp] | ||
| theorem weightedVectorSMul_apply (s : Set α) (x : E) : weightedVectorSMul B μ s x = B x (μ s) := rfl | ||
|
|
||
| theorem weightedVectorSMul_union (s t : Set α) (hs : MeasurableSet s) (ht : MeasurableSet t) | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| (hdisj : Disjoint s t) : | ||
| weightedVectorSMul B μ (s ∪ t) = weightedVectorSMul B μ s + weightedVectorSMul B μ t := by | ||
| ext x | ||
| simp only [weightedVectorSMul_apply, ContinuousLinearMap.add_apply, ← (B x).map_add] | ||
| congr | ||
| exact of_union hdisj hs ht | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| theorem norm_weightedVectorSMul_le (s : Set α) : | ||
| ‖(weightedVectorSMul B μ s : E →L[ℝ] G)‖ ≤ ‖B‖ * ‖μ s‖ := by | ||
| rw [ContinuousLinearMap.opNorm_le_iff (mul_nonneg (norm_nonneg B) (norm_nonneg (μ s)))] | ||
| intro x | ||
| simp only [weightedVectorSMul_apply] | ||
| apply le_trans (le_opNorm (B x) (μ s)) | ||
| rw [mul_assoc, mul_comm _ ‖x‖, ← mul_assoc] | ||
| gcongr | ||
| exact le_opNorm B x | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| theorem dominatedFinMeasAdditive_weightedVectorSMul : | ||
| DominatedFinMeasAdditive (μ.variation) | ||
| (weightedVectorSMul B μ : Set α → E →L[ℝ] G) ‖B‖ := by | ||
| refine ⟨fun s t hs ht _ _ hdisj => weightedVectorSMul_union B μ s t hs ht hdisj, ?_⟩ | ||
| intro s hs hsf | ||
| apply (fun s _ _ => (norm_weightedVectorSMul_le B μ s).trans) | ||
| gcongr | ||
| rw [Measure.real, ← ofReal_le_iff_le_toReal (LT.lt.ne_top hsf), ofReal_norm] | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| exact enorm_measure_le_variation μ s | ||
|
|
||
| end weightedVectorSMul | ||
|
|
||
| open SimpleFunc L1 | ||
|
|
||
| section | ||
|
|
||
| variable (α E F G : Type*) [MeasurableSpace α] | ||
| [NormedAddCommGroup E] [NormedSpace ℝ E] | ||
| [NormedAddCommGroup F] [NormedSpace ℝ F] | ||
| [NormedAddCommGroup G] [NormedSpace ℝ G] [CompleteSpace G] | ||
|
|
||
| /-- The structure containing a continuous linear pairing and a vector measure, | ||
| enabling the dot notation `VectorMeasureWithParing.integral`. -/ | ||
| structure VectorMeasureWithPairing where | ||
| /-- A continuous linear pairing from `E` `F` into a Banach space `G`. -/ | ||
| pairing : E →L[ℝ] F →L[ℝ] G | ||
| /-- An `F`-valued vector measure. -/ | ||
| vectorMeasure : VectorMeasure α F | ||
|
|
||
| end | ||
|
|
||
| namespace VectorMeasureWithPairing | ||
|
|
||
| variable {α E F G : Type*} [MeasurableSpace α] | ||
| [NormedAddCommGroup E] [NormedSpace ℝ E] | ||
| [NormedAddCommGroup F] [NormedSpace ℝ F] | ||
| [NormedAddCommGroup G] [NormedSpace ℝ G] [CompleteSpace G] | ||
| (Bμ : VectorMeasureWithPairing α E F G) | ||
|
|
||
| /-- The pairing integral in L1 space as a continuous linear map. -/ | ||
| noncomputable def integral : (α →₁[Bμ.vectorMeasure.variation] E) →L[ℝ] G := | ||
yoh-tanimoto marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| setToL1 (dominatedFinMeasAdditive_weightedVectorSMul Bμ.pairing Bμ.vectorMeasure) | ||
|
|
||
| @[integral_simps] | ||
| theorem integral_add (f g : α →₁[Bμ.vectorMeasure.variation] E) : | ||
| Bμ.integral (f + g) = Bμ.integral f + Bμ.integral g := by | ||
| simp [integral] | ||
|
|
||
| @[integral_simps] | ||
| theorem integral_neg (f : α →₁[Bμ.vectorMeasure.variation] E) : | ||
| Bμ.integral (-f) = -Bμ.integral f := by | ||
| simp [integral] | ||
|
|
||
| @[integral_simps] | ||
| theorem integral_sub (f g : α →₁[Bμ.vectorMeasure.variation] E) : | ||
| Bμ.integral (f - g) = Bμ.integral f - Bμ.integral g := by | ||
| simp [integral] | ||
|
|
||
| @[integral_simps] | ||
| theorem integral_smul (c : ℝ) (f : α →₁[Bμ.vectorMeasure.variation] E) : | ||
| Bμ.integral (c • f) = c • Bμ.integral f := by | ||
| simp [integral] | ||
|
|
||
| @[simp] | ||
| lemma integral_apply (f : (α →₁[Bμ.vectorMeasure.variation] E)) : | ||
| Bμ.integral f | ||
| = setToL1 (dominatedFinMeasAdditive_weightedVectorSMul Bμ.pairing Bμ.vectorMeasure) f := rfl | ||
|
|
||
| theorem integral_le (f : (α →₁[Bμ.vectorMeasure.variation] E)) : | ||
| ‖Bμ.integral f‖ ≤ ‖Bμ.pairing‖ * ‖f‖:= by | ||
| simp only [integral_apply] | ||
| exact norm_setToL1_le_mul_norm | ||
| (dominatedFinMeasAdditive_weightedVectorSMul Bμ.pairing Bμ.vectorMeasure) | ||
| (norm_nonneg Bμ.pairing) f | ||
|
|
||
| theorem norm_integral_le_norm_pairing : ‖Bμ.integral‖ ≤ ‖Bμ.pairing‖ := | ||
| (ContinuousLinearMap.opNorm_le_iff (norm_nonneg Bμ.pairing)).mpr | ||
| (integral_le Bμ) | ||
|
|
||
| theorem nnnorm_integral_le_nnNnorm : ‖Bμ.integral‖₊ ≤ ‖Bμ.pairing‖₊ := | ||
| norm_integral_le_norm_pairing Bμ | ||
|
|
||
| theorem nnnorm_integral_le (f : α →₁[Bμ.vectorMeasure.variation] E) : | ||
| ‖Bμ.integral f‖₊ ≤ ‖Bμ.pairing‖₊ * ‖f‖₊ := integral_le Bμ f | ||
|
|
||
| @[continuity] | ||
| theorem continuous_integral : | ||
| Continuous fun f : α →₁[Bμ.vectorMeasure.variation] E => | ||
| Bμ.integral f := | ||
| (setToL1 (dominatedFinMeasAdditive_weightedVectorSMul Bμ.pairing Bμ.vectorMeasure)).continuous | ||
|
|
||
| end VectorMeasureWithPairing | ||
|
|
||
| namespace VectorMeasure | ||
|
|
||
| variable {α F : Type*} [MeasurableSpace α] | ||
| [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] | ||
| (μ : VectorMeasure α F) | ||
|
|
||
| /-- For an `F`-valued vector measure `μ`, `μ.withPairing` is a structure `VectorMeasureWithPairing` | ||
| where `pairing` is just the `ℝ`-multiplication, so that `μ.withPairing.integral` is the | ||
| `F`-valued integral of `μ`. -/ | ||
| noncomputable def withPairing : VectorMeasureWithPairing α ℝ F F where | ||
| pairing := lsmul (E := F) ℝ ℝ | ||
| vectorMeasure := μ | ||
|
|
||
| /-- The `F`-valued integral with respect to an `F`-valued vector measure as a continuous linear map, | ||
| defined as the pairing integral where the pairing is `lsmul`. -/ | ||
| noncomputable def integral : (α →₁[μ.variation] ℝ) →L[ℝ] F := | ||
| μ.withPairing.integral | ||
|
|
||
| end VectorMeasure | ||
|
|
||
| end MeasureTheory | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.