ABSTRACT (original article): Determining the active screening mechanism from a general scalar-tensor Lagrangian remains a challenging problem. As a diagnostic tool, we present a systematic study of nonlinear cosmological perturbations in luminal Horndeski theories. Working in the α-basis on a flat FLRW background, we derive and organise the full set of unapproximated second-order perturbation equations, and systematically apply the quasi-static and weak-field limits. We find that second-order effects modify only the scalar field equation. We derive, for static and spherically symmetric configurations, a master screening equation recovering the Vainshtein and Chameleon mechanisms. We also identify a novel regime, which we term Phaedrus screening, characterised by a screening radius that scales linearly with the source mass. For each mechanism, we derive analytical and numerical solutions and clarify the conditions under which they activate. Finally, we introduce two new publicly available software packages: (i) xAlpha, a Mathematica package to compute and organise perturbation equations in scalar-tensor theories, and (ii) escut, a Python module to solve the nonlinear scalar equation. In many cases, these tools enable the identification of the active screening type directly from a luminal Horndeski Lagrangian. CITATION (original article): Sergi Sirera, Tessa Baker, James Hallam, Krishna Naidoo (2026), A Master Equation for Screening in Luminal Horndeski Gravity, arXiv:2605.04154. https://doi.org/10.48550/arXiv.2605.04154
This is the companion notebook to the paper https://arxiv.org/pdf/2605.04154.
In this notebook, we employ the package xAlpha ( https://github.com/sergisl/xAlpha ) to compute the equations of motion in a luminal Horndeski scalar-tensor theory for a FLRW cosmological background to quadratic order in perturbations. We then classify and organise all the terms in these equations and express them in terms of the alpha parameters and their derivatives.
This notebook employs: - xAct ( http://www.xact.es/ ) - xPand ( https://www2.iap.fr/users/pitrou/xpand.htm ) - xAlpha ( http://github.com/sergisl/xAlpha )
If you use any of the results or techniques in this notebook please cite the repository and the corresponding papers.
If you have any comments or feedback please let me know. Thanks!
If you have any comments or feedback please let me know. Thanks!
0. Setup and definitions
0. Setup and definitions
1. Theory and background equations of motion
1. Theory and background equations of motion
Action
Action
Here we define all contributions to the reduced Horndeski Lagrangian.
In[]:=
LT=Sqrt[-Detg[]](KK[φ[LI[0],LI[0]],X[]]-G3[φ[LI[0],LI[0]],X[]]Scalar[CD[b]@CD[-b]@φ[LI[0],LI[0]]]+G4[φ[LI[0],LI[0]]]RicciScalarCD[])
Out[]=
-
K
~
g
φ
G
4
φ
G
3
φ
b
∇
∇
b
φ
Background EOMs
Background EOMs
We here apply the variational principle to derive the metric and scalar equations of motion.
In[]:=
1
Sqrt[-Detg[]]
Out[]=
1
2
Pu
g |
|
u |
|
u |
|
u |
|
u |
|
ρu
1
2
G
4
φ
R[∇] |
|
G
3 X
φ
∇
a
∇
c
φ
a
∇
φ
∇
b
φ
G
3 X
φ
∇
a
∇
b
φ
a
∇
φ
∇
c
φ
G
3 φ
φ
∇
b
φ
∇
c
φ
G
4 φφ
φ
∇
b
φ
∇
c
φ
K
X
φ
∇
b
φ
∇
c
φ
G
3 X
φ
∇
a
a
∇
φ
∇
b
φ
∇
c
φ
G
4 φ
φ
∇
c
∇
b
φ
g |
|
φ
G
4
φ
G
4 φ
φ
∇
a
a
∇
φ
G
3 φ
φ
∇
a
φ
a
∇
φ
G
4 φφ
φ
∇
a
φ
a
∇
φ
G
3 X
φ
a
∇
φ
∇
d
∇
a
φ
d
∇
φ
In[]:=
1
2Sqrt[-Detg[]]
Out[]=
1
2
2
(
)
δ |
|
K
φ
φ
G
4 φ
φ
G
3 φ
φ
∇
a
a
∇
φ
K
X
φ
∇
a
a
∇
φ
G
3 φφ
φ
∇
a
φ
a
∇
φ
K
φX
φ
∇
a
φ
a
∇
φ
G
3 X
φ
∇
a
a
∇
φ
∇
b
b
∇
φ
G
3 φX
φ
∇
a
φ
a
∇
φ
∇
b
b
∇
φ
G
3 X
φ
R[∇] |
|
a
∇
φ
b
∇
φ
G
3 φX
φ
a
∇
φ
∇
b
∇
a
φ
b
∇
φ
K
XX
φ
a
∇
φ
∇
b
∇
a
φ
b
∇
φ
G
3 X
φ
∇
b
∇
a
φ
b
∇
a
∇
φ
G
3 XX
φ
a
∇
φ
∇
b
∇
a
φ
b
∇
φ
∇
c
c
∇
φ
G
3 XX
φ
a
∇
φ
b
∇
φ
∇
c
∇
b
φ
c
∇
∇
a
φ
We now evaluate these fully covariant expressions on a FLRW background.
In[]:=
metricEOMsBackground=(-2*MyToxPand[metricEOMs/.Xtoφ,"NewtonGauge",0])/.phidotToX/.HorndeskiDerivativeReplacements1;ExtractComponents[metricEOMsBackground,h]metricEOMsBackground00=ExtractComponents[metricEOMsBackground,h,{"Time","Time"}];metricEOMsBackgroundij=ExtractComponents[metricEOMsBackground,h,{"Space","Space"}];metricEOMsBackgroundTraceij=ContractMetric[metricEOMsBackgroundij*h[b,c],h]//Simplify;
1
3*ah[LI[0],LI[0]]^2
Out[]=
| n | h | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
n | -6 G 4 φ 2 H φ G 3 φ φ K X φ ρu G 4 φ φ H φ G 3 X φ H φ | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
h | 0 | 6 2 a G 4 φ
2 H 2 a G 4 φ
H 2 a
φ 2 a
Pu 2 a G 3 φ φ
2 a G 4 φφ φ
2 a G 4 φ φ
H φ 2 a G 4 φ φ
.. φ 2 a G 3 X φ
.. φ |
In[]:=
scalarEOMBackground=-2*MyToxPand[scalarEOM/.Xtoφ,"NewtonGauge",0]/.{delta[-LI[0],LI[0]]->1}/.phidotToX/.HorndeskiDerivativeReplacements1
Out[]=
-26+3+,X+,XX-9,XX-3,XX-,XX+3,X-,X-3,XX+,X-,X+,XX-,XX-3,X-3,XX
G
4 φ
φ
2
H
G
4 φ
φ
H
1
2
K
φ
φ
G
3 φφ
φ
G
3 X
φ
2
H
G
3 X
φ
H
K
φX
φ
G
3 φ
φ
H
φ
3
2
H
K
X
φ
φ
G
3 φX
φ
H
φ
G
3 φ
φ
..
φ
1
2
K
X
φ
..
φ
G
3 φX
φ
..
φ
K
XX
φ
..
φ
G
3 X
φ
H
φ
..
φ
G
3 XX
φ
H
φ
..
φ
In[]:=
scalarEOMBackground=-2*MyToxPand[scalarEOM/.Xtoφ,"NewtonGauge",0]/.{delta[-LI[0],LI[0]]->1}/.phidotToX/.HorndeskiDerivativeReplacements1
Out[]=
-26+3+,X+,XX-9,XX-3,XX-,XX+3,X-,X-3,XX+,X-,X+,XX-,XX-3,X-3,XX
G
4 φ
φ
2
H
G
4 φ
φ
H
1
2
K
φ
φ
G
3 φφ
φ
G
3 X
φ
2
H
G
3 X
φ
H
K
φX
φ
G
3 φ
φ
H
φ
3
2
H
K
X
φ
φ
G
3 φX
φ
H
φ
G
3 φ
φ
..
φ
1
2
K
X
φ
..
φ
G
3 φX
φ
..
φ
K
XX
φ
..
φ
G
3 X
φ
H
φ
..
φ
G
3 XX
φ
H
φ
..
φ
Compute varE, varP, varS
varEexpr=varE==metricEOMsBackground00/.ρu[LI[0],LI[0]]->0varPexpr=varP==metricEOMsBackgroundTraceij/.Pu[LI[0],LI[0]]->0varSexpr=varS==scalarEOMBackground
Out[]=
ℰ-6-K,X-2,XX+2,XX-6+6,XX
G
4
φ
2
H
φ
G
3 φ
φ
K
X
φ
G
4 φ
φ
H
φ
G
3 X
φ
H
φ
Out[]=
6+4+K,X-2,XX+4X+4+2-2,XX
G
4
φ
2
H
H
φ
G
3 φ
φ
G
4 φφ
φ
G
4 φ
φ
H
φ
G
4 φ
φ
..
φ
G
3 X
φ
..
φ
Out[]=
-26+3+,X+,XX-9,XX-3,XX-,XX+3,X-,X-3,XX+,X-,X+,XX-,XX-3,X-3,XX
G
4 φ
φ
2
H
G
4 φ
φ
H
1
2
K
φ
φ
G
3 φφ
φ
G
3 X
φ
2
H
G
3 X
φ
H
K
φX
φ
G
3 φ
φ
H
φ
3
2
H
K
X
φ
φ
G
3 φX
φ
H
φ
G
3 φ
φ
..
φ
1
2
K
X
φ
..
φ
G
3 φX
φ
..
φ
K
XX
φ
..
φ
G
3 X
φ
H
φ
..
φ
G
3 XX
φ
H
φ
..
φ
Compute all derivatives at once
derivatives=ComputeBackgroundQuantityDerivatives[varEexpr,varPexpr,varSexpr,HorndeskiDerivativeReplacements1];
Extract individual results
varEphiexpr=derivatives["varEphi"];varPphiexpr=derivatives["varPphi"];varSphiexpr=derivatives["varSphi"];varEphiphiexpr=derivatives["varEphiphi"];varEphiphiphiexpr=derivatives["varEphiphiphi"];varPphiphiexpr=derivatives["varPphiphi"];varEphiXexpr=derivatives["varEphiX"];varPphiXexpr=derivatives["varPphiX"];varEdotexpr=derivatives["varEdot"];varPdotexpr=derivatives["varPdot"];varSdotexpr=derivatives["varSdot"];varEddotexpr=derivatives["varEddot"];varPddotexpr=derivatives["varPddot"];varSddotexpr=derivatives["varSddot"];varEdddotexpr=derivatives["varEdddot"];varPdddotexpr=derivatives["varPdddot"];varEdddotexpr=derivatives["varEdddot"];varPdddotexpr=derivatives["varPdddot"];varSdddotexpr=derivatives["varSdddot"];
Solve for varE and varP
BackgroundEOMsSubs={Solve[varEexpr,varE][[1]][[1]],Solve[varPexpr,varP][[1]][[1]]};
The conservation equation is given by
In[]:=
varEdot+3Hh[LI[0],LI[0]](varE+varP)==φ[LI[0],LI[1]]varSvarEdotexpr[[2]]+3Hh[LI[0],LI[0]](varEexpr+varPexpr)-φ[LI[0],LI[1]]varSexpr/.Solve[varEexpr,varE][[1]]/.Solve[varPexpr,varP][[1]]/.Solve[varSexpr,varS][[1]];%//.phidotToX//Simplify
Out[]=
ℰ
H
φ
Out[]=
True
2. Perturbations
2. Perturbations
Definitions
Definitions
Set display preferences for tensor components
PrintAs[h]^="γ";PrintAs[ρu]^="ρ";PrintAs[Pu]^="P";PrintAs[Vshu]^="θ";PrintAs[Vvhu]^="v";PrintAs[Eth]^="h";$FirstOrderVectorPerturbations=False;$FirstOrderTensorPerturbations=False;
Define perturbation variables
Define PureSecondOrderZero in notebook context
Visualize the metric perturbation structure
Second-order equations of motion
Second-order equations of motion
Extracting coefficients
Extracting coefficients
COLLECTION, EXTRACTION, AND VALIDATION
D1QQ
D1QQ
Define the set of non - shift - symmetric derivatives
Extract the Shift - Symmetric Part
Extract the Non - Shift - Symmetric Part (The Leftover)
Define shorthands for xAct variables to keep the factored equation clean
Expression appearing in paper for Non - Shift - Symmetric Part
Calculate and print the difference
Define Symbols
Define the Identities
Solve for high - order derivatives in terms of the functions above and lower - order derivatives
Apply Substitutions Sequentially
Final Simplify with X substitution
Expression appearing in paper for Shift - Symmetric Part
Calculate and print the difference
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
A master equation for screening in Luminal Horndeski gravity
by Sergi Sirera, Tessa Baker, James Hallam & Krishna Naidoo
Wolfram Community, STAFF PICKS, August 10, 2026
https://community.wolfram.com/groups/-/m/t/3776785
by Sergi Sirera, Tessa Baker, James Hallam & Krishna Naidoo
Wolfram Community, STAFF PICKS, August 10, 2026
https://community.wolfram.com/groups/-/m/t/3776785