feat: Gram-Schmidt orthonormalisation for sections of a vector bundle#27024
feat: Gram-Schmidt orthonormalisation for sections of a vector bundle#27024grunweg wants to merge 28 commits intoleanprover-community:masterfrom
Conversation
Add gramSchmidt_zero (about gramSchmidt applied to a set of zero vectors), rename the previous gramSchmidt_zero to gramSchmidt_bot (which is the correct name anyway).
PR summary 0ccc06d21eImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
7a2d3c8 to
c7cba64
Compare
Co-authored-by: Filippo A. E. Nuccio <filippo.nuccio@univ-st-etienne.fr>
Co-authored-by: Filippo A. E. Nuccio <filippo.nuccio@univ-st-etienne.fr>
grunweg
left a comment
There was a problem hiding this comment.
Thank you for the detailed review! I just followed most of your suggestions; here are a few comments about some of your questions.
|
|
||
| open Finset | ||
|
|
||
| namespace VectorBundle |
There was a problem hiding this comment.
I agree, and I've seen your changes. But although I agree that having B simply a top. manifold seems ok, having E a top. vector bundle might cause problems when you will need to prove that GS preserves regularity, no?
Co-authored-by: Filippo A. E. Nuccio <filippo.nuccio@univ-st-etienne.fr>
|
This is ready for review again. |
|
This pull request has conflicts, please merge |
|
CI passes now |
faenuccio
left a comment
There was a problem hiding this comment.
You're right, this projection is missing (and should be added).
I don't think that would really help, though --- for topological vector bundles, you rather want a result that applying Gram-Schmidt to continuous sections yields something continuous, don't you? (I've started on this in #27025, but this uncovered some amount of missing basic API. So adding this may require a bit more tedium than I'd like for now.)
I think I did not make myself clear. What I am saying is that if now your assumption is [IsContinuousRiemannianBundle] and you lack IsContMDiffRiemannianBundle.toIsContinuousRiemannianBundle, how can you apply the results in this file to a ContMDiffRiemanianBundle?
Yes, that clarification helped. Are you fine with a "constructive proof"? #27025 applies these results to a C^n Riemannian bundle, and works. ( |
sgouezel
left a comment
There was a problem hiding this comment.
Could you explain a little bit why duplicating the API of InnerProductSpace.gramSchmidt to VectorBundle.gramSchmidt is useful? (That's an honest question: most of the file seems to be just a restatement of preexisting lemmas, but I'm sure you have encountered difficulties when trying to work just with InnerProductSpace.gramSchmidt, which prompted you to this duplication)
| /-- The Gram-Schmidt process takes a set of sections as input | ||
| and outputs a set of sections which are point-wise orthogonal and have the same span. | ||
| Basically, we apply the Gram-Schmidt algorithm point-wise. -/ | ||
| noncomputable def gramSchmidt (s : ι → (x : B) → E x) (n : ι) : (x : B) → E x := |
|
|
||
| /-- If the section values `s i x` are orthogonal, `gramSchmidt` yields the same values at `x`. -/ | ||
| theorem gramSchmidt_of_orthogonal (hs : Pairwise fun i j ↦ ⟪s i x, s j x⟫ = 0) : | ||
| ∀ i₀, gramSchmidt s i₀ x = s i₀ x := by |
There was a problem hiding this comment.
move i0 left of the colon?
I am certainly happy with such a constructive proof! But I confess I do not understand how it can possibly work. EDIT I had a closer look, and it seems to me that in that file at the beginning of the section |
|
This pull request has conflicts, please merge |
Add a parametrised version of Gram-Schmidt, for sections of a topological vector bundle with a bundle metric.
This will be used to define orthonormal local frames.
From the path towards geodesics and the Levi-Civita connection.
Co-authored-by: Patrick Massot patrickmassot@free.fr