#Maple proof that m_p and m_rp in (34),(35) are identical to (43)-(51), 3D

restart;
with(plots):
with(LinearAlgebra):


xx := x-x0;
yy := y-y0;
zz := z-z0;
tt := t-t0;

#3D veclocity field in sufficiently high Taylor approximation around (x0,y0,t0)
Vf := Vector([
uc + u_x*xx + u_y*yy + u_z*zz + u_t*tt
+ (1/2)*u_xx*xx*xx
+ (1/2)*u_yy*yy*yy
+ (1/2)*u_zz*zz*zz
+ (1/2)*u_tt*tt*tt
+ (1/1)*u_xy*xx*yy
+ (1/1)*u_xz*xx*zz
+ (1/1)*u_xt*xx*tt
+ (1/1)*u_yz*yy*zz
+ (1/1)*u_yt*yy*tt
+ (1/1)*u_zt*zz*tt
+ (1/6)*u_xxx*xx*xx*xx
+ (1/2)*u_xxy*xx*xx*yy
+ (1/2)*u_xxz*xx*xx*zz
+ (1/2)*u_xxt*xx*xx*tt
+ (1/2)*u_xyy*xx*yy*yy
+ (1/1)*u_xyz*xx*yy*zz
+ (1/1)*u_xyt*xx*yy*tt
+ (1/2)*u_xzz*xx*zz*zz
+ (1/1)*u_xzt*xx*zz*tt
+ (1/2)*u_xtt*xx*tt*tt
+ (1/6)*u_yyy*yy*yy*yy
+ (1/2)*u_yyz*yy*yy*zz
+ (1/2)*u_yyt*yy*yy*tt
+ (1/2)*u_yzz*yy*zz*zz
+ (1/1)*u_yzt*yy*zz*tt
+ (1/2)*u_ytt*yy*tt*tt
+ (1/6)*u_zzz*zz*zz*zz
+ (1/2)*u_zzt*zz*zz*tt
+ (1/2)*u_ztt*zz*tt*tt
+ (1/2)*u_ttt*tt*tt*tt
,
vc + v_x*xx + v_y*yy + v_z*zz + v_t*tt
+ (1/2)*v_xx*xx*xx
+ (1/2)*v_yy*yy*yy
+ (1/2)*v_zz*zz*zz
+ (1/2)*v_tt*tt*tt
+ (1/1)*v_xy*xx*yy
+ (1/1)*v_xz*xx*zz
+ (1/1)*v_xt*xx*tt
+ (1/1)*v_yz*yy*zz
+ (1/1)*v_yt*yy*tt
+ (1/1)*v_zt*zz*tt
+ (1/6)*v_xxx*xx*xx*xx
+ (1/2)*v_xxy*xx*xx*yy
+ (1/2)*v_xxz*xx*xx*zz
+ (1/2)*v_xxt*xx*xx*tt
+ (1/2)*v_xyy*xx*yy*yy
+ (1/1)*v_xyz*xx*yy*zz
+ (1/1)*v_xyt*xx*yy*tt
+ (1/2)*v_xzz*xx*zz*zz
+ (1/1)*v_xzt*xx*zz*tt
+ (1/2)*v_xtt*xx*tt*tt
+ (1/6)*v_yyy*yy*yy*yy
+ (1/2)*v_yyz*yy*yy*zz
+ (1/2)*v_yyt*yy*yy*tt
+ (1/2)*v_yzz*yy*zz*zz
+ (1/1)*v_yzt*yy*zz*tt
+ (1/2)*v_ytt*yy*tt*tt
+ (1/6)*v_zzz*zz*zz*zz
+ (1/2)*v_zzt*zz*zz*tt
+ (1/2)*v_ztt*zz*tt*tt
+ (1/2)*v_ttt*tt*tt*tt
,
wc + w_x*xx + w_y*yy + w_z*zz + w_t*tt
+ (1/2)*w_xx*xx*xx
+ (1/2)*w_yy*yy*yy
+ (1/2)*w_zz*zz*zz
+ (1/2)*w_tt*tt*tt
+ (1/1)*w_xy*xx*yy
+ (1/1)*w_xz*xx*zz
+ (1/1)*w_xt*xx*tt
+ (1/1)*w_yz*yy*zz
+ (1/1)*w_yt*yy*tt
+ (1/1)*w_zt*zz*tt
+ (1/6)*w_xxx*xx*xx*xx
+ (1/2)*w_xxy*xx*xx*yy
+ (1/2)*w_xxz*xx*xx*zz
+ (1/2)*w_xxt*xx*xx*tt
+ (1/2)*w_xyy*xx*yy*yy
+ (1/1)*w_xyz*xx*yy*zz
+ (1/1)*w_xyt*xx*yy*tt
+ (1/2)*w_xzz*xx*zz*zz
+ (1/1)*w_xzt*xx*zz*tt
+ (1/2)*w_xtt*xx*tt*tt
+ (1/6)*w_yyy*yy*yy*yy
+ (1/2)*w_yyz*yy*yy*zz
+ (1/2)*w_yyt*yy*yy*tt
+ (1/2)*w_yzz*yy*zz*zz
+ (1/1)*w_yzt*yy*zz*tt
+ (1/2)*w_ytt*yy*tt*tt
+ (1/6)*w_zzz*zz*zz*zz
+ (1/2)*w_zzt*zz*zz*tt
+ (1/2)*w_ztt*zz*tt*tt
+ (1/2)*w_ttt*tt*tt*tt
]);

