Function: nfhnf
Section: number_fields
C-Name: nfhnf0
Prototype: GGD0,L,
Help: nfhnf(nf,x,{flag=0}): if x=[A,I], gives a pseudo-basis [B,J] of the module
 sum A_jI_j. If flag is non-zero, return [[B,J], U], where U is the
 transformation matrix such that AU = [0|B].
Doc: given a pseudo-matrix $(A,I)$, finds a
 pseudo-basis $(B,J)$ in \idx{Hermite normal form} of the module it generates.
 If $\fl$ is non-zero, also return the transformation matrix $U$ such that
 $AU = [0|B]$.

Variant: Also available:

 \fun{GEN}{nfhnf}{GEN nf, GEN x} ($\fl = 0$).

 \fun{GEN}{rnfsimplifybasis}{GEN bnf, GEN x} simplifies the pseudo-basis
 $x = (A,I)$, returning a pseudo-basis $(B,J)$. The ideals in the list $J$
 are integral, primitive and either trivial (equal to the full ring of
 integer) or non-principal.
