Macaulay2 » Documentation
Packages » A1BrouwerDegrees :: isAnisotropic
next | previous | forward | backward | up | index | toc

isAnisotropic -- determines whether a Grothendieck-Witt class is anisotropic



Recall a symmetric bilinear form $\beta$ is said to be isotropic if there exists a nonzero vector $v$ for which $\beta(v,v) = 0$. Witt's decomposition theorem implies that a non-degenerate symmetric bilinear form decomposes uniquely into an isotropic and an anisotropic part. Certifying (an)isotropy is then an important computational problem when working with the Grothendieck-Witt ring.

Over $\mathbb{C}$, any form of rank two or higher contains a copy of the hyperbolic form, and hence is isotropic. Thus we can determine anisotropy simply by a consideration of rank.

i1 : isAnisotropic(gwClass(matrix(CC,{{3}})))

o1 = true
i2 : isAnisotropic(gwClass(matrix(CC,{{2,0},{0,5}})))

o2 = false

Forms over $\mathbb{R}$ are anisotropic if and only if all its diagonal entries are positive or are negative.

i3 : isAnisotropic(gwClass(matrix(RR,{{3,0,0},{0,5,0},{0,0,7}})))

o3 = true
i4 : isAnisotropic(gwClass(matrix(RR,{{0,2},{2,0}})))

o4 = false

Over finite fields, a form is anisotropic so long as it is nondegenerate, of rank $\le 2$ and not isomorphic to the hyperbolic form.

i5 : isAnisotropic(gwClass(matrix(GF(7),{{1,0,0},{0,1,0},{0,0,1}})))

o5 = false
i6 : isAnisotropic(gwClass(matrix(GF(7),{{3,0},{0,3}})))

o6 = true

Over $\mathbb{Q}$ things become a bit more complicated. We can exploit the local-to-global principle for isotropy (the Hasse-Minkowski principle), which states that a form is isotropic over $\mathbb{Q}$ if and only if it is isotropic over all its completions, meaning all the $p$-adic numbers and $\mathbb{R}$ [L05, VI.3.1]. We note, however, the classical result that all forms of rank $\ge 5$ in $\mathbb{Q}_p$ are isotropic [S73, IV Theorem 6]. Thus isotropy in this range of ranks is equivalent to checking it over the real numbers.

i7 : beta = gwClass(matrix(QQ,{{1, 0, 2, 0, 3}, {0, 6, 1, 1, -1},{2, 1, 5, 2, 0}, {0, 1, 2, 4, -1}, {3, -1, 0,-1, 1}}));
i8 : isAnisotropic(beta)

o8 = false
i9 : diagonalClass(beta)

o9 = GrothendieckWittClass{cache => CacheTable{}      }
                           matrix => | 1 0 0  0  0   |
                                     | 0 6 0  0  0   |
                                     | 0 0 30 0  0   |
                                     | 0 0 0  -5 0   |
                                     | 0 0 0  0  671 |

o9 : GrothendieckWittClass

For forms of rank $\le 4$ the problem reduces to computing the maximum anisotropic dimension of the form over local fields. Ternary forms are isotropic away from primes dividing the coefficients of the form in a diagonal basis by e.g. [L05, VI.2.5(2)], so there are only finitely many places to check. Over these relevant primes, isotropy of a form $\beta \in \text{GW}(\mathbb{Q})$ over $\mathbb{Q}_p$ is equivalent to the statement that $(-1,-\text{disc}(\beta))_p = H(\beta)$ where $H(\beta)$ denotes the Hasse-Witt invariant attached to $\beta$ and $(-,-)_p$ is the Hilbert Symbol.

A binary form $q$ is isotropic if and only if it is isomorphic to the hyperbolic form, which implies in particular that the rank, signature, and discriminant of $q$ agree with that of $\mathbb{H}=\langle 1,-1\rangle$.


See also

Ways to use isAnisotropic :

For the programmer

The object isAnisotropic is a method function.