Name: Ben (email_not_shown)
Date: 02/29/12-10:47:08 AM Z

Hi Rolf,

I hope I have a minimum working example that shows that only one rule is applied.

<< HighEnergyPhysics`fc`
FI; IP = InputForm;
constraint = {
     FV[e2, muPAT] FV[e2, nuPAT] ->
      PolarizationSum[mu, nu, p2]] /. {muPAT :> mu_, nuPAT :> nu_},
     FV[e4, muPAT] FV[e4, nuPAT] ->
      PolarizationSum[mu, nu, p4]] /. {muPAT :> mu_, nuPAT :> nu_}};
M = SP[p1, e2]^2 SP[p2, e4]^2
tmp = Uncontract[Expand[M], e2, e4, Pair -> All, Unique -> False];
Print[" "];
Print["check constraint : ", IP@constraint];
Print[" "];
Print["contract and using the constraint : ",
 IP@FeynCalcExternal@Contract[tmp /. constraint]]

The result is:
contract and using the constraint : SP[e4, p2]^2*(-SP[p1, p1] + SP[p1, p2]^2/SP[p2, p2])

So it seems that it only uses one of the rules.

This archive was generated by hypermail 2b29 : 06/26/17-02:00:02 PM Z CEST