Zulip Chat Archive
Stream: general
Topic: Ostrowski theorems formalized in Lean 3
Ryan Lahfa (Aug 18 2021 at 18:55):
I'm happy (shameless plug) to announce that two versions of Ostrowski (over and over theorems have been formalized completely (no sorry left!) in Lean 3 (https://github.com/RaitoBezarius/berkovich-spaces for the code). :-)
Thanks to everyone for the help over all these months, I will be trying to open PRs to commit back mathlib stuff and Ostrowski theorems themselves if I can!
Eric Rodriguez (Aug 18 2021 at 19:20):
(btw, for your setup instructions, you can just use leanproject get RaitoBezarius:berkovich-spaces
and it should deal with it for you)
Eric Wieser (Aug 18 2021 at 20:08):
If you wanted you could add your project to https://github.com/leanprover-contrib/leanprover-contrib so that it's linked to from the mathlib website
Patrick Massot (Aug 18 2021 at 20:32):
I think the title of the README is pretty misleading. You could rewrite it as "Towards Berkovich space" or "The Berkovich spaces project".
Ryan Lahfa (Aug 18 2021 at 20:36):
Definitely, I wrote the README quickly to go for dinner, I will redo the README properly
Ryan Lahfa (Aug 18 2021 at 23:07):
Ryan Lahfa said:
Definitely, I wrote the README quickly to go for dinner, I will redo the README properly
Done
Adam Topaz (Aug 18 2021 at 23:45):
Good job! As far as I know, Ostrowski's theorem is somewhat orthogonal to the theory of Berkovich spaces (unless you start talking about the Berkovich space of global objects over ).
Ryan Lahfa (Aug 18 2021 at 23:56):
Adam Topaz said:
Good job! As far as I know, Ostrowski's theorem is somewhat orthogonal to the theory of Berkovich spaces (unless you start talking about the Berkovich space of global objects over ).
Before going too deep into the abstract theory, I thought it would be interesting to develop non-trivial examples and things around the Berkovich spectrum of
Adam Topaz (Aug 19 2021 at 00:01):
I guess my point is that Berkovich geometry over Z is not nearly as well developed as Berkovich geometry over a non archimedean field. The Berkovich spectrum of Z is a nice example (I assume here you're endowing Z with the Archimedean norm...), But a much more important example would be, for example, the Berkovich analytification of over a nonarch. valued alg. closed field.
Adam Topaz (Aug 19 2021 at 00:23):
Anyway, please don't take my comment the wrong way. It's really great that you formalized Ostrowski's theorem, and it would be an excellent addition to mathlib. My main point is just that it's not necessarily a foundational result in the theory of Berkovich spaces.
In any case, it looks like there is a lot of number theory activity in lean recently, which is GREAT!
Kevin Buzzard (Aug 19 2021 at 05:57):
Do we have enough number theory to deduce from this result that the only valuations on a number field are the ones associated with embeddings into the complexes and primes of the ring of integers?
Filippo A. E. Nuccio (Aug 19 2021 at 06:52):
Related to this: at which stage are we about deciding what a valuation is?
Patrick Massot (Aug 19 2021 at 07:27):
mathlib already has a very general definition of a valuation
Filippo A. E. Nuccio (Aug 19 2021 at 07:35):
Are you speaking about this one?
https://leanprover-community.github.io/mathlib_docs/ring_theory/valuation/basic.html#valuation
Filippo A. E. Nuccio (Aug 19 2021 at 07:37):
Indeed, I agree it is very general and looks perfect (to me) for everything one could need for algebraic number theory. But I got the impression that @Kevin Buzzard was somewhat sceptical about the state of the art.
Patrick Massot (Aug 19 2021 at 07:45):
The open question is how to smoothly relate this very general notion to more elementary stuff
Filippo A. E. Nuccio (Aug 19 2021 at 07:47):
I see (somehow). You are working on adic valuations right now, isn't it?
Kevin Buzzard (Aug 19 2021 at 15:50):
I would like somebody to make a decision for me about how to put a valuation in the sense of mathlib on a discrete valuation ring in the sense of mathlib
Kevin Buzzard (Aug 19 2021 at 15:51):
I am not brave enough to decide whether the target monoid should be with_zero (multiplicative nat) or ...int and whether it needs to be defined as a new type or not
Kevin Buzzard (Aug 19 2021 at 15:52):
There was also an independent question about extending the topology on a topological ID to one on its field of fractions which was holding me up, but Maria has just solved this one
Kevin Buzzard (Aug 19 2021 at 15:55):
Now would be a good time to develop some of the theory of valuations in this setting. Patrick is working on the J-adic topology, Maria has solved the topology problems and we should be able to complete number fields at prime ideals and do everything we want with valuations
Adam Topaz (Aug 19 2021 at 16:04):
Kevin Buzzard said:
I would like somebody to make a decision for me about how to put a valuation in the sense of mathlib on a discrete valuation ring in the sense of mathlib
Just my opinion about this:
- Define abstract valuation rings as a class, and show that discrete valuation rings are valuation rings.
- Given any valuation ring , define "the canonical value group", a
comm_monoid_with_zero
, as , and the corresponding valuation in the sense of mathlib. - For a discrete valuation ring, prove that is isomorphic to
with_zero (multiplicative \N)
.
Kevin Buzzard (Aug 19 2021 at 18:16):
This looks great. And then one can develop a theory of topologies on valuation rings and maybe Tate algebras
Adam Topaz (Aug 20 2021 at 01:14):
I started with some code in branch#valuation_ring
I'm done for today, and I won't have much time tomorrow, but if anyone wants to build on this, please feel free.
(I'm not convinced the definition I chose for is the best option.)
Johan Commelin (Aug 20 2021 at 04:37):
That definition (assuming you are talking about (2) above) and the corresponding valuation are already in the perfectoid project. Not sure how much of this "canonical valuation" has made it to mathlib.
Filippo A. E. Nuccio (Aug 20 2021 at 06:53):
I only have one small comment: with @Adam Topaz ' definition, the valuation "group" of a DVR would not be defeq to with_zero (multuplicative \N)
, and I wonder if this is not a problem.
Filippo A. E. Nuccio (Aug 20 2021 at 12:55):
I was trying to play a bit with @Adam Topaz ' definition and I have a basic question about comm_group_with_zero
: it seems to me that the "extended integers" are a comm_group_with_zero
when declaring for every . Then why can't we define the -adic valuation as taking values here rather than in with the declaration (as it is now in https://leanprover-community.github.io/mathlib_docs/number_theory/padics/padic_numbers.html#padic.valuation )?
Adam Topaz (Aug 20 2021 at 12:58):
That would break the fact that the units of the valuation are the elements with valuation zero (if you're using the additive notation for the value group).
Yakov Pechersky (Aug 20 2021 at 12:58):
It's not a comm_group_with_zero
because what happens to 0
? It doesn't have an inverse.
Yakov Pechersky (Aug 20 2021 at 12:59):
Unless you mean that 0
is the zero
and the inverse of infty
is infty
Adam Topaz (Aug 20 2021 at 12:59):
I think he means linear_ordered_add_comm_group_with_infinity
Adam Topaz (Aug 20 2021 at 12:59):
Which might not exist?
Yakov Pechersky (Aug 20 2021 at 13:00):
It's with_top
Yakov Pechersky (Aug 20 2021 at 13:01):
There's docs#linear_ordered_add_comm_monoid_with_top, docs#linear_ordered_add_comm_group_with_top
Filippo A. E. Nuccio (Aug 20 2021 at 13:02):
Yes, I mean a lin_ord_ab_group_with_inf
, and I might have a look at that with_top
instead.
Filippo A. E. Nuccio (Aug 20 2021 at 13:03):
Adam Topaz said:
That would break the fact that the units of the valuation are the elements with valuation zero (if you're using the additive notation for the value group).
I am sorry, but I don't understand why.
Adam Topaz (Aug 20 2021 at 13:06):
Because zero is not a unit?
Adam Topaz (Aug 20 2021 at 13:08):
Maybe I misunderstood the question?
Filippo A. E. Nuccio (Aug 20 2021 at 13:09):
Ok, I try to explain myself better: if we add to the additive group the element and we call it zero
(so the one of the group is 0 : int
and the zero of the group is ), don't we get a comm_group_with_zero
when declaring that absorbs everything (additively)?
Filippo A. E. Nuccio (Aug 20 2021 at 13:11):
Now and I don't see problems with which is the only guy sent to .
Adam Topaz (Aug 20 2021 at 13:13):
Oh, but that's already what's been done... So what's the issue?
Adam Topaz (Aug 20 2021 at 13:13):
Just that it's not defeq to Z?
Adam Topaz (Aug 20 2021 at 13:13):
I'll move this thread to the maths stream where it belongs...
Filippo A. E. Nuccio (Aug 20 2021 at 13:14):
No, well, my "issue" is that here https://leanprover-community.github.io/mathlib_docs/number_theory/padics/padic_numbers.html#padic.valuation the p-adic valuations sends to , not to .
Yakov Pechersky (Aug 20 2021 at 13:14):
It's not a comm_group_with_zero
because there are no multiplicative inverses. Do you mean add_comm_group...
?
Filippo A. E. Nuccio (Aug 20 2021 at 13:15):
Ah, sure, thanks.
Yakov Pechersky (Aug 20 2021 at 13:16):
And there is no add_comm_group_with_*
because add_comm_group
already has zero, and no one has made the with_blah
version for it.
Filippo A. E. Nuccio (Aug 20 2021 at 13:16):
Great, I see. I though the difference was just a matter of notation.
Last updated: Dec 20 2023 at 11:08 UTC