reserve m,n for non zero Element of NAT;
reserve i,j,k for Element of NAT;
reserve Z for set;

theorem Th69:
for m be non zero Element of NAT, Z be Subset of REAL m,
    i be Nat, f be PartFunc of REAL m,REAL, x be Element of REAL m st
  Z is open & Z c= dom f & 1 <= i & i <= m & x in Z
  & f is_partial_differentiable_in x,i
holds
 (f|Z) is_partial_differentiable_in x,i
 & partdiff(f,x,i) = partdiff((f|Z),x,i)
proof
   let m be non zero Element of NAT, X be Subset of REAL m,
       i be Nat, f be PartFunc of REAL m,REAL, nx0 be Element of REAL m;
   assume that
A1:X is open & X c= dom f & 1 <= i & i <= m & nx0 in X
 & f is_partial_differentiable_in nx0,i;
   set x0=proj(i,m).nx0;
   consider N0 being Neighbourhood of x0 such that
A2: N0 c= dom (f*reproj(i,nx0))
  & ex L be LinearFunc,R be RestFunc st
     for x be Real st x in N0 holds
      (f*reproj(i,nx0)).x-(f*reproj(i,nx0)).x0 = L.(x-x0)+R.(x-x0)
         by A1,FDIFF_1:def 4;
   consider N1 being Neighbourhood of x0 such that
A3: for x be Element of REAL st x in N1 holds
     (reproj(i,nx0)).x in X by A1,Lm2;
A4:now let x be Element of REAL;
    assume x in N1; then
    (reproj(i,nx0)).x in X by A3; then
    (reproj(i,nx0)).x in dom f /\ X by A1,XBOOLE_0:def 4;
    hence (reproj(i,nx0)).x in dom(f|X) by RELAT_1:61;
   end;
   consider N being Neighbourhood of x0 such that
A5: N c= N0 & N c= N1 by RCOMP_1:17;
   N1 c= dom((f|X)*reproj(i,nx0))
   proof
    let z be object;
    assume A6:z in N1; then
    reconsider x=z as Element of REAL;
A7: (reproj(i,nx0)).x in dom(f|X) by A6,A4;
    z in REAL by A6; then
    z in dom reproj(i,nx0) by FUNCT_2:def 1;
    hence z in dom((f|X)*reproj(i,nx0)) by A7,FUNCT_1:11;
   end; then
A8:N c= dom((f|X)*reproj(i,nx0)) by A5;
   consider L be LinearFunc,R be RestFunc such that
A9: for x be Real st x in N0 holds
     (f*reproj(i,nx0)).x-(f*reproj(i,nx0)).x0=L.(x-x0)+R.(x-x0) by A2;
A10:
   now let xx be Real;
    assume A11: xx in N;
    reconsider x=xx as Element of REAL by XREAL_0:def 1;
A12:dom reproj(i,nx0) = REAL by FUNCT_2:def 1;
A13:(reproj(i,nx0)).x0 in dom(f|X) by A4,RCOMP_1:16;
A14:((f|X)*reproj(i,nx0)).x = (f|X).(reproj(i,nx0)/.x) by A12,FUNCT_1:13
       .= f.(reproj(i,nx0).x) by A4,A11,A5,FUNCT_1:47
       .= (f*reproj(i,nx0)).x by A12,FUNCT_1:13;
    ((f|X)*reproj(i,nx0)).x0 = (f|X).(reproj(i,nx0).x0) by A12,FUNCT_1:13
       .= f.(reproj(i,nx0).x0) by A13,FUNCT_1:47
       .= (f*reproj(i,nx0)).x0 by A12,FUNCT_1:13;
    hence ((f|X)*reproj(i,nx0)).xx -((f|X)*reproj(i,nx0)).x0
             = L.(xx-x0)+R.(xx-x0) by A14,A11,A9,A5;
   end;
   hence (f|X) is_partial_differentiable_in nx0,i by A8,FDIFF_1:def 4;
   (f|X)*reproj(i,nx0) is_differentiable_in x0 by A8,A10,FDIFF_1:def 4; then
   partdiff((f|X),nx0,i) = L.1 by A10,A8,FDIFF_1:def 5;
   hence thesis by A2,A9,A1,FDIFF_1:def 5;
end;
