Now let $\alpha_0,\beta_0\in\mathbb{C}$, $\alpha_1,\ldots,\alpha_n,\beta_1,\ldots,\beta_n\in{0,1,2,3}$, and
A = \alpha_0\bigotimes_{t=1}^n\sigma_{\alpha_t},\;\;\;\;
B = \beta_0\bigotimes_{t=1}^n\sigma_{\beta_t}.
Then, using the above and the mixed-product property of the Kronecker product,
$$
AB = \alpha_0\beta0\prod{t=1}^n\kappat\bigotimes{t=1}^n\phi_t.
$$
The idea here is that, given two Sigma instances, we can work element-wise through their dictionaries to calculate the dictionary and scalar term of their product.
This also means that for any product of Sigma instances we get a dictionary representation which has only one Pauli matrix (or Identity) at each site.
Expected Behaviour
Composition when spins are in disjoint sites:
Composition when spins are in the same sites:
These statements should be interchangeable with
Sigma.X, Sigma.Y, Sigma.Z
:Multiplying by scalar:
Multiplying by identity:
The Mathematics Behind It
For $
\alpha,\beta,\gamma\in\{1,2,3\},
$meaning we can write
where
Now let $\alpha_0,\beta_0\in\mathbb{C}$, $\alpha_1,\ldots,\alpha_n,\beta_1,\ldots,\beta_n\in{0,1,2,3}$, and
Then, using the above and the mixed-product property of the Kronecker product,
$$ AB = \alpha_0\beta0\prod{t=1}^n\kappat\bigotimes{t=1}^n\phi_t. $$
The idea here is that, given two Sigma instances, we can work element-wise through their dictionaries to calculate the dictionary and scalar term of their product.
This also means that for any product of Sigma instances we get a dictionary representation which has only one Pauli matrix (or Identity) at each site.