SetDirectory["~/KappaLib/"];
<<kappaLib-1.2.m
<<helper.m

Define medium 

    kappa = C1 ast_g + rho overline (A) otimes A + C2 Id

where g is a Lorentz metric.

In suitable coordinates

Metric=k DiagonalMatrix[{-1,1,1,1}];

Since hodge operator is conformally invariant, we may assume that k=1.

Metric=Metric/.k->1;

AA=emMatrix["a",4,Structure->"AntiSymmetric"];

(* rho = scalar density of weight 1 *)
(* C1 = non-zero constant *)
(* C2 = constant *)

kappa=C1 emHodge[Metric]+ emBiProduct[rho,AA,AA]+ C2 emIdentityKappa[];

If kappa is non-birefringent then 

   (kappa - AxionComponent)^2 = -lambda Id
   
for some lambda.

eta = kappa-emTrace[kappa]/6 emIdentityKappa[];
emTrace[eta]
closure=emCompose[eta,eta]+ lambda emIdentityKappa[];
eqs=FullSimplify[Union[Flatten[closure]]];
show[simp[eqs]]

Compute Gröbner basis. Then equations ‘gb’ have the same solution set as equations ‘eqs’.

gb=simp[GroebnerBasis[eqs,Variables[eqs]]];//Timing

sub={};
tmp=simp[Take[gb,10]];
show[tmp]

sub=Append[sub,lambda->C1^2];
tmp=Take[simp[gb//.sub],20];
show[tmp]

If rho = 0 we are done. Let us therefore assume that rho != 0.

Equations (2)--(4) imply that 

   a23= a24 = a34 =0

sub=Append[sub,a23->0];
sub=Append[sub,a24->0];
sub=Append[sub,a34->0];
tmp=Take[simp[gb//.sub],8];
show[tmp]

Equations (2) -- (3) imply that (at least) one of the below must hold

   a13 = 0 and a14 = 0

sub=Append[sub,a13->0];
sub=Append[sub,a14->0];
tmp=simp[gb//.sub];
show[tmp]

Equation (2) implies that a12 = 0

sub=Append[sub,a12->0];
tmp=simp[gb//.sub];
show[tmp]

AA//.sub//MatrixForm

It follows that A = 0.