Hi everyone, here I tried to make some supergravity calculations for N=1, D=4. I needed to use the "substitute" command a lot. Any suggestions to make it more neat and tidy are very welcome. Also is there any other way than using the substitute command to make the cubic expressions vanish?

```
D{#}::Derivative;
\bar{D{#}}::Derivative;
\bar{#}::DiracBar;
{m,n,p,q,r,s,t,u,m#}::Indices(flat);
{m,n,p,q,r,s,t,u,m#}::Integer(0..3);
{\mu,\nu,\rho,\sigma,\kappa,\lambda,\alpha,\beta}::Indices(curved,position=fixed);
{\mu,\nu,\rho,\sigma,\kappa,\lambda,\alpha,\beta}::Integer(0..3);
e^{m \mu}::Vielbein;
e^{m}_{\mu}::Vielbein;
e_{m \mu}::InverseVielbein;
e_{m}^{\mu}::InverseVielbein;
e::Determinant(e_{m \mu});
e::Determinant(e_{m}^{\mu});
e::Determinant(e^{m}_{\mu});
e::Determinant(e^{m \mu});
g^{\mu\nu}::InverseMetric;
g_{\mu\nu}::Metric;
R_{\mu \nu \rho \sigma}::RiemannTensor;
{ \epsilon,\psi_{\mu} }::Spinor(dimension=4, type=Majorana);
\Gamma_{#{m}}::GammaMatrix(metric=\delta);
{ \psi_{\mu},\epsilon }::AntiCommuting;
{ \psi_{\mu}}::SelfAntiCommuting;
{ \epsilon, \psi_{\mu}}::SortOrder;
\Gamma_{#}::Depends(\bar{#});
{ \psi_{\mu}, \epsilon ,\bar{\epsilon}}::Depends(D{#});
```

First, we write our action as two parts:

```
S32:= \int{- 1/2 e \bar{\psi_\mu} \Gamma^{\mu\nu\rho} D_{\nu}{\psi_{\rho}}}{x};
```

```
S2:= \int{ 1/2 e e_{m}^{\mu} e_{n}^{\nu} R_{\mu \nu}^{ m n}}{x};
```

Now we define our SUSY rules. (I did not include the variation of $e_{m}^{\mu}$, because it only leads to cubic expressions (for the action S32) and they vanish.)

```
susy32:= {e -> 1/2 e {\bar{\epsilon} \Gamma^\sigma \psi_\sigma} , \psi_\mu -> D_{\mu}{\epsilon}};
```

```
susy2:= {e -> 1/2 e {\bar{\epsilon} \Gamma^\sigma \psi_\sigma}, e_{m}^{\mu} -> -1/2 {\bar{\epsilon}} \Gamma^{\mu} \psi_m };
```

Let us start to our calculations with the S32 part. First we take the

variation of it, according to the rules we defined above.

```
vS32= vary(S32, susy32);
```

Here, I need to erase the bar above the $D_{\mu}$ term because the

integrate by parts command does not work properly with the bar.

```
substitute(_,$\bar{D_{#??}{\epsilon}} -> D_{#??}{\bar{\epsilon}} $);
```

The first term here, is a cubic expression therefore it must be

vanish.

```
substitute(_, $\bar{\epsilon}*A?? -> 0$);
```

Manipulating the equations a little bit leads us to use "Clifford

algebra".

```
integrate_by_parts(_, $\bar{\epsilon}$);
```

```
product_rule(_);
```

We know that

$D*{\mu} e = 0$
and $D*{\mu}{\Gamma^{\mu\nu\rho}} = 0$ so

we substitute it by hand.

```
substitute(_,$D_{#??}{e}*A?? -> 0$);
```

```
substitute(_, $ D_{#??}{\Gamma^{\mu\nu\rho}}*A?? -> 0 $);
```

Using the Clifford algebra, we can substitute the equations below;

```
substitute(_, $D_{\mu}{D_{\nu}{A??} } -> 1/8 R_{\mu \nu m n} \Gamma^{m n} A??$ )
sort_spinors(_)
rename_dummies(_);
```

```
substitute(_, $\Gamma^{\mu \nu \rho}R_{\mu \nu m n}\Gamma^{m n} -> 4 \Gamma^{\mu}R_{\mu \nu}^{\rho \nu} + 2 \Gamma^{\rho} R_{\mu \nu}^{\nu \mu}$);
```

```
substitute(_, $\Gamma^{\rho \mu \nu}R_{\mu \nu m n}\Gamma^{m n} -> 4 \Gamma^{\mu}R_{\mu \nu}^{\rho \nu} + 2 \Gamma^{\rho} R_{\mu \nu}^{\nu \mu}$);
```

Now, we can start to play with the S2 part of the action. Here we will

take the variation and re-organize the result as shown below:

```
vS2= vary(S2, susy2);
```

```
eliminate_vielbein(_, repeat=True)
rename_dummies(_);
```

We now need to use a property of the Riemann tensor such as below;

```
substitute(_, $ R_{\mu \nu}^{\mu m} -> R_{\nu \mu}^{m \mu}$);
```

```
canonicalise(_);
```

```
Stotal=vS32+vS2;
```

This final sum must be equal to $0$, yet I couldn't accomplish to sum

the integrals to show it with cadabra.

Thanks.