reserve D for set;
reserve x,x0,x1,x2,y,y0,y1,y2,z,z0,z1,z2,r,s,t for Real;
reserve p,a,u,u0 for Element of REAL 3;
reserve n,m,k for Element of NAT;
reserve f,f1,f2,f3,g for PartFunc of REAL 3,REAL;
reserve R,R1,R2 for RestFunc;
reserve L,L1,L2 for LinearFunc;

theorem
  a = <*x0,y0,z0*> implies Directiondiff(f,p,a) =
    partdiff(f,p,1)*x0/sqrt(x0^2+y0^2+z0^2)+
    partdiff(f,p,2)*y0/sqrt(x0^2+y0^2+z0^2)+
    partdiff(f,p,3)*z0/sqrt(x0^2+y0^2+z0^2)
proof
    assume
A1: a = <*x0,y0,z0*>;
    Directiondiff(f,p,a) = partdiff(f,p,1)*(a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2))+
      partdiff(f,p,2)*(unitvector(a)).2+partdiff(f,p,3)*(unitvector(a)).3
   .= partdiff(f,p,1)*a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,2)*(unitvector(a)).2+partdiff(f,p,3)*(unitvector(a)).3
      by XCMPLX_1:74
   .= partdiff(f,p,1)*a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,2)*(a.2/sqrt((a.1)^2+(a.2)^2+(a.3)^2))+
      partdiff(f,p,3)*(unitvector(a)).3
   .= partdiff(f,p,1)*a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,2)*a.2/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,3)*(unitvector(a)).3 by XCMPLX_1:74
   .= partdiff(f,p,1)*a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,2)*a.2/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,3)*(a.3/sqrt((a.1)^2+(a.2)^2+(a.3)^2))
   .= partdiff(f,p,1)*a.1/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,2)*a.2/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,3)*a.3/sqrt((a.1)^2+(a.2)^2+(a.3)^2) by XCMPLX_1:74
   .= partdiff(f,p,1)*x0/sqrt(x0^2+y0^2+z0^2)+
      partdiff(f,p,2)*a.2/sqrt((a.1)^2+(a.2)^2+(a.3)^2)+
      partdiff(f,p,3)*a.3/sqrt((a.1)^2+(a.2)^2+(a.3)^2) by A1
   .= partdiff(f,p,1)*x0/sqrt(x0^2+y0^2+z0^2)+
      partdiff(f,p,2)*y0/sqrt(x0^2+y0^2+z0^2)+
      partdiff(f,p,3)*a.3/sqrt((a.1)^2+(a.2)^2+(a.3)^2) by A1
   .= partdiff(f,p,1)*x0/sqrt(x0^2+y0^2+z0^2)+
      partdiff(f,p,2)*y0/sqrt(x0^2+y0^2+z0^2)+
      partdiff(f,p,3)*z0/sqrt(x0^2+y0^2+z0^2) by A1;
    hence thesis;
end;
