Skip to content

Commit

Permalink
Fixed issue #76 where Spinors with incorrect syntax could
Browse files Browse the repository at this point in the history
    produce wrong results unnoticed. From now on relevant functions
    will check the syntax explicitly and abort the evaluation
    if there are inconsistencies.
  • Loading branch information
vsht committed Nov 26, 2020
1 parent 22697f8 commit b045838
Show file tree
Hide file tree
Showing 19 changed files with 219 additions and 65 deletions.
24 changes: 20 additions & 4 deletions FeynCalc/Dirac/DiracChainJoin.m
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,19 @@
DiracSigmaExplicit->False, LorentzIndex->False, Spinor->False, DiracGamma->False, DiracChain->True,
Factoring -> OptionValue[Factoring]];
diracObjects = Cases[tmp+null1+null2, dsHead[_], Infinity]//Sort//DeleteDuplicates;

FCPrint[1, "DiracChainJoin: Done isolating spinor chains, timing: ", N[AbsoluteTime[] - time, 4], FCDoControl->dchjVerbose];
FCPrint[3, "DiracChainJoin: After FCDiracIsolate ", tmp, FCDoControl->dchjVerbose];



FCPrint[3, "DiracChainJoin: After FCDiracIsolate ", tmp, FCDoControl->dchjVerbose];
FCPrint[3,"DiracChainJoin: diracObjects: ", diracObjects , FCDoControl->dchjVerbose];

