Redberry provides a set of tools for calculation of one-loop counterterms in curved space-time. The theoretical formalism based on the extended t' Hooft and Veltman method of the background calculations was developed by Pronin and Stepanyantz (*Nucl.Phys. B485 (1997) 517–544,
arXiv:hep-th/9605206*) and successfully applied for a number of theories using Reduce computer algebra system. This algorithm calculates one-loop counterterms for an arbitrary theory and background in four dimensions in curved space-time in the dimensional regularization. Redberry implements this algorithm for second and fourth order differential operators and provides a simple and convenient user interface.

Let's start with a minimal physical background. It is well-known, that one-loop effective action for a general field theory with a given action $S[\phi]$ can be expressed in terms of derivative of action with respect to the fields:

\[ \Gamma^{(1)} = \frac{i\hbar}{2} \, \mbox{Tr}\left( \, \ln \frac{\delta^2 S}{\delta \phi^{i} \delta \phi_j}\right), \]

where $\phi_{i}$ denotes a fields and Latin letters denotes the whole set of its indices (here the actual type of these indices is not important (e.g. this set can contain both space-time and SU(N) indices), so Latin letters used only for convenience). So, the main quantity, which determines the effective action is a differential operator

\begin{equation} \label{eq:DiffOperator} D_{i}{}^{j} \,=\, \frac{\delta^2 S}{\delta \phi^{i} \delta \phi_j}. \end{equation}

In the most general case, this operator has the following form:

\begin{eqnarray} \label{eq:OperatorGenForm} D_{i}{}^{j}\,&=& \, K^{\mu_1\mu_2\dots\mu_L}{}_i{}^j\, \nabla_{\mu_1}\nabla_{\mu_2}\dots\nabla_{\mu_L} \,+ \\ &+&\, S^{\mu_1\mu_2\dots\mu_{L-1}}{}_i{}^j\, \nabla_{\mu_1}\nabla_{\mu_2}\dots\nabla_{\mu_{L-1}} \,+ \\ &+&\, W^{\mu_1\mu_2\dots\mu_{L-2}}{}_i{}^j\, \nabla_{\mu_1}\nabla_{\mu_2}\dots\nabla_{\mu_{L-2}} \,+ \\ &+&\, N^{\mu_1\mu_2\dots\mu_{L-3}}{}_i{}^j\, \nabla_{\mu_1}\nabla_{\mu_2}\dots\nabla_{\mu_{L-3}} \,+ \\ &+&\, M^{\mu_1\mu_2\dots\mu_{L-4}}{}_i{}^j\, \nabla_{\mu_1}\nabla_{\mu_2}\dots\nabla_{\mu_{L-4}} \,+\,\dots, \end{eqnarray}

where $\nabla_\mu$ is a covariant derivative with respect to space-time and internal indices:

\begin{eqnarray*} &&\nabla_{\alpha} T^{\mu}{}_i{}^j = \partial_{\alpha}T^{\mu}{}_i{}^j + \Gamma^\mu_{\alpha\gamma} \, T^\gamma{}_i{}^j + \omega_{\alpha i}{}^k T^\mu{}_k{}^j - \omega_{\alpha k}{}^j T^\mu{}_i{}^k\\ &&\nabla_{\mu} \Phi_i = \partial_\mu \Phi_i + \omega_{\mu i}{}^j \Phi_j, \end{eqnarray*}

where $\Gamma^\mu_{\alpha\gamma}$ is a Christoffel symbol and $\omega_{\mu i}{}^j$ is a connection on the principal bundle. Commuting covariant derivatives it is always possible to make tensors K, S, W, N, M symmetric in the Greek indexes and we shall assume this condition in the further reading.

It is also required to introduce the following quantities: \begin{equation} \label{eq:DefKn} (Kn)^{i}_{j} = K^{\mu_{1}\mu_{2}\dots\mu_{L}}{}^i{}_j\,\,n_{\mu_1}n_{\mu_2}\dots n_{\mu_L},\\ \qquad (Kn)^{-1}{\,}_{i}{}^{j} \, (Kn)_j{}^k \,=\, \delta_i{}^k, \end{equation}

