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(normed_space): second countability for linear maps #4099

Closed
wants to merge 4 commits into from

Conversation

PatrickMassot
Copy link
Member

@PatrickMassot PatrickMassot commented Sep 10, 2020

From the sphere eversion project, various lemmas about continuous linear maps and a theorem: if E is finite dimensional and F is second countable then the space of continuous linear maps from E to F is second countable.


@PatrickMassot PatrickMassot added the awaiting-review The author would like community review of the PR label Sep 10, 2020
Copy link
Collaborator

@sgouezel sgouezel left a comment

Choose a reason for hiding this comment

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

Looks good to me, thanks!

A possibility to factor a useful lemma out of the proof of the instance, to streamline it even a little bit more (although I already like how the proof looks!):

Given a basis on a finite-dimensional space, there exists a positive constant C such that, if two continuous linear maps satisfy u e - v e \leq M for all e in the basis, then ||u - v|| \leq C M.

src/analysis/normed_space/basic.lean Outdated Show resolved Hide resolved
src/analysis/normed_space/finite_dimension.lean Outdated Show resolved Hide resolved
src/analysis/normed_space/finite_dimension.lean Outdated Show resolved Hide resolved
src/analysis/normed_space/operator_norm.lean Outdated Show resolved Hide resolved
@sgouezel
Copy link
Collaborator

Given a basis on a finite-dimensional space, there exists a positive constant C such that, if two continuous linear maps satisfy u e - v e \leq M for all e in the basis, then ||u - v|| \leq C M.

Better: do that only with one function: if ||u e|| \leq M for all e in the basis, then ||u|| \leq C M.

(Then this can be applied to u - v when needed)

..hv.equiv_fun }


@[simp] lemma is_basis.constrL_apply {v : ι → E} (hv : is_basis 𝕜 v) (f : ι → F) (e : E) :
Copy link
Collaborator

Choose a reason for hiding this comment

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

I feel this lemma should be proved for the algebraic version (i.e., hv.constr without the L), probably with a simp attribute, and then the lemma for hv.constrL should follow (directly or by simp). Same thing for the next lemma.

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 situation is more complicated because hv.constr makes sense also in infinite dimension so everything is somehow duplicated, with lemmas about functions vs lemmas about finitely supported functions. But of course in this file I assume the source has finite dimension. So I added a finite dimensional version on the algebraic side.

@sgouezel
Copy link
Collaborator

In a conversation (in which I can't currently answer, I don't know why), you say:

The last part of your second sentence is unfortunately not true. I tried switching to you version but (hv.constrL $ u ∘ n) (v i) no longer simplify nicely, even when I also transformed the statement of is_basis.constrL_apply_self.

If I understand correctly what is going on, the problem is that the simplifier becomes more powerful with my version of the lemma, therefore it simplifies the function application earlier, and you end up with a different simp normal form, that the simplifier does not simplify more because it doesn't have the relevant simp lemmas. Does it mean that we are missing some simp lemmas here?

@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Sep 11, 2020
@PatrickMassot
Copy link
Member Author

In a conversation (in which I can't currently answer, I don't know why), you say:

The last part of your second sentence is unfortunately not true. I tried switching to you version but (hv.constrL $ u ∘ n) (v i) no longer simplify nicely, even when I also transformed the statement of is_basis.constrL_apply_self.

If I understand correctly what is going on, the problem is that the simplifier becomes more powerful with my version of the lemma, therefore it simplifies the function application earlier, and you end up with a different simp normal form, that the simplifier does not simplify more because it doesn't have the relevant simp lemmas. Does it mean that we are missing some simp lemmas here?

My memory is that the situation was more complicated than that, but now I can't even make it a simp lemma in your form, Lean complains this is not a valid simp lemma.

@PatrickMassot PatrickMassot added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Sep 12, 2020
@jcommelin jcommelin changed the title feat(normed_space): secound countability for linear maps feat(normed_space): second countability for linear maps Sep 12, 2020
@sgouezel
Copy link
Collaborator

My memory is that the situation was more complicated than that, but now I can't even make it a simp lemma in your form, Lean complains this is not a valid simp lemma.

ok, let's ignore this, and we'll change it if the need shows up later. You can merge this once the linter is happy.

bors d+

@bors
Copy link

bors bot commented Sep 12, 2020

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

@PatrickMassot
Copy link
Member Author

Thanks for all you comments!
bors merge

@github-actions github-actions bot added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Sep 12, 2020
bors bot pushed a commit that referenced this pull request Sep 12, 2020
From the sphere eversion project, various lemmas about continuous linear maps and a theorem: if E is finite dimensional and F is second countable then the space of continuous linear maps from E to F is second countable.
@bors
Copy link

bors bot commented Sep 12, 2020

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(normed_space): second countability for linear maps [Merged by Bors] - feat(normed_space): second countability for linear maps Sep 12, 2020
@bors bors bot closed this Sep 12, 2020
@bors bors bot deleted the second branch September 12, 2020 19:39
PatrickMassot added a commit that referenced this pull request Sep 14, 2020
This lemma is less general that it should be because migrating it to its
mathlib place messed up the typeclass assumptions.
bors bot pushed a commit that referenced this pull request Sep 14, 2020
This lemma was less general that it should be because migrating it to its
mathlib place messed up the typeclass assumptions.
bors bot pushed a commit that referenced this pull request Sep 14, 2020
This lemma was less general that it should be because migrating it to its
mathlib place messed up the typeclass assumptions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants