Using the Smith normal form to manipulate lattice subgroups and closed torus subgroups
What's new 2022-07-20
Let denote the space of
matrices with integer coefficients, and let
be the group of invertible
matrices with integer coefficients. The Smith normal form takes an arbitrary matrix
and factorises it as
, where
,
, and
is a rectangular diagonal matrix, by which we mean that the principal
minor is diagonal, with all other entries zero. Furthermore the diagonal entries of
are
for some
(which is also the rank of
) with the numbers
(known as the invariant factors) principal divisors with
. The invariant factors are uniquely determined; but there can be some freedom to modify the invertible matrices
. The Smith normal form can be computed easily; for instance, in SAGE, it can be computed calling the
function from the matrix class. The Smith normal form is also available for other principal ideal domains than the integers, but we will only be focused on the integer case here. For the purposes of this post, we will view the Smith normal form as a primitive operation on matrices that can be invoked as a “black box”.
In this post I would like to record how to use the Smith normal form to computationally manipulate two closely related classes of objects:
- Subgroups
of a standard lattice
(or lattice subgroups for short);
- Closed subgroups
of a standard torus
(or closed torus subgroups for short).
The above two classes of objects are isomorphic to each other by Pontryagin duality: if is a lattice subgroup, then the orthogonal complement
Example 1 The orthogonal complement of the lattice subgroupis the closed torus subgroup
and conversely.
Let us focus first on lattice subgroups . As all such subgroups are finitely generated abelian groups, one way to describe a lattice subgroup is to specify a set
of generators of
. Equivalently, we have
Example 2 Letbe the lattice subgroup generated by
,
,
, thus
with
. A Smith normal form for
is given by
so
is a rank two lattice with a basis of
and
(and the invariant factors are
and
). The trimmed representation is
There are other Smith normal forms for
, giving slightly different representations here, but the rank and invariant factors will always be the same.
By the above discussion we can represent a lattice subgroup by a matrix
for some
; this representation is not unique, but we will address this issue shortly. For now, we focus on the question of how to use such data representations of subgroups to perform basic operations on lattice subgroups. There are some operations that are very easy to perform using this data representation:
- (Applying a linear transformation) if
, so that
is also a linear transformation from
to
, then
maps lattice subgroups to lattice subgroups, and clearly maps the lattice subgroup
to
for any
.
- (Sum) Given two lattice subgroups
for some
,
, the sum
is equal to the lattice subgroup
, where
is the matrix formed by concatenating the columns of
with the columns of
.
- (Direct sum) Given two lattice subgroups
,
, the direct sum
is equal to the lattice subgroup
, where
is the block matrix formed by taking the direct sum of
and
.
One can also use Smith normal form to detect when one lattice subgroup is a subgroup of another lattice subgroup
. Using Smith normal form factorization
, with invariant factors
, the relation
is equivalent after some manipulation to
Example 3 To test whether the lattice subgroupgenerated by
and
is contained in the lattice subgroup
from Example 2, we write
as
with
, and observe that
The first row is of course divisible by
, and the last row vanishes as required, but the second row is not divisible by
, so
is not contained in
(but
is); also a similar computation verifies that
is conversely contained in
.
One can now test whether by testing whether
and
simultaneously hold (there may be more efficient ways to do this, but this is already computationally manageable in many applications). This in principle addresses the issue of non-uniqueness of representation of a subgroup
in the form
.
Next, we consider the question of representing the intersection of two subgroups
in the form
for some
and
. We can write
Example 4 With the latticefrom Example 2, we shall compute the intersection of
with the subgroup
, which one can also write as
with
. We obtain a Smith normal form
so
. We have
and so we can write
where
One can trim this representation if desired, for instance by deleting the first column of
(and replacing
with
). Thus the intersection of
with
is the rank one subgroup generated by
.
A similar calculation allows one to represent the pullback of a subgroup
via a linear transformation
, since
Among other things, this allows one to describe lattices given by systems of linear equations and congruences in the format. Indeed, the set of lattice vectors
that solve the system of congruences
Example 5 With the lattice subgroupfrom Example 2, we have
, and so
consists of those triples
which obey the (redundant) congruence
the congruence
and the identity
Conversely, one can use the above procedure to convert the above system of congruences and identities back into a form
(though depending on which Smith normal form one chooses, the end result may be a different representation of the same lattice group
).
Now we apply Pontryagin duality. We claim the identity
Example 6 The orthogonal complement of the lattice subgroupfrom Example 2 is the closed torus subgroup
using the trimmed representation of
, one can simplify this a little to
and one can also write this as the image of the group
under the torus isomorphism
In other words, one can write
so that
is isomorphic to
.
We can now dualize all of the previous computable operations on subgroups of to produce computable operations on closed subgroups of
. For instance:
- To form the intersection or sum of two closed torus subgroups
, use the identities
and
and then calculate the sum or intersection of the lattice subgroupsby the previous methods. Similarly, the operation of direct sum of two closed torus subgroups dualises to the operation of direct sum of two lattice subgroups.
- To determine whether one closed torus subgroup
is contained in (or equal to) another closed torus subgroup
, simply use the preceding methods to check whether the lattice subgroup
is contained in (or equal to) the lattice subgroup
.
- To compute the pull back
of a closed torus subgroup
via a linear transformation
, use the identity
Similarly, to compute the imageof a closed torus subgroup
, use the identity
Example 7 Suppose one wants to compute the sum of the closed torus subgroupfrom Example 6 with the closed torus subgroup
. This latter group is the orthogonal complement of the lattice subgroup
considered in Example 4. Thus we have
where
is the matrix from Example 6; discarding the zero column, we thus have