Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
2

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

asked 4 years ago

Gracecat gravatar image

updated 1 year ago

FrédéricC gravatar image

Fix n2 and consider A,BGL(n,Z). We know that we have the Smith normal form. One can find U,VSL(n,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 XPSL(n,Z) such that XTAX=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 XTAX=B.

To be more specific, suppose A=[2111120010201002] and B=[46426128448632432].

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=[1000010000200002]. 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
Preview: (hide)

Comments

Welcome to Ask Sage! Thank you for your question!

slelievre gravatar imageslelievre ( 4 years ago )

1 Answer

Sort by » oldest newest most voted
2

answered 4 years ago

rburing gravatar image

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.

Preview: (hide)
link

Comments

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?

azerbajdzan gravatar imageazerbajdzan ( 1 year ago )

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

rburing gravatar imagerburing ( 1 year ago )

@rburing: Thanks. Done.

azerbajdzan gravatar imageazerbajdzan ( 1 year ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 4 years ago

Seen: 725 times

Last updated: Jan 17 '21