Hi Rolf,
I hope I have a minimum working example that shows that only one rule is applied.
<< HighEnergyPhysics`fc`
FI; IP = InputForm;
constraint = {
FeynCalcInternal[
FV[e2, muPAT] FV[e2, nuPAT] ->
PolarizationSum[mu, nu, p2]] /. {muPAT :> mu_, nuPAT :> nu_},
FeynCalcInternal[
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 : 09/04/20-12:55:05 AM Z CEST