@ecterrab Very nice, congratulations!
I was curious to see why Sum=add is needed (instead of value).
It seems that sum has problems with pochhammer. If we replace pochhammer with P, (and then back), value works.
Here is an example:
S:=Sum(pochhammer(2*k - n + 1, 2*n - 2*k)*pochhammer(3 - k, k)/((n - k)!), k = 0 .. n):
value(%); # ?
seq( value(eval(S,n=N)), N=1..6 );
# 2, 6, 12, 24, 0, 0
The result of value(S) should be 2*n*(n - 1)/GAMMA(-n + 5) (instead of 0)
which is actually obtained using assuming n::posint
In this case, the correct values can be obtained with limit insted of eval.
(The situation is similar to sum(k, k=1..n) where n is also "assumed" integer).