Macaulay2 » Documentation
Packages » DGAlgebras :: deviations
next | previous | forward | backward | up | index | toc

deviations -- Computes the deviations of the input ring, complex, or power series.

Synopsis

Description

This command computes the deviations of a Ring, a ChainComplex, or a power series in the form of a RingElement. The deviations are the same as the degrees of the generators of the acyclic closure of R, or the degrees of the generators of the Tor algebra of R. This function takes an option called Limit (default value 3) that specifies the largest deviation to compute.

i1 : R = ZZ/101[a,b,c,d]/ideal {a^3,b^3,c^3,d^3}

o1 = R

o1 : QuotientRing
i2 : deviations(R)

o2 = HashTable{(1, {1}) => 4}
               (2, {3}) => 4

o2 : HashTable
i3 : deviations(R,DegreeLimit=>4)

o3 = HashTable{(1, {1}) => 4}
               (2, {3}) => 4

o3 : HashTable
i4 : S = R/ideal{a^2*b^2*c^2*d^2}

o4 = S

o4 : QuotientRing
i5 : deviations(S,DegreeLimit=>4)

o5 = HashTable{(1, {1}) => 4 }
               (2, {3}) => 4
               (2, {8}) => 1
               (3, {9}) => 4
               (4, {10}) => 6
               (4, {11}) => 4

o5 : HashTable
i6 : T = ZZ/101[a,b]/ideal {a^2-b^3}

o6 = T

o6 : QuotientRing
i7 : deviations(T,DegreeLimit=>4)
warning: clearing value of symbol T to allow access to subscripted variables based on it
       : debug with expression   debug 6944   or with command line option   --debug 6944

o7 = HashTable{1 => 2}
               2 => 1

o7 : HashTable

Note that the deviations of T are not graded, since T is not graded. When calling deviations on a ChainComplex, the zeroth free module must be cyclic, and this is checked. The same goes for the case of a RingElement.

i8 : R = ZZ/101[a,b,c,d]/ideal {a^3,b^3,c^3,d^3}

o8 = R

o8 : QuotientRing
i9 : A = degreesRing R

o9 = A

o9 : PolynomialRing
i10 : kRes = res coker vars R

       1      4      10      20      35      56
o10 = R  <-- R  <-- R   <-- R   <-- R   <-- R
                                             
      0      1      2       3       4       5

o10 : ChainComplex
i11 : pSeries = poincareN kRes
warning: clearing value of symbol T to allow access to subscripted variables based on it
       : debug with expression   debug 6944   or with command line option   --debug 6944

                    2 2     2 3     3 3      3 4    4 4      4 5      4 6  
o11 = 1 + 4S*T  + 6S T  + 4S T  + 4S T  + 16S T  + S T  + 24S T  + 10S T  +
              0       0       0       0        0      0        0        0  
      -----------------------------------------------------------------------
         5 6      5 7
      16S T  + 40S T
           0        0

o11 : ZZ[S, T ]
             0
i12 : devA = deviations(R,DegreeLimit=>5)

o12 = HashTable{(1, {1}) => 4}
                (2, {3}) => 4

o12 : HashTable
i13 : devB = deviations(kRes,DegreeLimit=>5)

o13 = HashTable{(1, {1}) => 4}
                (2, {3}) => 4

o13 : HashTable
i14 : devC = deviations(pSeries,degrees R, DegreeLimit=>5)

o14 = HashTable{(1, {1}) => 4}
                (2, {3}) => 4

o14 : HashTable
i15 : devA === devB and devB === devC

o15 = true

Ways to use deviations:

For the programmer

The object deviations is a method function with options.