{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $A$ be an $m \\times n$ matrix with integer entries.\nSay that an $m \\times n$ integer matrix $H = (h_{ij})$ is in *Hermite normal form* if:\n\n1. the nonzero rows of $H$ come before the zero rows;\n2. the first nonzero entry of each nonzero row, its pivot, is positive and lies strictly to the right of the pivot of the row above;\n3. the entries below each pivot are $0$;\n4. each entry $h$ above a pivot $p$ in the same column satisfies $0 \\le h \u003c p$.\n\nThen there is a [[unimodular|R6RBQHW191]] $m \\times m$ integer matrix $U$, that is, one with $\\det U = \\pm 1$, such that $UA$ is in Hermite normal form.\nThe matrix $H = UA$ is unique.\n\n## Remarks\n\nThe proof is integer Gaussian elimination.\nThe Euclidean algorithm on a column, by unimodular row operations, leaves the gcd of the entries in the pivot position and zeros below it.\nThen the entries above each pivot are reduced modulo the pivot.\nUniqueness holds because the rows of $H$ are a special basis of the lattice spanned by the rows of $A$, and this basis is determined by the lattice.\n\nExample: for $A = \\begin{pmatrix} 2 \u0026 4 \\\\ 6 \u0026 8 \\end{pmatrix}$, subtract $3$ times row $1$ from row $2$ to get $\\begin{pmatrix} 2 \u0026 4 \\\\ 0 \u0026 -4 \\end{pmatrix}$.\nNegate row $2$ and subtract it from row $1$ to get $H = \\begin{pmatrix} 2 \u0026 0 \\\\ 0 \u0026 4 \\end{pmatrix}$, which satisfies all four conditions.\n\nWithout condition 4 the form is not unique: $\\begin{pmatrix} 2 \u0026 4 \\\\ 0 \u0026 4 \\end{pmatrix}$ is also a [[row echelon form|0F27PBRWD7]] of $A$ reachable by unimodular operations.\nSome authors use the column version, $AU = H$ with $U$ unimodular of size $n \\times n$ and $H$ lower triangular.\n\n## Explanations\n\n### L1 human\n\nThe Hermite normal form is the integer analogue of the reduced row echelon form.\nOnly operations that can be undone over the integers are allowed: swapping rows, negating a row, and adding an integer multiple of one row to another.\nThe result is a staircase-shaped matrix with a fixed choice of the entries above the pivots, and it is unique.\n\n### L2 human\n\nTwo integer matrices have the same Hermite normal form exactly when their rows span the same lattice in $\\Z^n$.\nSo the form solves the membership problem for lattices and gives a canonical basis.\nIt is used to solve linear Diophantine systems, to compute with ideals in number fields, and in integer programming.\nUnlike the [[Smith normal form|MV28Z5N9XX]], it uses only row operations, and it keeps the row space.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "about": [
      "R6RBQHW191"
    ],
    "kind": "statement",
    "msc": [
      "15B36",
      "15A21",
      "11C20"
    ],
    "name": "Hermite normal form",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q13650324",
      "wikipedia": "Hermite normal form"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Hermite_normal_form"
      }
    ],
    "tag": "EHE26PR17K",
    "uses": [
      "R6RBQHW191",
      "0F27PBRWD7",
      "0EB9N0S33C"
    ]
  },
  "kind": "statement",
  "link": "https://math2.tamnd.com/node/EHE26PR17K/",
  "links": [
    {
      "field": "about",
      "target": "R6RBQHW191"
    },
    {
      "field": "uses",
      "target": "R6RBQHW191"
    },
    {
      "field": "uses",
      "target": "0F27PBRWD7"
    },
    {
      "field": "uses",
      "target": "0EB9N0S33C"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/EHE26PR17K.md",
  "msc": [
    "15B36",
    "15A21",
    "11C20"
  ],
  "name": "Hermite normal form",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/EHE/EHE26PR17K.md",
  "status": null,
  "tag": "EHE26PR17K",
  "uri": "m2://EHE26PR17K",
  "url": "https://math2.tamnd.com/wiki/hermite-normal-form/",
  "writing": {
    "tag": "EHE26PR17K",
    "kind": "statement",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
