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 field or finite étale algebras over a 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 or finite étale algebra over a field.

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 : R = QQ[x]/(x^2 + 1);
i2 : beta = makeGWClass matrix(R, {{1,2},{2,x}});
i3 : class beta

o3 = GrothendieckWittClass

o3 : Type

The underlying matrix of a GrothendieckWittClass object can be accessed using the getMatrix method which is the Gram matrix of the symmetric bilinear form represented by the GrothendieckWittClass object. This matrix is a symmetric matrix over the base algebra of the GrothendieckWittClass object which can be retrieved using the getAlgebra method. If further the GrothendieckWittClass object is over a field, then the field can be retrieved using the getBaseField method.

i4 : getMatrix beta

o4 = | 1 2 |
     | 2 x |

             2      2
o4 : Matrix R  <-- R
i5 : getAlgebra beta

o5 = R

o5 : QuotientRing
i6 : getBaseField beta

o6 = R[]

o6 : PolynomialRing

For computational purposes, it is often useful to have a GrothendieckWittClass diagonalize the Gram-matrix representative of the symmetric bilinear form. This can be done using the getDiagonalClass method. The diagonalization is done over the base algebra of the GrothendieckWittClass object, and the result is a new GrothendieckWittClass object with a diagonal Gram matrix which is stored in the cache for quick recovery later on.

i7 : diagonalClass = getDiagonalClass beta;
i8 : beta.cache.getDiagonalClass

o8 = | 1 0   |
     | 0 x-4 |

o8 : GrothendieckWittClass

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

and Boolean methods for Grothendieck-Witt classes:

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 -- produces the anisotropic part of a Grothendieck-Witt class
  • getDiagonalClass(GrothendieckWittClass) -- see getDiagonalClass -- produces a diagonalized form for any (unstable) Grothendieck-Witt class, with simplified terms on the diagonal
  • getGlobalA1Degree(List) -- see getGlobalA1Degree -- computes the global $\mathbb{A}^{1}$-Brouwer degree of a list of $n$ polynomials in $n$ variables over a field $k$
  • getGWClass(UnstableGrothendieckWittClass) -- see getGWClass -- returns the Grothendieck-Witt class of the stable part of an unstable Grothendieck-Witt class
  • getLocalA1Degree(List,Ideal) -- see getLocalA1Degree -- computes a local $\mathbb{A}^{1}$-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 or unstable Grothendieck-Witt class
  • makeDiagonalForm(InexactFieldFamily,Number) -- 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(Ring,Number) -- 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
  • 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,Number) -- 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(Ring,Number) -- 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
  • multiplyGW(GrothendieckWittClass,GrothendieckWittClass) -- see multiplyGW -- the tensor product of two Grothendieck-Witt classes
  • transferGW(GrothendieckWittClass) -- see transferGW -- the transfer of Grothendieck-Witt from an étale algebras to a base field

Methods that use a Grothendieck-Witt Class:

  • getAlgebra(GrothendieckWittClass) -- see getAlgebra -- returns the algebra over which a stable or unstable Grothendieck-Witt class is defined
  • 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 -- returns the base field of a stable or unstable 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 -- returns the Gram matrix of a stable or unstable 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 string representation of a Grothendieck-Witt class or unstable 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 (unstable) Grothendieck-Witt classes over $\mathbb{C},\mathbb{R},\mathbb{Q}$ or a finite field of characteristic not 2 are isomorphic.
  • isIsotropic(GrothendieckWittClass) -- see isIsotropic -- determines whether a Grothendieck-Witt class is isotropic
  • makeGWuClass(GrothendieckWittClass) -- see makeGWuClass -- constructor for unstable Grothendieck-Witt classes
  • makeGWuClass(GrothendieckWittClass,Number) -- see makeGWuClass -- constructor for unstable Grothendieck-Witt classes
  • makeGWuClass(GrothendieckWittClass,RingElement) -- see makeGWuClass -- constructor for unstable Grothendieck-Witt classes

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:57:0.