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
Conversation
There was a problem hiding this 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
.
Better: do that only with one function: if (Then this can be applied to |
..hv.equiv_fun } | ||
|
||
|
||
@[simp] lemma is_basis.constrL_apply {v : ι → E} (hv : is_basis 𝕜 v) (f : ι → F) (e : E) : |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
In a conversation (in which I can't currently answer, I don't know why), you say:
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 |
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+ |
✌️ PatrickMassot can now approve this pull request. To approve and merge a pull request, simply reply with |
Thanks for all you comments! |
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.
Pull request successfully merged into master. Build succeeded: |
This lemma is less general that it should be because migrating it to its mathlib place messed up the typeclass assumptions.
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.