Hi!

I need to revise a lot of mundane analytical calculations which I guess could be automated. In its essence, I have three sets of symbols: operators E, X, C, S \in \rm{Op}, sigma matrices \eta_x, \eta_y, \eta_z \in SU(2) and a set of constants a,c,s \in \rm{Re}. These symbols have the following rules:

- \eta_x \eta_y = i \eta_z, \eta_y \eta_z = i \eta_x, \eta_z \eta_x = i\eta_y, \eta_y \eta_x =- i \eta_z, \eta_z \eta_y = -i \eta_x, \eta_x \eta_z = -i\eta_y
- The symbols of Op do not commute with themselves
- Symbols from Re commute with themselves
- The symbols from different sets commute with each other

With these rules, I need to expand multiplications such as:

(E \eta_z - a X \eta_x) (C - \frac{i\eta_y}{2}\ S)(c \eta_x - s \eta_y ) (C + \frac{i \eta_y}{2} S) = i c \eta_y E (C + \frac{i \eta_y}{2} S) + i s \eta_x E - a c X (C + \frac{i \eta_y}{2} S) + i s \eta_z X

which is a simple but rather lengthy calculation which is hard to make manageable. Are there any Julia package or any other CAS which could help me with such error-prone tasks?