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 
).