Consider 3 non-commutative elements $A,B,C$ and we have the relation $CB=\alpha BC$.

I want to compute things like : $(A\otimes BC ) ( B \otimes B) = AB \otimes \alpha B^2C$

Is there any package doing this ?

  • 4
    $\begingroup$ Check the NCAlgebra package (I am not very familiar with it so I can't give an answer, but it's the biggest/oldest package dealing with such problems). $\endgroup$
    – Szabolcs
    Mar 21, 2019 at 8:25
  • $\begingroup$ try www.github.com/NCAlgebra/NC $\endgroup$ Mar 21, 2019 at 8:39
  • $\begingroup$ This package deals with non commutative algebra but it doesn't seem to treat tensor products $\endgroup$
    – Nico045
    Mar 21, 2019 at 10:16
  • 1
    $\begingroup$ You don't need a package. Just give Mathematica the rules for working with non-commutative multiplication and tensor product. $\endgroup$
    – Somos
    Mar 21, 2019 at 14:46
  • $\begingroup$ See also mathematica.stackexchange.com/questions/126671/… $\endgroup$ Dec 5, 2021 at 20:50

1 Answer 1


Using Dot for your noncommutative multiplication, we can encode your relation with:

B /: C . B := α B . C

Using KroneckerProduct for your "⊗" operation, the output you want to get can then be obtained with:

KroneckerProduct[A, B.C].KroneckerProduct[B, B] //TensorExpand

α KroneckerProduct[A.B, B.B.C]

  • $\begingroup$ What does this symbol "/:" do? (not easy to google such a thing) $\endgroup$ Aug 15, 2021 at 15:08
  • $\begingroup$ @StevenSagona Look up "/:" in the help. It stands for either TagSet or TagSetDelayed. $\endgroup$
    – Carl Woll
    Aug 17, 2021 at 1:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.