Skip to content
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

feat(Analysis.InnerProductSpace): Decomposition of finite-dimensional inner product space as direct sum of joint eigenspaces of commuting finite tuples of symmetric operators #16569

Open
wants to merge 43 commits into
base: master
Choose a base branch
from

Conversation

JonBannon
Copy link
Collaborator

@JonBannon JonBannon commented Sep 7, 2024

Updates Mathlib.Analysis.InnerProductSpace.Simultaneous.lean from the pairwise to the finite tuple case: i.e. gives decomposition of finite-dimensional Hilbert space as internal direct sum of joint eigenspaces of a commuting tuple of symmetric operators.

Co-Authored by: Jack Cheverton [email protected]

Co-Authored by: Samyak Dhar Tuladhar [email protected]


Open in Gitpod

@JonBannon JonBannon added awaiting-CI t-analysis Analysis (normed *, calculus) labels Sep 7, 2024
Copy link

github-actions bot commented Sep 7, 2024

PR summary c223fef4ca

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ LinearMap.IsSymmetric.directSum_isInternal_of_commute_of_fintype
+ directSum_isInternal_of_commute
+ genEigenspace_one
+ iSup_eigenspace_restrict
+ mapsTo_iInf_genEigenspace_of_forall_comm
+ orthogonalComplement_iSup_iInf_eigenspaces_eq_bot
+ orthogonalFamily_iInf_eigenspaces
- directSum_isInteral_of_commute
- eigenspace_inf_eigenspace
- eigenspace_invariant_of_commute

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.

@JonBannon JonBannon changed the title feat: (Analysis.InnerProductSpace) Decomposition of Finite-Dimensional Inner Product Space as Direct Sum of Simultaneous Eigenspaces of Commuting Finite Tuples of Symmetric Operators feat: (Analysis.InnerProductSpace) Decomposition of Finite-Dimensional Inner Product Space as Direct Sum of Joint Eigenspaces of Commuting Finite Tuples of Symmetric Operators Sep 7, 2024
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes label Sep 17, 2024
@JonBannon
Copy link
Collaborator Author

JonBannon commented Sep 17, 2024 via email

@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes label Sep 19, 2024
@JonBannon JonBannon removed the awaiting-author A reviewer has asked the author a question or requested changes label Sep 19, 2024
@j-loreaux
Copy link
Collaborator

maintainer merge

Copy link

🚀 Pull request has been placed on the maintainer queue by j-loreaux.

@jcommelin jcommelin changed the title feat: (Analysis.InnerProductSpace) Decomposition of Finite-Dimensional Inner Product Space as Direct Sum of Joint Eigenspaces of Commuting Finite Tuples of Symmetric Operators feat(Analysis.InnerProductSpace): Decomposition of finite-dimensional inner product space as direct sum of joint eigenspaces of commuting finite tuples of symmetric operators Sep 24, 2024
Copy link
Contributor

@ocfnash ocfnash left a comment

Choose a reason for hiding this comment

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

Thanks for this.

I have some concerns about whether these results are being developed at the right level of generality. I have highlighted two results which work for any generalised eigenspace, not just the strict eigenspace (k = 1 case). I am also a bit surprised that my changes proposed in #16915 have not been implemented (even though that PR was closed on this promise 😱)

I also wonder what other results might be split out which are true for coefficients other than or .

Unfortunately I don't have more time to give to this at the moment but I encourage you to think carefully about these points: it's sometimes a lot more work but I think we all benefit hugely from working more generally where this is possible.

Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
(hv : v ∈ ⨅ j, eigenspace (Subtype.restrict (· ≠ i) T j) (γ j)) :
T i v ∈ ⨅ j, eigenspace (Subtype.restrict (· ≠ i) T j) (γ j) := by
simp only [Submodule.mem_iInf] at hv ⊢
exact fun j ↦ eigenspace_invariant_of_commute (hC j i) (γ j) v (hv j)
Copy link
Contributor

Choose a reason for hiding this comment

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

For example this can be proved without using eigenspace_invariant_of_commute as follows:

Suggested change
exact fun j ↦ eigenspace_invariant_of_commute (hC j i) (γ j) v (hv j)
exact fun j ↦ mapsTo_genEigenspace_of_comm (hC j i) (γ j) 1 (hv j)

(though actually I think this whole lemma should be generalised and moved)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'll try to maximally generalize this and move it.

