This function is used to reduce the rational expression given by the command hilbertSeries. It is not automatically reduced, but sometimes it is useful to write it in reduced form. For instance, one might not notice that the series is a polynomial until it is reduced.
i1 : R = ZZ/101[x, Degrees => {2}]; |
i2 : I = ideal x^2; o2 : Ideal of R |
i3 : s = hilbertSeries I 4 1 - T o3 = -------- 2 (1 - T ) o3 : Expression of class Divide |
i4 : reduceHilbert s 2 1 + T o4 = ------ 1 o4 : Expression of class Divide |
The reduction is partial, in the sense that the explicit factors of the denominator are cancelled entirely or not at all.
i5 : M = R^{0,-1} 2 o5 = R o5 : R-module, free, degrees {0..1} |
i6 : hilbertSeries M 1 + T o6 = -------- 2 (1 - T ) o6 : Expression of class Divide |
i7 : f = reduceHilbert oo 1 + T o7 = -------- 2 (1 - T ) o7 : Expression of class Divide |
i8 : gcd( value numerator f, value denominator f ) o8 = 1 + T o8 : ZZ[T] |
The object reduceHilbert is a method function.