Sat Oct 2 12:09:22 2004, comment #2:
I disagree with the previous comment; x should be captured and not allowed in the FRAC POLY INT. (I agree that the second example in the original report is not a bug.)
But surely we can all agree that
integrate((1/x)::ULS(FRAC POLY INT, x, 0),x)
is a bug? The problem is the same: the 1/x is being treated in the coefficient domain. Note that
integrate(1/(x::ULS(FRAC POLY INT, x, 0)),x)
produces a correct result.
Dylan (dpt@math.harvard.edu)

Sat Oct 2 08:33:01 2004, comment #1:
Neither of these is a bug. In the first one, Axiom coerced 1/x into FRAC POLY INT correctly: the only / operation available in UTS is one induced from the coefficient domain, which requires the denominator to be in the coefficient domain, and the division is done termwise to the coefficients of the series. So 1/x ends up in FRAC POLY INT. Note that to obtain a Taylor series at x = 0 is mathematically is wrong, since 1/x is not defined at x=0. Also the way to obtain a Taylor series is taylor(func, x=a). If you do integrate(taylor(1/x,x=1),x), that would cause no problems. Note that the domain of this command is UTS(EXPR INT, x,1), so such towers are valid and necessary in Axiom. Note also there are only two exported[coerce] in UTS and they do NOT apply to 1/x. The x in UTS is like the x in UP and is different from the x in FRAC POLY INT. The representation is Stream Coef (no variable specified because it is univariate).
For the same reason, in the second command, 1/y is correctly coerced into FRAC POLY INT. However, in UTS(,x,), the only integrations allowed are with respect to x. If you want to do integration in FRAC POLY INT, then you should do so without coercing 1/y into UTS.
So your examples do not illustrate the problem about mixed up variables. In fact, it supports use of towers like UTS(EXPR INT, x, a).
William (wyscc@cunyvm.cuny.edu)

Sat Sep 11 12:34:23 2004, original submission:
integrate((1/x)::UTS(FRAC POLY INT, x, 0),x)
1
(11)  x
x
Type: UnivariateTaylorSeries(Fraction Polynomial Integer,x,0)
integrate((1/y)::UTS(FRAC POLY INT, x, 0),z)
Cannot find a definition or applicable library operation named
integrate with argument type(s)
UnivariateTaylorSeries(Fraction Polynomial Integer,x,0)
Variable z
