Zulip Chat Archive
Stream: toric
Topic: Correct setting for convex geometry
Justus Springer (Apr 03 2025 at 08:50):
I'm currently looking at the convex geometry side of things, trying to prove that the dual of a polyhedral cone is again polyhedral. I have some code on my branch justus/dual_cone
in case someone wants to take a look. Basically, the approach I'm choosing has three steps:
1) Show that is a polyhedral cone (indeed, it's generated as a cone by )
2) Show that if is polyhedral, then so is for one halfspace .
3) Conclude inductively that for , its dual is polyhedral.
So far, I've formalized steps 1) and 3). Step 2) will probably by a bit annoying, but I don't think there are any real hurdles, as it should be very explicit computations (the generators of can be explicitly written down, this is basically a version of Fourier-Motzkin elimination).
All of this made me wonder however, what truly is the "correct" setting for us to do convex geometry in for the purposes of toric geometry. So far, everything is stated for a NormedAddCommGroup E
with an InnerProductSpace ℝ E
instance. I want to raise two points:
- In my undestanding, there isn't really a good reason to work over the reals and I know lecture notes on toric geometry that never mention but do everything over . In a sense, I don't think one should ever use the euclidian topology of when doing convex geometry, but state everything in terms of the lattice that's embedded in your space (For example, one shouldn't speak about euclidian distances, as these aren't invariant under unimodular transformations. Instead, the correct distance measure is lattice distance, i.e. the number of lattice points on the line segment between your two points).
- In mathlib,
PointedCone.dual
andSet.innerDualCone
give back cones that live in the same spaceE
that one has started with. On the other hand, toric geometry textbooks like CLS place emphasis on working with two mutually dual lattices and , which give rise two mutually dual vector spaces and (where is either or ). Dual cones of cones in live in and vice versa. I have a feeling this is going to be important when building the bridge from toric varieties back to cones and fans, as then the two lattices will be the character lattice and the lattice of one-parameter subgroups, which are truly different (but dual) lattices. I don't know mathlib well enough, is there a way in which one could express this concept of two mutually dual lattices or vector spaces, linked by a scalar product?
(I just started looking into the Toric project seriously a few days ago and I don't know mathlib's library on convex stuff well, so these two points might not be well informed. Please correct me if you think I misunderstand something)
Kevin Buzzard (Apr 03 2025 at 09:06):
I agree with this. I remember Michal stressing that it was important to use in LLL in Feb and I was thinking "I don't think that's true at all". Is there a misunderstanding here?
Yaël Dillies (Apr 03 2025 at 09:15):
I have thought about this a bit myself (this is why the blueprint is stated with a pairing, rather than a module and its dual. I believe the correct thing to use here would be docs#PerfectPairing, except that I do not know how to make it practical:
- If it stays a non-class, then we need to carry it around always
- If it becomes a class, then we will need to make it explicit in a bunch of places, because Lean won't be able to guess
N
fromM
and[PerfectPairing M N]
alone, and I do not know whether complications will arise from a potentialPerfectPairing M N → PerfectPairing N M
instance.
Yaël Dillies (Apr 03 2025 at 09:17):
I agree that it is very important to have things more generally than . Eg in the blueprint right now we have mentions of duals of rational convex cones, and I believe that the best way to formalise this would be to talk about cones in .
Justus Springer (Apr 03 2025 at 09:32):
I didn't know about docs#PerfectPairing, but yeah that looks correct.
Justus Springer (Apr 03 2025 at 09:40):
Right, it would be annoying to carry N
and M
around explicitly all the time. On the other hand, when I want to speak about the dual of a cone which lives in N
, maybe I should explicitly say where I want that dual to live, otherwise it's not clear what I'm talking about.
Yaël Dillies (Apr 03 2025 at 09:47):
I believe it would be fine so long as N
is a one-letter free variable :grinning: Maybe we could do some trickery where, if N
isn't provided, then it is set to be dual M
. Something similar happens in measure theory with measures and volume
Michał Mrugała (Apr 03 2025 at 13:07):
Kevin Buzzard said:
I agree with this. I remember Michal stressing that it was important to use in LLL in Feb and I was thinking "I don't think that's true at all". Is there a misunderstanding here?
This is most likely a misunderstanding on my part
Michał Mrugała (Apr 03 2025 at 13:18):
This project is in part an excuse to motivate myself to learn about toric varieties
Michał Mrugała (Apr 03 2025 at 14:16):
After talking to some people: I was dead wrong with the reals mattering. I’ll look for sources which develop the theory in a more general setting.
Last updated: May 02 2025 at 03:31 UTC