Mathlib/Analysis/InnerProductSpace/JointEigenspace.lean Outdated Show resolved Hide resolved
@ocfnash ocfnash added awaiting-author A reviewer has asked the author a question or requested changes t-algebra Algebra (groups, rings, fields, etc) and removed maintainer-merge labels Sep 24, 2024
@JonBannon
Copy link
Collaborator Author

JonBannon commented Sep 24, 2024

Thanks for this.

I have some concerns about whether these results are being developed at the right level of generality. I have highlighted two results which work for any generalised eigenspace, not just the strict eigenspace (k = 1 case). I am also a bit surprised that my changes proposed in #16915 have not been implemented (even though that PR was closed on this promise 😱)

I also wonder what other results might be split out which are true for coefficients other than or .

Unfortunately I don't have more time to give to this at the moment but I encourage you to think carefully about these points: it's sometimes a lot more work but I think we all benefit hugely from working more generally where this is possible.

I will think carefully about these, @ocfnash. Just for the record, I actually thought I had incorporated the suggestions from #16915 by changing the top two results to work over a CommRing. Evidently, I did not see this as clearly as I thought I had. Sorry! It seems like most of the orthogonality results required RCLike. Maybe the idea for generalizing is to remove the use of the orthogonality as much as possible.

@ocfnash
Copy link
Contributor

ocfnash commented Sep 24, 2024

Thanks for all your great work on this @JonBannon I really appreciate that you're sticking with it and I know very well that it can be tough going when working in a corner of the library that is less familiar.

I had very little time this morning so I'm going to take a closer look now and see if I can be more helpful.

@ocfnash
Copy link
Contributor

ocfnash commented Sep 24, 2024

I thought a little more about this and here are my thoughts.

  1. I'd probably first prove the result that for symmetric operators, (maximal) generalised eigenspaces and true eigenspaces are the same thing.

  2. I claim it is usually better to work within the lattice of submodules and so I think rather than proving a headline result in the language of DirectSum.IsInternal I'd prove the equivalent pair of conditions according to DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top [Feel free to disagree with me here; I mention this primarily because I use this language below]

  3. I think the right level of generality is to prove the following first:

open Module in
lemma iSup_iInf_maxGenEigenspace_eq_top_of_commute {ι K V : Type*}
    [Field K] [AddCommGroup V] [Module K V] [FiniteDimensional K V]
    (f : ι → End K V)
    (h : Pairwise fun i j ↦ Commute (f i) (f j))
    (h' : ∀ i, ⨆ μ, (f i).maxGenEigenspace μ = ⊤) :
    ⨆ χ : ι → K, ⨅ i, (f i).maxGenEigenspace (χ i) = ⊤ := by
sorry

(and a similar statement for independence)

  1. Assuming I've got the above right, combining 1 and 3 should give you what you need for symmetric operators in the more restrictive setting of an InnerProductSpace (with coeffs in or ).

P.S. A commuting family of endomorphisms actually forms an Abelian (therefore nilpotent) Lie subalgebra of End K V and so the above lemma actually follows from https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Lie/Weights/Basic.html#LieModule.iSup_genWeightSpace_eq_top. Likewise independence. However having briefly tried this approach, I don't advocate it --- not least for the dependence it would create on Lie theory.

@JonBannon
Copy link
Collaborator Author

JonBannon commented Sep 24, 2024 via email

@ocfnash
Copy link
Contributor

ocfnash commented Sep 27, 2024

I realised that I should have proved the relevant result in Lie theory in a more general setting so I've opened #17194 to implement this.

The headline result is the lemma Module.End.iSup_iInf_maxGenEigenspace_eq_top_of_commute. Note that it only assumes (h : ∀ i j φ, MapsTo (f i) ((f j).maxGenEigenspace φ) ((f j).maxGenEigenspace φ)), i.e., that the family of maps preserve each others' generalised eigenspaces. This is true for commuting families of maps but is a strictly weaker assumption (and this is useful, e.g., where I apply it to nilpotent but not necessarily Abelian Lie algebras).

So if this is merged and you prove that for symemtric operators, generalised eigenspaces are just eigenspaces, then the only remaining work will be to establish independence. A similar generalisation of LieModule.independent_genWeightSpace should work for this. I think this will be slightly easier than what I've done in #17194 but I won't have time to do it in the near future.

@JonBannon
Copy link
Collaborator Author

JonBannon commented Sep 27, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting-author A reviewer has asked the author a question or requested changes t-algebra Algebra (groups, rings, fields, etc) t-analysis Analysis (normed *, calculus)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants