I am looking for a way to reduce the following expression:

cc[\[Nu], \[Mu]_] := TensorFunction[{c, "S"}, \[Nu], \[Mu]]

G[\[Mu]_, \[Nu]_] := GA[\[Mu]] 
                   + Contract[cc[\[Nu], \[Mu]].DiracMatrix[\[Nu]]]

A = G[\[Alpha], \[Delta]].G[\[Mu], \[Omega]].DiracMatrix[5].G[\[Beta], 
    [Lambda]].G[\[Nu], \[Epsilon]]

When I calculate A, it has fourth-order terms in cc[[Nu], [Mu]]. How to I only keep first-order terms in cc[[Nu], [Mu]], or at least can order them so they can be used in other expressions?


Do you mean something like this?

cc[\[Nu]_, \[Mu]_] := TensorFunction[{c, "S"}, \[Nu], \[Mu]]
G[\[Mu]_, \[Nu]_] := GA[\[Mu]] + Contract[cc[\[Nu], \[Mu]].GA[\[Nu]]]
A = G[\[Alpha], \[Delta]].G[\[Mu], \[Omega]].GA[5].G[\[Beta], \[Lambda]].G[\[Nu], \[Epsilon]]

DotSimplify[A] /. c[x__] -> scaling c[x]

Series[%, {scaling, 0, 2}] // Normal // ReplaceAll[#, scaling -> 1] &

enter image description here

  • $\begingroup$ Thanks, this is perfect! Would you mind explaining in a little bit more detail what is exactly going on in your additions? For example c[x__] -> scaling c[x] and ReplaceAll[#, scaling -> 1] & ? $\endgroup$ – nsbd88 Mar 15 '18 at 16:45
  • $\begingroup$ Also, why must one use DotSimplify? I noticed this only works when using this option in this answer instead of just A /. c[x__] -> scaling c[x] $\endgroup$ – nsbd88 Mar 15 '18 at 18:52
  • $\begingroup$ You want to get rid of higher-order terms but Series obviously cannot expand in terms of tensor functions or other user-defined objects. So the simplest workaround is to multiply your function by a scaling parameter and do a series expansion in that parameter. After the expansion you can set the parameter to unity. $\endgroup$ – vsht Mar 16 '18 at 6:25
  • $\begingroup$ DotSimplify is needed because Series does not work well for cases where the expansion parameter is inside a chain of noncommutative objects. DotSimplify pulls scaling out of the Dot after which you can do a proper expansion. $\endgroup$ – vsht Mar 16 '18 at 6:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.