I am working with the a problem where I need to compute some complicated sums, for which I first define the following inner product.

```
    ClearAll[CircleDot]

Ket /: CircleDot[Bra[x__], Ket[y__]] := 
 Times @@ MapThread[KroneckerDelta, {{x}, {y}}]

BraKet[x_, y_] := Bra[x]\[CircleDot]Ket[y]

CircleDot[e1_, HoldPattern[Plus[e2__]]] := 
 Total@Map[CircleDot[e1, #] &, {e2}]

CircleDot[HoldPattern[Plus[e1__]], e2_] := 
 Total@Map[CircleDot[#, e2] &, {e1}]

CircleDot[first_, HoldPattern[Times[x__, Ket[y__]]]] := 
 Times[x, CircleDot[first, Ket[y]]]

CircleDot[HoldPattern[Times[x__, Bra[y__]]], last_] := 
 Times[x, CircleDot[Bra[y], last]]

```

Now, in general the sums that I am interested in take the following form.

```
(1 + z*zb)^(-2 j)
  CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
  Sum[Ket[m] z^m*(2 j)!/(n! (2 j - n)!), {m, 0, 2 j}]]

```

Mathematica wasn't too keen on computing the sum for arbitrary upper limit $2j$ which was fine, I just took too putting some numbers in for it and guessing a pattern and doing some induction to write up closed form expressions. For example, one of the terms looks like

```
    (1 + z*zb)^(-2 j)
   CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
   Sum[Ket[m + 1] z^m*((2 j)!*(2 j - m))/((m)! (2 j - m)!), {m, 0, 
     2 j}]] //

```

After shifting some indices, and letting $2j = 2,3,4,..$ I was able to guess a closed form for this $\frac{2j\*z\_b}{1+z\*z\_b}$. This strategy has worked for almost all but a few terms are particularly bothersome, and that brings me here.

An example would be

```
    (1 + z*zb)^(-2 j)
  CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
  Sum[Ket[m] z^m*((2 j)!*(m - j)^3)/(m! (2 j - m)!), {m, 0, 2 j}]]

```

For this I did make some progress by guessing a few values, and arranging it in the form $\frac{j^3(z\*z\_b-1)^3+r(j)\*(z\*z\_b-1)z\*z\_b}{(z\*z\_b+1)^3}$, where $r(j) = 4,20,48,88,700..$ for $2j = 2,4,6,8,10$ respectively. Again, no discernible pattern as a polynomial in $j$ for this series. So perhaps not the right way to do it?

Other terms are even more pathological. Some where I have made no progress look like
a)

```
(1 + z*zb)^(-2 j)
   CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
   Sum[Ket[m] z^(
     m - 1)*((2 j)!*((m - 1) - 
        j)^2*(2 j - (m - 1)))/((m - 1)! (2 j - (m - 1))!), {m, 1, 
     2 j + 1}]] 

```

b) 

```
(1 + z*zb)^(-2 j)
   CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
   Sum[Ket[m] z^(
     m - 1)*((2 j)!*((m - 1) - 
        j)^3*(2 j - (m - 1)))/((m - 1)! (2 j - (m - 1))!), {m, 1, 
     2 j + 1}]] 

```

c) 

```
    (1 + z*zb)^(-2 j)
  CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
  Sum[Ket[m] z^(
    m + 1)*((2 j)!*((m + 1) - 
       j)^3*(2 j - (m + 1)))/((m + 1)! (2 j - (m + 1))!), {m, 0, 
    2 j - 1}]]

```

d)

```
(1 + z*zb)^(-2 j)
   CircleDot[Sum[zb^n*Bra[n], {n, 0, 2 j}], 
   Sum[Ket[m] z^(
     m + 1)*((2 j)!*((m + 1) - 
        j)^2*(2 j - (m + 1)))/((m + 1)! (2 j - (m + 1))!), {m, 0, 
     2 j - 1}]] 

```

Are there any tools mathematical or in Mathematica that can help me address this issue that I am having some trouble with.