I want to define a truncated series or polynomial of arbitrary degree and then work algebraically with the polynomial to solve for various quantities in terms of the coefficients. When I write something like

```
i,n,z=var('i,n,z')
c=function('c')
p=z^(-4)+sum(c(i)/z^i,i,0,2)
p
```

this returns

```
(z^2*c(0) + z*c(1) + c(2))/z^2 + 1/z^4
```

But if I try to define an arbitrary polynomial of this type

```
p(n)=z^(-2n) + sum(c(i)/z^i,i,0,2n-2)
p(2)
```

returns

```
z^4 + sum(z^(-i)*c(i), i, 0, 2)
```

What is the crucial difference here?

I had a similar problem when working with truncated power series over the ring `PowerSeriesRing(SR)`

. I want to manipulate these expressions algebraically as elements of a ring then ask for info about certain coefficients. But working with formal sums and substituting values of n returns power series coefficients, e.g. the following expression as the coefficient of z^-4 (after some computations...f and g are symbolic functions)

```
1/4*(sum(z^i*f(i), i, 1, 3)*sum(z^i*g(i), i, 1, 3) + 2)^2 + sum(z^i*f(i), i, 1, 3)*sum(z^i*g(i), i, 1, 3)
```

How do I get sage to work with the series and also give info about the coefficients, i.e. multiply series expressions but then expand them out in z? I've tried `expand()`

in this setting with mixed success.