# Determine Two quadratic form is integer congruence (rational equivalent)?

Fix $n \geq 2$ and consider $A,B \in \operatorname{GL}(n,\mathbb{Z}).$ We know that we have the Smith normal form. One can find $U, V \in \operatorname{SL}(n,\mathbb{Z})$ such that $A=UDV.$ Likewise for $B$. The Smith normal form is easy to compute using Mathematica.

We also call two matrices $A,B$ congruent if there exists $X \in \operatorname{PSL}(n,\mathbb{Z})$ such that $X^TAX=B$.

Now we have the following: if two matrices are congruent, then they have the same $D$.

But now, given two 4 by 4 matrices with same Smith normal form $D$, how to verify they are congruent? An if they are, how to find a matrix $X$ such that $X^T A X = B$.

To be more specific, suppose $A = \begin{bmatrix} 2 & -1 & -1 & -1 \\ -1 & 2 & 0 & 0 \\ -1 & 0 & 2 & 0 \\ -1 & 0 & 0 & 2 \\ \end{bmatrix}$ and $B = \begin{bmatrix} 4 & -6 & 4 & -2 \\ -6 & 12 & -8 & 4 \\ 4 & -8 & 6 & -3 \\ -2 & 4 & -3 & 2 \\ \end{bmatrix}.$

I want to ask whether $A,B$ are congruent. Here is how far I got.

$A$, $B$ both have the same Smith normal form $D = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 2 \\ \end{bmatrix}.$ So they define the same integer lattices. But I do not know whether they are congruent.

I suspect they are congruent but I have no idea how to prove it. Any ideas or comments are really appreciated. By the way, $A$ is the Cartan matrix of $SO(8).$ I think it will not help.

I used Sage and typed them in as quadratic forms.
But I found that the `is_rationally_isometric`

function only works
for number field but not integers ring (if I use integers,
there will be an error like no real_embedding).
The `is_rationally_isometric`

is True.
But I do not know whether they are isometric over the integers.
If the answer is true, can I find such X?

```
sage: A = QuadraticForm(QQ, 4, [4, -12, 8, -4, 12, -16, 8, 6, -6, 2])
sage: print(A)
sage: A1 = QuadraticForm(QQ, 4, [2, -2, -2, -2, 2, 0, 0, 2, 0, 2])
sage: print(A1)
sage: A1.is_rationally_isometric(A)
True
```

Welcome to Ask Sage! Thank you for your question!