Hi Vladimir,

On Tue, Sep 1, 2009 at 12:15 PM, Vladimir V. Kisil <kisilv@maths.leeds.ac.uk> wrote:

>>>>> On Tue, 25 Aug 2009 16:12:37 +0100, Chris Kelly <giltirn@gmail.com> said:

   CK> grips with the clifford algebra classes. I am trying to perform
   CK> the simple substitution:
   CK> A_mu gamma_mu B_nu gamma_nu = A_mu A_nu delta_mu,nu (Euclidean space).

       Why you are doing this replacement? I do not think it is mathematically
 correct, it shall be:

A_mu gamma_mu B_nu gamma_nu + B_nu gamma_nu A_mu gamma_mu  = A_mu A_nu delta_mu,nu

 You can get that answer by canonicalize_clifford() method without any
 substitution.

 
Indeed you are correct, it is only true when A=B. I over-generalised my example without thinking it through. In my main problem I only ever need to replace A_mu gamma_mu A_nu gamma_nu = A_mu A_nu delta_mu,nu. However my example still retains some validity in the sense that this replacement will not work either!
 
   CK> Here is some example code:

   CK>   ex metric = unit_matrix(4); idx i(symbol("i"),4) ,
   CK>   j(symbol("j"),4); ex al_i = clifford_unit(i,metric); //Use
   CK>   //  generalised clifford gamma  matrices for euclidean space
   CK>   //Create generic 'slashed' symbols with euclidean metric

       You may prefer to use delta tensor rather than unit matrices to
 create this Clifford units---output of simplification will be more
 transparent.

Thank you, i'll give this a try.

I don't suppose you have an answer to my question about whether there is some way to canonically order an expression by a set of rules rather than by the hash value such that i can find a pattern that is guaranteed to match?

Best,
Chris