Theory

Overlattices and the genus symbol

Integral overlattices of a lattice, counted through the discriminant form, and the genus symbol.

Let \(L\) be an integral lattice that is nondegenerate, with discriminant group \(A_L \cong L^*/L\) and discriminant form \(b_{A_L}\).

Integral overlattices

An integral overlattice of \(L\) is an integral lattice \(M\) with \(L \subseteq M \subseteq L^*\).

\(M \mapsto M/L\) is a bijection from the integral overlattices to the subgroups \(H\) of \(A_L\) with \(b_{A_L}(H, H) = 0\).

An even \(L\) can have odd overlattices: for \(L = \langle 4 \rangle = \mathbb{Z}v\), \(M = \mathbb{Z}\tfrac{v}{2} \cong \langle 1 \rangle\).

The page states the number of integral overlattices, with \(M = L\) counted. Each subgroup \(H\) counts once, so overlattices that are isometric to each other count separately. The number is stated when \(A_L\) has at most 100000 subgroups; otherwise it is not decided.

Genus symbol

The genus symbol of \(L\) is \(\mathrm{I}\) when \(L\) is odd and \(\mathrm{II}\) when \(L\) is even, with the signature as subscript, such as \(\mathrm{II}_{1,9}\). When the determinant is not \(1\) or \(-1\), the local symbol at each prime that divides twice the determinant follows in parentheses, in the notation that SageMath prints.

Class number of the genus

Two lattices are in the same genus when they have the same signature and \(L \otimes \mathbb{Z}_p \cong L' \otimes \mathbb{Z}_p\) for every prime \(p\). The class number of the genus of \(L\) is the number of isometry classes of lattices in that genus, the class of \(L\) counted.

The page states the class number when the record has it. It is computed with Genus(G).representatives() of SageMath.

Spinor genera

Let \(L\) and \(M\) be in the same genus, of rank at least 3, with determinant \(d\). There are lattices in their isometry classes with \([L : L \cap M] = [M : L \cap M] = r\) for an integer \(r\) prime to \(2d\). \(L\) and \(M\) are in the same spinor genus when the spinor operator \(\Delta(r)\) is in the spinor kernel (Conway and Sloane, Sphere Packings, Lattices and Groups, 3rd edition, Chapter 15, §9.2–§9.4, Theorems 15–17). The database counts spinor genera up to isometry, proper or improper: the spinor kernel is enlarged by the spinor operator of one improper isometry, so that each spinor genus is a union of isometry classes.

A genus is partitioned into spinor genera, and their number is a power of 2 (Conway and Sloane, Chapter 15, §9.1). The record states that number as spinor_genus_count, computed with Genus(G).spinor_generators(proper=False) of SageMath.

The record states the partition of the class number as spinor_genera: the number of isometry classes in the spinor genus of \(L\), then the number in each other spinor genus, in decreasing order. The first entry is the spinor class number of \(L\), and the sum is the class number of the genus.

For an indefinite lattice of rank at least 3, a spinor genus contains exactly one isometry class (Eichler; Conway and Sloane, Chapter 15, Theorem 14), so every entry is \(1\) and the class number equals the number of spinor genera. For a definite lattice the class number and the number of spinor genera do not determine the partition: the genus of \(\langle 1 \rangle \oplus \langle 4 \rangle \oplus \langle 64 \rangle\) has three classes in two spinor genera. latticedb certify finds the classes of each spinor genus by Kneser’s neighbour method at a prime \(p\) whose spinor operator is in the kernel, which stays in one spinor genus, and checks that the sum of \(1/|O(M)|\) over all classes found equals the mass of the genus.

Hyperbolic index

Let \(U\) be the hyperbolic plane, with Gram matrix \(\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\). The hyperbolic index of a nondegenerate integral lattice \(L\) is the largest \(n \geq 0\) with \(L \cong U^n \oplus L'\) for a lattice \(L'\).

Let \(L\) be integral and let \(M \subseteq L\) be a unimodular sublattice. Then \(L = M \oplus M^{\perp}\). So the hyperbolic index of \(L\) is also the largest \(n\) with an embedding \(U^n \hookrightarrow L\).

For \(x \in L\), the map \(y \mapsto b(x, y)\) on \(M\) takes integer values. Because \(M\) is unimodular, this map is \(b(m, \cdot)\) for one \(m \in M\), and then \(x - m \in M^{\perp}\). So \(L = M + M^{\perp}\), and \(M \cap M^{\perp} = 0\) because \(b\) is nondegenerate on \(M\).

So an embedding of \(U^n\) into an integral lattice is primitive, and \(L\) is never a proper overlattice of \(U^n \oplus (U^n)^{\perp}\). The proposition requires \(L\) integral: \(U \subseteq U(\tfrac{1}{2})\) has index 2, and \(U(\tfrac{1}{2})\) has no summand \(U\).

An indefinite lattice \(S\) of rank at least 3 is alone in its genus when, for each odd prime \(p\), \(S \otimes \mathbb{Z}_p\) has two orthogonal summands of rank 1 and the same scale, and \(S \otimes \mathbb{Z}_2\) has a summand \(U(2^k)\) or one of two other forms that the theorem lists (Nikulin 1980: V. V. Nikulin, Integral symmetric bilinear forms and some of their applications, Math. USSR-Izv. 14 (1980), 103–167, Theorem 1.13.1*).

A lattice \(U \oplus L'\) of rank at least 3 satisfies these conditions with \(k = 0\). A lattice in the genus of \(U\) is even, unimodular and binary with determinant \(-1\), so it has a primitive isotropic vector \(e\); unimodularity gives \(f\) with \(b(e, f) = 1\), so it contains a copy of \(U\), which is all of it by the proposition. So \(L \cong U^n \oplus L'\) for some \(L'\) exactly when the genus of \(L\) is the sum of the genus of \(U^n\) and a genus of signature \((n_+ - n, n_- - n)\), and the hyperbolic index depends only on the genus of \(L\). latticedb certify computes it so: for \(n\) from \(\min(n_+, n_-)\) down to 1, it searches the genera of that signature with determinant \((-1)^n \det L\) and the parity of \(L\), with genera and Genus.direct_sum of SageMath. A definite lattice has hyperbolic index 0.

A morphism file that embeds \(U^n\) into \(L\) is a lower bound \(n\) for the hyperbolic index of \(L\). latticedb check refuses a stored hyperbolic index that is less than such a bound, and the page of a lattice without a stored value states the bound.