Search code examples
pythonsympyquantum-computing

Sympy: Expanding sum that involves Kets from its quantum module


Today I started using sympy and its quantum module to implement some basic calculations in Bra-Ket notation.

Executing the code:

from sympy.physics.quantum import *
from sympy.physics.quantum.qubit import *
from sympy import *
from sympy.abc import k

print Sum(Ket(k),(k,0,5))

yields the expected result, that is, Sum(|k>, (k, 0, 5)) is printed.

Now I'd like to expand the sum and therefore write:

print Sum(Ket(k),(k,0,5)).doit()

However, this doesn't give the correct result, but prints out 6*|k> which obviously is not the desired output. Apparently, the program doesn't recognize Ket(k) as depending on the index k.

How could I work around or solve this issue?


Solution

  • Looks like a bug. You can probably work around it by doing the sum outside of sympy, with standard python functions like sum(Ket(i) for i in range(6)).