# 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

edit retag close merge delete

( 2021-01-16 10:02:54 +0100 )edit

Sort by » oldest newest most voted

The method is_globally_equivalent_to answers this and provides the matrix:

sage: QA = QuadraticForm(QQ, 4, [4, -12, 8, -4, 12, -16, 8, 6, -6, 2])
sage: QB = QuadraticForm(QQ, 4, [2, -2, -2, -2, 2, 0, 0, 2, 0, 2])
sage: X = QA.is_globally_equivalent_to(QB, return_matrix=True); X
[ 0  0  0  1]
[ 0  0  1  0]
[ 0  1  1 -1]
[ 1  1 -1 -1]
sage: X.transpose()*QA.matrix()*X == QB.matrix()
True


This calls the PARI function qfisom, which implements an algorithm of Plesken and Souvignier.

more

Why it only works when matrices are positive definite? Any idea how to solve it if we have quadratic form that its Gram matrix is non-positive definite?

( 2023-12-11 14:00:32 +0100 )edit

@azerbajdzan I don't know, you may want to submit that as a new question (linking to this one).

( 2023-12-11 14:10:42 +0100 )edit

@rburing: Thanks. Done.

( 2023-12-11 17:11:19 +0100 )edit