Let *V* be a vector space of finite dimension *n*
over **R**. A *lattice* in *V*
is the set of integer linear combinations of a basis,
or equivalently the subgroup of *V*
generated by the basis vectors.
That is, to each basis
{*v*_{1},*v*_{2},...,*v _{n}*}
of

The *dual lattice* is the subset *L*^{*}
of *V*^{*} consisting of all functionals
*v*^{*} such that
*v*^{*}(*v*)
is an integer for every *v* in *L*.
This is indeed a lattice, because it is generated
by the dual basis of the generating basis for *L*.
It follows that *L*^{**}=*L*,
and if some lattice *L*' contains *L*
then its dual is contained in *L*^{*}.
If we choose a basis for *V*, thus identifying
*V* with **R**^{n},
then an arbitrary basis consists of the columns
of an arbitrary invertible matrix
*M* of order *n*;
the lattice generated by this basis consists of all vectors of the form
*Ma* where *A* is a column vector of *n* integers;
and the dual lattice is generated by the vectors that constitute
the inverse transpose of *M*
(relative to the dual basis of *V*^{*}).

This becomes really interesting when *V* has an inner product.
Then it's no longer true that all lattices are equivalent,
nor that Aut(*L*) is infinite. In fact:

**Proposition.**
*Every lattice in an inner-product space
has a finite automorphism group.*

*Proof*: The automorphism group of a lattice *L*
in an inner-product space *V* is the intersection of
GL(*L*) with O(*V*). We regard both of these groups
as subsets of the *n*^{2}-dimensional space
of linear operators on *V*, and exploit the fact
that all norms on this space yield the same topology.
Using a basis for *V* consisting of generators of *L*,
we see that GL(*L*) is a subset of the set of
*n*-by-*n* integer matrices, which is discrete.
Using a basis for *V* orthonormal
with respect to the inner product,
we see that O(*V*) is compact,
since it is a closed bounded subset
of a finite-dimensional real vector space.
A discrete subset of a compact set is finite, so we are done.

Every lattice has at least two automorphisms: the identity 1,
and -1. For ``most'' lattices, that's the full automorphism group;
but there are lattices with much more interesting automorphism groups.
The most striking case of this is Leech's lattice
*L*_{24} in **R**^{24},
with Aut(*L*_{24})/{1,-1}
being Conway's sporadic simple group *Co*_{1}.
A more down-to-earth example is the lattice
**Z**^{n}
generated by an orthogonal basis for
**R**^{n};
its automorphism group is the ``hyperoctahedral group'' or
``signed permutation group'' of order
2^{n}*n*!.
This is known to be the largest possible Aut(*L*)
for a lattice in **R**^{n},
except for the seven dimensions *n*=2,4,6,7,8,9,10
for which a more symmetric lattice exists
(e.g., for *n*=2 the hexagonal lattice has 12 symmetries
whereas the square lattice **Z**^{2}
has only 2^{2}2!=8.).

To show that **Z**^{n}
has no automorphisms other than the signed permutations,
we can use the fact that any automorphism must permute
the set of lattice vectors *v* such that
<*v*,*v*>=1,
which for **Z**^{n}
consists of the unit vectors and their negatives
(vertices of an *n*-dimensional hyperoctahedron).
In general, since any lattice *L* is discrete
(and closed balls in **R**^{n} are compact),
there exists a minimal value
*N*_{min}(*L*) of <*v*,*v*>
as *v* ranges over *nonzero* lattice vectors.
The number of lattice vectors *v* such that
<*v*,*v*>=*N*_{min}(*L*)
is called the ``kissing number'' of the lattice
(which we shall denote here by k(*L*)
since the customary kappa is not available in HTML).
The reason for this term is the *sphere packing*
(more properly, a packing of equal balls) associated to *L*:
open balls of radius *r* centered around lattice points
do not overlap if and only if
4*r*^{2}<=*N*_{min}(*L*),
and if we choose *r* so that
4*r*^{2}=*N*_{min}(*L*),
then each ball in the packing is tangent to k(*L*) others.
The configuration of k(*L*) minimal nonzero vectors
may itself be regarded as (the configuration of centers in)
a packing of equal balls on the surface of a sphere
in **R**^{n}.
Certain *L* in various low dimensions
(48 is still ``low'' for this purpose)
give rise to very dense sphere packings with large kissing numbers;
in some cases (notably *n*=8,24, and conjecturally all
*n*<8 too) there is a lattice whose minimal vectors
solve the kissing-number problem in **R**^{n}.

In practice it can be quite difficult to find
*N*_{min}(*L*)
given a set of generators for a lattice *L*
in a high-dimensional space.
Even in low dimensions (up to 8 or so), in which an exact solution
of this problem is known, it is nontrivial; in higher dimensions
the LLL algorithm (due to **L**enstra,
**L**enstra, and **L**ovasz
-- yes, the first two are brothers) is a useful approximate solution,
much more useful in fact than available theorems can explain.
The problem of finding short nonzero vectors in lattices
has many applications,
such as simultaneous rational approximation,
recognizing approximate algebraic numbers, etc.,
as well as some less immediate uses,
for instance searching efficiently for near-identities such as