This is WittVectors.info, produced by Macaulay2, version 1.26.05

WittVectors -- computations with finite-length Witt vectors
***********************************************************

Description
===========

This package implements finite-length Witt vectors over rings of positive
characteristic. The main method is witt, which can be used to build Witt rings,
Witt ring maps, and Witt ring elements; Witt ring elements can be added,
multiplied, etc. The Frobenius and Verschiebung maps on Witt rings and Witt
ring elements are also implemented. The package also includes methods for
working with ideals in Witt rings, as well as a method giving an explicit
presentation of a Witt ring as a finitely generated algebra over the integers.
Finally, there are methods for finding the equations satisfied by the
parameters of a Frobenius lift on a quotient of a polynomial ring, as well as
computing quasi-F-splitting heights of complete intersections.

Authors
=======

  * Anne Fayolle (see https://annefayolle.github.io/ ) <anne.fayolle@utah.edu>
  * Abhay Goel (see https://abhayg11.github.io/ ) <u1421426@utah.edu>
  * Devlin Mallory (see https://devlin-mallory.github.io/ )
    <dmallory@bcamath.org>
  * Eamon Quinlan-Gallego (see https://eamonqg.github.io/ )
    <eamon.quinlan@utah.edu>
  * Teppei Takamatsu (see https://sites.google.com/view/teppei-takamatsu/home )
    <teppeitakamatsu.math@gmail.com>

Version
=======

This documentation describes version 0.01 of WittVectors, released April 29,
2026.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{WittVectorsSource,                                                     |
|  title = {{WittVectors: computations with Witt vectors, Frobenius lifts, and|
|  author = {Anne Fayolle and Abhay Goel and Devlin Mallory and Eamon Quinlan-|
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} |
|}                                                                            |
|-----------------------------------------------------------------------------|
| quasi-F-splittings. Version~0.01}},                                         |
|Gallego and Teppei Takamatsu},                                               |
+-----------------------------------------------------------------------------+

Exports
=======

  * Types
      * WittIdeal -- Ideals in Witt rings.
      * WittPolynomialRing -- The class of the n-th
        Witt ring of a polynomial ring.
      * WittQuotientRing -- The class of the n-th Witt
        ring of a quotient of a polynomial ring.
      * WittRingElement -- The Type for elements of
        WittPolynomialRing and WittQuotientRing.
      * WittRingMap -- The class of maps between Witt
        rings.
  * Functions and commands
      * baseMap (missing documentation)
      * createEquations -- Finds explicit equations
        satisfied by the parameters of a Frobenius lift up to a given degree
      * explicit (missing documentation)
      * findFrobeniusLift -- Finds a random lift of
        the Frobenius
      * findFrobeniusLiftConstraints, --
        Finds the equations satisfied by a delta structure on a ring R
      * fSplittingHeight -- Finds the quasi-F-split
        height ht(S/I) of the quotient of the polynomial ring
        S=(ZZ/p)[x1,...,xn] by an ideal I generated by a regular sequence
        (f1,...,fm).
      * makeCoefficientFieldPrime (missing documentation)
      * unWitt -- Returns the underlying ring R of a Witt ring
        W_n(R)
      * verschiebung (missing documentation)
      * witt (missing documentation)
      * wittFrobenius (missing documentation)
      * wittIdeal -- Make an ideal in a Witt ring.
      * wittLength -- Returns the length of the Witt vectors
        in a given Witt ring
      * wittOverring -- Returns the n-th WittOverring of a
        ring R, or the overring of a witt ring.
      * wittOverringIdeal -- The expansion of the
        witt ideal to the witt overring.
      * wittOverringToTuple -- Converts an element
        of the explicit overring of a Witt ring into a tuple.
      * wittRingIdeal -- Returns the n-th witt ideal in
        explicit form.
      * wittRingToTuple -- Converts an element of the
        explicit presentation of a Witt ring into a tuple.
      * wittTupleToOverring -- Converts an element
        of a Witt ring to an element of the overring of its explicit
        presentation.
      * wittTupleToRing -- Converts an element of a
        Witt ring to an element of its explicit presentation.
  * Methods
      * - WittRingElement (missing documentation)
      * baseMap(WittRingMap) -- Returns the
        underlying RingMap of a WittRingMap
      * createEquations(ZZ,Ideal) (missing documentation)
      * createEquations(ZZ,Ring) (missing documentation)
      * createEquations(ZZ,RingElement) (missing documentation)
      * explicit(WittIdeal) -- Obtains the
        explicit version of a WittIdeal.
      * explicit(WittPolynomialRing),
        -- Expresses a WittPolynomialRing as a finitely generated algebra over
        the integers.
      * explicit(WittQuotientRing), --
        Expresses a WittQuotientRing as a finitely generated algebra over the
        integers.
      * explicit(WittRingMap) (missing documentation)
      * findFrobeniusLift(ZZ,Ideal) (missing documentation)
      * findFrobeniusLift(ZZ,Ring) (missing documentation)
      * findFrobeniusLift(ZZ,RingElement) (missing documentation)
      * findFrobeniusLiftConstraints(Ideal) (missing documentation)
      * findFrobeniusLiftConstraints(Ring) (missing documentation)
      * findFrobeniusLiftConstraints(RingElement) (missing documentation)
      * fSplittingHeight(Ideal) (missing documentation)
      * generators(WittIdeal) -- Extract the
        generators of a WittIdeal.
      * length(WittRingElement) (missing documentation)
      * makeCoefficientFieldPrime(GaloisField) (missing documentation)
      * makeCoefficientFieldPrime(PolynomialRing) (missing documentation)
      * makeCoefficientFieldPrime(QuotientRing) (missing documentation)
      * net(WittIdeal) (missing documentation)
      * net(WittPolynomialRing) (missing documentation)
      * net(WittQuotientRing) (missing documentation)
      * net(WittRingElement) (missing documentation)
      * net(WittRingMap) (missing documentation)
      * random(ZZ,WittPolynomialRing) (missing documentation)
      * random(ZZ,WittQuotientRing) (missing documentation)
      * ring(WittRingElement) -- Returns the
        Witt ring that a WittRingElement belongs to
      * source(WittRingMap) (missing documentation)
      * substitute(ZZ,WittPolynomialRing) (missing documentation)
      * substitute(ZZ,WittQuotientRing) (missing documentation)
      * target(WittRingMap) (missing documentation)
      * toList(WittRingElement) -- Converts
        a WittRingElement into a List
      * trim(WittIdeal) (missing documentation)
      * truncate(ZZ,WittPolynomialRing)
        -- Crop Witt ring to the ring of
        Witt vectors of a given length
      * truncate(ZZ,WittQuotientRing)
        -- Crop Witt Quotient ring to the
        ring of Witt vectors of a given length
      * truncate(ZZ,WittRingElement),
        -- Crop Witt Vector to have a given length.
      * "unWitt(WittPolynomialRing)" -- see unWitt, -- Returns
        the underlying ring R of a Witt ring W_n(R)
      * "unWitt(WittQuotientRing)" -- see unWitt, -- Returns the
        underlying ring R of a Witt ring W_n(R)
      * verschiebung(WittRingElement),
        -- The Verschiebung map on an element
      * witt(List) -- Forms a WittRingElement from a
        list of ring elements
      * witt(ZZ,GaloisField) (missing documentation)
      * witt(ZZ,PolynomialRing) -- Builds
        a Witt ring.
      * witt(ZZ,QuotientRing) -- Forms the
        n-th Witt ring of a quotient ring
      * witt(ZZ,RingMap) -- The map induced on
        Witt rings by a RingMap.
      * witt(ZZ,ZZ,RingMap) -- The map
        induced on Witt rings by a RingMap.
      * wittFrobenius(WittPolynomialRing)
        -- The (Witt) Frobenius map of a
        Witt ring
      * "wittFrobenius(WittQuotientRing)" -- see
        wittFrobenius(WittPolynomialRing),
        -- The (Witt) Frobenius map of a
        Witt ring
      * wittFrobenius(WittRingElement)
        -- The (Witt) Frobenius map on an
        element
      * wittFrobenius(ZZ,Ring) -- The
        (Witt) Frobenius map on the Witt vectors of a ring
      * "wittIdeal(List)" -- see wittIdeal, -- Make an ideal
        in a Witt ring.
      * "wittIdeal(Sequence)" -- see wittIdeal, -- Make an
        ideal in a Witt ring.
      * "wittIdeal(WittRingElement)" -- see wittIdeal, -- Make
        an ideal in a Witt ring.
      * WittIdeal * WittIdeal (missing documentation)
      * WittIdeal + WittIdeal (missing documentation)
      * WittIdeal == WittIdeal (missing documentation)
      * WittIdeal ^ ZZ (missing documentation)
      * "wittLength(WittPolynomialRing)" -- see wittLength,
        -- Returns the length of the Witt vectors in a given Witt ring
      * "wittLength(WittQuotientRing)" -- see wittLength, --
        Returns the length of the Witt vectors in a given Witt ring
      * "wittOverring(WittPolynomialRing)" -- see wittOverring,
        -- Returns the n-th WittOverring of a ring R, or the
        overring of a witt ring.
      * "wittOverring(WittQuotientRing)" -- see wittOverring,
        -- Returns the n-th WittOverring of a ring R, or the
        overring of a witt ring.
      * "wittOverring(ZZ,Ring)" -- see wittOverring, --
        Returns the n-th WittOverring of a ring R, or the overring of a witt
        ring.
      * "wittOverringIdeal(ZZ,Ideal)" -- see wittOverringIdeal,
        -- The expansion of the witt ideal to the witt
        overring.
      * wittOverringToTuple(RingElement) (missing documentation)
      * WittRingElement * WittRingElement
        -- Multiplication of WittRingElements.
      * WittRingElement * ZZ (missing documentation)
      * WittRingElement + WittRingElement
        -- Addition of WittRingElements.
      * WittRingElement - WittRingElement (missing documentation)
      * WittRingElement == WittRingElement (missing documentation)
      * WittRingElement == ZZ (missing documentation)
      * WittRingElement ^ ZZ (missing documentation)
      * WittRingElement | WittRingElement (missing documentation)
      * "wittRingIdeal(ZZ,Ideal)" -- see wittRingIdeal, --
        Returns the n-th witt ideal in explicit form.
      * WittRingMap * WittRingMap (missing documentation)
      * WittRingMap ^ ZZ (missing documentation)
      * WittRingMap WittRingElement (missing documentation)
      * wittRingToTuple(Ideal) (missing documentation)
      * wittRingToTuple(RingElement) (missing documentation)
      * wittTupleToOverring(WittRingElement) (missing documentation)
      * wittTupleToRing(WittRingElement) (missing documentation)
      * ZZ * WittRingElement (missing documentation)
      * ZZ _ WittPolynomialRing (missing documentation)
      * ZZ _ WittQuotientRing (missing documentation)
  * Symbols
      * MaxHeight (missing documentation)
      * Nontrivial (missing documentation)
      * overring (missing documentation)
      * overringMap (missing documentation)
      * PerturbationTerm (missing documentation)
      * truncation (missing documentation)
      * wittGenerators (missing documentation)
      * WittOverring (missing documentation)
      * WittRing (missing documentation)
      * wittSub (missing documentation)

For the programmer
==================

The object WittVectors, is a package (Macaulay2Doc),
defined in WittVectors.m2, with auxiliary files in WittVectors/.

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:12:0.

baseMap
*******

Ways to use baseMap:
====================

  * baseMap(WittRingMap) -- Returns the
    underlying RingMap of a WittRingMap

For the programmer
==================

The object baseMap (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

baseMap(WittRingMap) -- Returns the underlying RingMap of a WittRingMap
***********************************************************************

  * Function: baseMap (missing documentation)
  * Usage:
        f = baseMap Wf
  * Inputs:
      * Wf, an instance of the type WittRingMap,
  * Outputs:
      * f, a ring map (Macaulay2Doc),

Description
===========

Given a WittRingMap $W(f): W_n(R) \to W_n(S)$ induced by f:R-> S, this returns
the underlying RingMap f: R->S.

+-------------------------------+
|i1 : R = (ZZ/5)[x,y];          |
+-------------------------------+
|i2 : S = (ZZ/5)[a,b,c,d];      |
+-------------------------------+
|i3 : f = map(S, R, {a*b, c*d});|
|                               |
|o3 : RingMap S <-- R           |
+-------------------------------+
|i4 : Wf = witt(2, f);          |
+-------------------------------+
|i5 : f === baseMap Wf          |
|                               |
|o5 = true                      |
+-------------------------------+

Ways to use this method:
========================

  * baseMap(WittRingMap) -- Returns the
    underlying RingMap of a WittRingMap
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:137:0.

createEquations -- Finds explicit equations satisfied by the parameters of a Frobenius lift up to a given degree
****************************************************************************************************************

  * Usage:
        J = createEquations(d, I)
        J = createEquations(d, f)
        J = createEquations(d, R)
  * Inputs:
      * d, an integer (Macaulay2Doc),
      * I, an ideal (Macaulay2Doc),
      * f, a ring element (Macaulay2Doc),
      * R, a quotient ring (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Homogeneous => ..., default value false
      * PerturbationTerm => ..., default value null
  * Outputs:
      * J, an ideal (Macaulay2Doc),

Description
===========

If R = S/I and one represents the choice of a Frobenius lift on W_2(k)(S) by
polynomials of degree at most d, this method returns the equations that the
coefficients of those polynomials have to satisfy for the resulting Frobenius
lift to descend to W_2(k)(S/I). The output is an ideal J in variables
c_{{a_1..a_n},j}, where c_{{a_1..a_n},j} is the coefficient of
x_1^{a_1}..x_n^{a_n} in the polynomial that gives the image of x_j under the
Frobenius lift; the exponents a_i satisfy sum a_i \leq d.

+-----------------------------------------------------------------------------+
|i1 : S = (ZZ/2)[x,y]                                                         |
|                                                                             |
|o1 = S                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : I = ideal(x*y)                                                          |
|                                                                             |
|o2 = ideal(x*y)                                                              |
|                                                                             |
|o2 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i3 : J = createEquations(2, I)                                               |
|                                                                             |
|o3 = ideal (c          , c          , c          , c          , c          , |
|             {2, 0},{2}   {1, 0},{2}   {0, 2},{1}   {0, 1},{1}   {0, 0},{2}  |
|     ------------------------------------------------------------------------|
|     c          )                                                            |
|      {0, 0},{1}                                                             |
|                                                                             |
|              ZZ                                                             |
|o3 : Ideal of --[c          , c          , c          , c          , c       |
|               2  {0, 0},{1}   {0, 0},{2}   {0, 1},{1}   {0, 1},{2}   {0, 2},|
|-----------------------------------------------------------------------------|
|   , c          , c          , c          , c          , c          , c      |
|{1}   {0, 2},{2}   {1, 0},{1}   {1, 0},{2}   {1, 1},{1}   {1, 1},{2}   {2,   |
|-----------------------------------------------------------------------------|
|      , c          ]                                                         |
|0},{1}   {2, 0},{2}                                                          |
+-----------------------------------------------------------------------------+

If one wants only to find the equations for homogeneous polynomials, one can
use the Homogeneous option. One can specify a different lifting of I to
W_2(k)[x_1..x_n] by using the PerturbationTerm option to specify the
coefficients of p in the lift of the defining equations.

+-----------------------------------------------------------------------------+
|i4 : S = (ZZ/2)[x,y]                                                         |
|                                                                             |
|o4 = S                                                                       |
|                                                                             |
|o4 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i5 : I = ideal(x*y)                                                          |
|                                                                             |
|o5 = ideal(x*y)                                                              |
|                                                                             |
|o5 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i6 : J = createEquations(2, I,Homogeneous=>true,PerturbationTerm=>{0})       |
|                                                                             |
|o6 = ideal (c          , c          )                                        |
|             {2, 0},{2}   {0, 2},{1}                                         |
|                                                                             |
|              ZZ                                                             |
|o6 : Ideal of --[c          , c          , c          , c          , c       |
|               2  {0, 2},{1}   {0, 2},{2}   {1, 1},{1}   {1, 1},{2}   {2,    |
|-----------------------------------------------------------------------------|
|      , c          ]                                                         |
|0},{1}   {2, 0},{2}                                                          |
+-----------------------------------------------------------------------------+
|i7 : J = createEquations(2, I,Homogeneous=>true,PerturbationTerm=>{1}) --    |
|                                                                             |
|o7 = ideal 1                                                                 |
|                                                                             |
|              ZZ                                                             |
|o7 : Ideal of --[c          , c          , c          , c          , c       |
|               2  {0, 2},{1}   {0, 2},{2}   {1, 1},{1}   {1, 1},{2}   {2,    |
|-----------------------------------------------------------------------------|
|no solutions!                                                                |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|      , c          ]                                                         |
|0},{1}   {2, 0},{2}                                                          |
+-----------------------------------------------------------------------------+

Ways to use createEquations:
============================

  * createEquations(ZZ,Ideal) (missing documentation)
  * createEquations(ZZ,Ring) (missing documentation)
  * createEquations(ZZ,RingElement) (missing documentation)

For the programmer
==================

The object createEquations, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:1100:0.

explicit
********

Ways to use explicit:
=====================

  * explicit(WittIdeal) -- Obtains the explicit
    version of a WittIdeal.
  * explicit(WittPolynomialRing), --
    Expresses a WittPolynomialRing as a finitely generated algebra over the
    integers.
  * explicit(WittQuotientRing), --
    Expresses a WittQuotientRing as a finitely generated algebra over the
    integers.
  * explicit(WittRingMap) (missing documentation)

For the programmer
==================

The object explicit (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

explicit(WittIdeal) -- Obtains the explicit version of a WittIdeal.
*******************************************************************

  * Function: explicit (missing documentation)
  * Usage:
        J := explicit(WI)
  * Inputs:
      * WI, an instance of the type WittIdeal,
  * Outputs:
      * J, an ideal (Macaulay2Doc),

Description
===========

If WR is a WittPolynomialRing or WittQuotientRing, and WI is an WittIdeal in
WR, explicit(WI) gives the ideal corresponding to WI in explicit(WR)

+-----------------------------+
|i1 : R := (ZZ/2)[x,y];       |
+-----------------------------+
|i2 : w1 := witt{x,y};        |
+-----------------------------+
|i3 : w2 := witt{x^2, y^2};   |
+-----------------------------+
|i4 : I := wittIdeal(w1, w2)  |
|                             |
|                      2   2  |
|o4 = ideal ({x, y}, {x , y })|
|                             |
|o4 : WittIdeal               |
+-----------------------------+

Ways to use this method:
========================

  * explicit(WittIdeal) -- Obtains the explicit
    version of a WittIdeal.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:838:0.

explicit(WittPolynomialRing) -- Expresses a WittPolynomialRing as a finitely generated algebra over the integers.
*****************************************************************************************************************

  * Function: explicit (missing documentation)
  * Usage:
        E = explicit(WR)
  * Inputs:
      * WR, an instance of the type WittPolynomialRing,
  * Outputs:
      * E, a ring (Macaulay2Doc),

Description
===========

If R = (ZZ/p)[x_1,..., x_d] is a polynomial ring over a prime field ZZ/p, and
$n \geq 1$ is an integer, then $W_n(R)$ can be identified with a certain
$\mathbb{Z} / p^n$ subalgebra of a polynomial ring in d variables over
$\mathbb{Z} / p^n$. This method finds the relations between these generators in
order to express $W_n(R)$ as a finitely generated ZZ-algebra. Note that the
number of generators and relations grows very fast with p and d.

When the method is applied when R is a polynomial ring over a finite but not
prime field, the package essentially treats R as a quotient of a polynomial
ring over its prime subfield.

+-------------------------------+
|i1 : R = (ZZ/2)[x];            |
+-------------------------------+
|i2 : WR = witt(2, R);          |
+-------------------------------+
|i3 : explicit(WR)              |
|                               |
|      ZZ[T        , T        ] |
|          {0, {1}}   {1, {1}}  |
|o3 = --------------------------|
|                      2        |
|     (4, 2T        , T        )|
|           {1, {1}}   {1, {1}} |
|                               |
|o3 : QuotientRing              |
+-------------------------------+
+---------------------+
|i4 : R = GF(4)[x];   |
+---------------------+
|i5 : WR = witt(2, R);|
+---------------------+
|i6 : explicit(WR);   |
+---------------------+

Ways to use this method:
========================

  * explicit(WittPolynomialRing), --
    Expresses a WittPolynomialRing as a finitely generated algebra over the
    integers.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:779:0.

explicit(WittQuotientRing) -- Expresses a WittQuotientRing as a finitely generated algebra over the integers.
*************************************************************************************************************

  * Function: explicit (missing documentation)
  * Usage:
        E = explicit(WR)
  * Inputs:
      * WR, an instance of the type WittQuotientRing,
  * Outputs:
      * E, a ring (Macaulay2Doc),

Description
===========

If R is a finitely generated algebra over a prime field ZZ/p, and WR = witt(n,
R) for some $n \geq 1$, then explicit(WR) returns the ring WR as a finitely
generated ZZ-algebra.

When the base field of R is a finite field, but not prime, the package
essentially first writes R as a finitely generated algebra over its prime
subfield, and then applies the method.

+--------------------------------------------------------------------------+
|i1 : R = (ZZ/2)[x] / ideal(x^2);                                          |
+--------------------------------------------------------------------------+
|i2 : WR = witt(2, R);                                                     |
+--------------------------------------------------------------------------+
|i3 : explicit(WR)                                                         |
|                                                                          |
|                            ZZ[T        , T        ]                      |
|                                {0, {1}}   {1, {1}}                       |
|o3 = ---------------------------------------------------------------------|
|                                       2                         2        |
|     (2T        , T        T        , T        , 4, 2T        , T        )|
|        {0, {1}}   {0, {1}} {1, {1}}   {0, {1}}       {1, {1}}   {1, {1}} |
|                                                                          |
|o3 : QuotientRing                                                         |
+--------------------------------------------------------------------------+

Ways to use this method:
========================

  * explicit(WittQuotientRing), --
    Expresses a WittQuotientRing as a finitely generated algebra over the
    integers.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:811:0.

findFrobeniusLift -- Finds a random lift of the Frobenius
*********************************************************

  * Usage:
        L = findFrobeniusLift(d, I)
        L = findFrobeniusLift(d, R)
  * Inputs:
      * d, an integer (Macaulay2Doc),
      * I, an ideal (Macaulay2Doc),
      * R, a quotient ring (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Homogeneous => ..., default value false
      * Nontrivial => ..., default value false
      * PerturbationTerm => ..., default value null
      * Verbose => ..., default value false
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

This methods tries random polynomials of the given degree and checks if they
give Frobenius lifts. Example S = (ZZ/2)[x,y] I = ideal(x^3+y^5)
findFrobeniusLift(2,I,Verbose=>true)

This can give a couple of values like (x^2,0) or (0,y^2). Time and number of
tries will vary since the polynomials the algorithm tries are random.

+--------------------------------------------+
|i1 : S = (ZZ/2)[x,y]                        |
|                                            |
|o1 = S                                      |
|                                            |
|o1 : PolynomialRing                         |
+--------------------------------------------+
|i2 : I = ideal(x^3+y^5)                     |
|                                            |
|            5    3                          |
|o2 = ideal(y  + x )                         |
|                                            |
|o2 : Ideal of S                             |
+--------------------------------------------+
|i3 : findFrobeniusLift(2,I,Nontrivial=>true)|
|                                            |
|          2                                 |
|o3 = {0, y }                                |
|                                            |
|o3 : List                                   |
+--------------------------------------------+

This forces the lift to be nontrivial. Here, it can give a couple of values
like (x^2,0) or (0,y^2).

If there is no Frobenius lift, the algorithm will run without ending.  For
example, if S/I is an elliptic curve, by Serre–Tate theory, there is only one
(canonical) lifting of S/I that has a Frobenius morphism compatible with that
of S/I; if one chooses the "wrong" lift of the equation, there will be no
Frobenius lift. Text One can also specify a different lift than the default one
(which simply lifts the coefficients naively to W_2(k)) by using the
PerturbationTerm option, which specifies coefficients of p in the lift of the
defining equations

+-----------------------------------------------------------------------------+
|i4 : S=(ZZ/3)[x,y]                                                           |
|                                                                             |
|o4 = S                                                                       |
|                                                                             |
|o4 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i5 : I=ideal(x*y)                                                            |
|                                                                             |
|o5 = ideal(x*y)                                                              |
|                                                                             |
|o5 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i6 : findFrobeniusLift(2,I, PerturbationTerm=>{x}) -- this gives a lift to   |
|                                                                             |
|       2     2                                                               |
|o6 = {x , - y  - 1}                                                          |
|                                                                             |
|o6 : List                                                                    |
|-----------------------------------------------------------------------------|
|the ring W_2(k)[x,y]/(x*y + p*x)                                             |
+-----------------------------------------------------------------------------+

Ways to use findFrobeniusLift:
==============================

  * findFrobeniusLift(ZZ,Ideal) (missing documentation)
  * findFrobeniusLift(ZZ,Ring) (missing documentation)
  * findFrobeniusLift(ZZ,RingElement) (missing documentation)

For the programmer
==================

The object findFrobeniusLift, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:1146:0.

findFrobeniusLiftConstraints -- Finds the equations satisfied by a delta structure on a ring R
**********************************************************************************************

  * Usage:
        J = findFrobeniusLiftConstraints I
        J = findFrobeniusLiftConstraints R
  * Inputs:
      * I, an ideal (Macaulay2Doc),
      * f, a ring element (Macaulay2Doc),
      * R, a quotient ring (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * Homogeneous => ..., default value false
      * PerturbationTerm => ..., default value null
  * Outputs:
      * J, an ideal (Macaulay2Doc),

Description
===========

Given an ideal I in a characteristic-p polynomial ring S = (ZZ/p)[x_1..x_n], or
a quotient ring R = S/I or a generator f of I, this method returns an ideal J
in (S/I)[aa_1,...,aa_n]. The generators for J give the equations satisfied by
the values of delta(x_i)=aa_i for the resulting Frobenius lift to descend from
W_2(k)[x_1..x_n] to W_2(k)[x_1..x_n]/I.

+-------------------------------------------+
|i1 : S = (ZZ/2)[x,y]                       |
|                                           |
|o1 = S                                     |
|                                           |
|o1 : PolynomialRing                        |
+-------------------------------------------+
|i2 : I = ideal(x*y)                        |
|                                           |
|o2 = ideal(x*y)                            |
|                                           |
|o2 : Ideal of S                            |
+-------------------------------------------+
|i3 : J = findFrobeniusLiftConstraints I    |
|                                           |
|               2       2                   |
|o3 = ideal(aa y  + aa x )                  |
|             0       1                     |
|                                           |
|              ZZ                           |
|              --[aa ..aa , x..y]           |
|               2   0    1                  |
|o3 : Ideal of ------------------           |
|                      x*y                  |
+-------------------------------------------+
|i4 : J = findFrobeniusLiftConstraints (S/I)|
|                                           |
|o4 = ideal 0                               |
|                                           |
|              ZZ                           |
|              --[aa ..aa , x..y]           |
|               2   0    1                  |
|o4 : Ideal of ------------------           |
|                      x*y                  |
+-------------------------------------------+

If the user wants to lift the Frobenius to a different lifting of I to
W_2(k)[x_1..x_n], one can use the PerturbationTerm option to specify the
coefficients of p in the lift of the defining equations.

+----------------------------------------------------------------+
|i5 : S = (ZZ/2)[x,y,z]                                          |
|                                                                |
|o5 = S                                                          |
|                                                                |
|o5 : PolynomialRing                                             |
+----------------------------------------------------------------+
|i6 : I = ideal(x*y,z)                                           |
|                                                                |
|o6 = ideal (x*y, z)                                             |
|                                                                |
|o6 : Ideal of S                                                 |
+----------------------------------------------------------------+
|i7 : J = findFrobeniusLiftConstraints(I,PerturbationTerm=>{1,0})|
|                                                                |
|                     2       2                                  |
|o7 = ideal (aa , aa y  + aa x  + 1)                             |
|              2    0       1                                    |
|                                                                |
|              ZZ                                                |
|              --[aa ..aa , x..z]                                |
|               2   0    2                                       |
|o7 : Ideal of ------------------                                |
|                   (x*y, z)                                     |
+----------------------------------------------------------------+

Ways to use findFrobeniusLiftConstraints:
=========================================

  * findFrobeniusLiftConstraints(Ideal) (missing documentation)
  * findFrobeniusLiftConstraints(Ring) (missing documentation)
  * findFrobeniusLiftConstraints(RingElement) (missing documentation)

For the programmer
==================

The object findFrobeniusLiftConstraints, is
a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:1064:0.

fSplittingHeight -- Finds the quasi-F-split height ht(S/I) of the quotient of the polynomial ring S=(ZZ/p)[x1,...,xn] by an ideal I generated by a regular sequence (f1,...,fm).
********************************************************************************************************************************************************************************

  * Usage:
        fSplittingHeight I
  * Inputs:
      * I, an ideal (Macaulay2Doc),
  * Optional inputs (Macaulay2Doc),:
      * MaxHeight => ..., default value 102
  * Outputs:
      * r, a number (Macaulay2Doc),

Description
===========

This gives the quasi-F-Splitting height r of S/I

+-----------------------------------------------------------------+
|i1 : S = ZZ/3[x,y,z, w]                                          |
|                                                                 |
|o1 = S                                                           |
|                                                                 |
|o1 : PolynomialRing                                              |
+-----------------------------------------------------------------+
|i2 :         I = ideal(x^4 + y^4 + z^4 + w^4 + x^2*z^2 + x*y*z^2)|
|                                                                 |
|            4    4    2 2        2    4    4                     |
|o2 = ideal(x  + y  + x z  + x*y*z  + z  + w )                    |
|                                                                 |
|o2 : Ideal of S                                                  |
+-----------------------------------------------------------------+

This should give 4.

One can change the max F-splitting height that the algorithm tests

+-----------------------+
|i3 : fSplittingHeight I|
|trying i = 2           |
|trying i = 3           |
|trying i = 4           |
|                       |
|o3 = 4                 |
+-----------------------+
|i4 : S = ZZ/3[x,y,z, w]|
|                       |
|o4 = S                 |
|                       |
|o4 : PolynomialRing    |
+-----------------------+

This should not return anything.

+-------------------------------------------------------------+
|i5 :     I = ideal(x^4 + y^4 + z^4 + w^4 + x^2*z^2 + x*y*z^2)|
|                                                             |
|            4    4    2 2        2    4    4                 |
|o5 = ideal(x  + y  + x z  + x*y*z  + z  + w )                |
|                                                             |
|o5 : Ideal of S                                              |
+-------------------------------------------------------------+
|i6 : fSplittingHeight (I,MaxHeight=>2)                       |
|trying i = 2                                                 |
+-------------------------------------------------------------+
|i7 : S = ZZ/3[x,y,z,w]                                       |
|                                                             |
|o7 = S                                                       |
|                                                             |
|o7 : PolynomialRing                                          |
+-------------------------------------------------------------+

This should give infinity.

+-------------------------------------+
|i8 : I = ideal(x^4 + y^4 + z^4 + w^4)|
|                                     |
|            4    4    4    4         |
|o8 = ideal(x  + y  + z  + w )        |
|                                     |
|o8 : Ideal of S                      |
+-------------------------------------+

This should give 1.

+------------------------+
|i9 : fSplittingHeight I |
|                        |
|o9 = infinity           |
|                        |
|o9 : InfiniteNumber     |
+------------------------+
|i10 : S = ZZ/3[x,y,z]   |
|                        |
|o10 = S                 |
|                        |
|o10 : PolynomialRing    |
+------------------------+
|i11 :     I = ideal(x,y)|
|                        |
|o11 = ideal (x, y)      |
|                        |
|o11 : Ideal of S        |
+------------------------+
|i12 : S = ZZ/5[x,y,z]   |
|                        |
|o12 = S                 |
|                        |
|o12 : PolynomialRing    |
+------------------------+

Here, we would get an error since the ideal is not generated by a regular
sequence

+------------------------------------------------------------------------+
|i13 : I = ideal(y*x,z*x)                                                |
|                                                                        |
|o13 = ideal (x*y, x*z)                                                  |
|                                                                        |
|o13 : Ideal of S                                                        |
+------------------------------------------------------------------------+
|i14 : stopIfError = false                                               |
|                                                                        |
|o14 = false                                                             |
+------------------------------------------------------------------------+
|i15 : fSplittingHeight I                                                |
|stdio:15:16:(3):[1]: error: expected ideal to be a complete intersection|
+------------------------------------------------------------------------+
|i16 : S = GF(4)[x,y,z]                                                  |
|                                                                        |
|o16 = S                                                                 |
|                                                                        |
|o16 : PolynomialRing                                                    |
+------------------------------------------------------------------------+

Here, we would get an error since S is not a polynomial ring over ZZ/p.

Ways to use fSplittingHeight:
=============================

  * fSplittingHeight(Ideal) (missing documentation)

For the programmer
==================

The object fSplittingHeight, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:410:0.

generators(WittIdeal) -- Extract the generators of a WittIdeal.
***************************************************************

  * Function: generators (Macaulay2Doc),
  * Usage:
        L = generators(WI)
  * Inputs:
      * WI, an instance of the type WittIdeal,
  * Optional inputs (Macaulay2Doc),:
      * CoefficientRing (Macaulay2Doc), => ...,
        default value null,
  * Outputs:
      * L, a list (Macaulay2Doc),

Description
===========

Returns the generators of the WittIdeal. Please note these are returned as a
list, as opposed to a matrix.

+----------------------------+
|i1 : R = GF(3)[x,y];        |
+----------------------------+
|i2 : WR = witt(2, R);       |
+----------------------------+
|i3 : w1 = witt{x,y};        |
+----------------------------+
|i4 : w2 = witt{x^2,y^2};    |
+----------------------------+
|i5 : WI = wittIdeal(w1, w2);|
+----------------------------+
|i6 : generators(WI)         |
|                            |
|                2   2       |
|o6 = {{x, y}, {x , y }}     |
|                            |
|o6 : List                   |
+----------------------------+

Ways to use this method:
========================

  * generators(WittIdeal) -- Extract the
    generators of a WittIdeal.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:997:0.

makeCoefficientFieldPrime
*************************

Ways to use makeCoefficientFieldPrime:
======================================

  * makeCoefficientFieldPrime(GaloisField) (missing documentation)
  * makeCoefficientFieldPrime(PolynomialRing) (missing documentation)
  * makeCoefficientFieldPrime(QuotientRing) (missing documentation)

For the programmer
==================

The object makeCoefficientFieldPrime (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

MaxHeight
*********

Functions with optional argument named MaxHeight:
=================================================

  * "fSplittingHeight(...,MaxHeight=>...)" -- see fSplittingHeight,
    -- Finds the quasi-F-split height ht(S/I) of the quotient
    of the polynomial ring S=(ZZ/p)[x1,...,xn] by an ideal I generated by a
    regular sequence (f1,...,fm).

For the programmer
==================

The object MaxHeight (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

Nontrivial
**********

Functions with optional argument named Nontrivial:
==================================================

  * "findFrobeniusLift(...,Nontrivial=>...)" -- see findFrobeniusLift,
    -- Finds a random lift of the Frobenius

For the programmer
==================

The object Nontrivial (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

overring
********

For the programmer
==================

The object overring (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

overringMap
***********

For the programmer
==================

The object overringMap (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

PerturbationTerm
****************

Functions with optional argument named PerturbationTerm:
========================================================

  * "createEquations(...,PerturbationTerm=>...)" -- see createEquations,
    -- Finds explicit equations satisfied by the parameters of
    a Frobenius lift up to a given degree
  * "findFrobeniusLift(...,PerturbationTerm=>...)" -- see
    findFrobeniusLift, -- Finds a random lift of the
    Frobenius
  * "findFrobeniusLiftConstraints(...,PerturbationTerm=>...)" -- see
    findFrobeniusLiftConstraints, -- Finds the
    equations satisfied by a delta structure on a ring R

For the programmer
==================

The object PerturbationTerm (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

ring(WittRingElement) -- Returns the Witt ring that a WittRingElement belongs to
********************************************************************************

  * Function: ring (Macaulay2Doc),
  * Usage:
        R = ring(w)
  * Inputs:
      * w, an instance of the type WittRingElement,
  * Outputs:
      * R, a ring (Macaulay2Doc),

Description
===========

Returns the WittPolynomialRing or WittQuotientRing that the input belongs to

+-----------------------+
|i1 : R = (ZZ/5)[x,y]   |
|                       |
|o1 = R                 |
|                       |
|o1 : PolynomialRing    |
+-----------------------+
|i2 : w = witt{x, x+y}  |
|                       |
|o2 = {x, x + y}        |
|                       |
|o2 : WittRingElement   |
+-----------------------+
|i3 : ring(w)           |
|                       |
|o3 = Witt (R)          |
|         2             |
|                       |
|o3 : WittPolynomialRing|
+-----------------------+
+-----------------------------------------------+
|i4 : R = (ZZ/5)[x,y,z] / ideal(x^2 + y^2 + z^2)|
|                                               |
|o4 = R                                         |
|                                               |
|o4 : QuotientRing                              |
+-----------------------------------------------+
|i5 : w = witt{x, y, z}                         |
|                                               |
|o5 = {x, y, z}                                 |
|                                               |
|o5 : WittRingElement                           |
+-----------------------------------------------+
|i6 : ring(w)                                   |
|                                               |
|o6 = Witt (R)                                  |
|         3                                     |
|                                               |
|o6 : WittQuotientRing                          |
+-----------------------------------------------+

Ways to use this method:
========================

  * ring(WittRingElement) -- Returns the Witt
    ring that a WittRingElement belongs to
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:306:0.

toList(WittRingElement) -- Converts a WittRingElement into a List
*****************************************************************

  * Function: toList (Macaulay2Doc),
  * Usage:
        toList(w)
  * Inputs:
      * w, an instance of the type WittRingElement,
  * Outputs:
      * a list (Macaulay2Doc),

Description
===========

Turns a WittRingElement back into a List.

+--------------------------+
|i1 : R = (ZZ/5)[x,y];     |
+--------------------------+
|i2 : w = witt{x,y, x + y};|
+--------------------------+
|i3 : toList(w)            |
|                          |
|o3 = {x, y, x + y}        |
|                          |
|o3 : List                 |
+--------------------------+

Ways to use this method:
========================

  * toList(WittRingElement) -- Converts a
    WittRingElement into a List
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:282:0.

truncate(ZZ,WittPolynomialRing) -- Crop Witt ring to the ring of Witt vectors of a given length
***********************************************************************************************

  * Function: truncate (Macaulay2Doc),
  * Usage:
        V=truncate(n,W)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * W, an instance of the type WittPolynomialRing,
  * Outputs:
      * V, an instance of the type WittPolynomialRing,

Description
===========

This crops W to have length n if n is less than or equal than the length of W.

+--------------------------------------+
|i1 : S=ZZ/3[x,y]                      |
|                                      |
|o1 = S                                |
|                                      |
|o1 : PolynomialRing                   |
+--------------------------------------+
|i2 : W=witt(3,S)                      |
|                                      |
|o2 = Witt (S)                         |
|         3                            |
|                                      |
|o2 : WittPolynomialRing               |
+--------------------------------------+
|i3 : truncate(2,W)                    |
|                                      |
|o3 = WittRingMap Witt (S) <-- Witt (S)|
|                     2            3   |
|                                      |
|o3 : WittRingMap                      |
+--------------------------------------+

This should give V a Witt ring with WittLength 2

We get an error if we try to truncate to something longer. For instance,
truncate(4,W) above would return an error.

Ways to use this method:
========================

  * truncate(ZZ,WittPolynomialRing)
    -- Crop Witt ring to the ring of
    Witt vectors of a given length
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:888:0.

truncate(ZZ,WittQuotientRing) -- Crop Witt Quotient ring to the ring of Witt vectors of a given length
******************************************************************************************************

  * Function: truncate (Macaulay2Doc),
  * Usage:
        V=truncate(n,W)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * W, an instance of the type WittQuotientRing,
  * Outputs:
      * V, an instance of the type WittQuotientRing,

Description
===========

This crops W to have length n if n is less than or equal than the length of W.

+-----------------------------------------------+
|i1 : S = (ZZ/5)[x,y,z] / ideal(x^2 + y^2 + z^2)|
|                                               |
|o1 = S                                         |
|                                               |
|o1 : QuotientRing                              |
+-----------------------------------------------+
|i2 : W=witt(3,S)                               |
|                                               |
|o2 = Witt (S)                                  |
|         3                                     |
|                                               |
|o2 : WittQuotientRing                          |
+-----------------------------------------------+
|i3 : truncate(2,W)                             |
|                                               |
|o3 = WittRingMap Witt (S) <-- Witt (S)         |
|                     2            3            |
|                                               |
|o3 : WittRingMap                               |
+-----------------------------------------------+

This should give V a WittQuotientRing with WittLength 2

We get an error if we try to truncate to something longer. For instance,
truncate(4,W) above would return an error.

Ways to use this method:
========================

  * truncate(ZZ,WittQuotientRing),
    -- Crop Witt Quotient ring to the ring of Witt vectors of a given length
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:191:0.

truncate(ZZ,WittRingElement) -- Crop Witt Vector to have a given length.
************************************************************************

  * Function: truncate (Macaulay2Doc),
  * Usage:
        truncate(i, w)
  * Inputs:
      * i, an integer (Macaulay2Doc),
      * w, an instance of the type WittRingElement,
  * Outputs:
      * v, an instance of the type WittRingElement,

Description
===========

This crops w to have length i if i is less than or equal than the length of w.
Example S=ZZ/3[x,y] w=witt{x,y} truncate(1,w)

This should give {x}, a WittRingElement

We get an error if we try to truncate to something longer. For instance,
truncate(3,w) above would return an error.

Ways to use this method:
========================

  * truncate(ZZ,WittRingElement), --
    Crop Witt Vector to have a given length.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:439:0.

truncation
**********

For the programmer
==================

The object truncation (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

unWitt -- Returns the underlying ring R of a Witt ring W_n(R)
*************************************************************

  * Usage:
        R = unWitt(WR)
  * Inputs:
      * WR, an instance of the type WittPolynomialRing,
      * WR, an instance of the type WittQuotientRing,
  * Outputs:
      * R, a ring (Macaulay2Doc),

Description
===========

If WR is one of the witt rings of R, unWitt(WR) returns the ring R.

+------------------------------------------------+
|i1 : R = (ZZ/3)[x,y,z] / ideal(x^2 + y^2 + z^2);|
+------------------------------------------------+
|i2 : WR = witt(2, R);                           |
+------------------------------------------------+
|i3 : unWitt(WR)                                 |
|                                                |
|o3 = R                                          |
|                                                |
|o3 : QuotientRing                               |
+------------------------------------------------+

Ways to use unWitt:
===================

  * "unWitt(WittPolynomialRing)"
  * "unWitt(WittQuotientRing)"

For the programmer
==================

The object unWitt, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:1028:0.

verschiebung
************

Ways to use verschiebung:
=========================

  * verschiebung(WittRingElement), --
    The Verschiebung map on an element

For the programmer
==================

The object verschiebung (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

verschiebung(WittRingElement) -- The Verschiebung map on an element
*******************************************************************

  * Function: verschiebung (missing documentation)
  * Usage:
        Vw = verschiebung w
  * Inputs:
      * w, an instance of the type WittRingElement, an
        element of a Witt ring
  * Outputs:
      * Vw, an instance of the type WittRingElement,
        the image of w under the Verschiebung map

Description
===========

Given a Witt vector w, this gives the image w under the Verschiebung map (which
in coordinates simply prepends a zero)

+------------------------------------------------+
|i1 : R = ZZ/5[x,y]                              |
|                                                |
|o1 = R                                          |
|                                                |
|o1 : PolynomialRing                             |
+------------------------------------------------+
|i2 : w = witt{x,y}                              |
|                                                |
|o2 = {x, y}                                     |
|                                                |
|o2 : WittRingElement                            |
+------------------------------------------------+
|i3 : verschiebung(w) -- same as wittFrobenius(w)|
|                                                |
|o3 = {0, x, y}                                  |
|                                                |
|o3 : WittRingElement                            |
+------------------------------------------------+

Ways to use this method:
========================

  * verschiebung(WittRingElement), --
    The Verschiebung map on an element
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:532:0.

witt
****

Ways to use witt:
=================

  * witt(List) -- Forms a WittRingElement from a list of
    ring elements
  * witt(ZZ,GaloisField) (missing documentation)
  * witt(ZZ,PolynomialRing) -- Builds a
    Witt ring.
  * witt(ZZ,QuotientRing) -- Forms the n-th
    Witt ring of a quotient ring
  * witt(ZZ,RingMap) -- The map induced on Witt
    rings by a RingMap.
  * witt(ZZ,ZZ,RingMap) -- The map induced
    on Witt rings by a RingMap.

For the programmer
==================

The object witt (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

witt(List) -- Forms a WittRingElement from a list of ring elements
******************************************************************

  * Function: witt (missing documentation)
  * Usage:
        witt L
  * Inputs:
      * L, a list (Macaulay2Doc), a list of elements of the same
        ring of positive characteristic
  * Outputs:
      * an instance of the type WittRingElement,

Description
===========

Given a list  $L = \{x_1, \dots , x_n\}$ of elements of the same ring R of
positive prime characteristic, this produces the WittRingElement $(x_1, \dots ,
x_n) \in W_n(R)$.

+---------------------------------------+
|i1 : R = ZZ/5[x,y,z]/(x^3 + y^3 + z^3);|
+---------------------------------------+
|i2 : x + y                             |
|                                       |
|o2 = x + y                             |
|                                       |
|o2 : R                                 |
+---------------------------------------+

Ways to use this method:
========================

  * witt(List) -- Forms a WittRingElement from a list of
    ring elements
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:215:0.

witt(ZZ,PolynomialRing) -- Builds a Witt ring.
**********************************************

  * Function: witt (missing documentation)
  * Usage:
        witt(n, R)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * R, a polynomial ring (Macaulay2Doc),
  * Outputs:
      * an instance of the type WittPolynomialRing,

Description
===========

Given an integer $n \geq 1$ and a polynomial ring R of positive prime
characteristic, this produces the n-th witt ring $W_n(R)$ of R.

+-----------------------+
|i1 : R = (ZZ/3)[x,y,z];|
+-----------------------+
|i2 : WR = witt(2, R)   |
|                       |
|o2 = Witt (R)          |
|         2             |
|                       |
|o2 : WittPolynomialRing|
+-----------------------+

Ways to use this method:
========================

  * witt(ZZ,PolynomialRing) -- Builds a
    Witt ring.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:97:0.

witt(ZZ,QuotientRing) -- Forms the n-th Witt ring of a quotient ring
********************************************************************

  * Function: witt (missing documentation)
  * Usage:
        witt(n, R)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * R, a quotient ring (Macaulay2Doc),
  * Outputs:
      * an instance of the type WittQuotientRing,

Description
===========

Given an integer $n \geq 1$ and a quotient ring R of positive prime
characteristic, this produces the n-th witt ring $W_n(R)$ of R.

Note that for this method to work, the ambient ring of R must be a polynomial
ring. If this is not the case, consider flattening before applying witt.

+----------------------------------------------+
|i1 : R = (ZZ/3)[x,y,z] / ideal(x^2, y^2, z^2);|
+----------------------------------------------+
|i2 : WR = witt(2, R)                          |
|                                              |
|o2 = Witt (R)                                 |
|         2                                    |
|                                              |
|o2 : WittQuotientRing                         |
+----------------------------------------------+
+------------------------------------+
|i3 : S = (ZZ/2)[x,y,z] / ideal(x^2);|
+------------------------------------+
|i4 : R = S / ideal(y^2, z^2);       |
+------------------------------------+
|i5 : WR = witt(2, (flattenRing R)#0)|
|                                    |
|             ZZ                     |
|             --[x..z]               |
|              2                     |
|o5 = Witt (------------)            |
|         2   2   2   2              |
|           (y , z , x )             |
|                                    |
|o5 : WittQuotientRing               |
+------------------------------------+

Ways to use this method:
========================

  * witt(ZZ,QuotientRing) -- Forms the n-th
    Witt ring of a quotient ring
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:166:0.

witt(ZZ,RingMap) -- The map induced on Witt rings by a RingMap.
***************************************************************

  * Function: witt (missing documentation)
  * Usage:
        witt(n,f)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * f, a ring map (Macaulay2Doc),
  * Outputs:
      * Wf, an instance of the type WittRingMap,

Description
===========

Given f: R -> S a RingMap between rings  of positive characteristic and an
integer $n \geq 1$, witt(n, f) returns the WittRingMap $W_n(f): W_n(R) \to
W_n(S)$.

+--------------------------------------+
|i1 : R = (ZZ/5)[x,y];                 |
+--------------------------------------+
|i2 : S = (ZZ/5)[a,b,c,d];             |
+--------------------------------------+
|i3 : f = map(S, R, {a*b, c*d});       |
|                                      |
|o3 : RingMap S <-- R                  |
+--------------------------------------+
|i4 : witt(2, f)                       |
|                                      |
|o4 = WittRingMap Witt (S) <-- Witt (R)|
|                     2            2   |
|                                      |
|o4 : WittRingMap                      |
+--------------------------------------+

Ways to use this method:
========================

  * witt(ZZ,RingMap) -- The map induced on Witt
    rings by a RingMap.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:45:0.

witt(ZZ,ZZ,RingMap) -- The map induced on Witt rings by a RingMap.
******************************************************************

  * Function: witt (missing documentation)
  * Usage:
        witt(n, m, f)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * m, an integer (Macaulay2Doc),
      * f, a ring map (Macaulay2Doc),
  * Outputs:
      * Wf, an instance of the type WittRingMap,

Description
===========

Given f: R -> S a RingMap between rings  of positive characteristic and an
integer $n \geq 1$, witt(n, f) returns the WittRingMap $W_n(f): W_n(R) \to
W_n(S)$. If two integers $m \geq n \geq 1$ are passed, witt(n, m, f) returns
the WittRingMap given by the composition $W_m(R) \to W_m(S) \to W_n(S)$, where
the last map is truncation.

+--------------------------------------+
|i1 : R = (ZZ/5)[x,y];                 |
+--------------------------------------+
|i2 : S = (ZZ/5)[a,b,c,d];             |
+--------------------------------------+
|i3 : f = map(S, R, {a*b, c*d});       |
|                                      |
|o3 : RingMap S <-- R                  |
+--------------------------------------+
|i4 : witt(2, 3, f)                    |
|                                      |
|o4 = WittRingMap Witt (S) <-- Witt (R)|
|                     2            3   |
|                                      |
|o4 : WittRingMap                      |
+--------------------------------------+

Ways to use this method:
========================

  * witt(ZZ,ZZ,RingMap) -- The map induced
    on Witt rings by a RingMap.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:74:0.

wittFrobenius
*************

Ways to use wittFrobenius:
==========================

  * wittFrobenius(WittPolynomialRing)
    -- The (Witt) Frobenius map of a
    Witt ring
  * "wittFrobenius(WittQuotientRing)" -- see
    wittFrobenius(WittPolynomialRing),
    -- The (Witt) Frobenius map of a Witt ring
  * wittFrobenius(WittRingElement),
    -- The (Witt) Frobenius map on an element
  * wittFrobenius(ZZ,Ring) -- The (Witt)
    Frobenius map on the Witt vectors of a ring

For the programmer
==================

The object wittFrobenius (missing documentation) is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

wittFrobenius(WittPolynomialRing) -- The (Witt) Frobenius map of a Witt ring
****************************************************************************

  * Function: wittFrobenius (missing documentation)
  * Usage:
        phi = wittFrobenius W
  * Inputs:
      * W, an instance of the type WittPolynomialRing,
        or an instance of the type WittQuotientRing,
        The Witt ring of a ring R of positive characteristic
  * Outputs:
      * phi, an instance of the type WittRingMap, the
        Frobenius map on W

Description
===========

This gives the Frobenius map on the Witt ring W (which in coordinates is just
the entry-wise Frobenius)

+---------------------------+
|i1 : R = ZZ/5[x]           |
|                           |
|o1 = R                     |
|                           |
|o1 : PolynomialRing        |
+---------------------------+
|i2 : W = witt(2,R);        |
+---------------------------+
|i3 : phi = wittFrobenius W;|
+---------------------------+

Ways to use this method:
========================

  * wittFrobenius(WittPolynomialRing)
    -- The (Witt) Frobenius map of a
    Witt ring
  * "wittFrobenius(WittQuotientRing)"
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:465:0.

wittFrobenius(WittRingElement) -- The (Witt) Frobenius map on an element
************************************************************************

  * Function: wittFrobenius (missing documentation)
  * Usage:
        Fw = wittFrobenius w
  * Inputs:
      * w, an instance of the type WittRingElement, an
        element of a Witt ring
  * Outputs:
      * Fw, an instance of the type WittRingElement,
        the image of w under the Frobenius map

Description
===========

Given a Witt vector w, this gives the image w under the Frobenius map (which in
coordinates is just the entry-wise Frobenius)

+------------------------------------------------------+
|i1 : R = ZZ/5[x,y,z]                                  |
|                                                      |
|o1 = R                                                |
|                                                      |
|o1 : PolynomialRing                                   |
+------------------------------------------------------+
|i2 : w = witt{x,y,z}                                  |
|                                                      |
|o2 = {x, y, z}                                        |
|                                                      |
|o2 : WittRingElement                                  |
+------------------------------------------------------+
|i3 : wittFrobenius(w) -- same as (wittFrobenius(R))(w)|
|                                                      |
|       5   5   5                                      |
|o3 = {x , y , z }                                     |
|                                                      |
|o3 : WittRingElement                                  |
+------------------------------------------------------+

Ways to use this method:
========================

  * wittFrobenius(WittRingElement),
    -- The (Witt) Frobenius map on an element
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:510:0.

wittFrobenius(ZZ,Ring) -- The (Witt) Frobenius map on the Witt vectors of a ring
********************************************************************************

  * Function: wittFrobenius (missing documentation)
  * Usage:
        phi = wittFrobenius(n, R)
  * Inputs:
      * n, an integer (Macaulay2Doc), a positive integer, the length
        of the Witt vectors to consider
      * R, a ring (Macaulay2Doc), a ring of positive characteristic
  * Outputs:
      * phi, an instance of the type WittRingMap, the
        Frobenius map on witt(n,R)

Description
===========

given a ring R and an integer n this gives the Frobenius map on W_n(R) (which
in coordinates is just the entry-wise Frobenius)

+--------------------------------------+
|i1 : R = ZZ/5[x]                      |
|                                      |
|o1 = R                                |
|                                      |
|o1 : PolynomialRing                   |
+--------------------------------------+
|i2 : phi = wittFrobenius(2,R)         |
|                                      |
|o2 = WittRingMap Witt (R) <-- Witt (R)|
|                     2            2   |
|                                      |
|o2 : WittRingMap                      |
+--------------------------------------+

Ways to use this method:
========================

  * wittFrobenius(ZZ,Ring) -- The (Witt)
    Frobenius map on the Witt vectors of a ring
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:488:0.

wittGenerators
**************

For the programmer
==================

The object wittGenerators (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

WittIdeal -- Ideals in Witt rings.
**********************************

Description
===========

A class for ideals in WittPolynomialRing and WittQuotientRing. It can be built
using the wittIdeal method.

+---------------------------------------+
|i1 : R = (ZZ/5)[x,y];                  |
+---------------------------------------+
|i2 : WR = witt(2, R);                  |
+---------------------------------------+
|i3 : w1 = witt{x,y};                   |
+---------------------------------------+
|i4 : w2 = witt{x^2, y^2};              |
+---------------------------------------+
|i5 : w3 = witt{x^3, y^3};              |
+---------------------------------------+
|i6 : WI = wittIdeal(w1, w2, w3)        |
|                                       |
|                      2   2     3   3  |
|o6 = ideal ({x, y}, {x , y }, {x , y })|
|                                       |
|o6 : WittIdeal                         |
+---------------------------------------+

See also
========

  * wittIdeal -- Make an ideal in a Witt ring.

Methods that use an object of class WittIdeal:
==============================================

  * explicit(WittIdeal) -- Obtains the explicit
    version of a WittIdeal.
  * generators(WittIdeal) -- Extract the
    generators of a WittIdeal.
  * net(WittIdeal) (missing documentation)
  * trim(WittIdeal) (missing documentation)
  * WittIdeal * WittIdeal (missing documentation)
  * WittIdeal + WittIdeal (missing documentation)
  * WittIdeal == WittIdeal (missing documentation)
  * WittIdeal ^ ZZ (missing documentation)

For the programmer
==================

The object WittIdeal, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc), <
HashTable (Macaulay2Doc) < Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:934:0.

wittIdeal -- Make an ideal in a Witt ring.
******************************************

  * Usage:
        WI = wittIdeal(L)
        WI = wittIdeal(S)
        WI = wittIdeal(w)
  * Inputs:
      * L, a list (Macaulay2Doc), of WittRingElements.
      * S, a sequence (Macaulay2Doc), of WittRingElements.
      * w, an instance of the type WittRingElement,
  * Outputs:
      * WI, an instance of the type WittIdeal,

Description
===========

This method builds a wittIdeal from a list or sequence of WittRingElements.
Passing a WittRingElement alone gives the principal ideal generated by that
WittRingElement.

+---------------------------------------+
|i1 : R = (ZZ/5)[x,y];                  |
+---------------------------------------+
|i2 : WR = witt(2, R);                  |
+---------------------------------------+
|i3 : w1 = witt{x,y};                   |
+---------------------------------------+
|i4 : w2 = witt{x^2, y^2};              |
+---------------------------------------+
|i5 : w3 = witt{x^3, y^3};              |
+---------------------------------------+
|i6 : WI = wittIdeal(w1, w2, w3)        |
|                                       |
|                      2   2     3   3  |
|o6 = ideal ({x, y}, {x , y }, {x , y })|
|                                       |
|o6 : WittIdeal                         |
+---------------------------------------+

Ways to use wittIdeal:
======================

  * "wittIdeal(List)"
  * "wittIdeal(Sequence)"
  * "wittIdeal(WittRingElement)"

For the programmer
==================

The object wittIdeal, is a method function with a single argument (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:973:0.

wittLength -- Returns the length of the Witt vectors in a given Witt ring
*************************************************************************

  * Usage:
        n = wittLength(WR)
  * Inputs:
      * WR, an instance of the type WittPolynomialRing,
      * WR, an instance of the type WittQuotientRing,
  * Outputs:
      * n, an integer (Macaulay2Doc),

Description
===========

If $WR = W_n(R)$ for some polynomial or quotient ring R, and some integer $n
\geq 1$, wittLength(WR) returns the integer n.

+---------------------+
|i1 : R = GF(9)[x,y]; |
+---------------------+
|i2 : WR = witt(5, R);|
+---------------------+
|i3 : wittLength(WR)  |
|                     |
|o3 = 5               |
+---------------------+

Ways to use wittLength:
=======================

  * "wittLength(WittPolynomialRing)"
  * "wittLength(WittQuotientRing)"

For the programmer
==================

The object wittLength, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:331:0.

WittOverring
************

For the programmer
==================

The object WittOverring (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

wittOverring -- Returns the n-th WittOverring of a ring R, or the overring of a witt ring.
******************************************************************************************

  * Usage:
        wittOverring(n, R)
        wittOverring(WR)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * R, a ring (Macaulay2Doc),
      * WR, an instance of the type WittPolynomialRing,
      * WR, an instance of the type WittQuotientRing,
  * Outputs:
      * a ring (Macaulay2Doc),

Description
===========

Given a polynomial ring R = (ZZ/p) [x_1,..., x_n] over a finite prime field
ZZ/p, and an integer $n \geq 1$, it returns and appropriately caches the
polynomial ring $(\mathbb{Z}/ p^n)[T_1, \dots , T_n]$, which we call the
wittOverring. The reason is that the n-th Witt ring of R is a subring of this
wittOverring. Note: given a quotient ring R = S/I, where S is a polynomial ring
over a finite prime field, it returns the wittOverring of S. That is to say,
the Witt overring does not keep track of relations in the ring. As a
consequence, for a prime p  wittOverring will return different answers for
witt(n, (ZZ/p)[x_1, .. ,x_n]) and witt(n, GF(p)[x_1 .. x_n]); the latter will
have one more variable.

+-----------------------+
|i1 : R = (ZZ/2)[x,y];  |
+-----------------------+
|i2 : wittOverring(3, R)|
|                       |
|     ZZ[T ..T ]        |
|         1   2         |
|o2 = ----------        |
|          8            |
|                       |
|o2 : QuotientRing      |
+-----------------------+

Ways to use wittOverring:
=========================

  * "wittOverring(WittPolynomialRing)"
  * "wittOverring(WittQuotientRing)"
  * "wittOverring(ZZ,Ring)"

For the programmer
==================

The object wittOverring, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:256:0.

wittOverringIdeal -- The expansion of the witt ideal to the witt overring.
**************************************************************************

  * Usage:
        WOI = wittOverringIdeal(n, I)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * I, an ideal (Macaulay2Doc), an ideal in a polynomial ring
        R of positive characteristic.
  * Outputs:
      * WOI, an ideal (Macaulay2Doc), an ideal in the nth witt
        overring of R

Description
===========

If R is a polynomial ring of positive characteristic, I is an ideal of R, and
$n \geq 1$ is an integer, one has an ideal W_n(I) of W_n(R) given as the kernel
of $W_n(R) \to W_n(R / I)$. The method wittOverringIdeal(n, I) returns the
expansion of W_n(I) to the n-th witt overring of R.

+--------------------------------------+
|i1 : R = (ZZ / 3)[x,y,z];             |
+--------------------------------------+
|i2 : I = ideal(x^2, y^2, z^2);        |
|                                      |
|o2 : Ideal of R                       |
+--------------------------------------+
|i3 : wittOverringIdeal(2, I)          |
|                                      |
|             6   6   6    2    2    2 |
|o3 = ideal (T , T , T , 3T , 3T , 3T )|
|             1   2   3    1    2    3 |
|                                      |
|              ZZ[T ..T ]              |
|                  1   3               |
|o3 : Ideal of ----------              |
|                   9                  |
+--------------------------------------+

Ways to use wittOverringIdeal:
==============================

  * "wittOverringIdeal(ZZ,Ideal)"

For the programmer
==================

The object wittOverringIdeal, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:706:0.

wittOverringToTuple -- Converts an element of the explicit overring of a Witt ring into a tuple.
************************************************************************************************

  * Usage:
        w = wittOverringToTuple r
  * Inputs:
      * r, a ring element (Macaulay2Doc), an element of a
        ring that is of the form wittOverring(n,R) a ring R
  * Outputs:
      * w, an instance of the type WittRingElement,

Description
===========

Given an element r of a ring OR, which must be obtained as OR =
wittOverring(n,R), this returns the corresponding tuple of W

+---------------------------+
|i1 : R = ZZ/5[x]           |
|                           |
|o1 = R                     |
|                           |
|o1 : PolynomialRing        |
+---------------------------+
|i2 : W = witt(2,R)         |
|                           |
|o2 = Witt (R)              |
|         2                 |
|                           |
|o2 : WittPolynomialRing    |
+---------------------------+
|i3 : OR = wittOverring(2,R)|
|                           |
|o3 = OR                    |
|                           |
|o3 : QuotientRing          |
+---------------------------+
|i4 : w = OR_0^5            |
|                           |
|      5                    |
|o4 = T                     |
|      1                    |
|                           |
|o4 : OR                    |
+---------------------------+
|i5 : wittOverringToTuple(w)|
|                           |
|o5 = {x, 0}                |
|                           |
|o5 : WittRingElement       |
+---------------------------+

Ways to use wittOverringToTuple:
================================

  * wittOverringToTuple(RingElement) (missing documentation)

For the programmer
==================

The object wittOverringToTuple, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:631:0.

WittPolynomialRing -- The class of the n-th Witt ring of a polynomial ring.
***************************************************************************

Description
===========

Can be built by using the witt method.

+-----------------------+
|i1 : R = (ZZ/3)[x,y,z];|
+-----------------------+
|i2 : WR = witt(2, R)   |
|                       |
|o2 = Witt (R)          |
|         2             |
|                       |
|o2 : WittPolynomialRing|
+-----------------------+

Methods that use an object of class WittPolynomialRing:
=======================================================

  * explicit(WittPolynomialRing), --
    Expresses a WittPolynomialRing as a finitely generated algebra over the
    integers.
  * net(WittPolynomialRing) (missing documentation)
  * random(ZZ,WittPolynomialRing) (missing documentation)
  * substitute(ZZ,WittPolynomialRing) (missing documentation)
  * truncate(ZZ,WittPolynomialRing)
    -- Crop Witt ring to the ring of
    Witt vectors of a given length
  * "unWitt(WittPolynomialRing)" -- see unWitt, -- Returns the
    underlying ring R of a Witt ring W_n(R)
  * wittFrobenius(WittPolynomialRing)
    -- The (Witt) Frobenius map of a
    Witt ring
  * "wittLength(WittPolynomialRing)" -- see wittLength, --
    Returns the length of the Witt vectors in a given Witt ring
  * "wittOverring(WittPolynomialRing)" -- see wittOverring,
    -- Returns the n-th WittOverring of a ring R, or the overring of a witt
    ring.
  * ZZ _ WittPolynomialRing (missing documentation)

For the programmer
==================

The object WittPolynomialRing, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:860:0.

WittQuotientRing -- The class of the n-th Witt ring of a quotient of a polynomial ring.
***************************************************************************************

Description
===========

Can be built by using the witt method.

+-------------------------------------------------+
|i1 : R = (ZZ/3)[x,y,z] / ideal(x^2  + y^2 + z^2);|
+-------------------------------------------------+
|i2 : WR = witt(4, R)                             |
|                                                 |
|o2 = Witt (R)                                    |
|         4                                       |
|                                                 |
|o2 : WittQuotientRing                            |
+-------------------------------------------------+

Methods that use an object of class WittQuotientRing:
=====================================================

  * explicit(WittQuotientRing), --
    Expresses a WittQuotientRing as a finitely generated algebra over the
    integers.
  * net(WittQuotientRing) (missing documentation)
  * random(ZZ,WittQuotientRing) (missing documentation)
  * substitute(ZZ,WittQuotientRing) (missing documentation)
  * truncate(ZZ,WittQuotientRing),
    -- Crop Witt Quotient ring to the ring of Witt vectors of a given length
  * "unWitt(WittQuotientRing)" -- see unWitt, -- Returns the
    underlying ring R of a Witt ring W_n(R)
  * "wittFrobenius(WittQuotientRing)" -- see
    wittFrobenius(WittPolynomialRing),
    -- The (Witt) Frobenius map of a Witt ring
  * "wittLength(WittQuotientRing)" -- see wittLength, --
    Returns the length of the Witt vectors in a given Witt ring
  * "wittOverring(WittQuotientRing)" -- see wittOverring,
    -- Returns the n-th WittOverring of a ring R, or the overring of a witt
    ring.
  * ZZ _ WittQuotientRing (missing documentation)

For the programmer
==================

The object WittQuotientRing, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:906:0.

WittRing
********

For the programmer
==================

The object WittRing (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

WittRingElement -- The Type for elements of WittPolynomialRing and WittQuotientRing.
************************************************************************************

Description
===========

Instances of WittRingElement can be built by using the witt method.

+---------------------------+
|i1 : R = (ZZ/3)[x,y];      |
+---------------------------+
|i2 : w = witt{x^2 + y^2, x}|
|                           |
|       2    2              |
|o2 = {x  + y , x}          |
|                           |
|o2 : WittRingElement       |
+---------------------------+

Functions and methods returning an object of class WittRingElement:
===================================================================

  * wittFrobenius(WittRingElement),
    -- The (Witt) Frobenius map on an element
  * WittRingMap WittRingElement (missing documentation)

Methods that use an object of class WittRingElement:
====================================================

  * - WittRingElement (missing documentation)
  * length(WittRingElement) (missing documentation)
  * net(WittRingElement) (missing documentation)
  * ring(WittRingElement) -- Returns the Witt
    ring that a WittRingElement belongs to
  * toList(WittRingElement) -- Converts a
    WittRingElement into a List
  * truncate(ZZ,WittRingElement), --
    Crop Witt Vector to have a given length.
  * verschiebung(WittRingElement), --
    The Verschiebung map on an element
  * "wittIdeal(WittRingElement)" -- see wittIdeal, -- Make an
    ideal in a Witt ring.
  * WittRingElement * WittRingElement
    -- Multiplication of WittRingElements.
  * WittRingElement * ZZ (missing documentation)
  * WittRingElement + WittRingElement,
    -- Addition of WittRingElements.
  * WittRingElement - WittRingElement (missing documentation)
  * WittRingElement == WittRingElement (missing documentation)
  * WittRingElement == ZZ (missing documentation)
  * WittRingElement ^ ZZ (missing documentation)
  * WittRingElement | WittRingElement (missing documentation)
  * wittTupleToOverring(WittRingElement) (missing documentation)
  * wittTupleToRing(WittRingElement) (missing documentation)
  * ZZ * WittRingElement (missing documentation)

For the programmer
==================

The object WittRingElement, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:349:0.

WittRingElement * WittRingElement -- Multiplication of WittRingElements.
************************************************************************

  * Operator: * (Macaulay2Doc),
  * Usage:
        w = w1*w2
  * Inputs:
      * w1, an instance of the type WittRingElement,
      * w2, an instance of the type WittRingElement,
        elements of a Witt ring
  * Outputs:
      * w, an instance of the type WittRingElement, the
        product of w1 and w2

Description
===========

Given Witt vectors w1 and w2, this computes their sum (corresponding to the
multiplication operation inherited via the ghost maps)

+----------------------+
|i1 : R = ZZ/5[x,y,z,w]|
|                      |
|o1 = R                |
|                      |
|o1 : PolynomialRing   |
+----------------------+
|i2 : w1 = witt{x,y}   |
|                      |
|o2 = {x, y}           |
|                      |
|o2 : WittRingElement  |
+----------------------+
|i3 : w2 = witt{z,w}   |
|                      |
|o3 = {z, w}           |
|                      |
|o3 : WittRingElement  |
+----------------------+
|i4 : w1*w2            |
|                      |
|              5    5  |
|o4 = {x*z, y*z  + x w}|
|                      |
|o4 : WittRingElement  |
+----------------------+

Ways to use this method:
========================

  * WittRingElement * WittRingElement
    -- Multiplication of WittRingElements.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:580:0.

WittRingElement + WittRingElement -- Addition of WittRingElements.
******************************************************************

  * Operator: + (Macaulay2Doc),
  * Usage:
        w = w1+w2
  * Inputs:
      * w1, an instance of the type WittRingElement,
      * w2, an instance of the type WittRingElement,
        elements of a Witt ring
  * Outputs:
      * w, an instance of the type WittRingElement, the
        sum of w1 and w2

Description
===========

Given Witt vectors w1 and w2, this computes their sum (corresponding to the
addition operation inherited via the ghost maps)

+--------------------------------------------------+
|i1 : R = ZZ/5[x,y,z,w]                            |
|                                                  |
|o1 = R                                            |
|                                                  |
|o1 : PolynomialRing                               |
+--------------------------------------------------+
|i2 : w1 = witt{x,y}                               |
|                                                  |
|o2 = {x, y}                                       |
|                                                  |
|o2 : WittRingElement                              |
+--------------------------------------------------+
|i3 : w2 = witt{z,w}                               |
|                                                  |
|o3 = {z, w}                                       |
|                                                  |
|o3 : WittRingElement                              |
+--------------------------------------------------+
|i4 : w1+w2                                        |
|                                                  |
|                4      3 2     2 3      4         |
|o4 = {x + z, - x z - 2x z  - 2x z  - x*z  + y + w}|
|                                                  |
|o4 : WittRingElement                              |
+--------------------------------------------------+

Ways to use this method:
========================

  * WittRingElement + WittRingElement,
    -- Addition of WittRingElements.
-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:556:0.

wittRingIdeal -- Returns the n-th witt ideal in explicit form.
**************************************************************

  * Usage:
        WI = witt(n, I)
  * Inputs:
      * n, an integer (Macaulay2Doc),
      * I, an ideal (Macaulay2Doc), an ideal in a polynomial ring
        R of positive characteristic.
  * Outputs:
      * WI, an ideal (Macaulay2Doc), the n-th witt of I, in
        explicit form.

Description
===========

If R is a polynomial ring of positive characteristic, I is an ideal of R, and
$n \geq 1$ is an integer, one has an ideal W_n(I) of W_n(R) given as the kernel
of $W_n(R) \to W_n(R / I)$. The method wittRingIdeal(n, I) returns the ideal
$W_n(I)$ in explicit form. Note that these ideals tend to have many more
generators than I.

+-----------------------------------------------------------------------------+
|i1 : R = (ZZ / 3)[x,y,z];                                                    |
+-----------------------------------------------------------------------------+
|i2 : I = ideal(x^2, y^2, z^2);                                               |
|                                                                             |
|o2 : Ideal of R                                                              |
+-----------------------------------------------------------------------------+
|i3 : WI = wittRingIdeal(2, I);                                               |
|                                                                             |
|                                                                             |
|                                                                             |
|o3 : Ideal of ---------------------------------------------------------------|
|                                                                             |
|              (9, 3T              , 3T              , 3T              , 3T   |
|                    {1, {2, 2, 2}}    {1, {2, 2, 1}}    {1, {2, 2, 0}}    {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           , 3T              , 3T              , 3T              , 3T        |
| {2, 1, 2}}    {1, {2, 1, 1}}    {1, {2, 1, 0}}    {1, {2, 0, 2}}    {1, {2, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|      , 3T              , 3T              , 3T              , 3T             |
|0, 1}}    {1, {2, 0, 0}}    {1, {1, 2, 2}}    {1, {1, 2, 1}}    {1, {1, 2, 0}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| , 3T              , 3T              , 3T              , 3T              , 3T|
|}    {1, {1, 1, 2}}    {1, {1, 1, 1}}    {1, {1, 1, 0}}    {1, {1, 0, 2}}    |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|              , 3T              , 3T              , 3T              , 3T     |
|{1, {1, 0, 1}}    {1, {1, 0, 0}}    {1, {0, 2, 2}}    {1, {0, 2, 1}}    {1, {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|         , 3T              , 3T              , 3T              , 3T          |
|0, 2, 0}}    {1, {0, 1, 2}}    {1, {0, 1, 1}}    {1, {0, 1, 0}}    {1, {0, 0,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                         2                                                   |
|    , 3T              , T              , T              T              , T   |
| 2}}    {1, {0, 0, 1}}   {1, {2, 2, 2}}   {1, {2, 2, 1}} {1, {2, 2, 2}}   {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           T              , T              T              , T              T |
| {2, 2, 0}} {1, {2, 2, 2}}   {1, {2, 1, 2}} {1, {2, 2, 2}}   {1, {2, 1, 1}} {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|             , T              T              , T              T              |
|1, {2, 2, 2}}   {1, {2, 1, 0}} {1, {2, 2, 2}}   {1, {2, 0, 2}} {1, {2, 2, 2}}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|, T              T              , T              T              , T          |
|   {1, {2, 0, 1}} {1, {2, 2, 2}}   {1, {2, 0, 0}} {1, {2, 2, 2}}   {1, {1, 2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|    T              , T              T              , T              T        |
| 2}} {1, {2, 2, 2}}   {1, {1, 2, 1}} {1, {2, 2, 2}}   {1, {1, 2, 0}} {1, {2, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|      , T              T              , T              T              , T    |
|2, 2}}   {1, {1, 1, 2}} {1, {2, 2, 2}}   {1, {1, 1, 1}} {1, {2, 2, 2}}   {1, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|          T              , T              T              , T              T  |
|{1, 1, 0}} {1, {2, 2, 2}}   {1, {1, 0, 2}} {1, {2, 2, 2}}   {1, {1, 0, 1}} {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|            , T              T              , T              T              ,|
|, {2, 2, 2}}   {1, {1, 0, 0}} {1, {2, 2, 2}}   {1, {0, 2, 2}} {1, {2, 2, 2}} |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| T              T              , T              T              , T           |
|  {1, {0, 2, 1}} {1, {2, 2, 2}}   {1, {0, 2, 0}} {1, {2, 2, 2}}   {1, {0, 1, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|   T              , T              T              , T              T         |
|2}} {1, {2, 2, 2}}   {1, {0, 1, 1}} {1, {2, 2, 2}}   {1, {0, 1, 0}} {1, {2, 2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                        2    |
|     , T              T              , T              T              , T     |
|, 2}}   {1, {0, 0, 2}} {1, {2, 2, 2}}   {1, {0, 0, 1}} {1, {2, 2, 2}}   {1, {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|         , T              T              , T              T              , T |
|2, 2, 1}}   {1, {2, 2, 0}} {1, {2, 2, 1}}   {1, {2, 1, 2}} {1, {2, 2, 1}}   {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|             T              , T              T              , T              |
|1, {2, 1, 1}} {1, {2, 2, 1}}   {1, {2, 1, 0}} {1, {2, 2, 1}}   {1, {2, 0, 2}}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|T              , T              T              , T              T            |
| {1, {2, 2, 1}}   {1, {2, 0, 1}} {1, {2, 2, 1}}   {1, {2, 0, 0}} {1, {2, 2, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {1, 2, 2}} {1, {2, 2, 1}}   {1, {1, 2, 1}} {1, {2, 2, 1}}   {1, {1, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|      T              , T              T              , T              T      |
|2, 0}} {1, {2, 2, 1}}   {1, {1, 1, 2}} {1, {2, 2, 1}}   {1, {1, 1, 1}} {1, {2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|        , T              T              , T              T              , T  |
|, 2, 1}}   {1, {1, 1, 0}} {1, {2, 2, 1}}   {1, {1, 0, 2}} {1, {2, 2, 1}}   {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {1, 0, 1}} {1, {2, 2, 1}}   {1, {1, 0, 0}} {1, {2, 2, 1}}   {1, {0, 2, 2}} |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|              , T              T              , T              T             |
|{1, {2, 2, 1}}   {1, {0, 2, 1}} {1, {2, 2, 1}}   {1, {0, 2, 0}} {1, {2, 2, 1}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| , T              T              , T              T              , T         |
|}   {1, {0, 1, 2}} {1, {2, 2, 1}}   {1, {0, 1, 1}} {1, {2, 2, 1}}   {1, {0, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|     T              , T              T              , T              T       |
|, 0}} {1, {2, 2, 1}}   {1, {0, 0, 2}} {1, {2, 2, 1}}   {1, {0, 0, 1}} {1, {2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|          2                                                                  |
|       , T              , T              T              , T              T   |
| 2, 1}}   {1, {2, 2, 0}}   {1, {2, 1, 2}} {1, {2, 2, 0}}   {1, {2, 1, 1}} {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           , T              T              , T              T              , |
| {2, 2, 0}}   {1, {2, 1, 0}} {1, {2, 2, 0}}   {1, {2, 0, 2}} {1, {2, 2, 0}}  |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|T              T              , T              T              , T            |
| {1, {2, 0, 1}} {1, {2, 2, 0}}   {1, {2, 0, 0}} {1, {2, 2, 0}}   {1, {1, 2, 2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|  T              , T              T              , T              T          |
|}} {1, {2, 2, 0}}   {1, {1, 2, 1}} {1, {2, 2, 0}}   {1, {1, 2, 0}} {1, {2, 2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|    , T              T              , T              T              , T      |
| 0}}   {1, {1, 1, 2}} {1, {2, 2, 0}}   {1, {1, 1, 1}} {1, {2, 2, 0}}   {1, {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|        T              , T              T              , T              T    |
|, 1, 0}} {1, {2, 2, 0}}   {1, {1, 0, 2}} {1, {2, 2, 0}}   {1, {1, 0, 1}} {1, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|          , T              T              , T              T              , T|
|{2, 2, 0}}   {1, {1, 0, 0}} {1, {2, 2, 0}}   {1, {0, 2, 2}} {1, {2, 2, 0}}   |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|              T              , T              T              , T             |
|{1, {0, 2, 1}} {1, {2, 2, 0}}   {1, {0, 2, 0}} {1, {2, 2, 0}}   {1, {0, 1, 2}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| T              , T              T              , T              T           |
|} {1, {2, 2, 0}}   {1, {0, 1, 1}} {1, {2, 2, 0}}   {1, {0, 1, 0}} {1, {2, 2, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                      2      |
|   , T              T              , T              T              , T       |
|0}}   {1, {0, 0, 2}} {1, {2, 2, 0}}   {1, {0, 0, 1}} {1, {2, 2, 0}}   {1, {2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|       , T              T              , T              T              , T   |
| 1, 2}}   {1, {2, 1, 1}} {1, {2, 1, 2}}   {1, {2, 1, 0}} {1, {2, 1, 2}}   {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           T              , T              T              , T              T |
| {2, 0, 2}} {1, {2, 1, 2}}   {1, {2, 0, 1}} {1, {2, 1, 2}}   {1, {2, 0, 0}} {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|             , T              T              , T              T              |
|1, {2, 1, 2}}   {1, {1, 2, 2}} {1, {2, 1, 2}}   {1, {1, 2, 1}} {1, {2, 1, 2}}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|, T              T              , T              T              , T          |
|   {1, {1, 2, 0}} {1, {2, 1, 2}}   {1, {1, 1, 2}} {1, {2, 1, 2}}   {1, {1, 1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|    T              , T              T              , T              T        |
| 1}} {1, {2, 1, 2}}   {1, {1, 1, 0}} {1, {2, 1, 2}}   {1, {1, 0, 2}} {1, {2, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|      , T              T              , T              T              , T    |
|1, 2}}   {1, {1, 0, 1}} {1, {2, 1, 2}}   {1, {1, 0, 0}} {1, {2, 1, 2}}   {1, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|          T              , T              T              , T              T  |
|{0, 2, 2}} {1, {2, 1, 2}}   {1, {0, 2, 1}} {1, {2, 1, 2}}   {1, {0, 2, 0}} {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|            , T              T              , T              T              ,|
|, {2, 1, 2}}   {1, {0, 1, 2}} {1, {2, 1, 2}}   {1, {0, 1, 1}} {1, {2, 1, 2}} |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| T              T              , T              T              , T           |
|  {1, {0, 1, 0}} {1, {2, 1, 2}}   {1, {0, 0, 2}} {1, {2, 1, 2}}   {1, {0, 0, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                     2                                                       |
|   T              , T              , T              T              , T       |
|1}} {1, {2, 1, 2}}   {1, {2, 1, 1}}   {1, {2, 1, 0}} {1, {2, 1, 1}}   {1, {2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|       T              , T              T              , T              T     |
| 0, 2}} {1, {2, 1, 1}}   {1, {2, 0, 1}} {1, {2, 1, 1}}   {1, {2, 0, 0}} {1, {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|         , T              T              , T              T              , T |
|2, 1, 1}}   {1, {1, 2, 2}} {1, {2, 1, 1}}   {1, {1, 2, 1}} {1, {2, 1, 1}}   {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|             T              , T              T              , T              |
|1, {1, 2, 0}} {1, {2, 1, 1}}   {1, {1, 1, 2}} {1, {2, 1, 1}}   {1, {1, 1, 1}}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|T              , T              T              , T              T            |
| {1, {2, 1, 1}}   {1, {1, 1, 0}} {1, {2, 1, 1}}   {1, {1, 0, 2}} {1, {2, 1, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {1, 0, 1}} {1, {2, 1, 1}}   {1, {1, 0, 0}} {1, {2, 1, 1}}   {1, {0, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|      T              , T              T              , T              T      |
|2, 2}} {1, {2, 1, 1}}   {1, {0, 2, 1}} {1, {2, 1, 1}}   {1, {0, 2, 0}} {1, {2|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|        , T              T              , T              T              , T  |
|, 1, 1}}   {1, {0, 1, 2}} {1, {2, 1, 1}}   {1, {0, 1, 1}} {1, {2, 1, 1}}   {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {0, 1, 0}} {1, {2, 1, 1}}   {1, {0, 0, 2}} {1, {2, 1, 1}}   {1, {0, 0, 1}} |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                 2                                                           |
|              , T              , T              T              , T           |
|{1, {2, 1, 1}}   {1, {2, 1, 0}}   {1, {2, 0, 2}} {1, {2, 1, 0}}   {1, {2, 0, |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|   T              , T              T              , T              T         |
|1}} {1, {2, 1, 0}}   {1, {2, 0, 0}} {1, {2, 1, 0}}   {1, {1, 2, 2}} {1, {2, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|     , T              T              , T              T              , T     |
|, 0}}   {1, {1, 2, 1}} {1, {2, 1, 0}}   {1, {1, 2, 0}} {1, {2, 1, 0}}   {1, {|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|         T              , T              T              , T              T   |
|1, 1, 2}} {1, {2, 1, 0}}   {1, {1, 1, 1}} {1, {2, 1, 0}}   {1, {1, 1, 0}} {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           , T              T              , T              T              , |
| {2, 1, 0}}   {1, {1, 0, 2}} {1, {2, 1, 0}}   {1, {1, 0, 1}} {1, {2, 1, 0}}  |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|T              T              , T              T              , T            |
| {1, {1, 0, 0}} {1, {2, 1, 0}}   {1, {0, 2, 2}} {1, {2, 1, 0}}   {1, {0, 2, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|  T              , T              T              , T              T          |
|}} {1, {2, 1, 0}}   {1, {0, 2, 0}} {1, {2, 1, 0}}   {1, {0, 1, 2}} {1, {2, 1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|    , T              T              , T              T              , T      |
| 0}}   {1, {0, 1, 1}} {1, {2, 1, 0}}   {1, {0, 1, 0}} {1, {2, 1, 0}}   {1, {0|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                          2                  |
|        T              , T              T              , T              , T  |
|, 0, 2}} {1, {2, 1, 0}}   {1, {0, 0, 1}} {1, {2, 1, 0}}   {1, {2, 0, 2}}   {1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {2, 0, 1}} {1, {2, 0, 2}}   {1, {2, 0, 0}} {1, {2, 0, 2}}   {1, {1, 2, 2}} |
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|              , T              T              , T              T             |
|{1, {2, 0, 2}}   {1, {1, 2, 1}} {1, {2, 0, 2}}   {1, {1, 2, 0}} {1, {2, 0, 2}|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
| , T              T              , T              T              , T         |
|}   {1, {1, 1, 2}} {1, {2, 0, 2}}   {1, {1, 1, 1}} {1, {2, 0, 2}}   {1, {1, 1|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|     T              , T              T              , T              T       |
|, 0}} {1, {2, 0, 2}}   {1, {1, 0, 2}} {1, {2, 0, 2}}   {1, {1, 0, 1}} {1, {2,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|       , T              T              , T              T              , T   |
| 0, 2}}   {1, {1, 0, 0}} {1, {2, 0, 2}}   {1, {0, 2, 2}} {1, {2, 0, 2}}   {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                                                                             |
|           T              , T              T              , T              T |
| {0, 2, 1}} {1, {2, 0, 2}}   {1, {0, 2, 0}} {1, {2, 0, 2}}   {1, {0, 1, 2}} {|
|-----------------------------------------------------------------------------|
|                                 ZZ[T              , T              , T      |
|                                     {0, {1, 0, 0}}   {0, {0, 1, 0}}   {0, {0|
|-----------------------------------------------------------------------------|
|                                                                             |
|             , T              T              , T              T              |
|1, {2, 0, 2}}   {1, {0, 1, 1}} {1, {2, 0, 2}}   {1, {0, 1, 0}} {1, {2, 0, 2}}|
|-----------------------------------------------------------------------------|
|        , T              , T              , T              , T              ,|
|, 0, 1}}   {1, {0, 0, 1}}   {1, {0, 0, 2}}   {1, {0, 1, 0}}   {1, {0, 1, 1}} |
|-----------------------------------------------------------------------------|
|                                                                   2         |
|, T              T              , T              T              , T          |
|   {1, {0, 0, 2}} {1, {2, 0, 2}}   {1, {0, 0, 1}} {1, {2, 0, 2}}   {1, {2, 0,|
|-----------------------------------------------------------------------------|
| T              , T              , T              , T              , T       |
|  {1, {0, 1, 2}}   {1, {0, 2, 0}}   {1, {0, 2, 1}}   {1, {0, 2, 2}}   {1, {1,|
|-----------------------------------------------------------------------------|
|                                                                             |
|    , T              T              , T              T              , T      |
| 1}}   {1, {2, 0, 0}} {1, {2, 0, 1}}   {1, {1, 2, 2}} {1, {2, 0, 1}}   {1, {1|
|-----------------------------------------------------------------------------|
|       , T              , T              , T              , T              , |
| 0, 0}}   {1, {1, 0, 1}}   {1, {1, 0, 2}}   {1, {1, 1, 0}}   {1, {1, 1, 1}}  |
|-----------------------------------------------------------------------------|
|                                                                             |
|        T              , T              T              , T              T    |
|, 2, 1}} {1, {2, 0, 1}}   {1, {1, 2, 0}} {1, {2, 0, 1}}   {1, {1, 1, 2}} {1, |
|-----------------------------------------------------------------------------|
|T              , T              , T              , T              , T        |
| {1, {1, 1, 2}}   {1, {1, 2, 0}}   {1, {1, 2, 1}}   {1, {1, 2, 2}}   {1, {2, |
|-----------------------------------------------------------------------------|
|                                                                             |
|          , T              T              , T              T              , T|
|{2, 0, 1}}   {1, {1, 1, 1}} {1, {2, 0, 1}}   {1, {1, 1, 0}} {1, {2, 0, 1}}   |
|-----------------------------------------------------------------------------|
|      , T              , T              , T              , T              , T|
|0, 0}}   {1, {2, 0, 1}}   {1, {2, 0, 2}}   {1, {2, 1, 0}}   {1, {2, 1, 1}}   |
|-----------------------------------------------------------------------------|
|                                                                             |
|              T              , T              T              , T             |
|{1, {1, 0, 2}} {1, {2, 0, 1}}   {1, {1, 0, 1}} {1, {2, 0, 1}}   {1, {1, 0, 0}|
|-----------------------------------------------------------------------------|
|              , T              , T              , T              ]           |
|{1, {2, 1, 2}}   {1, {2, 2, 0}}   {1, {2, 2, 1}}   {1, {2, 2, 2}}            |
|-----------------------------------------------------------------------------|
|                                                                             |
| T              , T              T              , T              T           |
|} {1, {2, 0, 1}}   {1, {0, 2, 2}} {1, {2, 0, 1}}   {1, {0, 2, 1}} {1, {2, 0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   , T              T              , T              T              , T       |
|1}}   {1, {0, 2, 0}} {1, {2, 0, 1}}   {1, {0, 1, 2}} {1, {2, 0, 1}}   {1, {0,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|       T              , T              T              , T              T     |
| 1, 1}} {1, {2, 0, 1}}   {1, {0, 1, 0}} {1, {2, 0, 1}}   {1, {0, 0, 2}} {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                            2                                |
|         , T              T              , T              , T              T |
|2, 0, 1}}   {1, {0, 0, 1}} {1, {2, 0, 1}}   {1, {2, 0, 0}}   {1, {1, 2, 2}} {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|             , T              T              , T              T              |
|1, {2, 0, 0}}   {1, {1, 2, 1}} {1, {2, 0, 0}}   {1, {1, 2, 0}} {1, {2, 0, 0}}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|, T              T              , T              T              , T          |
|   {1, {1, 1, 2}} {1, {2, 0, 0}}   {1, {1, 1, 1}} {1, {2, 0, 0}}   {1, {1, 1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|    T              , T              T              , T              T        |
| 0}} {1, {2, 0, 0}}   {1, {1, 0, 2}} {1, {2, 0, 0}}   {1, {1, 0, 1}} {1, {2, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|      , T              T              , T              T              , T    |
|0, 0}}   {1, {1, 0, 0}} {1, {2, 0, 0}}   {1, {0, 2, 2}} {1, {2, 0, 0}}   {1, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|          T              , T              T              , T              T  |
|{0, 2, 1}} {1, {2, 0, 0}}   {1, {0, 2, 0}} {1, {2, 0, 0}}   {1, {0, 1, 2}} {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            , T              T              , T              T              ,|
|, {2, 0, 0}}   {1, {0, 1, 1}} {1, {2, 0, 0}}   {1, {0, 1, 0}} {1, {2, 0, 0}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                  2          |
| T              T              , T              T              , T           |
|  {1, {0, 0, 2}} {1, {2, 0, 0}}   {1, {0, 0, 1}} {1, {2, 0, 0}}   {1, {1, 2, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   , T              T              , T              T              , T       |
|2}}   {1, {1, 2, 1}} {1, {1, 2, 2}}   {1, {1, 2, 0}} {1, {1, 2, 2}}   {1, {1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|       T              , T              T              , T              T     |
| 1, 2}} {1, {1, 2, 2}}   {1, {1, 1, 1}} {1, {1, 2, 2}}   {1, {1, 1, 0}} {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|         , T              T              , T              T              , T |
|1, 2, 2}}   {1, {1, 0, 2}} {1, {1, 2, 2}}   {1, {1, 0, 1}} {1, {1, 2, 2}}   {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|             T              , T              T              , T              |
|1, {1, 0, 0}} {1, {1, 2, 2}}   {1, {0, 2, 2}} {1, {1, 2, 2}}   {1, {0, 2, 1}}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|T              , T              T              , T              T            |
| {1, {1, 2, 2}}   {1, {0, 2, 0}} {1, {1, 2, 2}}   {1, {0, 1, 2}} {1, {1, 2, 2|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {0, 1, 1}} {1, {1, 2, 2}}   {1, {0, 1, 0}} {1, {1, 2, 2}}   {1, {0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                        2                    |
|      T              , T              T              , T              , T    |
|0, 2}} {1, {1, 2, 2}}   {1, {0, 0, 1}} {1, {1, 2, 2}}   {1, {1, 2, 1}}   {1, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|          T              , T              T              , T              T  |
|{1, 2, 0}} {1, {1, 2, 1}}   {1, {1, 1, 2}} {1, {1, 2, 1}}   {1, {1, 1, 1}} {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            , T              T              , T              T              ,|
|, {1, 2, 1}}   {1, {1, 1, 0}} {1, {1, 2, 1}}   {1, {1, 0, 2}} {1, {1, 2, 1}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
| T              T              , T              T              , T           |
|  {1, {1, 0, 1}} {1, {1, 2, 1}}   {1, {1, 0, 0}} {1, {1, 2, 1}}   {1, {0, 2, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   T              , T              T              , T              T         |
|2}} {1, {1, 2, 1}}   {1, {0, 2, 1}} {1, {1, 2, 1}}   {1, {0, 2, 0}} {1, {1, 2|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|     , T              T              , T              T              , T     |
|, 1}}   {1, {0, 1, 2}} {1, {1, 2, 1}}   {1, {0, 1, 1}} {1, {1, 2, 1}}   {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|         T              , T              T              , T              T   |
|0, 1, 0}} {1, {1, 2, 1}}   {1, {0, 0, 2}} {1, {1, 2, 1}}   {1, {0, 0, 1}} {1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|              2                                                              |
|           , T              , T              T              , T              |
| {1, 2, 1}}   {1, {1, 2, 0}}   {1, {1, 1, 2}} {1, {1, 2, 0}}   {1, {1, 1, 1}}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|T              , T              T              , T              T            |
| {1, {1, 2, 0}}   {1, {1, 1, 0}} {1, {1, 2, 0}}   {1, {1, 0, 2}} {1, {1, 2, 0|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {1, 0, 1}} {1, {1, 2, 0}}   {1, {1, 0, 0}} {1, {1, 2, 0}}   {1, {0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|      T              , T              T              , T              T      |
|2, 2}} {1, {1, 2, 0}}   {1, {0, 2, 1}} {1, {1, 2, 0}}   {1, {0, 2, 0}} {1, {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|        , T              T              , T              T              , T  |
|, 2, 0}}   {1, {0, 1, 2}} {1, {1, 2, 0}}   {1, {0, 1, 1}} {1, {1, 2, 0}}   {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {0, 1, 0}} {1, {1, 2, 0}}   {1, {0, 0, 2}} {1, {1, 2, 0}}   {1, {0, 0, 1}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                 2                                                           |
|              , T              , T              T              , T           |
|{1, {1, 2, 0}}   {1, {1, 1, 2}}   {1, {1, 1, 1}} {1, {1, 1, 2}}   {1, {1, 1, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   T              , T              T              , T              T         |
|0}} {1, {1, 1, 2}}   {1, {1, 0, 2}} {1, {1, 1, 2}}   {1, {1, 0, 1}} {1, {1, 1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|     , T              T              , T              T              , T     |
|, 2}}   {1, {1, 0, 0}} {1, {1, 1, 2}}   {1, {0, 2, 2}} {1, {1, 1, 2}}   {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|         T              , T              T              , T              T   |
|0, 2, 1}} {1, {1, 1, 2}}   {1, {0, 2, 0}} {1, {1, 1, 2}}   {1, {0, 1, 2}} {1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|           , T              T              , T              T              , |
| {1, 1, 2}}   {1, {0, 1, 1}} {1, {1, 1, 2}}   {1, {0, 1, 0}} {1, {1, 1, 2}}  |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                 2           |
|T              T              , T              T              , T            |
| {1, {0, 0, 2}} {1, {1, 1, 2}}   {1, {0, 0, 1}} {1, {1, 1, 2}}   {1, {1, 1, 1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {1, 1, 0}} {1, {1, 1, 1}}   {1, {1, 0, 2}} {1, {1, 1, 1}}   {1, {1, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|      T              , T              T              , T              T      |
|0, 1}} {1, {1, 1, 1}}   {1, {1, 0, 0}} {1, {1, 1, 1}}   {1, {0, 2, 2}} {1, {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|        , T              T              , T              T              , T  |
|, 1, 1}}   {1, {0, 2, 1}} {1, {1, 1, 1}}   {1, {0, 2, 0}} {1, {1, 1, 1}}   {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {0, 1, 2}} {1, {1, 1, 1}}   {1, {0, 1, 1}} {1, {1, 1, 1}}   {1, {0, 1, 0}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|              , T              T              , T              T             |
|{1, {1, 1, 1}}   {1, {0, 0, 2}} {1, {1, 1, 1}}   {1, {0, 0, 1}} {1, {1, 1, 1}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|    2                                                                        |
| , T              , T              T              , T              T         |
|}   {1, {1, 1, 0}}   {1, {1, 0, 2}} {1, {1, 1, 0}}   {1, {1, 0, 1}} {1, {1, 1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|     , T              T              , T              T              , T     |
|, 0}}   {1, {1, 0, 0}} {1, {1, 1, 0}}   {1, {0, 2, 2}} {1, {1, 1, 0}}   {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|         T              , T              T              , T              T   |
|0, 2, 1}} {1, {1, 1, 0}}   {1, {0, 2, 0}} {1, {1, 1, 0}}   {1, {0, 1, 2}} {1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|           , T              T              , T              T              , |
| {1, 1, 0}}   {1, {0, 1, 1}} {1, {1, 1, 0}}   {1, {0, 1, 0}} {1, {1, 1, 0}}  |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                 2           |
|T              T              , T              T              , T            |
| {1, {0, 0, 2}} {1, {1, 1, 0}}   {1, {0, 0, 1}} {1, {1, 1, 0}}   {1, {1, 0, 2|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {1, 0, 1}} {1, {1, 0, 2}}   {1, {1, 0, 0}} {1, {1, 0, 2}}   {1, {0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|      T              , T              T              , T              T      |
|2, 2}} {1, {1, 0, 2}}   {1, {0, 2, 1}} {1, {1, 0, 2}}   {1, {0, 2, 0}} {1, {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|        , T              T              , T              T              , T  |
|, 0, 2}}   {1, {0, 1, 2}} {1, {1, 0, 2}}   {1, {0, 1, 1}} {1, {1, 0, 2}}   {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {0, 1, 0}} {1, {1, 0, 2}}   {1, {0, 0, 2}} {1, {1, 0, 2}}   {1, {0, 0, 1}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                 2                                                           |
|              , T              , T              T              , T           |
|{1, {1, 0, 2}}   {1, {1, 0, 1}}   {1, {1, 0, 0}} {1, {1, 0, 1}}   {1, {0, 2, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   T              , T              T              , T              T         |
|2}} {1, {1, 0, 1}}   {1, {0, 2, 1}} {1, {1, 0, 1}}   {1, {0, 2, 0}} {1, {1, 0|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|     , T              T              , T              T              , T     |
|, 1}}   {1, {0, 1, 2}} {1, {1, 0, 1}}   {1, {0, 1, 1}} {1, {1, 0, 1}}   {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|         T              , T              T              , T              T   |
|0, 1, 0}} {1, {1, 0, 1}}   {1, {0, 0, 2}} {1, {1, 0, 1}}   {1, {0, 0, 1}} {1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|              2                                                              |
|           , T              , T              T              , T              |
| {1, 0, 1}}   {1, {1, 0, 0}}   {1, {0, 2, 2}} {1, {1, 0, 0}}   {1, {0, 2, 1}}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|T              , T              T              , T              T            |
| {1, {1, 0, 0}}   {1, {0, 2, 0}} {1, {1, 0, 0}}   {1, {0, 1, 2}} {1, {1, 0, 0|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|  , T              T              , T              T              , T        |
|}}   {1, {0, 1, 1}} {1, {1, 0, 0}}   {1, {0, 1, 0}} {1, {1, 0, 0}}   {1, {0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                        2                    |
|      T              , T              T              , T              , T    |
|0, 2}} {1, {1, 0, 0}}   {1, {0, 0, 1}} {1, {1, 0, 0}}   {1, {0, 2, 2}}   {1, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|          T              , T              T              , T              T  |
|{0, 2, 1}} {1, {0, 2, 2}}   {1, {0, 2, 0}} {1, {0, 2, 2}}   {1, {0, 1, 2}} {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            , T              T              , T              T              ,|
|, {0, 2, 2}}   {1, {0, 1, 1}} {1, {0, 2, 2}}   {1, {0, 1, 0}} {1, {0, 2, 2}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                  2          |
| T              T              , T              T              , T           |
|  {1, {0, 0, 2}} {1, {0, 2, 2}}   {1, {0, 0, 1}} {1, {0, 2, 2}}   {1, {0, 2, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|   , T              T              , T              T              , T       |
|1}}   {1, {0, 2, 0}} {1, {0, 2, 1}}   {1, {0, 1, 2}} {1, {0, 2, 1}}   {1, {0,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|       T              , T              T              , T              T     |
| 1, 1}} {1, {0, 2, 1}}   {1, {0, 1, 0}} {1, {0, 2, 1}}   {1, {0, 0, 2}} {1, {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                            2                                |
|         , T              T              , T              , T              T |
|0, 2, 1}}   {1, {0, 0, 1}} {1, {0, 2, 1}}   {1, {0, 2, 0}}   {1, {0, 1, 2}} {|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|             , T              T              , T              T              |
|1, {0, 2, 0}}   {1, {0, 1, 1}} {1, {0, 2, 0}}   {1, {0, 1, 0}} {1, {0, 2, 0}}|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                   2         |
|, T              T              , T              T              , T          |
|   {1, {0, 0, 2}} {1, {0, 2, 0}}   {1, {0, 0, 1}} {1, {0, 2, 0}}   {1, {0, 1,|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|    , T              T              , T              T              , T      |
| 2}}   {1, {0, 1, 1}} {1, {0, 1, 2}}   {1, {0, 1, 0}} {1, {0, 1, 2}}   {1, {0|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                          2                  |
|        T              , T              T              , T              , T  |
|, 0, 2}} {1, {0, 1, 2}}   {1, {0, 0, 1}} {1, {0, 1, 2}}   {1, {0, 1, 1}}   {1|
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                                                                             |
|            T              , T              T              , T              T|
|, {0, 1, 0}} {1, {0, 1, 1}}   {1, {0, 0, 2}} {1, {0, 1, 1}}   {1, {0, 0, 1}} |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                 2                                                           |
|              , T              , T              T              , T           |
|{1, {0, 1, 1}}   {1, {0, 1, 0}}   {1, {0, 0, 2}} {1, {0, 1, 0}}   {1, {0, 0, |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
|                     2                                                2      |
|   T              , T              , T              T              , T       |
|1}} {1, {0, 1, 0}}   {1, {0, 0, 2}}   {1, {0, 0, 1}} {1, {0, 0, 2}}   {1, {0,|
|-----------------------------------------------------------------------------|
|--------                                                                     |
|                                                                             |
|       )                                                                     |
| 0, 1}}                                                                      |
+-----------------------------------------------------------------------------+

Ways to use wittRingIdeal:
==========================

  * "wittRingIdeal(ZZ,Ideal)"

For the programmer
==================

The object wittRingIdeal, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:733:0.

WittRingMap -- The class of maps between Witt rings.
****************************************************

Description
===========

In our implementation, a map of WittRings is always induced by a map between
the underlying rings. WittRingMaps can operate on WittRingElements.

+-------------------------------+
|i1 : R = (ZZ/5)[x,y];          |
+-------------------------------+
|i2 : S = (ZZ/5)[a,b,c,d];      |
+-------------------------------+
|i3 : f = map(S, R, {a*b, c*d});|
|                               |
|o3 : RingMap S <-- R           |
+-------------------------------+
|i4 : Wf = witt(2, f);          |
+-------------------------------+

Functions and methods returning an object of class WittRingMap:
===============================================================

  * witt(ZZ,RingMap) -- The map induced on Witt
    rings by a RingMap.
  * witt(ZZ,ZZ,RingMap) -- The map induced
    on Witt rings by a RingMap.
  * wittFrobenius(WittPolynomialRing)
    -- The (Witt) Frobenius map of a
    Witt ring
  * "wittFrobenius(WittQuotientRing)" -- see
    wittFrobenius(WittPolynomialRing),
    -- The (Witt) Frobenius map of a Witt ring
  * wittFrobenius(ZZ,Ring) -- The (Witt)
    Frobenius map on the Witt vectors of a ring
  * WittRingMap * WittRingMap (missing documentation)

Methods that use an object of class WittRingMap:
================================================

  * baseMap(WittRingMap) -- Returns the
    underlying RingMap of a WittRingMap
  * explicit(WittRingMap) (missing documentation)
  * net(WittRingMap) (missing documentation)
  * source(WittRingMap) (missing documentation)
  * target(WittRingMap) (missing documentation)
  * WittRingMap ^ ZZ (missing documentation)
  * WittRingMap WittRingElement (missing documentation)

For the programmer
==================

The object WittRingMap, is a type (Macaulay2Doc),
with ancestor classes MutableHashTable (Macaulay2Doc),
< HashTable (Macaulay2Doc) <
Thing (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:112:0.

wittRingToTuple -- Converts an element of the explicit presentation of a Witt ring into a tuple.
************************************************************************************************

  * Usage:
        w = wittRingToTuple r
  * Inputs:
      * r, a ring element (Macaulay2Doc), an element of a
        ring that is of the form explicit(W) for W a Witt ring
  * Outputs:
      * w, an instance of the type WittRingElement,

Description
===========

Given an element r of a ring WR, which must be obtained as R = explicit(W) for
a WittPolynomialRing or WittQuotientRing, this returns the corresponding tuple
of W under the isomorphism between W and WR

+--------------------------------------------------+
|i1 : R = ZZ/5[x]                                  |
|                                                  |
|o1 = R                                            |
|                                                  |
|o1 : PolynomialRing                               |
+--------------------------------------------------+
|i2 : W = witt(2,R)                                |
|                                                  |
|o2 = Witt (R)                                     |
|         2                                        |
|                                                  |
|o2 : WittPolynomialRing                           |
+--------------------------------------------------+
|i3 : WR = explicit W                              |
|                                                  |
|o3 = WR                                           |
|                                                  |
|o3 : QuotientRing                                 |
+--------------------------------------------------+
|i4 : w = WR_0+WR_1+WR_2+WR_3                      |
|                                                  |
|o4 = T         + T         + T         + T        |
|      {0, {1}}    {1, {1}}    {1, {2}}    {1, {3}}|
|                                                  |
|o4 : WR                                           |
+--------------------------------------------------+
|i5 : wittRingToTuple(w)                           |
|                                                  |
|          3    2                                  |
|o5 = {x, x  + x  + x}                             |
|                                                  |
|o5 : WittRingElement                              |
+--------------------------------------------------+

Ways to use wittRingToTuple:
============================

  * wittRingToTuple(Ideal) (missing documentation)
  * wittRingToTuple(RingElement) (missing documentation)

For the programmer
==================

The object wittRingToTuple, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:608:0.

wittSub
*******

For the programmer
==================

The object wittSub (missing documentation) is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in currentString:1:413.

wittTupleToOverring -- Converts an element of a Witt ring to an element of the overring of its explicit presentation.
*********************************************************************************************************************

  * Usage:
        r = wittTupleToOverring w
  * Inputs:
      * w, an instance of the type WittRingElement,
  * Outputs:
      * r, a ring element (Macaulay2Doc), an element of a
        Witt overring

Description
===========

Given a WittRingElement w of W = witt(n,R) (i.e., a tuple) this returns the
corresponding element of the overring of the explicit presentation of W (i.e.,
an element of wittOverring(n,R)))

+--------------------------+
|i1 : R = ZZ/5[x]          |
|                          |
|o1 = R                    |
|                          |
|o1 : PolynomialRing       |
+--------------------------+
|i2 : w = witt{x,x^5+x^4}  |
|                          |
|          5    4          |
|o2 = {x, x  + x }         |
|                          |
|o2 : WittRingElement      |
+--------------------------+
|i3 : wittTupleToOverring w|
|                          |
|       5     4            |
|o3 = 6T  + 5T             |
|       1     1            |
|                          |
|     ZZ[T ]               |
|         1                |
|o3 : ------               |
|       25                 |
+--------------------------+

Ways to use wittTupleToOverring:
================================

  * wittTupleToOverring(WittRingElement) (missing documentation)

For the programmer
==================

The object wittTupleToOverring, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:673:0.

wittTupleToRing -- Converts an element of a Witt ring to an element of its explicit presentation.
*************************************************************************************************

  * Usage:
        r = wittTupleToRing w
  * Inputs:
      * w, an instance of the type WittRingElement,
  * Outputs:
      * r, a ring element (Macaulay2Doc), an element of a
        ring that is of the form explicit(W) for W a Witt ring

Description
===========

Given a WittRingElement w of W (i.e., a tuple) this returns the corresponding
element of the explicit presentation of W (i.e., an element of explicit(W))

+-----------------------------------------------------------------------------+
|i1 : R = ZZ/5[x]                                                             |
|                                                                             |
|o1 = R                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : w = witt{x,x^5+x^4}                                                     |
|                                                                             |
|          5    4                                                             |
|o2 = {x, x  + x }                                                            |
|                                                                             |
|o2 : WittRingElement                                                         |
+-----------------------------------------------------------------------------+
|i3 : wittTupleToRing w                                                       |
|                                                                             |
|o3 = 6T         + T                                                          |
|       {0, {1}}    {1, {4}}                                                  |
|                                                                             |
|                                                                             |
|                                                                             |
|o3 : ------------------------------------------------------------------------|
|                                                           2                 |
|     (25, 5T        , 5T        , 5T        , 5T        , T        , T       |
|            {1, {4}}    {1, {3}}    {1, {2}}    {1, {1}}   {1, {4}}   {1, {3}|
|-----------------------------------------------------------------------------|
|        ZZ[T        , T        , T        , T        , T        ]            |
|            {0, {1}}   {1, {1}}   {1, {2}}   {1, {3}}   {1, {4}}             |
|-----------------------------------------------------------------------------|
|                                                     2                       |
| T        , T        T        , T        T        , T        , T        T    |
|} {1, {4}}   {1, {2}} {1, {4}}   {1, {1}} {1, {4}}   {1, {3}}   {1, {2}} {1, |
|-----------------------------------------------------------------------------|
|-------------------------------------------------------------------          |
|                           2                              2                  |
|    , T        T        , T        , T        T        , T        )          |
|{3}}   {1, {1}} {1, {3}}   {1, {2}}   {1, {1}} {1, {2}}   {1, {1}}           |
+-----------------------------------------------------------------------------+

Ways to use wittTupleToRing:
============================

  * wittTupleToRing(WittRingElement) (missing documentation)

For the programmer
==================

The object wittTupleToRing, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in WittVectors/Documentation.m2:652:0.