where \(n_\mu\) is a unit vector. The second equation defines tensor \((Kn)^{-1}\) inverse to tensor \(Kn\), which is an input tensor for the algorithm (one can find it by solving corresponding equation; see Reduce). The other required input is a curvature tensor with respect to the principal bundle:

\begin{equation} \label{eq:FCurvature} [\nabla_\mu, \nabla_\nu] \Phi_i = F_{\mu\nu}{}_i{}^j \Phi_j \end{equation}

Given a set of tensors $K$, $W$, $M$, $(Kn)^{-1}$ and $F$ as input data, Redberry allows to calculate counterterms for the general second and fourth order operators of the following form

\begin{eqnarray} D^{(2)}{}_{i}{}^j &=& K^{\mu\nu}{}_i{}^j\,\nabla_{\mu}\nabla_{\nu} + W_{i}{}^j\\ D^{(4)}{}_{i}{}^j &=& K^{\mu\nu\alpha\beta}{}_i{}^j\,\nabla_{\mu}\nabla_{\nu}\nabla_{\alpha}\nabla_{ \beta} + W^{\mu\nu}{}_i{}^j\,\nabla_{\mu}\nabla_{\nu} + M_{i}{}^j \end{eqnarray}

Let us illustrate the usage by the particular examples.

Let us consider one-loop counterterms of the the vector field operator, which appears in the theory of the massive vector field: \[ D_\alpha{}^\beta = \delta_\alpha{}^\beta \Box - \lambda \, \nabla_\alpha \nabla^\beta + P_\alpha{}^\beta, \] where \(\Box =g^{\mu\nu}\nabla_\mu\nabla_\nu\) and \(\lambda = 1 + 1/\xi\). This is a second order operator, and in order to rewrite it in the symmetric form, it is necessary to symmetrize the second term by commutation of the covariant derivatives:

\[ D_\alpha{}^\beta = \left( g^{\mu\nu} \delta_\alpha^\beta - \frac{\lambda}{2} \left( g^{\mu\beta}\delta_\alpha^\nu + g^{\nu\beta}\delta_\alpha^\mu \right) \right) \nabla_\mu\nabla_\nu + P_\alpha{}^\beta + \frac{\lambda}{2}R_\alpha{}^\beta, \]

where $R_{\alpha\beta}$ is the Ricci tensor.

It can be easily found that $Kn$ and $(Kn)^{-1}$ are:

\begin{equation*} (Kn)_{\alpha}{}^\beta = \delta_{\alpha}^\beta - \lambda \, n_\alpha n^\beta, \qquad (Kn)^{-1}{}_{\alpha}{}^\beta = \delta_{\alpha}^\beta + \frac{\lambda}{1- \lambda} n_\alpha n^\beta. \end{equation*}

Hereby, at this point we have whole set of input tensors required by the algorithm: \begin{eqnarray*} &&K^{\mu\nu}{}_\alpha{}^\beta \,=\, g^{\mu\nu} \delta_\alpha^\beta - \frac{\lambda}{2}\left( g^{\mu\beta}\delta_\alpha^\nu + g^{\nu\beta}\delta_\alpha^\mu \right)\,, \quad S^\mu{}_\alpha{}^\beta \,=\, 0\,, \quad W_\alpha{}^\beta \,=\, P_\alpha{}^\beta + \frac{\lambda}{2}R_\alpha{}^\beta\,, \\&& (Kn)^{-1}{}_{\alpha}{}^\beta \,=\, \delta_{\alpha}^\beta + \frac{\lambda}{1- \lambda} n_\alpha n^\beta\,, \quad F_{\mu\nu}{}_\alpha{}^\beta \,=\, R_{\mu\nu}{}_\alpha{}^\beta\,. \end{eqnarray*}

In the further calculations we shall use the definition $\lambda =\gamma/(1+\gamma)$ for convenience (so $\gamma = \lambda/(1-\lambda)$).

The following code calculates one-loop counterterms of the vector field theory in curved space-time (here `g`

used for $\gamma$):

