reserve p for Real;
reserve S,T for RealNormSpace;
reserve x0 for Point of S;
reserve f for PartFunc of S,T;
reserve c for constant sequence of S;
reserve R for RestFunc of S,T;

theorem
  for x0 be Point of S st f is_differentiable_in x0 for z be Point of S
holds ( f is_Gateaux_differentiable_in x0,z & Gateaux_diff(f,x0,z)=diff(f,x0).z
  & ex N being Neighbourhood of x0 st
  ( N c= dom f & for h be 0-convergent non-zero
Real_Sequence, c st rng c = {x0} & rng (h*z+c) c= N holds h"(#)(f/*(h*z+c) - f
  /*c) is convergent & Gateaux_diff(f,x0,z)= lim (h"(#)(f/*(h*z+c) - f/*c))) )
proof
  let x0 be Point of S;
  assume f is_differentiable_in x0;
  then consider N being Neighbourhood of x0 such that
A1: N c= dom f and
A2: for z be Point of S holds for h be 0-convergent non-zero Real_Sequence, c
st rng c = {x0} & rng (h*z+c) c= N holds h"(#)(f/*(h*z+c) - f/*c) is convergent
  & diff(f,x0).z = lim (h"(#)(f/*(h*z+c) - f/*c)) by Th1;
  let z be Point of S;
A3: for h be 0-convergent non-zero Real_Sequence,
c st rng c = {x0} & rng (h*z+c)
c= N holds h"(#)(f/*(h*z+c) - f/*c) is convergent & diff(f,x0).z = lim (h"(#)(f
  /*(h*z+c) - f/*c)) by A2;
  then
A4: for e be Real st e > 0
  holds ex d be Real st d > 0 & for h be Real st
|.h.| < d & h <> 0 & h*z+x0 in N holds ||. h"*(f/.(h*z+x0) - f/.x0) - diff(f,
  x0).z .|| < e by A1,Th3;
  hence f is_Gateaux_differentiable_in x0,z by A1;
  hence Gateaux_diff(f,x0,z)=diff(f,x0).z by A1,A4,Def4;
  hence thesis by A1,A3;
end;
