(* Definitions and helper functions *)
rv={rx,ry,rz};
vv={vx,vy,vz};
zv={0,0,0};
ex={1,0,0};
r[t_]:={rx[t],ry[t],rz[t]}
Ff[r_,t_]:={Fx[r,t],Fy[r,t],Fz[r,t]}
γ[v_]:=1/Sqrt[1-v.v/c^2]
n[v_]:=Sqrt[v.v]
LTr[r_,t_,v_]:=r + (γ[v]-1) r.v v/n[v]^2+γ[v] v t
LTt[r_,v_,t_]:=γ[v](t+1/c^2 r.v)
CoulombF[r_]:=qs qd r/(4 Pi ϵ0 n[r]^3)
Curl[Curl[Ff[rv,t],rv],rv]==Grad[Div[Ff[rv,t],rv],rv]-Laplacian[Ff[rv,t],rv]

(* Test fo Eq. 21 *)
D[m γ[r'[t]]r'[t],t]==γ[r'[t]] m r''[t]+m/c^2γ[r'[t]]^3 (r'[t].r''[t]) r'[t] //FullSimplify

(* Test of Eq. 22 *)
rdd = 1/(m γ[r'[t]])(Ff[r[t],t]-1/c^2 r'[t](Ff[r[t],t].r'[t]));
γ[r'[t]] m rdd+m/c^2γ[r'[t]]^3 (r'[t].rdd) r'[t] == Ff[r[t],t]//FullSimplify

(* Test of Eq. 41 *)
tsv = (c^2 t - rv.vv-Sqrt[c^2 n[rv-vv t]^2-n[Cross[rv,vv]]^2])/(c^2-n[vv]^2);
tsv == t - n[rv-vv tsv]/c /. {c->10,t->Random[],rx->Random[],ry->Random[],rz->Random[],vx->Random[],vy->Random[],vz->Random[]}

(* Test of Eq. 42 *)
phi[r_,rs_,vs_,t_,ts_] := (qs c)/(4 Pi ϵ0 (c^2(t-ts)-vs.(r-rs)))
phi[rv,vv tsv,vv,t,tsv] ==(qs c)/(4 Pi ϵ0 Sqrt[n[rv-vv t]^2(c^2-n[vv]^2)+((rv-vv t).vv)^2]) //FullSimplify

(* Test of Eq. 43 *)
F43[r_,t_,v_]:=(c^3 qs qd (r-v t) γ[v]^(-2))/(4 Pi ϵ0 (n[r-v t]^2(c^2-n[v]^2) + ((r-v t).v)^2)^(3/2))
phi43=phi[rv,vv tsv,vv,t,tsv];
F43[rv,t,vv] ==  -qd (D[1/c^2 vv  phi43,t] + Grad[phi43,rv])  //FullSimplify

(* Test of the 3D Lorentz transformation *)
n[LTr[rv,t,vv]]^2-c^2 LTt[rv,vv,t]^2 == n[rv]^2 - c^2 t^2  //FullSimplify

(* inverse Lorentz boost gives the Coulomb force, if rv.vv == n[rv] n[vv] *)
repl = {vx->v,vy->0,vz->0,rx->r,ry->0,rz->0} ;
rv.vv == n[rv] n[vv] /. repl //PowerExpand
F43[LTr[rv,t,vv],LTt[rv,vv,t],vv]==CoulombF[rv]/. repl //FullSimplify[#,Assumptions->{r>0,v≥0,v<c,c>0}]&

(* inverse Lorentz boost is NOT IDENTICALLY with the Coulomb force for rv.vv == 0 !?! *)
repl = {vx->0,vy->v,vz->0,rx->r,ry->0,rz->0};
rv.vv == 0 /. repl
F43[LTr[rv,t,vv],LTt[rv,vv,t],vv]!=CoulombF[rv]/.  repl //FullSimplify[#,Assumptions->{r>0,v≥0,v<c,v>0,c>0,qd==1,qs==1}]&

(* Test of Eq. 46 *)
F43O2 = Normal[Series[F43[rv+v vv t,t,v vv] /. qd->qd0 γ[v vv],{v,0,2}]] /. v->1;
WeberF =(qd0 qs)/(4 Pi ϵ0)(1+n[vv]^2/c^2 - 3/2 ((rv.vv)/(n[rv] c))^2) rv/n[rv]^3;
F43O2 == WeberF // FullSimplify[#,Assumptions->{c>0}]&

(* Test of Eq. 48 *)
F48=(qs qd rv)/(4 Pi ϵ0 n[rv]^3) (1-n[vv]^2/c^2)/(1-n[vv]^2/c^2 Sin[α]^2)^(3/2) /.  Sin[α]->n[Cross[rv,vv]/(n[rv] n[vv])];
F48 ==F43[rv+ vv t,t,vv] //FullSimplify[#,Assumptions->{Element[c|rx|ry|rz,Integers]&&c>0}]&

(* Test of Eq. 49 *)
(Grad[Φ[rv],rv] /. {rx->rx+vx t,ry->ry+vy t,rz->rz+vz t}) == Grad[Φ[rv+vv t],rv] 

(* Test of Eq. 50 *)
(D[Ff[rv,t],t]/. {rx->rx+vx t,ry->ry+vy t,rz->rz+vz t}) == D[Ff[rv+vv t,t],t]-(vx D[Ff[rv+vv t,t],rx]+vy D[Ff[rv+vv t,t],ry]+vz D[Ff[rv+vv t,t],rz])

(* Test of Eq. 55 *)
Phi53=(qs c)/(4 Pi ϵ0 Sqrt[n[rv]^2(c^2-n[vv]^2)+(rv.vv)^2]);
F55=qd vv/c^2 (vv.Grad[Phi53,rv])-qd Grad[Phi53,rv];
F43[rv+vv t,t,vv] == F55 //FullSimplify

(* Validation of Eq. 84. Compare with Eq. (7.282) in G.Lehner 2004 *)
ELehnerSpherical={0,-(p0 ω^2 Sin[θ])/(4 Pi ϵ0 c^2 r) Sin[ω t-k r],0} /. k->ω/c;
ELehnerCartesian = TransformedField["Spherical"->"Cartesian",ELehnerSpherical,{r,θ,φ}->{rx,ry,rz}];
s[t_]:={0,0,p0}/(2 q) Sin[ω t]
F84Cartesian=(qd q)/(2 Pi ϵ0 c^2 n[rv])Cross[rv/n[rv],Cross[rv/n[rv],D[s[t-n[rv]/c],{t,2}]]];
F84Cartesian == qd ELehnerCartesian //FullSimplify

(* Validation of Eq. 93. Compare with Eq. (7.282) and (7.283) in G.Lehner 2004 *)
ELehnerSpherical={0,-(p0 ω^2 Sin[θ])/(4 Pi ϵ0 c^2 r) Sin[ω t-k r],0} /. k->ω/c;
HLehnerSpherical={0,0,-(p0 ω^2 Sin[θ])/(4 Pi c r) Sin[ω t-k r]} /. k->ω/c;
ELehnerCartesian = TransformedField["Spherical"->"Cartesian",ELehnerSpherical,{r,θ,φ}->{rx,ry,rz}];
HLehnerCartesian = TransformedField["Spherical"->"Cartesian",HLehnerSpherical,{r,θ,φ}->{rx,ry,rz}];
FLehnerCartesian = qd ELehnerCartesian + qd/(ϵ0 c^2)Cross[vv,HLehnerCartesian] // Simplify;
s[t_]:={0,0,p0}/(2 q) Sin[ω t]
F93Cartesian=(qd q)/(2 Pi ϵ0 c^2 n[rv])Cross[(rv/n[rv]-vv/c),Cross[rv/n[rv],D[s[t-n[rv]/c],{t,2}]]];
F93Cartesian == FLehnerCartesian //FullSimplify
tau66 = (rv.vv+Sqrt[c^2 n[rv]^2-n[Cross[rv,vv]]^2])/(c^2-n[vv]^2);
s[t_]:={0,0,p0}/(2 q) Sin[ω t]
phi67=(q c (rv+vv tau66).s'[t-tau66])/(2 Pi ϵ0 (c^2 n[rv]^2-n[Cross[rv,vv]]^2));
A68 = vv/c^2 phi67 + (q s'[t-tau66])/(2 Pi ϵ0 c Sqrt[c^2 n[rv]^2-n[Cross[rv,vv]]^2]);
v72 = -vx+Sqrt[c^2-(v^2-vx^2)] /. v^2->vx^2+vy^2+vz^2;
phi73=(q c (ex+vv/v72).s'[t-rx/v72])/(2 Pi ϵ0 (c^2-(v^2-vx^2)) rx)/. v^2->vx^2+vy^2+vz^2;
A74=vv/c^2 phi73 + (q s'[t-rx/v72])/(2 Pi ϵ0 c rx Sqrt[c^2-(v^2-vx^2)]) /. v^2->vx^2+vy^2+vz^2;

(* Test of Eq. 71 *)
(tau66 /. {ry->0,rz->0}) ==rx/v72//FullSimplify[#,Assumptions->{rx>0}]&
(* Test of Eq. 73 *)
(phi67 /. {ry->0,rz->0}) == phi73//FullSimplify[#,Assumptions->{rx>0}]&
(* Test of Eq. 74 *)
(A68 /. {ry->0,rz->0}) == A74//FullSimplify[#,Assumptions->{rx>0}]&
(* Test of Eq. 75 *)
D[A74,rx]==-(A74/rx+1/v72 D[A74,t])//FullSimplify
(* Test of Eq. 76 *)
D[phi73,rx]==-(phi73/rx+1/v72 D[phi73,t])//FullSimplify

tau85 = n[rv]/c+rv.vv/c^2;
phi86 = q/(2 Pi ϵ0 c n[rv])(rv/n[rv]+vv/c).s'[t-tau85];
A87 = q/(2 Pi ϵ0 c^2 n[rv])(s'[t-tau85] + (rv/n[rv]).s'[t-tau85] vv/c);
vvh=h vv;
tau66 = (rv.vvh+Sqrt[c^2 n[rv]^2-n[Cross[rv,vvh]]^2])/(c^2-n[vvh]^2);
phi67 =(q c (rv+vvh tau66).s'[t-tau85])/(2 Pi ϵ0 (c^2 n[rv]^2-n[Cross[rv,vvh]]^2));
A68 = vvh/c^2 phi67 + (q s'[t-tau85])/(2 Pi ϵ0 c Sqrt[c^2 n[rv]^2-n[Cross[rv,vvh]]^2]);

(* Test of Eq. 85 *)
tau85 == Normal[Series[tau66,{h,0,1}]] /. h->1 //FullSimplify[#,Assumptions->{c>0}]&
(* Test of Eq. 86 *)
phi86 == Normal[Series[phi67,{h,0,1}]] /. h->1 //FullSimplify[#,Assumptions->{c>0}]&
(* Test of Eq. 87 *)
A87== Normal[Series[A68,{h,0,1}]] /. h->1 //FullSimplify[#,Assumptions->{c>0}]&

Ah[t_]:={Ax[t],Ay[t],Az[t]}
F80=-qd((1+tau vv.rv/n[rv]^2)Ah'[t]-tau rv/n[rv]^2 Φ'[t]);
F88 = -qd(Ah'[t]-rv/(n[rv] c) Φ'[t])(1+(rv.vv)/(n[rv] c))-qd ((rv.vv)/(n[rv] c))^2 Ah'[t];

(* Test of Eq. 88 *)
F88 ==(F80 /. tau->tau85)//FullSimplify

F89 = -qd(D[A87,t]-rv/(n[rv] c) D[phi86,t])(1+(rv.vv)/(n[rv] c));
F90 = -(qd q)/(2 Pi ϵ0 c^2 n[rv])(1+(rv.vv)/(n[rv] c))(s''[t-tau85]-(rv/n[rv]).s''[t-tau85] rv/n[rv]) -(qd q)/(2 Pi ϵ0 c^2 n[rv])(1+(rv.vv)/(n[rv] c))((rv/n[rv]).s''[t-tau85] vv/c-(vv/c).s''[t-tau85] rv/n[rv]);
F91 = (qd q)/(2 Pi ϵ0 c^2 n[rv])(1+(rv.vv)/(n[rv] c))(Cross[rv/n[rv],Cross[rv/n[rv],s''[t-tau85]]]) +(qd q)/(2 Pi ϵ0 c^2 n[rv])(1+(rv.vv)/(n[rv] c))(Cross[Cross[vv/c,rv/n[rv]],s''[t-tau85]]) ;

(* Test of Eq. 90 *)
F89 == F90//FullSimplify
(* Test of Eq. 91 *)
F89 == F91//FullSimplify