//setup symmetries of Riemann tensor addSymmetries 'R_abcd', -[[0, 1]].p, [[0, 2], [1, 3]].p setSymmetric 'R_ab', 'P_ab' //tensor (Kn)^{-1} def iK = 'iK_a^b = d_a^b + g*n_a*n^b'.t //tensor K def K = '''K^{mn}_i^j = g^{mn}*d_{i}^{j} - g/(2*(1+g))*(g^{mj}*d_i^n + g^{nj}*d_i^m)'''.t //tensor S def S = 'S^p^l_m=0'.t //tensor W def W = 'W^{a}_{b}=P^{a}_{b} + g/(2*(1+g))*R^a_b'.t //tensor F def F = 'F_abcd = R_abcd'.t //divergent part of one-loop effective action def div = oneloopdiv2(iK, K, S, W, F) //counterterms def counterterms = div.counterterms[1]; //simplifying counterterms counterterms = ('P^a_a = P'.t & Collect['R', 'P', Factor[[FactorScalars: false]]] ) >> counterterms println counterterms

> (1/120)*(10*g-32+5*g**2)*R^{lm}*R_{lm}+(1/24)*P*R*(2*g+g**2+4) +(1/12)*g*(g+4)*P^{ml}*R_{lm}+(1/48)*g**2*P**2 +(1/240)*(20*g+28+5*g**2)*R**2 +(1/24)*(6*g+g**2+12)*P^{a_{5}}_{a}*P^{a}_{a_{5}}In order to obtain one-loop counterterms in the dimensional regularization, one should multiply the result produced by Redberry by $1/16\pi(d-4)$ and integrate it over the space-time volume:

\begin{multline*} \Gamma^{(1)}_{\infty} = \frac{1}{16\pi(d-4)} \int d^4 x \sqrt{-g} \left( \frac{1}{120}(-32+5 \gamma^2+10 \gamma) R_{\epsilon\mu} R^{\epsilon\mu} +\frac{1}{48}\gamma^2 P^2 +\right.\\ +\frac{1}{240} R^2 (28+5 \gamma^2+20 \gamma)+\frac{1}{24} (\gamma^2+12+6 \gamma) P_{\beta\alpha} P^{\alpha\beta} +\\ \left.+\frac{1}{12}\gamma (4+\gamma) R_{\nu\epsilon} P^{\nu\epsilon} +\frac{1}{24} R (\gamma^2+4+2 \gamma) P\right) \end{multline*}

The above code is clear enough, but some remarks are needed. The main method `oneloopdiv2(…)`

, which calculates the counterterms of the second order operator, returns a special object, which holds some intermediate results (like e.g. $RR$, $RF$, $FF$ parts of effective action from Pronin & Stepanyantz paper). The whole result can be obtained by getting the value of `.counterterms`

property. All input expressions must be in the same notation as in the original work (*arXiv:hep-th/9605206*) except tensor $(Kn)^{-1}$, which should be denoted as `iK`

. At this moment, the implementation requires that all indices of input tensors must be lower Latin indices. Also, it assumed that field indices are placed at the end, so, for example, the first two indices of tensor $K_{\mu\nu}{}^\alpha{}_\beta$ are contracted with covariant derivatives in operator general form, while the last two indices correspond to the indices of vector field. Redberry does not support nonzero tensor $S$, however it should be specified explicitly, like it is done in line 12.

The operator `iK`

($(Kn)^{-1}$) which defined in line 6 can be found using Redberry Reduce function:

//tensor K def K = '''K^{mn}_i^j = g^{mn}*d_{i}^{j} - g/(2*(1+g))*(g^{mj}*d_i^n + g^{nj}*d_i^m)'''.t //equation def eq = K >> 'K^ab_i^j*n_a*n_b * iK^i_m = d^j_m'.t def options = [Transformations: 'n_a*n^a = 1'.t, ExternalSolver : [Solver: 'Mathematica', Path : '/Applications/Mathematica.app/Contents/MacOS']] println Reduce([eq], ['iK^a_b'], options)

> [[iK^{a}_{b} = d^{a}_{b} + g*n^{a}*n_{b}]]

- Related tutorials: Minimal second order operator, Minimal fourth order operator, Vector field, Squared vector field operator
- JavaDocs: One-loop package
- Source code: One-loop sources