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;
reserve GR,R for RestFunc of REAL-NS n;
reserve DFG,L for LinearFunc of REAL-NS n;

theorem Th29:
for f be PartFunc of REAL,REAL n st
 1 <= i & i <= n & f is_differentiable_on X holds
   (Proj(i,n)*f) is_differentiable_on X &
   Proj(i,n)*(f`|X) = (Proj(i,n)*f)`|X
proof
  let f be PartFunc of REAL,REAL n;
  assume
A1: 1 <= i & i <= n & f is_differentiable_on X;
  then
A2: X is open Subset of REAL by Th4,Th6;
  reconsider g=f as PartFunc of REAL,REAL-NS n by REAL_NS1:def 4;
A3: X c= dom g by A1;
  now let x;
    assume x in X;
    then f is_differentiable_in x by A2,A1,Th5;
    hence g is_differentiable_in x;
  end;
  then
A4: g is_differentiable_on X  by A2,A3,NDIFF_3:10;
  hence (Proj(i,n)*f) is_differentiable_on X by A1,Th28;
A5: dom (g`|X) = X &
    for x st x in X holds (g`|X).x = diff(g,x) by A4,NDIFF_3:def 6;
A6: dom (f`|X) = dom (g`|X) by A1,Def4,A5;
A7: now let x be Element of REAL;
    assume x in dom (f`|X);
    then
A8: x in X by A1,Def4;
    then
A9: (f`|X).x = diff(f,x) by A1,Def4;
    diff(f,x) = diff(g,x) by Th3;
    hence (f`|X).x = (g`|X).x by A9,A8,A4,NDIFF_3:def 6;
  end;
  g`|X is PartFunc of REAL,REAL n by REAL_NS1:def 4;
  then Proj(i,n)*(f`|X) = Proj(i,n)*(g`|X) by A6,A7,PARTFUN1:5;
  hence thesis by A4,A1,Th28;
end;
