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:

  • addGW(GrothendieckWittClass,GrothendieckWittClass) -- see addGW -- the direct sum of two Grothendieck-Witt classes
  • getAnisotropicPart(GrothendieckWittClass) -- see getAnisotropicPart -- returns the anisotropic part of a Grothendieck-Witt class
  • getDiagonalClass(GrothendieckWittClass) -- see getDiagonalClass -- produces a diagonalized form for any Grothendieck-Witt class, with simplified terms on the diagonal
  • getGlobalA1Degree(List) -- see getGlobalA1Degree -- computes the global A1-Brouwer degree of a list of n polynomials in n variables over a field k
  • getLocalA1Degree(List,Ideal) -- see getLocalA1Degree -- computes a local A1-Brouwer degree of a list of n polynomials in n variables over a field k at a prime ideal in the zero locus
  • getSumDecomposition(GrothendieckWittClass) -- see getSumDecomposition -- produces a simplified diagonal representative of a Grothendieck-Witt class
  • makeDiagonalForm(InexactFieldFamily,QQ) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(InexactFieldFamily,RingElement) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(InexactFieldFamily,Sequence) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(InexactFieldFamily,ZZ) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(Ring,QQ) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(Ring,RingElement) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(Ring,Sequence) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeDiagonalForm(Ring,ZZ) -- see makeDiagonalForm -- the Grothendieck-Witt class of a diagonal form
  • makeGWClass(Matrix) -- see makeGWClass -- the Grothendieck-Witt class of a symmetric matrix
  • makeHyperbolicForm(InexactFieldFamily) -- see makeHyperbolicForm -- the Grothendieck-Witt class of a hyperbolic form
  • makeHyperbolicForm(InexactFieldFamily,ZZ) -- see makeHyperbolicForm -- the Grothendieck-Witt class of a hyperbolic form
  • makeHyperbolicForm(Ring) -- see makeHyperbolicForm -- the Grothendieck-Witt class of a hyperbolic form
  • makeHyperbolicForm(Ring,ZZ) -- see makeHyperbolicForm -- the Grothendieck-Witt class of a hyperbolic form
  • makePfisterForm(InexactFieldFamily,QQ) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(InexactFieldFamily,RingElement) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(InexactFieldFamily,Sequence) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(InexactFieldFamily,ZZ) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(Ring,QQ) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(Ring,RingElement) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(Ring,Sequence) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • makePfisterForm(Ring,ZZ) -- see makePfisterForm -- the Grothendieck-Witt class of a Pfister form
  • multiplyGW(GrothendieckWittClass,GrothendieckWittClass) -- see multiplyGW -- the tensor product of two Grothendieck-Witt classes

Methods that use a Grothendieck-Witt Class:

  • getAnisotropicDimension(GrothendieckWittClass) -- see getAnisotropicDimension -- returns the anisotropic dimension of a symmetric bilinear form
  • getAnisotropicDimensionQQp(GrothendieckWittClass,ZZ) -- see getAnisotropicDimensionQQp -- returns the anisotropic dimension of a rational symmetric bilinear form over the p-adic rational numbers
  • getBaseField(GrothendieckWittClass) -- see getBaseField -- the base field of a Grothendieck-Witt class
  • getDiagonalEntries(GrothendieckWittClass) -- see getDiagonalEntries -- extracts a list of diagonal entries for a GrothendieckWittClass
  • getHasseWittInvariant(GrothendieckWittClass,ZZ) -- see getHasseWittInvariant -- computes the Hasse-Witt invariant at a prime p for the quadratic form of the Grothendieck-Witt class
  • getIntegralDiscriminant(GrothendieckWittClass) -- see getIntegralDiscriminant -- computes the integral discriminant for a rational symmetric bilinear form
  • getMatrix(GrothendieckWittClass) -- see getMatrix -- the underlying matrix of a Grothendieck-Witt class
  • getRank(GrothendieckWittClass) -- see getRank -- calculates the rank of a symmetric bilinear form
  • getRelevantPrimes(GrothendieckWittClass) -- see getRelevantPrimes -- outputs a list containing all primes p where the Hasse-Witt invariant of a symmetric bilinear form is nontrivial
  • getSignature(GrothendieckWittClass) -- see getSignature -- computes the signature of a symmetric bilinear form over the real numbers or rational numbers
  • getSumDecompositionString(GrothendieckWittClass) -- see getSumDecompositionString -- produces a simplified diagonal representative of a Grothendieck-Witt class
  • getWittIndex(GrothendieckWittClass) -- see getWittIndex -- returns the Witt index of a symmetric bilinear form
  • net(GrothendieckWittClass)
  • texMath(GrothendieckWittClass)
  • isAnisotropic(GrothendieckWittClass) -- see isAnisotropic -- determines whether a Grothendieck-Witt class is anisotropic
  • isIsomorphicForm(GrothendieckWittClass,GrothendieckWittClass) -- see isIsomorphicForm -- determines whether two Grothendieck-Witt classes over CC, RR, QQ, or a finite field of characteristic not 2 are isomorphic.
  • isIsotropic(GrothendieckWittClass) -- see isIsotropic -- determines whether a Grothendieck-Witt class is isotropic

For the programmer

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


The source of this document is in A1BrouwerDegrees/Documentation/GrothendieckWittClassesDoc.m2:49:0.