Calculating the Casimir differential equation using the embedding space

(* This notebook walks through an embedding-space calculation of the action of the conformal Casimir on a four-point function. See section 12.3.1 of the notes. The first few sections set up machinery for doing calculus with embedding space vectors and rotations in the embedding space. The last section contains the assignment broken into four subparts. *)

Vector Calculus

(* ConstQ[x] tells whether we should consider x to be a constant. We consider numbers to be constants, and also the symbol ϵ *)
ConstQ[ϵ]:=True;
ConstQ[n_?NumberQ]:=True;
ConstQ[_]:=False;

(* CenterDot[X,Y]=X·Y will be the dot product in the embedding space. We need to tell Mathematica that it is symmetric *)
SetAttributes[CenterDot,Orderless];
(* The dot product is linear *)
(a_ x_)·y_/;ConstQ[a]:=a (x·y);
(* The dot product is distributive *)
(x_+y_)·z_:=x·z + y·z;

(* A capital letter X represents a vector in the embedding space. B[a] represents a basis vector in the embedding space, with a=-1,0,1,...,d. The coordinates of X can be written (X^a)=CenterDot[X,B[a]]=X·B[a]. The metric has components B[a]·B[b]. *)
(* Here are some rules for manipulating dot products *)
simplifyDotProducts={
(* Repeated indices are summed *)
X_·B[a_]Y_·B[a_]:>X·Y,
(((X_·B[a_]))^2):>X·X,
(* Metric contracted with vector gives vector *)
B[a_]·B[b_]X[b_]:>X[a],
(* Trace of the metric is the spacetime dimension, which is d+2 *)
B[a_]·B[a_]:>d+2,
(* Embedding space vectors square to zero *)
X[i_]·X[i_]:>0
};

(* Derivative with respect to X in the a direction *)
δ[X_,a_][expression_]:=SeriesCoefficient[
expression/.X->X+ϵ B[a],
{ϵ,0,1}
];

simplifyVectors[expression_]:=Expand[expression]//.simplifyDotProducts;

Examples

X·B[a]X·B[a]//simplifyVectors

X·B[a](Y+Z)·B[a]//simplifyVectors

δ[X,a][X·X]

Cross ratios

(* The cross ratios in terms of embedding space dot products. We use capital U,V for the combination of dot products, and lowercase u,v, for the symbolic cross-ratios *)
U=((X[1]·X[2] X[3]·X[4])/(X[1]·X[3] X[2]·X[4]));
V=((X[3]·X[2] X[1]·X[4])/(X[1]·X[3] X[2]·X[4]));

(* If we have an expression in terms of dot products, we can apply this rule to turn it into cross-ratios again *)
crossRatioReplace={
X[1]·X[2]->u ((X[1]·X[3] X[2]·X[4])/(X[3]·X[4])),
X[3]·X[2]->v ((X[1]·X[3] X[2]·X[4])/( X[1]·X[4]))
};

Embedding space rotation generators

(* An embedding space rotation generator acting on the point X *)
L[X_,a_,b_][expression_]:=X·B[a] δ[X,b][expression]-X·B[b]δ[X,a][expression];

(* Check that a dot product is rotationally-invariant *)
L[X[1],a,b][X[1]·X[2]]+L[X[2],a,b][X[1]·X[2]]

(* The quadratic Casimir acting on a single point *)
CasimirOnePt[X_][expression_]:=((-1)/2)L[X,a,b][L[X,a,b][expression]];

(* Check that the Casimir operator acts with the right eigenvalue on a three-point function of scalar operators *)
threePtScalars=(1/((((-2X[1]·X[2]))^((Δ1+Δ2-Δ3)/2))(((-2X[2]·X[3]))^((Δ2+Δ3-Δ1)/2))(((-2X[3]·X[1]))^((Δ3+Δ1-Δ2)/2))));
((1/threePtScalars)CasimirOnePt[X[1]][threePtScalars]//simplifyVectors)//Simplify

Assignment

Part 1

LTwoPt[X_,Y_,a_,b_][expr_]:=(* Write an expression for the rotation generator acting on two points simultaneously *);

Part 2

CasimirTwoPt[X_,Y_][expr_]:=(* Using LTwoPt, write an expression for the Casimir operator acting on two points simultaneously *);

Part 3

(* Apply CasimirTwoPt to f[U,V] and simplify the result to a differential operator in u,v alone. You will need to use simplifyVectors and crossRatioReplace *)

Part 4

(* Turn your differential operator in u,v into a differential operator in z,zb. *)
(* Here is a 1-dimensional example. Suppose we have a differential operator in x, and we want to express it in terms of y such that y=x/(1-x) and x=y/(1+y). *)
diffOpx=f''[x]+x(1-x)f'[x]+3f[x];

(* First we substitute f[x]=g[y]=g[(x/(1-x))]. Then we replace x->(y/(1+y)). This gives a differential operator acting on g. *) 
diffOpx/.f->Function[x,g[(x/(1-x))]]/.{x->(y/(1+y))}//Simplify