Skip to content

[Merged by Bors] - feat(MeasureTheory.VectorMeasure): add a definition of total variation for VectorMeasure#26156

Closed
oliver-butterley wants to merge 149 commits intoleanprover-community:masterfrom
oliver-butterley:variation-def
Closed

[Merged by Bors] - feat(MeasureTheory.VectorMeasure): add a definition of total variation for VectorMeasure#26156
oliver-butterley wants to merge 149 commits intoleanprover-community:masterfrom
oliver-butterley:variation-def

Conversation

@oliver-butterley
Copy link
Copy Markdown
Collaborator

@oliver-butterley oliver-butterley commented Jun 19, 2025

This PR adds variation for any VectorMeasure using a supremum definition. Currently mathlib has TotalVariation defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise.

Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem.

Co-authored-by: @yoh-tanimoto

This PR was migrated from #25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are:


Open in Gitpod

@oliver-butterley
Copy link
Copy Markdown
Collaborator Author

Almost everything in the file is about creating a measure (in the usual sense) from a subadditive function, right? If so, I think it would better fit as a general construction mechanism, in a dedicated file in the Measure folder. Then the specific case of the variation of a vector measure would indeed be in the VectorMeasure folder, but for now it would be a very short file (to be expanded later on with more API). What do you think?

Yes, almost the entirety of the file is creating a measure from any subadditive function. I've moved this part to a separate file and now Defs.lean is a rather short file, using the other for an almost immediate definition of variation.

@sgouezel
Copy link
Copy Markdown
Contributor

sgouezel commented Feb 3, 2026

Don't forget to remove awaiting-author when you're done, otherwise it won't show up on my queue.

@yoh-tanimoto
Copy link
Copy Markdown
Collaborator

We are unsure about the naming preVariationAux. I'm thinking whether it makes sense to combine it with IsSigmaSubadditive and define something like

structure preVariation' where
  toFun : Set Z → ℝ≥0∞
  eq_iSup_sum (s : Set Z) :
    toFun s = if h : MeasurableSet s then
                ⨆ (P : Finpartition (⟨s, h⟩ : Subtype MeasurableSet)), ∑ p ∈ P.parts, toFun p
              else 0
  isSigmaSubadditive' :
    ∀ (s : ℕ → {t : Set Z // MeasurableSet t}), Pairwise (Disjoint on (Subtype.val ∘ s)) →
      toFun (⋃ i, (s i).val) ≤ ∑' i, toFun (s i)

@sgouezel
Copy link
Copy Markdown
Contributor

sgouezel commented Feb 7, 2026

I'm confused about your question about the structure: you have a function toFun in there, but I don't understand if it's the function f from the original PR or the function preVariationAux f. The field eq_iSup_sum seems to say it's preVariationAux f, but the field isSigmaSubadditive' seems to say it's f (because the subadditivity is a property of the original function f). I think the current design, with the construction of preVariationAux f, and then additional properties under the assumption of subadditivity, is a good one. As for the naming, you could use preVariationFun for the function instead of preVariationAux, it conveys better the fact that it's only a function for now. I'm not a big fan of IsSigmaSubadditive because there are many objects in measure theory that are sigma subadditive. Maybe IsSigmaSubadditiveSetFun?

@yoh-tanimoto
Copy link
Copy Markdown
Collaborator

yes, you are absolutely right, I was confused between f and preVariation f.

I renamed as you suggested.

@yoh-tanimoto yoh-tanimoto removed the awaiting-author A reviewer has asked the author a question or requested changes. label Feb 9, 2026
Copy link
Copy Markdown
Member

@fpvandoorn fpvandoorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor comments, otherwise LGTM

bors d+

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Feb 10, 2026

✌️ oliver-butterley can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@mathlib-triage mathlib-triage bot added the delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). label Feb 10, 2026
@yoh-tanimoto
Copy link
Copy Markdown
Collaborator

bors r+

@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Feb 10, 2026

🔒 Permission denied

Existing reviewers: click here to make yoh-tanimoto a reviewer

@oliver-butterley
Copy link
Copy Markdown
Collaborator Author

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Feb 10, 2026
…n for VectorMeasure (#26156)

This PR adds variation for any `VectorMeasure` using a supremum definition. Currently mathlib has `TotalVariation` defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise.

Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem.


This PR was migrated from #25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are:
* #26160
* #26165 
* #26168 (shows that for `SignedMeasures` the two definitions of variation coincide)

Co-authored-by: @yoh-tanimoto
Co-authored-by: Yoh Tanimoto <[email protected]>
Co-authored-by: Yoh Tanimoto <[email protected]>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Feb 10, 2026

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(MeasureTheory.VectorMeasure): add a definition of total variation for VectorMeasure [Merged by Bors] - feat(MeasureTheory.VectorMeasure): add a definition of total variation for VectorMeasure Feb 10, 2026
@mathlib-bors mathlib-bors bot closed this Feb 10, 2026
rao107 pushed a commit to rao107/mathlib4 that referenced this pull request Feb 18, 2026
…n for VectorMeasure (leanprover-community#26156)

This PR adds variation for any `VectorMeasure` using a supremum definition. Currently mathlib has `TotalVariation` defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise.

Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem.


This PR was migrated from leanprover-community#25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are:
* leanprover-community#26160
* leanprover-community#26165 
* leanprover-community#26168 (shows that for `SignedMeasures` the two definitions of variation coincide)

Co-authored-by: @yoh-tanimoto
Co-authored-by: Yoh Tanimoto <[email protected]>
Co-authored-by: Yoh Tanimoto <[email protected]>
Maldooor pushed a commit to Maldooor/mathlib4 that referenced this pull request Feb 25, 2026
…n for VectorMeasure (leanprover-community#26156)

This PR adds variation for any `VectorMeasure` using a supremum definition. Currently mathlib has `TotalVariation` defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise.

Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem.


This PR was migrated from leanprover-community#25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are:
* leanprover-community#26160
* leanprover-community#26165 
* leanprover-community#26168 (shows that for `SignedMeasures` the two definitions of variation coincide)

Co-authored-by: @yoh-tanimoto
Co-authored-by: Yoh Tanimoto <[email protected]>
Co-authored-by: Yoh Tanimoto <[email protected]>
pfaffelh pushed a commit to pfaffelh/mathlib4 that referenced this pull request Mar 2, 2026
…n for VectorMeasure (leanprover-community#26156)

This PR adds variation for any `VectorMeasure` using a supremum definition. Currently mathlib has `TotalVariation` defined for a signed measure using the Hahn-Jordan decomposition, but this doesn't generalise.

Motivation: generally this is an important concept but specifically as a step for proving RMK in the complex case which in turn is a step to prove the spectral theorem.


This PR was migrated from leanprover-community#25442. PR divided into smaller pieces, this is just the definition without additional lemmas. PRs adding further results related to variation are:
* leanprover-community#26160
* leanprover-community#26165 
* leanprover-community#26168 (shows that for `SignedMeasures` the two definitions of variation coincide)

Co-authored-by: @yoh-tanimoto
Co-authored-by: Yoh Tanimoto <[email protected]>
Co-authored-by: Yoh Tanimoto <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-measure-probability Measure theory / Probability theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants