SetDirectory["~/Factorisation/"];
<<kappaLib.m
<<helper.m

Metaclass VI:

vars={x0,x1,x2,x3};

kappa=emMatrixToKappa[(({{a1, 0, 0, -b1, 0, 0}, {0, a2, 0, 0, a4, 0}, {0, 0, a3, 0, 0, a5}, {b1, 0, 0, a1, 0, 0}, {0, a4, 0, 0, a2, 0}, {0, 0, a5, 0, 0, a3}}))];

vars={x0,x1,x2,x3};
fr=emKappaToFresnel[kappa,vars];

We may assume that a4, a5 != 0

FullSimplify[fr/.{a4->0,x1->0,x3->0}]
FullSimplify[fr/.{a5->0,x0->0,x3->0}]

frSym=(x0^4)+(x1^4)-(x2^4)-(x3^4)+D0 x0 x1 x2 x3+D1 ((x2^2) (x3^2)-(x0^2) (x1^2))-D2 ((x1^2) (x3^2)+(x0^2) (x2^2))-D3 ((x1^2) (x2^2)+(x0^2) (x3^2));

subSym={
D0->(((2 (a1^2) a2)/(a4 a5 b1))-((2 a1 (a2^2))/(a4 a5 b1))-((2 (a1^2) a3)/(a4 a5 b1))+((2 (a2^2) a3)/(a4 a5 b1))+((2 a1 (a3^2))/(a4 a5 b1))-((2 a2 (a3^2))/(a4 a5 b1))+((2 a1 a4)/(a5 b1))-((2 a3 a4)/(a5 b1))-((2 a1 a5)/(a4 b1))+((2 a2 a5)/(a4 b1))+((2 a2 b1)/(a4 a5))-((2 a3 b1)/(a4 a5))),
D1->(((((a2-a3))^2)-(a4^2)-(a5^2))/(a4 a5)),
D2->(((((a1-a3))^2)-(a5^2-b1^2))/(a5 b1)),
D3->(((((a1-a2))^2)-(a4^2-b1^2))/(a4 b1))
};

Simplify[fr-(a4 a5 b1) frSym/.subSym]

We assume that the Fresnel polynomial factorises

A=Table[ToExpression["A"<>ToString[Min[{i,j}]]<>ToString[Max[{i,j}]]],{i,0,3},{j,0,3}];
B=Table[ToExpression["B"<>ToString[Min[{i,j}]]<>ToString[Max[{i,j}]]],{i,0,3},{j,0,3}];
A//MatrixForm
B//MatrixForm
factorised=(vars.A.vars) (vars.B.vars);

cons=Union[Flatten[CoefficientList[frSym-factorised,vars]]];

cons=simp[cons];
show[cons]//MatrixForm

Equation (2): By renaming and scaling, we may assume that A00 = 1.

sub={A00->1,B00->1};

cons=simp[cons//.sub];
show[cons]

tmp=Join[Take[cons,{5,7}],Take[cons,{17,19}],Take[cons,{23,25}]];
tmp//MatrixForm

Solve[toEqs[%],{B01,B02,B03,B11,B22,B33,B12,B13,B23}]

sub=Join[sub,%[[1]]]

cons=simp[cons//.sub];
show[cons]

Eliminate

Variables[cons]

elimVars=Variables[A]
condVars={D0,D1,D2,D3}

gb=FullSimplify[GroebnerBasis[cons,condVars,elimVars]];//Timing

show[simp[gb]]

Equation (1) implies that D0 = 0.
Equation (4) implies that D1 = +2 or -2.

dSub={D0->0,D1->2 sigma};

gb=simp[gb/.dSub];
show[gb]

Equation (3):     (D3+D2 sigma)=0

dSub=Append[dSub,D2->-sigma D3];

gb=simp[gb/.dSub];
show[gb]

dSub

We have proven that:

       D0 = 0,   D1 = sigma x 2,   D2 = -sigma D3

where sigma = +1 or sigma = -1

Metrics for general sigma

AA=(({{1, 0, 0, 0}, {0, -sigma, 0, 0}, {0, 0, (1/2) (sigma D3+(Sqrt[4+(D3^2)])), 0}, {0, 0, 0, (1/2) (-D3-sigma(Sqrt[4+(D3^2)]))}}));
BB=(({{1, 0, 0, 0}, {0, -sigma, 0, 0}, {0, 0, (1/2) (sigma D3-(Sqrt[4+(D3^2)])), 0}, {0, 0, 0, (1/2) (-D3+sigma(Sqrt[4+(D3^2)]))}}));

delta=frSym-(vars.AA.vars)(vars.BB.vars);

exp=FullSimplify[Expand[delta//.dSub]]

exp/.sigma->1
exp/.sigma->-1

Check signatures

AA/.sigma->-1//MatrixForm
AA/.sigma->1//MatrixForm

printNotebook["Metaclass_VI.pdf"]