This command takes a HashTable of the same form output from deviations and produces the Poincare series corresponding to it. The (key,value) pairs must be of the form homologicalDegree=>number or (homologicalDegree,internalDegree)=>number. Because
i1 : R = ZZ/101[a,b,c]/ideal{a^3,b^3,c^3} o1 = R o1 : QuotientRing |
i2 : RDevs = deviations(R,DegreeLimit=>6) o2 = HashTable{(1, {1}) => 3} (2, {3}) => 3 o2 : HashTable |
i3 : devPSeries = deviationsToPoincare(RDevs,DegreeLimit=>6) 6 9 6 8 5 7 5 6 4 6 4 5 3 4 3 3 2 3 2 2 o3 = 10S T + 18S T + 18S T + 3S T + 6S T + 9S T + 9S T + S T + 3S T + 3S T + 3S*T + 1 0 0 0 0 0 0 0 0 0 0 0 ZZ[S, T ] 0 o3 : --------- 7 S |
i4 : pSeries = poincareN (res(coker vars R, LengthLimit=>6)) 2 2 2 3 3 3 3 4 4 5 4 6 5 6 5 7 6 8 6 9 o4 = 1 + 3S*T + 3S T + 3S T + S T + 9S T + 9S T + 6S T + 3S T + 18S T + 18S T + 10S T 0 0 0 0 0 0 0 0 0 0 0 o4 : ZZ[S, T ] 0 |
i5 : substitute(devPSeries,ring pSeries) == pSeries o5 = true |
The object deviationsToPoincare is a method function with options.