#dervatives of Vf
NablaVf := Matrix([
[diff(Vf[1],x) , diff(Vf[1],y), diff(Vf[1],z)], 
[diff(Vf[2],x) , diff(Vf[2],y), diff(Vf[2],z)],
[diff(Vf[3],x) , diff(Vf[3],y), diff(Vf[3],z)]]);
Jf := NablaVf:
Vf_t := diff(Vf,t);


###

#pathline in sufficiently high Taylor approximation around (x0,y0,t0)
Pf := Vector([
px + tt*px_t + (1/2)*tt^2*px_tt, 
py + tt*py_t + (1/2)*tt^2*py_tt,
pz + tt*pz_t + (1/2)*tt^2*pz_tt]);
#derivatives of pathline
Pf_t := diff(Pf,t);
Pf_tt := diff(Pf_t,t);



X := Vector([x,y,z]);

#unknown vorticity of W in sufficiently high Taylor Expansion around t0
Omegaf := Vector([
omu0 + tt*omu0_dot + (1/2)*tt^2*omu0_dotdot,
omv0 + tt*omv0_dot + (1/2)*tt^2*omv0_dotdot,
omw0 + tt*omw0_dot + (1/2)*tt^2*omw0_dotdot
]);

#A(omega), (eq (4))
AOmegaf := Matrix([
[         0 ,-Omegaf[3], Omegaf[2] ],
[ Omegaf[3] ,         0,-Omegaf[1] ],
[-Omegaf[2] , Omegaf[1],         0 ]]); 

#(33), unknown Killing field
Wf := Pf_t + Multiply( AOmegaf ,X-Pf) ;

#derivatives of Wf
NablaWf := Matrix([
[diff(Wf[1],x) , diff(Wf[1],y), diff(Wf[1],z)], 
[diff(Wf[2],x) , diff(Wf[2],y), diff(Wf[2],z)],
[diff(Wf[3],x) , diff(Wf[3],y), diff(Wf[3],z)]]);
Wf_t := diff(Wf,t);

# we are interested in the time t=t0
t := t0;


#(34),(35)
M_P := simplify(Vf_t - Wf_t + Multiply(NablaVf,Wf) - Multiply(NablaWf,Vf));
M_r_P := simplify(Vf - Wf);


####

#(42)
A := Vector([omu0,omv0,omw0,omu0_dot,omv0_dot,omw0_dot]);

#(44), left
Vfdot_P := Multiply(NablaVf,Pf_t) + Vf_t - Pf_tt;


DeltaXf := X-Pf;

ADeltaXf := Matrix([
[          0 ,-DeltaXf[3], DeltaXf[2] ],
[ DeltaXf[3] ,          0,-DeltaXf[1] ],
[-DeltaXf[2] , DeltaXf[1],          0 ]]); 

DeltaVf := Vf - Pf_t;

ADeltaVf := Matrix([
[          0 ,-DeltaVf[3], DeltaVf[2] ],
[ DeltaVf[3] ,          0,-DeltaVf[1] ],
[-DeltaVf[2] , DeltaVf[1],          0 ]]);


Hf := Multiply( NablaVf, ADeltaXf)-ADeltaVf;

#(47)
Mf_P  := Matrix([
[ Hf[1,1],Hf[1,2],Hf[1,3], -ADeltaXf[1,1],-ADeltaXf[1,2],-ADeltaXf[1,3] ],
[ Hf[2,1],Hf[2,2],Hf[2,3], -ADeltaXf[2,1],-ADeltaXf[2,2],-ADeltaXf[2,3] ],
[ Hf[3,1],Hf[3,2],Hf[3,3], -ADeltaXf[3,1],-ADeltaXf[3,2],-ADeltaXf[3,3] ]]);

#(43) left
M_P_new := Vfdot_P - Multiply(Mf_P,A);


#(44), right
Vfdot_r_P := Vf - Pf_t;

#(48)
Mf_r_P := simplify(Matrix([
[-ADeltaXf[1,1],-ADeltaXf[1,2],-ADeltaXf[1,3] ,0 , 0, 0 ],
[-ADeltaXf[2,1],-ADeltaXf[2,2],-ADeltaXf[2,3] ,0 , 0, 0 ],
[-ADeltaXf[3,1],-ADeltaXf[3,2],-ADeltaXf[3,3] ,0 , 0, 0 ]]));

#(43), right
M_r_P_new := Vfdot_r_P - Multiply(Mf_r_P,A);

#show (34)=(43) left
simplify(M_P - M_P_new);

#show (35)=(43) right
simplify(M_r_P - M_r_P_new);




