reserve F for RealNormSpace;
reserve G for RealNormSpace;
reserve y,X for set;
reserve x,x0,x1,x2,g,g1,g2,r,r1,s,p,p1,p2 for Real;
reserve i,m,k for Element of NAT;
reserve n,k for non zero Element of NAT;
reserve Y for Subset of REAL;
reserve Z for open Subset of REAL;
reserve s1,s3 for Real_Sequence;
reserve seq,seq1 for sequence of G;
reserve f,f1,f2 for PartFunc of REAL,REAL n;
reserve g,g1,g2 for PartFunc of REAL,REAL-NS n;
reserve h for 0-convergent non-zero Real_Sequence;
reserve c for constant Real_Sequence;

theorem
  Z c= dom f & f|Z is constant implies f is_differentiable_on Z &
  for x st x in Z holds (f`|Z).x = 0*n
proof
  assume that
A1: Z c= dom f and
A2: f|Z is constant;
  reconsider g=f as PartFunc of REAL,REAL-NS n by REAL_NS1:def 4;
A3: g|Z is constant by A2;
  then
A4: g is_differentiable_on Z
       & for x st x in Z holds (g`|Z).x = 0.(REAL-NS n) by A1,NDIFF_3:20;
   now
    let x;
    assume x in Z;
    then
    g|Z is_differentiable_in x by A4,NDIFF_3:def 5;
    hence f|Z is_differentiable_in x;
  end;
  hence
A5: f is_differentiable_on Z by A1;
    let x;
    assume A6: x in Z;
    then
A7: (g`|Z).x = 0.(REAL-NS n) by A3,A1,NDIFF_3:20;
A8: (g`|Z).x = diff(g,x) by A6,A4,NDIFF_3:def 6;
A9: (f`|Z).x = diff(f,x) by A6,A5,Def4;
    diff(f,x) = diff(g,x) by Th3;
    hence (f`|Z).x = 0*n by A7,A8,A9,REAL_NS1:def 4;
  end;
