sort_product
Sort factors in a product
Sort factors in a product, taking into account
any SortOrder
properties. Also takes into account
commutativity properties, such as SelfCommuting
. If no sort
order is given, it first does a lexographical sort based on the name
of the factor, and if two names are identical, does a sort based on
the number of children and (if this number is equal) a lexographical
comparison of the names of the children. Symbols starting with a backslash
(greek letters etc.) get sorted to the right of roman letters.
The simplest sort is illustrated below,ex := C B A D;
sort_product(_);
\(\displaystyle{}C B A D\)
\(\displaystyle{}A B C D\)
We can declare the objects to be anti-commuting, which then leads to
{A, B, C, D}::AntiCommuting.
ex := C B A D;
sort_product(_);
\(\displaystyle{}C B A D\)
\(\displaystyle{}-A B C D\)
For indexed objects, the anti-commutativity of components is indicated
using the
SelfAntiCommuting
property,\psi_{m}::SelfAntiCommuting.
ex := \psi_{n} \psi_{m} \psi_{p};
sort_product(_);
\(\displaystyle{}\psi_{n} \psi_{m} \psi_{p}\)
\(\displaystyle{}-\psi_{m} \psi_{n} \psi_{p}\)
Finally, the lexographical sort order can be overridden by using
the
SortOrder
property,{D, C, B, A}::SortOrder.
{A, B, C, D}::AntiCommuting.
ex := C B A D;
sort_product(_);
\(\displaystyle{}C B A D\)
\(\displaystyle{}-D C B A\)