•Aϕϕϕ

QuantumField[___, Particle[PseudoScalar[0], ___], ___][_] := 0 ;

The lagrangian in raw form:

lag = Lagrangian[ChPT3[4]] /. CouplingConstant[ChPT3[4], _ ? (MemberQ[{1, 2, 3, 4, 5, 9}, #] =!= True &), ___] :> 0 // Expand

L _ 4^(  ) (< ÷s _ μ(÷„) '6 ÷s _ μ(÷„)^† > '6 (< ÷„ '6 χ^† > + < χ '6 ÷„^† >)) + L _ 1^(  ) (< ÷s _ μ(÷„) '6 ÷s _ μ(÷„)^† > '6 < ÷s _ ν(÷„) '6 ÷s _ ν(÷„)^† >) + L _ 2^(  ) (< ÷s _ μ(÷„) '6 ÷s _ ν(÷„)^† > '6 < ÷s _ μ(÷„) '6 ÷s _ ν(÷„)^† >) + L _ 5^(  ) < ÷s _ μ(÷„) '6 ÷s _ μ(÷„)^† '6 (÷„ '6 χ^† + χ '6 ÷„^†) > + i L _ 9^(  ) < L _ (μ ν) '6 ÷s _ μ(÷„) '6 ÷s _ ν(÷„)^† > + i L _ 9^(  ) < R _ (μ ν) '6 ÷s _ μ(÷„)^† '6 ÷s _ ν(÷„) > + L _ 3^(  ) < ÷s _ μ(÷„) '6 ÷s _ μ(÷„)^† '6 ÷s _ ν(÷„) '6 ÷s _ ν(÷„)^† >

llu = CheckF[(WriteString["stdout", "."] ; UNMSplit[#, x, DropOrder -> 3]) & /@ lag, "A3meson4llu"] ;

.......

Expand[llu] // Length

1979

Redundant terms are discarded (do not use CommutatorReduce->True, it'll take unexpanded stuff outside the traces):

lld = (WriteString["stdout", "."] ; DiscardTerms[#, Retain -> {Particle[PhiMeson ] -> 3, Particle[AxialVector[0]] -> 1}, CommutatorReduce -> False, Method -> Expand]) & /@ Expand[llu] ;

...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Remaining 'raw' quantites are put on arguments:

ll = ArgumentsSupply[lld, x, RenormalizationState[0], ExpansionOrder -> 3, DropOrder -> 3, DiagonalToU -> True] // Simplify ;

ArgumentsSupply :: argxpr :  Warning : The argument  x  is already in the expression.

Generator matrices are traced:

llld = (WriteString["stdout", "."] ; DiscardTerms[#, Retain -> {Particle[PhiMeson , RenormalizationState[0]] -> 3, Particle[AxialVector[0], RenormalizationState[0]] -> 1}, CommutatorReduce -> False, Method -> Expand]) & /@ Expand[ll] ;

............................................................................

llle = ExpandU[llld, CommutatorReduce -> True] ;

Indices are supplied:

$IsoIndicesCounter = 0 ;

tmp = Expand[llle] ; tmp // Length

847

llll = CheckF[(WriteString["stdout", "."] ; # // IsoIndicesSupply // SUNReduce[#, FullReduce -> True] & // IndicesCleanup // NMExpand // CommutatorReduce[#, FullReduce -> True] & // Simplify) & /@ tmp, "3MesonA4llll"] ;

...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Expand[llll] // Length

757

lala = (WriteString["stdout", "."] ; $IsoIndicesCounter = 0 ; PhiToFC[CycleUTraces[#]]) & /@ Expand[llll] ;

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

The Feynman rule is calculated:

fields = {QuantumField[Particle[AxialVector[0], RenormalizationState[0]], LorentzIndex[μ1], SUNIndex[I1]][p1], QuantumField[Particle[PhiMeson, RenormalizationState[0]], SUNIndex[I2]][p2], QuantumField[Particle[PhiMeson, RenormalizationState[0]], SUNIndex[I3]][p3], QuantumField[Particle[PhiMeson, RenormalizationState[0]], SUNIndex[I4]][p4]}

{A^( ) _ μ _ 1^I _ 1, ϕ^( )^I _ 2, ϕ^( )^I _ 3, ϕ^( )^I _ 4}

res = ((WriteString["stdout", "."] ; I * SUNReduce[FunctionalD[#, fields], FullReduce -> True]) & /@ lala) ;

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

res // Length

654

res // LeafCount

172504

Share[]

30662696

Contraction of Lorentz indices and factoring out stuff:

melsimplified = Collect[Contract[res], {_Pair, _DecayConstant, _CouplingConstant}] ;

melsimplified // LeafCount

53797

Notice that a side effect of the contraction is a huge number of cancellations.

melsimplified // Expand // Length

1629


Converted by Mathematica  (July 10, 2003)