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

GrothendieckWittClass -- a new type, intended to capture the isomorphism class of an element of the Grothendieck-Witt ring of a base field

Description

A GrothendieckWittClass object is a type of HashTable encoding the isomorphism class of a non-degenerate symmetric bilinear form $V \times V \to k$ over a field $k$.

Given any basis $e_1,\ldots,e_n$ for $V$ as a $k$-vector space, we can encode the symmetric bilinear form $\beta$ by how it acts on basis elements. That is, we can produce a matrix $\left(\beta(e_i,e_j)\right)_{i,j}$. This is called a Gram matrix for the symmetric bilinear form. A change of basis produces a congruent Gram matrix, so thus a matrix represents a symmetric bilinear form uniquely up to matrix congruence.

A GrothendieckWittClass object can be built from a symmetric matrix over a field using the makeGWClass method.

i1 : beta = makeGWClass matrix(QQ, {{0,1},{1,0}})

o1 = | 0 1 |
     | 1 0 |

o1 : GrothendieckWittClass
i2 : class beta

o2 = GrothendieckWittClass

o2 : Type

The underlying matrix representative of a form can be recovered via the getMatrix command or the matrix command, and its underlying field can be recovered using getBaseField.

i3 : getMatrix beta

o3 = | 0 1 |
     | 1 0 |

              2       2
o3 : Matrix QQ  <-- QQ
i4 : getBaseField beta

o4 = QQ

o4 : Ring

For computational purposes, it is often desirable to diagonalize a Gram matrix. Any symmetric bilinear form admits a diagonal Gram matrix representative, and this is implemented via the getDiagonalClass method.

i5 : getDiagonalClass beta

o5 = | 2 0  |
     | 0 -2 |

o5 : GrothendieckWittClass

Once a form has been diagonalized, it is recorded in the cache for GrothendieckWittClass and can therefore be quickly recovered.

i6 : beta.cache.getDiagonalClass

o6 = | 2 0  |
     | 0 -2 |

o6 : GrothendieckWittClass

We additionally have the following methods which can be applied to Grothendieck-Witt classes:

and Boolean methods for Grothendieck-Witt classes:

Forms can be created via the following methods:

See also

Functions and methods returning a Grothendieck-Witt Class:

Methods that use a Grothendieck-Witt Class:

For the programmer

The object GrothendieckWittClass is a type, with ancestor classes HashTable < Thing.