A lattice in Magma is a free Z-module of rank m inside Zn, Qn, or Rn, where m ≤n. We call m the rank or dimension of the lattice and n its degree. A lattice with m=n is called a full lattice. There are two pieces of information which completely determine a lattice L: the basis matrix B and the inner product matrix M. M is always a positive definite matrix (i.e., a matrix M such that vMvtr > 0 for all non-zero vectors v∈Rn).
All other information associated with a lattice L is derived from B and M. For example, the inner product (., .) for L is given by (v, w) = v M wtr and thus the Gram matrix F for L giving the inner products of the basis vectors is BMBtr.
Lattices differ from R-spaces in that a lattice is always a Z-module even if entries of some elements of the lattice are not integers. For R-spaces the base ring R affects the module structure but for lattices the "base ring" R is just defined to be the smallest ring over which the basis and inner product matrices can be represented. Magma basically has two kinds of lattices: exact lattices for which all of the entries of B and M (and thus F) lie in either Z or Q, and non-exact lattices for which all of the entries of B and M (and thus F) lie in a particular approximate real field R.
For exact lattices, the "base ring" R may be Z or Q as mentioned above so that elements are represented over R, but otherwise there is nothing in the lattice which distinguishes between the Z and Q cases. When exact lattices are printed, the basis matrix B is presented uniquely as an integral matrix divided by a minimal positive integral denominator. The inner product matrix M is presented similarly. This tends to be a more natural presentation which reflects the Z-module structure. Another useful feature of this presentation is that the inner product can be efficiently defined to be the identity matrix divided by an appropriate integral scale factor. In this way, the basis can be kept rational while still obtaining an integral primitive Gram matrix (a matrix with integral entries which are coprime), thus avoiding the need for rescaling the basis by an irrational square root. This method is followed in the construction of special lattices provided within Magma.
For non-exact lattices, the basis matrix B is simply presented as it is represented over the ring R which is an approximate real field. Some operations applicable for exact lattices are not possible for non-exact lattices. Thus if in the description of a function below it is said that the function can only be applied to an exact lattice it means that the function cannot be applied to a lattice over an approximate real field.
Two lattices are said to be compatible if their inner product matrices are equal. Many operations on lattices assume that their arguments are compatible. Intuitively, two lattices and their elements are not comparable if their inner product matrices are different.
Associated with a lattice L is its coordinate lattice L' which has the standard basis (i.e., its basis matrix is the identity matrix) but has the same Gram matrix as L. Some operations, e.g., automorphism group, always work with the coordinates of elements of the lattice, so it is necessary to move to the coordinate lattice.
The category of lattices is Lat.