REDUCE

7.20 Symmetric and Antisymmetric Operators

An operator can be declared to be symmetric with respect to its arguments by the declaration SYMMETRIC. For example

        symmetric u,v;

means that any expression involving the top level operators U or V will have its arguments reordered to conform to the internal order used by REDUCE. The user can change this order for kernels by the command KORDER.

For example, u(x,v(1,2)) would become u(v(2,1),x), since numbers are ordered in decreasing order, and expressions are ordered in decreasing order of complexity.

Similarly the declaration ANTISYMMETRIC declares an operator antisymmetric. For example,

        antisymmetric l,m;

means that any expression involving the top level operators L or M will have its arguments reordered to conform to the internal order of the system, and the sign of the expression changed if there are an odd number of argument interchanges necessary to bring about the new order.

For example, l(x,m(1,2)) would become -l(-m(2,1),x) since one interchange occurs with each operator. An expression like l(x,x) would also be replaced by 0.