Sharedwww / gross / lattices-aug9.texOpen in CoCalc
Author: William A. Stein
1
\documentclass{article}
2
\include{macros}
3
\title{A Lattice Computation for Dick Gross}
4
\date{August 2001}
5
\begin{document}
6
\maketitle
7
\section{The Assignment}
8
\begin{verbatim}
9
From: gross@math.harvard.edu
10
To: was@math.harvard.edu
11
Date: Wed, 8 Aug 2001 10:52:49 -0400 (EDT)
12
\end{verbatim}
13
I have a computational request, which isn't entirely trivial. Take the
14
reciprocal polynomial of degree~$18$:
15
$$x^{18} - x^{17} + x^{16} - x^{15} - x^{12} + x^{11}
16
- x^{10} + x^9 - x^8 + x^7 - x^6 - x^3
17
+ x^2 - x + 1.$$
18
19
20
If I entered it correctly, the discriminant = $(53995179961)^2$. There is
21
a degree~$9$ polynomial satisfied by $(x + 1/x)$, of
22
discriminant $53995179961$, call this~$g(x)$.
23
24
First, verify that both the degree~$9$ field and the degree $18$ field have
25
class number~$1$. Next, find a totally positive generator for the inverse
26
different ideal I of the degree~$9$ field. This has generator $1/g'(x)$, but
27
that isn't totally positive, so this involves finding a unit of the right
28
signs. Anyhow, call the totally positive generator d, and let A be the ring
29
of integers of the degree~$9$ field, generated by a root of $g(x)$ over $\Z$.
30
31
Finally, consider the Euclidean lattive~$L$ of rank~$9$, with elements in
32
the ring of integers~$A$ and with bilinear form $\langle a,b\rangle = \Tr(dab)$.
33
This lattice is unimodular and positive definite, so by the theory of lattices
34
is either isomorphic to $\Z^9$ or to $E_8 + \Z$. I suspect that the latter is
35
true. If one did a search for vectors a with $\langle a,a\rangle = 1$, one could
36
distinguish these lattices, as the former has~$18$ such vectors, and the
37
latter has only~$2$. Is this doable?
38
39
\section{Answer}
40
\subsection{Class number of degree 18 field in PARI}
41
\begin{verbatim}
42
? f = x^18 - x^17 + x^16 - x^15 - x^12 + x^11 - x^10 + x^9 - x^8 \
43
+ x^7 - x^6 - x^3 + x^2 - x + 1;
44
? factor(poldisc(f))
45
%1 =
46
[53995179961 2]
47
? b = bnfclassunit(f);
48
? b.clgp
49
%2 = [1, [], []]
50
\end{verbatim}
51
52
\subsection{Creating the degree 9 field in MAGMA}
53
\begin{verbatim}
54
> f := x^18 - x^17 + x^16 - x^15 - x^12 + x^11 - x^10 + x^9 - x^8
55
+ x^7 - x^6 - x^3 + x^2 - x + 1;
56
> factor(Discriminant(f));
57
[ <53995179961, 2> ]
58
> K<a> := NumberField(f);
59
> L<b> := sub<K|a+1/a>;
60
> L;
61
Number Field with defining polynomial x^9 - 3*x^8 - 23*x^7 +
62
35*x^6 + 81*x^5 - 116*x^4 - 67*x^3 + 104*x^2 + 8*x - 19
63
over the Rational Field
64
> time h := ClassNumber(MaximalOrder(L));
65
Time: 1.350
66
> h;
67
1
68
\end{verbatim}
69
70
\subsection{Computing the unit group}
71
Next we find the group of units.
72
\begin{verbatim}
73
> g := DefiningPolynomial(L);
74
> g;
75
x^9 - 3*x^8 - 23*x^7 + 35*x^6 + 81*x^5 - 116*x^4 - 67*x^3 + 104*x^2 + 8*x - 19
76
> Roots(PolynomialRing(RealField())!g);
77
[ <-0.468111906454000689322313234631336807368973901776, 1>, <0.558484342299467301848260817414060396183155100382, 1>, <1.2313073740889668988677367163865053658, 1>, <1.3706568287964283199650620889897443169, 1>, <1.1474930126118010257418142242557119149, 1>, <5.6479185634867740095959132409297992529, 1>, <-3.6958681103558892478674250772828809120, 1>, <-1.7843250602092410500834767489211165859, 1>, <-1.00755504426430656874557202714048694160132114234, 1> ]
78
> #$1;
79
9
80
> O := MaximalOrder(L);
81
> U,phi := UnitGroup(O); // takes < 10 seconds
82
> U; // as expected (r-1)
83
Abelian Group isomorphic to Z/2 + Z (8 copies)
84
Defined on 9 generators
85
Relations:
86
2*U.1 = 0
87
> [phi(U.i) : i in [1..9]]; // on a basis for O.
88
[
89
[-1, 0, 0, 0, 0, 0, 0, 0, 0],
90
[2444, 1559, 4517, 2264, 3770, 4548, 2086, 1083, -6909],
91
[24992, 15909, 46139, 23157, 38546, 46485, 21320, 11069, -70615],
92
[18236, 11605, 33686, 16906, 28130, 33927, 15561, 8079, -51540],
93
[2443, 1559, 4517, 2264, 3770, 4548, 2086, 1083, -6909],
94
[47385, 30164, 87513, 43915, 73086, 88147, 40429, 20990, -133906],
95
[2307, 1466, 4259, 2146, 3558, 4288, 1968, 1022, -6519],
96
[15894, 10113, 29338, 14725, 24515, 29563, 13558, 7039, -44906],
97
[2500, 1586, 4596, 2316, 3851, 4639, 2128, 1105, -7049]
98
]
99
\end{verbatim}
100
101
\subsection{Finding a totally positive generator for the inverse different.}
102
\begin{verbatim}
103
> gprime := Derivative(g); gprime;
104
9*x^8 - 24*x^7 - 161*x^6 + 210*x^5 + 405*x^4 - 464*x^3 - 201*x^2 + 208*x + 8
105
> alpha := 1/Evaluate(gprime,b);
106
> // This element is not totally positive
107
> RR<y> := PolynomialRing(RealField());
108
> #[r : r in Roots(RR!MinimalPolynomial(alpha)) | r[1] gt 0];
109
5 // 5 is less than 9 = # embeddings
110
\end{verbatim}
111
Since~$\alpha$ is not totally positive, we have to find a unit $u$ such
112
that $u\alpha$ is totally positive.
113
\begin{verbatim}
114
> R := [r[1] : r in Roots(RR!g)]; // these correspond to the real embeddings.
115
> function EmbeddingSigns(z)
116
h := RR!Eltseq(L!z);
117
return [Sign(Evaluate(h, R[i])) : i in [1..#R]];
118
end function;
119
> EmbeddingSigns(alpha);
120
[ -1, 1, 1, -1, -1, 1, 1, -1, 1 ]
121
> EmbeddingSigns(alpha^2); // a good check.
122
[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
123
\end{verbatim}
124
We can now see the embedding signs for the units.
125
\begin{verbatim}
126
> for i in [1..9] do EmbeddingSigns(phi(U.i)); end for;
127
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
128
[ -1, 1, -1, -1, 1, 1, 1, 1, -1 ]
129
[ 1, 1, -1, 1, 1, -1, -1, -1, -1 ]
130
[ 1, -1, -1, -1, -1, 1, 1, -1, 1 ]
131
[ -1, -1, -1, -1, -1, 1, 1, 1, -1 ]
132
[ 1, -1, 1, -1, 1, -1, 1, 1, -1 ]
133
[ 1, -1, 1, -1, 1, -1, 1, -1, -1 ]
134
[ 1, -1, -1, 1, -1, 1, -1, 1, 1 ]
135
[ 1, 1, -1, -1, -1, 1, 1, -1, -1 ]
136
\end{verbatim}
137
Now the problem is reduced to linear algebra over $\F_2$.
138
\begin{verbatim}
139
> A := MatrixAlgebra(GF(2),9)!0;
140
> for r in [1..9] do for c in [1..9] do
141
if EmbeddingSigns(phi(U.r))[c] eq -1 then A[r,c] := 1; end if;
142
end for; end for;
143
> A;
144
[1 1 1 1 1 1 1 1 1]
145
[1 0 1 1 0 0 0 0 1]
146
[0 0 1 0 0 1 1 1 1]
147
[0 1 1 1 1 0 0 1 0]
148
[1 1 1 1 1 0 0 0 1]
149
[0 1 0 1 0 1 0 0 1]
150
[0 1 0 1 0 1 0 1 1]
151
[0 1 1 0 1 0 1 0 0]
152
[0 0 1 1 1 0 0 1 1]
153
> Rank(A);
154
8
155
> V := RowSpace(A);
156
> W := VectorSpace(GF(2),9);
157
> v1 := W![1,0,0,1,1,0,0,1,0];
158
> v2 := W![0,1,1,0,0,1,1,0,1];
159
> v1 in V;
160
false
161
> v2 in V;
162
false
163
\end{verbatim}
164
Ut oh, something's wrong. There is no totally positive generator of the inverse different!
165
166
Since $V$ has dimension 8, NOT dimension $9$, there is a nontrivial
167
totally positive unit. Let's exhibit it.
168
\begin{verbatim}
169
> Kernel(A);
170
Vector space of degree 9, dimension 1 over GF(2)
171
Echelonized basis:
172
(1 0 0 0 1 1 0 1 1)
173
> EmbeddingSigns(phi(U.1*U.5*U.6*U.8*U.9));
174
[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
175
> aa := U.1*U.5*U.6*U.8*U.9;
176
> MinimalPolynomial(phi(aa));
177
$.1^9 - 37*$.1^8 + 334*$.1^7 - 1251*$.1^6 + 2322*$.1^5 - 2250*$.1^4 + 1125*$.1^3 - 272*$.1^2 + 28*$.1 - 1
178
> ZZ<x> := Parent($1);
179
> MinimalPolynomial(phi(aa));
180
x^9 - 37*x^8 + 334*x^7 - 1251*x^6 + 2322*x^5 - 2250*x^4 + 1125*x^3 - 272*x^2 + 28*x - 1
181
> [r[1] gt 0 : r in Roots(RR!MinimalPolynomial(phi(aa)))];
182
[ true, true, true, true, true, true, true, true, true ]
183
\end{verbatim}
184
Thus
185
$$x^9 - 37x^8 + 334x^7 - 1251x^6 + 2322x^5 - 2250x^4 + 1125x^3 - 272x^2 + 28x - 1$$
186
is the characteristic polynomial of a nontrivially nonsquare
187
totally positive unit.
188
189
190
I'm confused, so I send the following email:
191
\begin{verbatim}
192
To: gross@math.harvard.edu
193
Date: Wed, 8 Aug 2001 19:30:00 -0400
194
195
196
Dear Dick,
197
198
I should clarify that I had checked that the totally positive unit
199
that I sent you in the proceeding email is not a square.
200
201
I flipped through the paper you gave me and came across your
202
Proposition 12.1. I think that condition (a) of that proposition
203
isn't satisfied for the field k defined by the polynomial
204
205
f = x^18 - x^17 + x^16 - x^15 - x^12 + x^11 - x^10 + x^9 - x^8
206
+ x^7 - x^6 - x^3 + x^2 - x + 1
207
208
I mapped the units to (F_2)^9 using the map that sends a unit to
209
sequence of 1s and 0s, where a 1 means that the corresponding
210
embedding of the unit is negative. Unless I made a mistake,
211
the image has the following basis:
212
[
213
(1 0 0 0 0 0 0 0 1),
214
(0 1 0 0 0 0 0 0 1),
215
(0 0 1 0 0 0 0 0 1),
216
(0 0 0 1 0 0 0 0 1),
217
(0 0 0 0 1 0 0 0 1),
218
(0 0 0 0 0 1 0 0 1),
219
(0 0 0 0 0 0 1 0 1),
220
(0 0 0 0 0 0 0 1 0)
221
]
222
223
So we don't have the vector (0 0 0 0 0 0 0 1 1).
224
225
I think by "strict class number" you mean the "narrow class number",
226
because of what the mathscinet review of "On the $4$-rank of the
227
strict class group of a quadratic number field" says. Using PARI, I
228
find that the narrow class number of Q[x]/(f) is 1, not 2 like it
229
would have to be to use in Proposition 12.1. Here's how the PARI
230
computation of the narrow class number goes:
231
? f = x^18 - x^17 + x^16 - x^15 - x^12 + x^11 - x^10 + x^9 - x^8 \
232
+ x^7 - x^6 - x^3 + x^2 - x + 1;
233
? k=bnfinit(f);
234
? bnfnarrow(k)
235
%1 = [1, [], []]
236
237
238
-- William
239
\end{verbatim}
240
241
He responds
242
\begin{verbatim}
243
From: gross@math.harvard.edu
244
To: was@math.harvard.edu
245
Date: Thu, 9 Aug 2001 09:46:43 -0400 (EDT)
246
247
248
In my paper, the field k is defined by the 9th degree polynomial, which
249
I think is
250
251
y^9 - y^8 - 8*y^7 + 7*y^6 + 20*y^5 - 14*y^4 - 17*y^3 + 8*y^2 + 4*y - 1
252
253
and the field K is defined by the 18th degree polynomial I sent you.
254
The strict class number of k is 2, and the strict class number of K
255
is 1.
256
257
You are right that there is a relation on the signs of units in k, so
258
there is a totally positive unit which is not a square. The relation
259
is that the product of signs over the 8 real places which become
260
complex in K is equal to 1; these correspond to the 8 roots of the
261
polynomial g(y) above which lie in the interval -2 < y < 2. But
262
g'(y) is positive at 4 of these roots, and negative at 4 of them, by
263
what I used to teach in math 1a. So there should be a unit u which
264
makes u/g'(y) totally positive. One can modify u by the totally
265
positive unit you sent me, and that gives the two lattices L1 and L2
266
of my paper.
267
268
Dick
269
270
---
271
Let g(y) = y^9 - y^8 - 8*y^7 + 7*y^6 + 20*y^5 - 14*y^4 - 17*y^3 + 8*y^2 + 4*y - 1
272
273
be the polynomial for the degree 9 field k, and index the real places of k by
274
the roots of g(y), in increasing order, from -1.995.. to 2.029.. Just fooling
275
around, I found the following units, with their signs:
276
277
-1 - - - - - - - - -
278
y - - - - + + + + +
279
y-2 - - - - - - - - +
280
y-1 - - - - - - + + +
281
y+2 + + + + + + + + + (and not a square).
282
283
With a little more work, I found the signs
284
285
+ + + - - - - + + for y^2 - y - 1
286
+ - - + + + - - + for y^4 - 4*y^2 + 2
287
288
Anyhow, this fits my prediction that the only relation on signs is that the
289
first 8 entries (the real places ramified in K/k) have an even number of
290
- signs. Since g'(y) has the signs + - + - + - + - +, we should be able to
291
find a unit that matches it.
292
293
Dick
294
---
295
296
297
298
Since g(y) + 1 = (y-2)*(y-1)^2*(y)*(y+1)*(y+2)*(y^3-3*y-1), the elements
299
300
y-2,y-1,y,y+1,y+2 are all units. Amazing.
301
302
Dick
303
\end{verbatim}
304
305
Indeed,
306
\begin{verbatim}
307
? g=x^9 - 3*x^8 - 23*x^7 + 35*x^6 + 81*x^5 - \
308
116*x^4 - 67*x^3 + 104*x^2 + 8*x - 19;
309
? k=bnfinit(g);
310
? bnfnarrow(k)
311
%5 = [2, ...]
312
\end{verbatim}
313
314
Now I see what the problem is. The degree 9 polynomial~$g$ that I've been
315
using above is {\em not} the minimal polynomial of $x+1/x$; it's just
316
a polynomial that MAGMA chose which corresponds to the same field, but
317
is somehow reduced in a better way than the minimal polynomial of
318
$x+1/x$. So, we restart the computation with the correct~$g$.
319
time h := ClassNumber(MaximalOrder(L));
320
321
\begin{verbatim}
322
323
> f := x^18 - x^17 + x^16 - x^15 - x^12 + x^11 - x^10 + x^9 - x^8
324
+ x^7 - x^6 - x^3 + x^2 - x + 1;
325
> K<a> := NumberField(f);
326
> g := MinimalPolynomial(a+1/a);
327
> g;
328
x^9 - x^8 - 8*x^7 + 7*x^6 + 20*x^5 - 14*x^4 - 17*x^3 + 8*x^2 + 4*x - 1
329
> L<b> := NumberField(g);
330
> L;
331
Number Field with defining polynomial x^9 - x^8 - 8*x^7 + 7*x^6 + 20*x^5 - 14*x^4 - 17*x^3 + 8*x^2 + 4*x - 1 over the Rational Field
332
> time h := ClassNumber(MaximalOrder(L));
333
Time: 0.900
334
> h;
335
1
336
> O := MaximalOrder(L);
337
> time U,phi := UnitGroup(O); // takes < 10 seconds
338
Time: 2.800
339
> U; // as expected (r-1)
340
Abelian Group isomorphic to Z/2 + Z (8 copies)
341
Defined on 9 generators
342
Relations:
343
2*U.1 = 0
344
> gprime := Derivative(g); gprime;
345
9*x^8 - 8*x^7 - 56*x^6 + 42*x^5 + 100*x^4 - 56*x^3 - 51*x^2 + 16*x + 4
346
> alpha := 1/Evaluate(gprime,b);
347
> RR<y> := PolynomialRing(RealField());
348
> #[r : r in Roots(RR!MinimalPolynomial(alpha)) | r[1] gt 0];
349
5
350
> R := [r[1] : r in Roots(RR!g)]; // these correspond to the real embeddings.
351
> function EmbeddingSigns(z)
352
h := RR!Eltseq(L!z);
353
return [Sign(Evaluate(h, R[i])) : i in [1..#R]];
354
end function;
355
function> function> function> >
356
>
357
> EmbeddingSigns(alpha);
358
[ -1, 1, -1, 1, -1, 1, 1, -1, 1 ]
359
> for i in [1..9] do EmbeddingSigns(phi(U.i)); end for;
360
[ -1, -1, -1, -1, -1, -1, -1, -1, -1 ]
361
[ 1, 1, -1, 1, 1, 1, -1, -1, -1 ]
362
[ 1, 1, -1, -1, -1, -1, 1, 1, -1 ]
363
[ 1, 1, 1, -1, -1, 1, 1, -1, -1 ]
364
[ 1, 1, 1, -1, -1, -1, 1, 1, 1 ]
365
[ 1, -1, -1, -1, 1, -1, 1, -1, 1 ]
366
[ 1, -1, -1, -1, 1, 1, 1, -1, 1 ]
367
[ 1, 1, 1, 1, -1, -1, -1, -1, -1 ]
368
[ 1, -1, -1, 1, 1, -1, -1, 1, -1 ]
369
> A := MatrixAlgebra(GF(2),9)!0;
370
> for r in [1..9] do for c in [1..9] do
371
> for|for> if EmbeddingSigns(phi(U.r))[c] eq -1 then A[r,c] := 1; end if;
372
end for; end for;
373
for|for> >
374
> A;
375
[1 1 1 1 1 1 1 1 1]
376
[0 0 1 0 0 0 1 1 1]
377
[0 0 1 1 1 1 0 0 1]
378
[0 0 0 1 1 0 0 1 1]
379
[0 0 0 1 1 1 0 0 0]
380
[0 1 1 1 0 1 0 1 0]
381
[0 1 1 1 0 0 0 1 0]
382
[0 0 0 0 1 1 1 1 1]
383
[0 1 1 0 0 1 1 0 1]
384
> V := RowSpace(A);
385
> V;
386
Vector space of degree 9, dimension 8 over GF(2)
387
Echelonized basis:
388
(1 0 0 0 0 0 0 0 1)
389
(0 1 0 0 0 0 0 0 1)
390
(0 0 1 0 0 0 0 0 1)
391
(0 0 0 1 0 0 0 0 1)
392
(0 0 0 0 1 0 0 0 1)
393
(0 0 0 0 0 1 0 0 0)
394
(0 0 0 0 0 0 1 0 1)
395
(0 0 0 0 0 0 0 1 1)
396
> W := VectorSpace(GF(2),9);
397
> // [ -1, 1, -1, 1, -1, 1, 1, -1, 1 ]
398
> v := W![1,0,1,0,1,0,0,1,0];
399
> > v in V;
400
true
401
> v;
402
(1 0 1 0 1 0 0 1 0)
403
> Eltseq(V!v);
404
[ 1, 0, 1, 0, 1, 0, 0, 1, 0 ]
405
> ?Solve;
406
MAGMA_HTML_DIR is not set
407
> Solution(A,v);
408
(1 1 0 0 0 1 0 0 0)
409
> alpha;
410
1/53995179961*(8462152596*b^8 - 6852528273*b^7 - 64893174399*b^6 + 44327911581*b^5 + 148290056856*b^4 - 74228933970*b^3 - 99225969383*b^2 + 23785291597*b + 10873550202)
411
> d := alpha*phi(U.1+U.2+U.6);
412
> EmbeddingSigns(d);
413
[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
414
> d;
415
1/53995179961*(-3426147347*b^8 + 817946757*b^7 + 29470572047*b^6 - 3984702109*b^5 - 80455461231*b^4 + 2178527185*b^3 + 70870946633*b^2 + 3409710051*b - 2902988849)
416
> Norm(d);
417
1/53995179961
418
> Norm(alpha);
419
1/53995179961
420
> // d is the totally positive generator for the inverse different!
421
> Kernel(A);
422
Vector space of degree 9, dimension 1 over GF(2)
423
Echelonized basis:
424
(0 0 0 0 1 1 0 1 1)
425
> // ... and, that's a nonsquare unit that is totally positive...
426
>
427
> O;
428
Maximal Equation Order with defining polynomial x^9 - x^8 - 8*x^7 + 7*x^6 + 20*x^5 - 14*x^4 - 17*x^3 + 8*x^2 + 4*x - 1 over Z
429
> Trace(d*O.1*O.2);
430
0
431
> Trace(d*O.1*O.3);
432
1
433
> function bin(a,b) return Trace(d*a*b); end function;
434
> bin(O.1,O.3);
435
1
436
> Type($1);
437
FldRatElt
438
> B := MatrixAlgebra(Rationals(),9)!0;
439
> for r in [1..9] do for c in [1..9] do B[r,c] := bin(O.r,O.c); end for; end for;
440
> B;
441
[ 1 0 1 0 2 0 6 0 21]
442
[ 0 1 0 2 0 6 0 21 0]
443
[ 1 0 2 0 6 0 21 0 78]
444
[ 0 2 0 6 0 21 0 78 0]
445
[ 2 0 6 0 21 0 78 0 298]
446
[ 0 6 0 21 0 78 0 298 0]
447
[ 6 0 21 0 78 0 298 0 1157]
448
[ 0 21 0 78 0 298 0 1157 1]
449
[ 21 0 78 0 298 0 1157 1 4539]
450
> Determinant(B);
451
1
452
> // B is the Gram matrix that defines our lattice.
453
> L := LatticeWithGram(B);
454
> L;
455
Standard Lattice of rank 9 and degree 9
456
Inner Product Matrix:
457
[ 1 0 1 0 2 0 6 0 21]
458
[ 0 1 0 2 0 6 0 21 0]
459
[ 1 0 2 0 6 0 21 0 78]
460
[ 0 2 0 6 0 21 0 78 0]
461
[ 2 0 6 0 21 0 78 0 298]
462
[ 0 6 0 21 0 78 0 298 0]
463
[ 6 0 21 0 78 0 298 0 1157]
464
[ 0 21 0 78 0 298 0 1157 1]
465
[ 21 0 78 0 298 0 1157 1 4539]
466
> time short := ShortVectors(L,1);
467
Time: 0.000
468
> short;
469
[
470
<( 1 0 -1 0 0 0 0 0 0), 1>,
471
<(1 0 0 0 0 0 0 0 0), 1>,
472
<( 2 0 -4 0 1 0 0 0 0), 1>,
473
<( 3 0 -9 0 6 0 -1 0 0), 1>,
474
<( 4 0 -17 0 20 0 -8 0 1), 1>,
475
<( 4 3 -17 -9 20 6 -8 -1 1), 1>,
476
<( 4 5 -17 -13 20 7 -8 -1 1), 1>,
477
<( 4 7 -17 -14 20 7 -8 -1 1), 1>,
478
<(0 1 0 0 0 0 0 0 0), 1>
479
]
480
\end{verbatim}
481
482
Now I'll send an email:
483
484
\begin{verbatim}
485
Dear Dick,
486
487
The problem was that MAGMA chose the wrong polynomial as defining
488
polynomial for the subfield. With the correct polynomial, the
489
computation was very easy. A totally-positive generator for the
490
inverse different has minimal polynomial
491
492
x^9 - x^8 + 21031903322/53995179961*x^7 - 4130791902/53995179961*x^6 +
493
447388898/53995179961*x^5 - 27890118/53995179961*x^4 +
494
1015898/53995179961*x^3 - 21138/53995179961*x^2 + 230/53995179961*x
495
- 1/53995179961
496
497
The rank 9 lattice is defined by the Gram matrix:
498
[ 1 0 1 0 2 0 6 0 21]
499
[ 0 1 0 2 0 6 0 21 0]
500
[ 1 0 2 0 6 0 21 0 78]
501
[ 0 2 0 6 0 21 0 78 0]
502
[ 2 0 6 0 21 0 78 0 298]
503
[ 0 6 0 21 0 78 0 298 0]
504
[ 6 0 21 0 78 0 298 0 1157]
505
[ 0 21 0 78 0 298 0 1157 1]
506
[ 21 0 78 0 298 0 1157 1 4539]
507
508
This lattice has 18 vectors of length 1, so it's Z^9.
509
The vectors, up to sign and along with their norms, are:
510
[
511
<( 1 0 -1 0 0 0 0 0 0), 1>,
512
<(1 0 0 0 0 0 0 0 0), 1>,
513
<( 2 0 -4 0 1 0 0 0 0), 1>,
514
<( 3 0 -9 0 6 0 -1 0 0), 1>,
515
<( 4 0 -17 0 20 0 -8 0 1), 1>,
516
<( 4 3 -17 -9 20 6 -8 -1 1), 1>,
517
<( 4 5 -17 -13 20 7 -8 -1 1), 1>,
518
<( 4 7 -17 -14 20 7 -8 -1 1), 1>,
519
<(0 1 0 0 0 0 0 0 0), 1>
520
]
521
\end{verbatim}
522
523
Then Dick asked me to compute the same info with $d$ multiplied
524
by $b+2$:
525
526
\begin{verbatim}
527
> restore "august9.session";
528
Restoring Magma state from "august9.session"
529
> d;
530
1/53995179961*(-3426147347*b^8 + 817946757*b^7 + 29470572047*b^6 - 3984702109*b^5 - 80455461231*b^4 + 2178527185*b^3 + 70870946633*b^2 + 3409710051*b - 2902988849)
531
> EmbeddingSigns(b+2);
532
[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
533
> d2 := (b+2)*d;
534
> function bin2(a,b) return Trace(d2*a*b); end function;
535
> B2 := MatrixAlgebra(Rationals(),9)!0;
536
> for r in [1..9] do for c in [1..9] do B2[r,c] := bin2(O.r,O.c); end for; end for;
537
> B2;
538
[ 2 1 2 2 4 6 12 21 42]
539
[ 1 2 2 4 6 12 21 42 78]
540
[ 2 2 4 6 12 21 42 78 156]
541
[ 2 4 6 12 21 42 78 156 298]
542
[ 4 6 12 21 42 78 156 298 596]
543
[ 6 12 21 42 78 156 298 596 1157]
544
[ 12 21 42 78 156 298 596 1157 2315]
545
[ 21 42 78 156 298 596 1157 2315 4541]
546
[ 42 78 156 298 596 1157 2315 4541 9095]
547
>
548
> L2 := LatticeWithGram(B2);
549
> L2;
550
Standard Lattice of rank 9 and degree 9
551
Inner Product Matrix:
552
[ 2 1 2 2 4 6 12 21 42]
553
[ 1 2 2 4 6 12 21 42 78]
554
[ 2 2 4 6 12 21 42 78 156]
555
[ 2 4 6 12 21 42 78 156 298]
556
[ 4 6 12 21 42 78 156 298 596]
557
[ 6 12 21 42 78 156 298 596 1157]
558
[ 12 21 42 78 156 298 596 1157 2315]
559
[ 21 42 78 156 298 596 1157 2315 4541]
560
[ 42 78 156 298 596 1157 2315 4541 9095]
561
> time short2 := ShortVectors(L2,1);
562
Time: 0.000
563
> #short2;
564
1
565
> short2;
566
[
567
<( 2 -1 -8 4 8 -4 -2 1 0), 1>
568
]
569
> Determinant(L2);
570
1
571
> save "august9.session";
572
Saving Magma state to "august9.session"
573
\end{verbatim}
574
575
I then wrote to him:
576
577
\begin{verbatim}
578
From: William A. Stein <was@math.harvard.edu>
579
To: gross@math.harvard.edu
580
Date: Thu, 9 Aug 2001 16:09:04 -0400
581
582
583
On Thursday 09 August 2001 04:02 pm, you wrote:
584
> Great. Could you now multiply the totally positive generator you used
585
> by the totally positive unit (x+2) and calculate the new Gram matrix and
586
> lattice. Is it also Z^9?
587
588
589
No, it's not!
590
591
The Gram matrix for this other lattice is
592
593
[ 2 1 2 2 4 6 12 21 42]
594
[ 1 2 2 4 6 12 21 42 78]
595
[ 2 2 4 6 12 21 42 78 156]
596
[ 2 4 6 12 21 42 78 156 298]
597
[ 4 6 12 21 42 78 156 298 596]
598
[ 6 12 21 42 78 156 298 596 1157]
599
[ 12 21 42 78 156 298 596 1157 2315]
600
[ 21 42 78 156 298 596 1157 2315 4541]
601
[ 42 78 156 298 596 1157 2315 4541 9095]
602
603
There are only two vectors of length 1:
604
605
( 2 -1 -8 4 8 -4 -2 1 0) and its negative.
606
607
Best regards,
608
609
William
610
\end{verbatim}
611
612
613
614
\end{document}
615