 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
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 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 : 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 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 gt 0]; 349 5 350 > R := [r : 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