next | previous | forward | backward | up | index | toc

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

## Synopsis

• Usage:
devTally = deviations(R)
• Inputs:
• Optional inputs:
• DegreeLimit => ..., default value 3, Option to specify the maximum degree to look for generators when computing the deviations
• Outputs:
• devTally, ,

## 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 :

• deviations(ChainComplex)
• deviations(Ring)
• deviations(RingElement,List)

## For the programmer

The object deviations is .