time=AbsoluteTime[];
FCPrint[1, "DiracChainJoin: Checking the spinor syntax.", FCDoControl->dchjVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[diracObjects]=!=True,
Message[DiracChainJoin::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"DiracChainJoin: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->dchjVerbose];


FCPrint[1, "DiracChainJoin: Simplifying Dirac chains.", FCDoControl->dchjVerbose];
time=AbsoluteTime[];
Expand All @@ -133,6 +138,17 @@

(*Fast mode*)
FCPrint[1, "DiracChainJoin: Using the fast mode.", FCDoControl->dchjVerbose];


time=AbsoluteTime[];
FCPrint[1, "DiracChainJoin: Checking the spinor syntax.", FCDoControl->dchjVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[ex]=!=True,
Message[DiracChainJoin::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"DiracChainJoin: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->dchjVerbose];


res = diracChainEval[ex/. DOT->holdDOT] /. diracChainEval -> Identity /. holdDOT->DOT ;
FCPrint[3, "DiracChainJoin: Result of the evaluation: ", res, FCDoControl->dchjVerbose]
];
Expand Down
35 changes: 32 additions & 3 deletions FeynCalc/Dirac/DiracEquation.m
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
"DiracEquation[exp] applies the Dirac equation without \
expanding exp. If expansions are necessary, use DiracSimplify.";

DiracEquation::failmsg =
"Error! DiracEquation has encountered a fatal problem and must abort the computation. \
The problem reads: `1`";

(* ------------------------------------------------------------------------ *)

Begin["`Package`"]
Expand All @@ -29,10 +33,12 @@

HoldDOT::usage="";
tmp::usage="";
deqVerbose::usage="";

Options[DiracEquation] = {
FCI -> False,
FCE -> False
FCI -> False,
FCE -> False,
FCVerbose -> False
};

DiracEquation[a_ == b_, opts:OptionsPattern[]] :=
Expand All @@ -42,7 +48,17 @@
DiracEquation[#, opts]&/@expr;

DiracEquation[expr_/; !MemberQ[{List,Equal},expr], OptionsPattern[]] :=
Block[{ex,res},
Block[{ex, res, time},

If [OptionValue[FCVerbose]===False,
deqVerbose=$VeryVerbose,
If[MatchQ[OptionValue[FCVerbose], _Integer],
deqVerbose=OptionValue[FCVerbose]
];
];

FCPrint[1,"DiracEquation: Entering.", FCDoControl->deqVerbose];
FCPrint[3,"DiracEquation: Entering with: ", expr, FCDoControl->deqVerbose];

If[ !OptionValue[FCI],
ex = FCI[expr],
Expand All @@ -54,12 +70,25 @@
Return[ex];
];

time=AbsoluteTime[];
FCPrint[1, "DiracEquation: Checking the spinor syntax.", FCDoControl->deqVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[ex]=!=True,
Message[DiracEquation::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"DiracEquation: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->deqVerbose];



res = DotSimplify[FixedPoint[diraceq,ex,5]/.PairContract->Pair, Expanding->False];

If[ OptionValue[FCE],
res = FCE[res]
];

FCPrint[1,"DiracEquation: Leaving.", FCDoControl->deqVerbose];
FCPrint[3,"DiracEquation: Leaving with: ", res, FCDoControl->deqVerbose];

res

];
Expand Down
14 changes: 14 additions & 0 deletions FeynCalc/Dirac/DiracSimplify.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
Begin["`Package`"]

diracChainContract;
spinorSyntaxCorrectQ;

End[]

Expand Down Expand Up @@ -511,6 +512,19 @@
CartesianPairContract -> CartesianPair /. PairContract -> Pair
)/; !FreeQ2[ex, {Pair,CartesianPair,PairContract,CartesianPairContract}];

spinorSyntaxCorrectQ[ex_]:=
Block[{spinors, correct, check, null1, null2},
correct=True;
spinors = Cases2[ex+null1+null2,Spinor];
spinors = MomentumExpand[spinors];
If[ spinors=!={},
check = MatchQ[#,Spinor[s_. Momentum[p_/;Head[p]=!=Plus,dim_:4],__]/;(MemberQ[{1,-1},s])]&/@spinors;
If[ Union[check]=!={True},
correct=False
]
];
correct
];

FCPrint[1,"DiracSimplify.m loaded."];
End[]
8 changes: 8 additions & 0 deletions FeynCalc/Dirac/SirlinSimplify.m
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,14 @@ using relations derived by Sirlin in Nuclear Physics B192 (1981) 93-99. \
diracObjects = Cases[tmp+null1+null2, dsHead[_], Infinity]//Sort//DeleteDuplicates;
FCPrint[3,"SirlinSimplify: diracObjects: ", diracObjects , FCDoControl->sisVerbose];

time=AbsoluteTime[];
FCPrint[1, "SirlinSimplify: Checking the spinor syntax.", FCDoControl->sisVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[diracObjects]=!=True,
Message[SirlinSimplify::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"SirlinSimplify: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->sisVerbose];


FCPrint[1, "SirlinSimplify: Simplifying products of spinor chains.", FCDoControl->sisVerbose];
time=AbsoluteTime[];
Expand Down
9 changes: 9 additions & 0 deletions FeynCalc/Dirac/SpinorChainTranspose.m
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,15 @@
diracObjects = Cases[tmp+null1+null2, dsHead[_], Infinity]//Sort//DeleteDuplicates;

FCPrint[3,"SpinorChainTranspose: diracObjects: ", diracObjects , FCDoControl->sctrVerbose];

time=AbsoluteTime[];
FCPrint[1, "SpinorChainTranspose: Checking the spinor syntax.", FCDoControl->sctrVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[diracObjects]=!=True,
Message[SpinorChainTranspose::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"SpinorChainTranspose: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->sctrVerbose];

FCPrint[1, "SpinorChainTranspose: Trasnposing spinor chains.", FCDoControl->sctrVerbose];

time=AbsoluteTime[];
Expand Down
7 changes: 7 additions & 0 deletions FeynCalc/Feynman/ComplexConjugate.m
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,13 @@
FCPrint[1,"ComplexConjugate: Done applying FCMatrixIsolate, timing: ", N[AbsoluteTime[] - time, 4], FCDoControl->ccjVerbose];
FCPrint[3,"ComplexConjugate: After FCMatrixIsolate: ", ex, FCDoControl->ccjVerbose];

time=AbsoluteTime[];
FCPrint[1, "ComplexConjugate: Checking the spinor syntax.", FCDoControl->ccjVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[ex]=!=True,
Message[FermionSpinSum::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];

(*
If the matrix structure of the expression is too convoluted, we need to redo the isolation after applying
DotSimplify (this time with Expanding set to True)
Expand Down
11 changes: 8 additions & 3 deletions FeynCalc/Feynman/FCFADiracChainJoin.m
Original file line number Diff line number Diff line change
Expand Up @@ -101,14 +101,19 @@
DiracSigmaExplicit->False, LorentzIndex->False, Spinor->False, DiracGamma->False, DiracChain->True,
Factoring -> False, Expanding->False];
diracObjects = Cases[tmp+null1+null2, dsHead[_], Infinity]//Sort//DeleteDuplicates;

FCPrint[1, "FCFADiracChainJoin: Done isolating spinor chains, timing: ", N[AbsoluteTime[] - time, 4], FCDoControl->dchjVerbose];
FCPrint[3, "FCFADiracChainJoin: After FCDiracIsolate ", tmp, FCDoControl->dchjVerbose];



FCPrint[3,"FCFADiracChainJoin: diracObjects: ", diracObjects , FCDoControl->dchjVerbose];

time=AbsoluteTime[];
FCPrint[1, "FermionSpinSum: Checking the spinor syntax.", FCDoControl->dchjVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[diracObjects]=!=True,
Message[FCFADiracChainJoin::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"FermionSpinSum: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->dchjVerbose];

If[ !FreeQ[diracObjects,FeynArts`IndexSum],
Message[FCFADiracChainJoin::indexsum];
Abort[]
Expand Down
12 changes: 12 additions & 0 deletions FeynCalc/Feynman/FermionSpinSum.m
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
"Warning! The output contains structures wrapped into FCChargeConjugateTransposed. \
Those must necessarily be simplified before the computation of Dirac traces.";

FermionSpinSum::failmsg =
"Error! FermionSpinSum encountered a fatal problem and must abort the computation. \
The problem reads: `1`"

(* ------------------------------------------------------------------------ *)

Begin["`Package`"]
Expand Down Expand Up @@ -91,6 +95,14 @@
time=AbsoluteTime[];
FCPrint[1, "FermionSpinSum: Applying the spin sum formula.", FCDoControl->fssVerbose];

time=AbsoluteTime[];
FCPrint[1, "FermionSpinSum: Checking the spinor syntax.", FCDoControl->fssVerbose];
If[ FeynCalc`Package`spinorSyntaxCorrectQ[ex]=!=True,
Message[FermionSpinSum::failmsg, "The input contains Spinor objects with incorrect syntax."];
Abort[]
];
FCPrint[1,"FermionSpinSum: Checks done, timing: ", N[AbsoluteTime[] - time, 4] , FCDoControl->fssVerbose];

ex = ex //. {
(* Product of two spinor chains, Dirac spinors *)
spChain[DOT[Spinor[s_. Momentum[p_,d_:4], Y_, ___], a___, Spinor[t_. Momentum[q_,d_:4], Z_, ___]]] *
Expand Down
39 changes: 37 additions & 2 deletions Tests/Dirac/Dirac.mt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,19 @@ If[ Names["Tests`Dirac`fcstSirlinSimplify*"]=!={},
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

If[ Names["Tests`Dirac`fcstAbortSirlinSimplify"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],(#[[4]]),testID->#[[1]],
MessagesEquivalenceFunction->stringCompareIgnore]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstAbortSirlinSimplify"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test
];

If[ Names["Tests`Dirac`fcstGordonSimplify*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstGordonSimplify*"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

If[ Names["Tests`Dirac`fcstChisholm*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstChisholm*"])];
Expand Down Expand Up @@ -113,6 +126,13 @@ If[ Names["Tests`Dirac`fcstDiracChainJoin*"]=!={},
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

If[ Names["Tests`Dirac`fcstAbortDiracChainJoin"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],(#[[4]]),testID->#[[1]],
MessagesEquivalenceFunction->stringCompareIgnore]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstAbortDiracChainJoin"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test
];

If[ Names["Tests`Dirac`fcstDiracChainCombine*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstDiracChainCombine*"])];
Expand All @@ -125,6 +145,14 @@ If[ Names["Tests`Dirac`fcstDiracChainExpand*"]=!={},
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

FCSetDiracGammaScheme["NDR"];

If[ Names["Tests`Dirac`fcstDiracChainExplicit*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstDiracChainExplicit*"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

If[ Names["Tests`Dirac`fcstDiracChainFactor*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstDiracChainFactor*"])];
Expand Down Expand Up @@ -168,6 +196,13 @@ If[ Names["Tests`Dirac`fcstDiracEquation*"]=!={},
FCSetDiracGammaScheme["NDR"]
];

If[ Names["Tests`Dirac`fcstAbortDiracEquation"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],(#[[4]]),testID->#[[1]],
MessagesEquivalenceFunction->stringCompareIgnore]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstAbortDiracEquation"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test
];

If[ Names["Tests`Dirac`fcstDiracOrder*"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],testID->#[[1]]]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstDiracOrder*"])];
Expand Down Expand Up @@ -198,10 +233,10 @@ If[ Names["Tests`Dirac`fcstDiracSimplifySirlin"]=!={},
tmpTest = tmpTest /. testID->TestID /. test -> Test;
];

If[ Names["Tests`Dirac`fcstDiracSimplifyDotWarnings*"]=!={},
If[ Names["Tests`Dirac`fcstAbortDiracSimplify"]=!={},
tmpTest = Map[test[ToExpression[(#[[2]])],ToExpression[(#[[3]])],(#[[4]]),testID->#[[1]],
MessagesEquivalenceFunction->stringCompareIgnore]&,
Join@@(ToExpression/@Names["Tests`Dirac`fcstDiracSimplifyDotWarnings"])];
Join@@(ToExpression/@Names["Tests`Dirac`fcstAbortDiracSimplify"])];
tmpTest = tmpTest /. testID->TestID /. test -> Test
];

Expand Down
14 changes: 7 additions & 7 deletions Tests/Dirac/DiracChainJoin.test
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@ DIDelta[i,j],FCE\[Rule]True]",
"DCHN[Spinor[Momentum[p1], m1, 1], j]*DCHN[Spinor[Momentum[p2], \
m2, 1], j]"},
{"fcstDiracChainJoin-ID20",
"DiracChainJoin[DCHN[Spinor[p1, m], j] DCHN[GA[mu], i, j],
"DiracChainJoin[DCHN[Spinor[Momentum[p1], m], j] DCHN[GA[mu], i, j],
FCE -> True]",
"DCHN[Spinor[p1, m], j] DCHN[GA[mu], i, j]"},
"DCHN[Spinor[Momentum[p1], m], j] DCHN[GA[mu], i, j]"},
{"fcstDiracChainJoin-ID21",
"DiracChainJoin[DCHN[Spinor[Momentum[p1], m], j] DCHN[Spinor[Momentum[p2], m], i],
FCE -> True]",
Expand All @@ -112,9 +112,9 @@ Spinor[Momentum[OutMom1], me, 1], Dir1]"},
DCHN[GA[nu], h, i] DCHN[GS[p] + m, i, j] DCHN[GA[mu], j, k],
FCDiracIsolate -> False, FCE -> True]",
"DCHN[GA[nu].(m + GS[p]).GA[mu], h, k]"},
{"fcstDiracChainJoin-ID24","DiracChainJoin[DCHN[Spinor[p1, m], j] DCHN[GA[mu], i, j] == x,
FCE -> True]","DCHN[Spinor[p1, m, 1], j] DCHN[GA[mu], i, j] == x"},
{"fcstDiracChainJoin-ID25","DiracChainJoin[{DCHN[Spinor[p1, m], j] DCHN[GA[mu], i, j],
DCHN[Spinor[p1, m], j] DCHN[GS[p], i, j]}, FCE -> True]","{DCHN[Spinor[p1, m, 1], j] DCHN[GA[mu], i, j],
DCHN[Spinor[p1, m, 1], j] DCHN[GS[p], i, j]}"}
{"fcstDiracChainJoin-ID24","DiracChainJoin[DCHN[Spinor[Momentum[p1], m], j] DCHN[GA[mu], i, j] == x,
FCE -> True]","DCHN[Spinor[Momentum[p1], m, 1], j] DCHN[GA[mu], i, j] == x"},
{"fcstDiracChainJoin-ID25","DiracChainJoin[{DCHN[Spinor[Momentum[p1], m], j] DCHN[GA[mu], i, j],
DCHN[Spinor[Momentum[p1], m], j] DCHN[GS[p], i, j]}, FCE -> True]","{DCHN[Spinor[Momentum[p1], m, 1], j] DCHN[GA[mu], i, j],
DCHN[Spinor[Momentum[p1], m, 1], j] DCHN[GS[p], i, j]}"}
});
16 changes: 5 additions & 11 deletions Tests/Dirac/DiracEquation.test
Original file line number Diff line number Diff line change
Expand Up @@ -246,17 +246,6 @@ D]]*Spinor[-Momentum[p, D], m, 1]"},
"m*Spinor[-Momentum[p, D], m, 1] . DiracGamma[CartesianMomentum[r, -1 + \
D], D] + 2*CartesianPair[CartesianMomentum[p, -1 + D], CartesianMomentum[r, -1 + \
D]]*Spinor[-Momentum[p, D], m, 1]"},
{"fcstDiracEquation-ID57",
"DiracEquation[
Spinor[Momentum[pE2, D], 0, 1].GAD[mu].GA[
7].Spinor[-Momentum[pE1, D], 0, 1] Spinor[
Momentum[pB, D] - Momentum[pE1, D] - Momentum[pE2, D], 0, 1].GSD[
pE1].GSD[pE1].GAD[mu].GA[7].Spinor[Momentum[pB, D], mB, 1]]",
"Spinor[Momentum[pB, D] - Momentum[pE1, D] - Momentum[pE2, D], 0,
1].DiracGamma[LorentzIndex[mu, D], D].DiracGamma[7].Spinor[
Momentum[pB, D], mB, 1] Spinor[Momentum[pE2, D], 0, 1].DiracGamma[
LorentzIndex[mu, D], D].DiracGamma[7].Spinor[-Momentum[pE1, D], 0,
1] Pair[Momentum[pE1, D], Momentum[pE1, D]]"},
{"fcstDiracEquation-ID58",
"DiracEquation[
Spinor[Momentum[p1, D], m1, 1].GAD[mu].GA[7].Spinor[Momentum[p2, D],
Expand All @@ -273,4 +262,9 @@ m1 Spinor[-Momentum[p1, D], m1, 1].GAD[mu].GA[
{"fcstDiracEquation-ID60","DiracEquation[{GS[p].SpinorU[p, m],
GS[p].SpinorV[p, m]}, FCE -> True]",
"{m Spinor[Momentum[p], m, 1], -m Spinor[-Momentum[p], m, 1]}"}
};

Tests`Dirac`fcstAbortDiracEquation = {
{"fcstAbortDiracEquation-ID1","CheckAbort[DiracEquation[GS[2 p1].SpinorVBar[2 p1, m]], True]",
"True"}
}
18 changes: 10 additions & 8 deletions Tests/Dirac/DiracSimplify.test
Original file line number Diff line number Diff line change
Expand Up @@ -459,20 +459,22 @@ MT[al,tau] MT[be,rho]]", "True"}



Tests`Dirac`fcstDiracSimplifyDotWarnings = {
{"fcstDiracSimplifyDotWarnings-ID1","CheckAbort[DiracSimplify[GA[a] GA[b],FCCheckSyntax->True],True]",
Tests`Dirac`fcstDiracSimplifyAbort = {
{"fcstDiracSimplifyAbort-ID1","CheckAbort[DiracSimplify[GA[a] GA[b],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID2","CheckAbort[DiracSimplify[GA[a, b] GA[c],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID2","CheckAbort[DiracSimplify[GA[a, b] GA[c],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID3","CheckAbort[DiracSimplify[GA[a, b] GA[c, d],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID3","CheckAbort[DiracSimplify[GA[a, b] GA[c, d],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID4","CheckAbort[DiracSimplify[SUNT[a] SUNT[b],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID4","CheckAbort[DiracSimplify[SUNT[a] SUNT[b],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID5","CheckAbort[DiracSimplify[SUNT[a, b] SUNT[c],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID5","CheckAbort[DiracSimplify[SUNT[a, b] SUNT[c],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID6","CheckAbort[DiracSimplify[SUNT[a, b] SUNT[c, d],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID6","CheckAbort[DiracSimplify[SUNT[a, b] SUNT[c, d],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyDotWarnings-ID7","CheckAbort[DiracSimplify[(GA[a] + M) GA[b],FCCheckSyntax->True],True]",
{"fcstDiracSimplifyAbort-ID7","CheckAbort[DiracSimplify[(GA[a] + M) GA[b],FCCheckSyntax->True],True]",
"True"},
{"fcstDiracSimplifyAbort-ID8","CheckAbort[DiracSimplify[GS[2 p1].SpinorVBar[2 p1, m]], True]",
"True"}
}

Loading

0 comments on commit b045838

Please sign in to comment.