# Bug in string_states example

+1 vote

It seems that there is a bug in the string_states example: the third block of code defines $\delta$ as:

\delta{#}::KroneckerDelta.
\delta{#}::Diagonal.

but it seems that this directly sets any off-diagonal component to zero:

X := \delta_{m}^{n};

gives $0$.

By comparing with other notebooks or arxiv:1912.08839 it seems that the Diagonal property should not be there. Is this correct?

Ouch, that's a brown paper bag one! What should happen is that a delta with different indices which have a Coordinate property becomes zero. Instead, it did it for every symbolic index. No idea how this slipped through the automatic tests...
Now fixed in github master. Since this wrong cleanup happened only for Diagonal objects, simply not using that property also avoids the problem (as you already observed). Thanks for reporting this.