Determining an integral positive-definite symmetric matrix is diagonalizable over $\Bbb Z$

151 Views Asked by At

According to this question: Diagonalization of a symmetric bilinear form over the integers, not all definite symmetric matrices with integer entries are diagonalizable over $\Bbb Z$. (Here we are considering diagonalization of a bilinear form, so this means that given a definite symmetric matrix $H \in M_{n\times n}(\Bbb Z)$, we cannot always find an invertible matrix $P\in GL(n,\Bbb Z)$ such that $P^t HP$ is diagonal.) I am curious about: if we are given an explicit definite symmetric integral matrix, then is there a way (or algorithm) to determine whether it is diagonalizable over $\Bbb Z$?

Actually I want to determine whether the negative-definite matrix $$A= \begin{bmatrix} -1 & 1 & 1 & 1 & & 1 & \\ 1 & -2 & \\ 1 & & -5 & \\1 & & & -4 & 1 \\ & & & 1 & -2 & \\1 & & & & & -71 & 1 \\ & & & & & 1 & -2 \end{bmatrix}$$ is diagonalizable over $\Bbb Z$. Using elementary row&column operations (corresponding to $E^tAE$ for some integral elementary matrix $E$), I've got $$ A'=\begin{bmatrix} -1 \\ & -1 & \\ & & -3 & 2 & & 2 \\ & & 2 & -2 & 1 & 2 \\ & & & 1 & -2 & \\ & & 2 & 2 & & -69 & 1 \\ & & & & & 1 & -2 \end{bmatrix} ,$$ and it seems $A'$ is not diagonalziable because the $5\times 5$ submatrix of $A'$ doesn't seem diagonalizable. Is there a way to prove that $A$ is not diagonalziable?

1

There are 1 best solutions below

3
On BEST ANSWER

Your matrix describes a unimodular 7-dimensional lattice. It is known that those are always “trivial“ (the first non-trivial example is the $E_8$ lattice in dimension $8$). However, in general is a difficult problem to decompose a given lattice. In your case the LLL algorithm works. Using GAP the command LLLReducedGramMat yields $$P=\begin{pmatrix} 1&1&4&4&-6&70&70\\ .&1&2&2&-3&35&35\\ .&.&1&1&-1&14&14\\ .&.&1&1&-2&20&20\\ .&.&.&1&-1&10&10\\ .&.&.&.&.&1&1\\ .&.&.&.&.&.&1 \end{pmatrix}.$$ Interestingly, this is close to @user1551's matrix. Also in Magma, there is the command OrthogonalDecomposition, which should always give a definite answer.