| (1) |
To remain closer to textbook notation, display the imaginary unit with a lowercase
>
|
|
The simplest case of a massive field, the integral containing two propagators and one external momentum to which corresponds the mass .
>
|
|
| (2) |
Before reducing this tensor integral to a linear combination of scalar integrals, it is convenient to represent the integral in abstract form, implemented as follows:
>
|
|
| (3) |
In this output we see the integral has 2 propagators, the first one has 0 external momentum (i.e. none) and mass . The second propagator has external momentum to which corresponds the mass . Finally the loop momentum integration variable is and the last operand, in this example equal to 0 means there are no contracted powers of , the loop integration variable. To retrieve the non-abstract form from the abstract one you can use
>
|
|
| (4) |
The reduction of this tensor integral to a linear combination of scalar Feynman integrals uses this rewriting internally and results in
| (5) |
The TensorReduce command can optionally return intermediate steps of the reduction process, from 1 to 7. Steps 2, 3 and 4 return a result using this abstract representation. For example,
>
|
|
| |
| (6) |
>
|
|
| (7) |
>
|
|
| |
| (8) |
>
|
|
| (9) |
Back to the reduction process, note that, by design, TensorReduce does not evaluate the integrals so that one can follow the computational process clearly. The evaluation can be performed next by passing this result to Evaluate
| (10) |
Note also that Evaluate automatically calls TensorReduce that in turn uses ToAbstractRepresentation and FromAbstractRepresentation to perform the reduction of tensor integrals when that is the case. So, passing the Feynman integral directly to Evaluate results in the same process all in one go
| (11) |