Hermite normal form

In linear algebra, the Hermite normal form is an analogue of reduced echelon form for matrices over the integers Z. Just as reduced echelon form can be used to solve problems about the solution to the linear system Ax=b where x is in Rn, the Hermite normal form can solve problems about the solution to the linear system Ax=b where this time x is restricted to have integer coordinates only. Other applications of the Hermite normal form include integer programming, cryptography, and abstract algebra.
Definition.
Various authors may prefer to talk about Hermite normal form in either row-style or column-style. They are essentially the same up to transposition.
Row-style Hermite normal form.
An m by n matrix A with integer entries has a (row) Hermite normal form H if there is a square unimodular matrix U where H=UA and H has the following restrictions:
The third condition is not standard among authors, for example some sources force non-pivots to be nonpositive or place no sign restriction on them. However, these definitions are equivalent by using a different unimodular matrix U. A unimodular matrix is a square invertible integer matrix whose determinant is 1 or -1.
Column-style Hermite normal form.
A m by n matrix A with integer entries has a (column) Hermite normal form H if there is a square unimodular matrix U where H=AU and H has the following restrictions:
Note that the row-style definition has a unimodular matrix U multiplying A on the left (meaning U is acting on the rows of A), while the column-style definition has the unimodular matrix action on the columns of A. The two definitions of Hermite normal forms are simply transposes of each other.
Existence and uniqueness of the Hermite normal form.
Every m by n matrix A with integer entries has a unique m by n matrix H, such that H=UA for some square unimodular matrix U.
Examples.
In the examples below, H is the Hermite normal form of the matrix A, and U is a unimodular matrix such that UA=H.
formula_2
If "A" has only one row then either "H = A" or "H = -A", depending on whether the single row of "A" has a positive or negative leading coefficient.
Algorithms.
There are many algorithms for computing the Hermite normal form, dating back to 1851. It was not until 1979 when an algorithm for computing the Hermite normal form that ran in strongly polynomial time was first developed; that is, the number of steps to compute the Hermite normal form is bounded above by a polynomial in the dimensions of the input matrix, and the space used by the algorithm (intermediate numbers) is bounded by a polynomial in the binary encoding size of the numbers in the input matrix. One class of algorithms is based on Gaussian elimination in that special elementary matrices are repeatedly used. The LLL algorithm can also be used to efficiently compute the Hermite normal form.
Applications.
Lattice calculations.
A typical lattice in Rn has the form formula_3 where the ai are in Rn. If the "columns" of a matrix A are the ai, the lattice can be associated with the columns of a matrix, and A is said to be a basis of L. Because the Hermite normal form is unique, it can be used to answer many questions about two lattice descriptions. For what follows, formula_4 denotes the lattice generated by the columns of A. Because the basis is in the columns of the matrix A, the column-style Hermite normal form must be used. Given two bases for a lattice, A and A', the equivalence problem is to decide if formula_5 This can be done by checking if the column-style Hermite normal form of A and A' are the same up to the addition of zero columns. This strategy is also useful for deciding if a lattice is a subset (formula_6 if and only if formula_7), deciding if a vector v is in a lattice (formula_8 if and only if formula_9), and for other calculations.
Integer solutions to linear systems.
The linear system Ax=b has an integer solution x if and only if the system Hy=b has an integer solution y where y=Ux and H is the column-style Hermite normal form of A. Checking that Hy=b has an integer solution is easier than Ax=b because the matrix H is triangular.
Implementations.
Many mathematical software packages can compute the Hermite normal form: