The Leech Lattice in $\mathbb{R}^{24}$ has 196,560 shortest vectors. Let $V$ be the set of all such vectors. For any pair of vectors $x,y \in V$, the inner product $<x,y>$ is an integer between $-4$ and $4$. If I fix one vector $v \in V$ (by symmetry, it doesn't matter which one), how many of the remaining shortest vectors are orthogonal to it? I.e., given $v \in V$, what is $| \{w \in V: <v, w> = 0 \}|$? This must be something that is well known, but I'm having trouble looking it up.
Asked
Active
Viewed 152 times
8
-
This is interesting; do you have any lattices of smaller dimension for which you know the answer? Meanwhile, in Lattices and Codes by Ebeling (I have the second edition) there are some curious tidbits due to Conway, Parker, Sloane, related to the covering radius. Lemma 4.1 on page 113 says every element of $\Lambda$ is congruent mod $2\Lambda$ to an element of squared length no larger than 8. – Will Jagy Feb 10 '22 at 17:54
-
2For the 240 shortest vectors in the E8 lattice, each one is orthogonal to 126 others. We computed this directly in Sage. It is easy to describe the coordinates for these shortest vectors, so it was easy to write the code... – Matthew Kahle Feb 10 '22 at 23:54
-
it should be 196560 shortest vectors not 196580 – unknown Aug 01 '22 at 21:41
1 Answers
4
Unless I made a mistake (so much for reputable...), the answer is 93150. Here is how to compute it in GAP (you could call it from Sage...). First, start with the generators of the Leech lattice (as in Conway, Sloane; but Wikipedia has a version one can paste):
Leechgens:=[
[8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0],
[2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0],
[2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0],
[2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0],
[2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0],
[4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0],
[2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,2,2,0,0,0,0,0,0],
[2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,2,0,2,0,0,0,0,0],
[2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,2,0,0,2,0,0,0,0],
[0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0],
[0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0],
[0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0],
[-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]*1/ER(8);
Now calculate the Gram matrix, and -- using it -- the vectors of length at most 4:
gap> gram:=List(Leechgens,x->List(Leechgens,y->x*y));;
gap> s:=ShortestVectors(gram,4);;
These are now coefficient vectors, so expand. Also we need to add negatives:
gap> short:=List(s.vectors,x->x*Leechgens);;
gap> short:=List(short,Immutable);; # so sets can remember they are sorted
gap> short:=Union(short,-short);;
We can verify the patterns of nonzero entries (as on p. 133 in Conway/Sloane)
gap> Collected(List(short,x->Number(x,y->not IsZero(y))));
[ [ 2, 1104 ], [ 8, 97152 ], [ 24, 98304 ] ]
And now, for the piece de resistance:
gap> Number(short,x->IsZero(x*short[1]));
93150
ahulpke
- 18,416
- 1
- 21
- 38