Zulip Chat Archive
Stream: mathlib4
Topic: Generalizing some statements from fields to division rings
Sophie Morel (Sep 29 2023 at 12:51):
Hi all, for my projective space/grassmannian project over division rings, I needed the fact that a linear map whose source is a finite-dimensional vector space is automatically continuous. This result is in mathlib for a NontriviallyNormedField
that is complete, it's called LinearMap.continuous_of_finiteDimensional
. I wanted to have it for a complete nontrivially normed division ring (such as the Hamiltonian quaternions), without assuming that this division ring is finite-dimensional over its center (which is true in my example, but I don't know how far from true it is in general).
This is not in mathlib for not much is needed to have it. I had fun modifying my own local copy of mathlib to make it happen, the result is there:
https://github.com/smorel394/JeCasseTout
I changed 3 files:
- Analysis.Normed.Field.Basic.lean
- Analysis.LocallyConvex.BalancedCoreHull.lean
- Topology.Algebra.Module.FiniteDimension.lean
The biggest changes are in the first one, I defined a NontriviallyNormedDivisionRing
class and added a NontriviallyNormedField.toNontriviallyNormedDivisionRing
instance. The rest was just replacing some NontriviallyNormedField
variables with NontriviallyNormedDivisionRing
variables until I got the continuity result I wanted. This is by no means optimal, for example you would want LinearMap.toContinuousLinearMap
to work with the weaker assumption, but right now it can't because it defines a 𝕜
-linear equivalence and, if 𝕜
is not commutative, the equivalence can only be linear over the center of 𝕜
. So we should make 𝕜
into an algebra over a commutative thing and add a scalar tower somewhere. (This would unlock some later results too, and it might be useful for the later parts of my own project, I am not sure yet.)
But before I went too far with this, I wanted to check with the mathlib experts if what I did was stupid/dangerous for some reason that I cannot see. I'm not sure how to summon experts, should I just ping all the authors of the files I modified ?
Eric Wieser (Sep 29 2023 at 13:15):
So we should make 𝕜 into an algebra over a commutative thing and add a scalar tower somewhere.
I don't think you need a scalar tower, just commuting actions (via SMulCommClass
)
Eric Wieser (Sep 29 2023 at 13:17):
I had fun modifying my own local copy of mathlib to make it happen, the result is there: https://github.com/smorel394/JeCasseTout
It would be a lot easier to give feedback on this if you modified the real mathlib, so that we can see the diff easily!
Sophie Morel (Sep 29 2023 at 13:18):
Eric Wieser said:
I had fun modifying my own local copy of mathlib to make it happen, the result is there: https://github.com/smorel394/JeCasseTout
It would be a lot easier to give feedback on this if you modified the real mathlib, so that we can see the diff easily!
I would be glad to, I am just not sure what to do. I did modify the files in my local copy of mathlib, so should I just ask git to stop ignoring them and push ?
Eric Wieser (Sep 29 2023 at 13:18):
It is absolutely fine to push broken code to a mathlib branch, and open a PR tagged WIP; PRs don't have to be polished before you push!
Eric Wieser (Sep 29 2023 at 13:19):
What do you mean by "your local copy of mathlib"? Are you talking about something in the lake-packages
directory? Or are you already working on a different mathlib branch?
Sophie Morel (Sep 29 2023 at 13:19):
Okay,
Eric Wieser said:
What do you mean by "your local copy of mathlib"? Are you talking about something in the
lake-packages
directory? Or are you already working on a different mathlib branch?
Yes, my local lacke-packages
directory. I haven't actually figured out yet how to push to a mathlib branch (I know that I have been given the necessary permissions).
Sophie Morel (Sep 29 2023 at 13:20):
I'll figure it out later today, soon I will have to run to catch a train.
Eric Wieser (Sep 29 2023 at 13:21):
You're not really supposed to modify things in lake-packages, but creating a branch and pushing might work fine anyway
Sophie Morel (Sep 29 2023 at 13:21):
I just don't know what I was supposed to do ! Obviously I need to go read some documentation...
Eric Wieser (Sep 29 2023 at 13:24):
https://leanprover-community.github.io/contribute/index.html is that documentation; the expectation is that you clone mathlib directly and work in that clone
Sophie Morel (Sep 29 2023 at 13:25):
Eric Wieser said:
https://leanprover-community.github.io/contribute/index.html is that documentation; the expectation is that you clone mathlib directly and work in that clone
Thanks, will do ! (Later today hopefully.)
Eric Wieser (Sep 29 2023 at 13:25):
It sounds like you're exploiting the fact that lake cloned it for you, but what lake giveth lake can also taketh away!
Sophie Morel (Sep 29 2023 at 19:54):
Okay, I finally figured it out, here is the new branch:
https://github.com/leanprover-community/mathlib4/tree/NontriviallNormedDivisionRing
In the first message of this thread, I explain what I changed so far and why. At first I was scared because CI sent me an email saying "some jobs were not successful", but apparently the thing does build and the problem is trailing whitespace/lines that are too long.
Johan Commelin (Sep 29 2023 at 19:58):
Yeah, the CI bots can be very angry when you trespass like that (-;
Sophie Morel (Sep 29 2023 at 20:00):
I feel properly ashamed of my behaviour. :exhausted:
Last updated: Dec 20 2023 at 11:08 UTC