Apparently an easy question, but I'm trying to avoid using a direct replacement rule.

As an example, I could take a term like

```
P[i].P[j]-P[j].P[i]
```

where this knitted product is symmetrical, and therefore, must evaluate to zero

I am trying to avoid using a replacement rule, since I am trying to generalize.

I tried to use `Firm`

Y `Order`

to try to automatically change the last term by canonical arrangement, but without success.

Any suggestions would be welcome!

EDIT:

I think I'll extend my question to get the exact answer I'm looking for. I'm using a recursion relationship to generate a load of terms, which involve these point products.

Basically, I want to express any point product that has a signature of -1 of canonical order as inverted order, to give rise to some nice cancellations:

For any choice of `I j`

I'm looking for something like:

```
Yes[Signature[p[i_].P[j_]]== - 1, Return[P[p[pag[p[j].P[i]]]
```

Can this be easily achieved?

EDIT2:

I think the answer is in `ConditionalReplacement`

. Let me try to entangle you.