Given a square nonsingular integer matrix , there exists an unimodular matrix and an matrix (known as the Hermite normal form of ) such that
Specifying a certain set of conditions on the elements of makes it (and therefore ) unique. One possible set of conditions (corresponding to the "columns" version and making lower triangular) is given by
1. for ,
2. for all , and
3. and for
(Domich et al. 1987).
For a complexity analysis of Hermite normal form computation, see Storjohann and Labahn (1996).
The Hermite normal form for integer matrices is implemented in the Wolfram Language as HermiteDecomposition[A], which however uses the "rows" convention (thus making upper triangular) and replaces condition (3) with balanced remainders (mod ).