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

[Merged by Bors] - feat(analysis/inner_product_space/projection): remove useless complete_space E assumption #15682

Closed
wants to merge 9 commits into from

Conversation

ADedecker
Copy link
Member

@ADedecker ADedecker commented Jul 25, 2022

The current proof decomposes v as its projection on K and its projection on the orthogonal complement of K, thus requiring E to be complete. Instead, we decompose it as v = p v + (v - p v), where p is the projection on K.


Open in Gitpod

@ADedecker ADedecker added the awaiting-review The author would like community review of the PR label Jul 25, 2022
Copy link
Member

@hrmacbeth hrmacbeth left a comment

Choose a reason for hiding this comment

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

Thanks! Please wait for CI to finish on the final version before merging, because decreasing the typeclass requirements might turn up linter errors elsewhere.

bors d+

/-- The orthogonal projection is self-adjoint. -/
lemma inner_orthogonal_projection_left_eq_right [complete_space E]
lemma inner_orthogonal_projection_left_eq_right
Copy link
Member

Choose a reason for hiding this comment

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

While you're at it, could you please change the statement and lemma name to be in terms of is_self_adjoint?

Copy link
Member Author

Choose a reason for hiding this comment

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

The problem is that inner_product_space.is_self_adjoint is defined in analysis/inner_product_space/adjoint, which imports this. Should I remove this version completely and only keep the already existing https://leanprover-community.github.io/mathlib_docs/analysis/inner_product_space/adjoint.html#inner_product_space.orthogonal_projection_is_self_adjoint or should I keep both ?

Copy link
Member

Choose a reason for hiding this comment

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

For me, this is a reason to keep inner_product_space.is_self_adjoint (soon to be renamed is_symmetric) earlier in the import hierarchy, undoing the move of #15281. Let's see what @mcdoll thinks.

Copy link
Member

Choose a reason for hiding this comment

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

We could also make a separate small file for the theory of operators that are inner_product_space.is_self_adjoint-(soon-to-be-renamed-is_symmetric).

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes I'd be in favor of having the new is_self_adjoint where the current one is but moving is_symmetric earlier. Shall we put this PR on hold then ?

Copy link
Member

Choose a reason for hiding this comment

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

I think that having a small file for symmetric operators would be better - I think having is_symmetric in basic is not a good idea since the file is way too large anyways.
Another random remark: golfing complete_space away is nice from the mathlib point of view, but mathematically completely irrelevant since nobody (at least I don't know anyone) cares about non-complete spaces - you always just take the completion and are happy.

Copy link
Member Author

Choose a reason for hiding this comment

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

I'm not claiming this is super interesting mathematically. That said, taking the orthogonal projection of a polynomial onto a finite dimensional subset can be useful, right ? Or maybe I'm making things up, I'm not rue 😅

Copy link
Member Author

Choose a reason for hiding this comment

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

And imo it makes the proof cleaner anyway

Copy link
Member

Choose a reason for hiding this comment

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

I am sorry for not being clear, I think this PR is good.

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh I didn't take it as being against the PR, don't worry, I just wanted to give my thoughts on the matter.

@bors
Copy link

bors bot commented Jul 25, 2022

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

@leanprover-community-bot-assistant leanprover-community-bot-assistant added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Jul 25, 2022
@mathlib-dependent-issues-bot mathlib-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Aug 17, 2022
@mathlib-dependent-issues-bot mathlib-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Aug 21, 2022
@sgouezel
Copy link
Collaborator

What is the current status of the PR? It is delegated, but hasn't been merged yet.

@ADedecker
Copy link
Member Author

As explained here I wasn't comfortable merging it because when it was finally ready no maintainer had had a look at it for quite some time. If you think it looks good I will merge master to make sure everything still compiles and then merge the PR.

@sgouezel
Copy link
Collaborator

LGTM. Can you merge master, and bors the PR if it builds?
bors d+
Thanks!

@bors
Copy link

bors bot commented Sep 13, 2022

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

@ADedecker
Copy link
Member Author

bors r+

bors bot pushed a commit that referenced this pull request Sep 14, 2022
…te_space E` assumption (#15682)

The current proof decomposes v as its projection on K and its projection on the orthogonal complement of K, thus requiring `E` to be complete. Instead, we decompose it as `v = p v + (v - p v)`, where `p` is the projection on K.
@bors
Copy link

bors bot commented Sep 14, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(analysis/inner_product_space/projection): remove useless complete_space E assumption [Merged by Bors] - feat(analysis/inner_product_space/projection): remove useless complete_space E assumption Sep 14, 2022
@bors bors bot closed this Sep 14, 2022
@bors bors bot deleted the AD_less_completeness branch September 14, 2022 01:27
b-mehta pushed a commit that referenced this pull request Sep 21, 2022
…te_space E` assumption (#15682)

The current proof decomposes v as its projection on K and its projection on the orthogonal complement of K, thus requiring `E` to be complete. Instead, we decompose it as `v = p v + (v - p v)`, where `p` is the projection on K.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants