 reserve j for set;
 reserve p,r for Real;
 reserve S,T,F for RealNormSpace;
 reserve x0 for Point of S;
 reserve g for PartFunc of S,T;
 reserve c for constant sequence of S;
 reserve R for RestFunc of S,T;
 reserve G for RealNormSpace-Sequence;
 reserve i for Element of dom G;
 reserve f for PartFunc of product G,F;
 reserve x for Element of product G;
reserve G for RealNormSpace-Sequence;
reserve F for RealNormSpace;
reserve i for Element of dom G;
reserve f,f1,f2 for PartFunc of product G, F;
reserve x for Point of product G;
reserve X for set;

theorem Th24:
 for G be RealNormSpace-Sequence,
     T be RealNormSpace,
     i be set,
     f be PartFunc of product G, T,
     Z be Subset of product G
       st Z is open holds
   f is_partial_differentiable_on Z,i
iff
   Z c=dom f &
   for x be Point of product G st x in Z holds
     f is_partial_differentiable_in x,i
proof
   let G be RealNormSpace-Sequence,
       T be RealNormSpace,
       i be set,
       f be PartFunc of product G, T,
       Z be Subset of product G;
   assume
A1: Z is open;
   set i0=In(i,dom G);
   set S=G.i0;
   set RNS= R_NormSpace_of_BoundedLinearOperators(S,T);
   thus f is_partial_differentiable_on Z,i implies
         Z c=dom f &
         for x be Point of product G st x in Z holds
           f is_partial_differentiable_in x,i
   proof
    assume A2: f is_partial_differentiable_on Z,i;
    hence Z c=dom f;
    let nx0 be Point of product G;
    reconsider x0=proj(i0).nx0 as Point of S;
    assume A4: nx0 in Z; then
    f|Z is_partial_differentiable_in nx0,i by A2; then
    consider N0 being Neighbourhood of x0 such that
A5:  N0 c= dom((f|Z)*reproj(i0,nx0)) and
A6:  ex L be Point of RNS,R be RestFunc of S,T st
      for x be Point of S st x in N0 holds
       ((f|Z)*reproj(i0,nx0))/.x-((f|Z)*reproj(i0,nx0))/.x0
         = L .( x-x0)+R/.(x-x0) by NDIFF_1:def 6;
    consider L be Point of RNS,R be RestFunc of S,T such that
A7:  for x be Point of S st x in N0 holds
      ((f|Z)*reproj(i0,nx0))/.x - ((f|Z)*reproj(i0,nx0))/.x0
        = L.(x-x0) + R/.(x-x0) by A6;
    consider N1 being Neighbourhood of x0 such that
A8:  for x be Point of S st x in N1 holds
      (reproj(i0,nx0)).x in Z by A1,A4,Th23;
A9:now let x be Point of S;
     assume x in N1; then
     (reproj(i0,nx0)).x in Z by A8; then
     (reproj(i0,nx0)).x in (dom f) /\ Z by A2,XBOOLE_0:def 4;
     hence (reproj(i0,nx0)).x in dom(f|Z) by RELAT_1:61;
    end;
    reconsider N = N0 /\ N1 as Neighbourhood of x0 by Th8;
    (f|Z)*reproj(i0,nx0) c= f*reproj(i0,nx0) by RELAT_1:29,59; then
A10:dom((f|Z)*reproj(i0,nx0)) c= dom(f*reproj(i0,nx0)) by RELAT_1:11;
    N c= N0 by XBOOLE_1:17; then
A11:N c= dom(f*reproj(i0,nx0)) by A5,A10;
    now let x be Point of S;
     assume A12: x in N; then
A13: x in N0 by XBOOLE_0:def 4;
A14: dom(reproj(i0,nx0)) = the carrier of G.i0 by FUNCT_2:def 1;

     x in N1 by A12,XBOOLE_0:def 4; then
A15: (reproj(i0,nx0)).x in dom(f|Z) by A9; then
A16: (reproj(i0,nx0)).x in dom f &
      (reproj(i0,nx0)).x in Z by RELAT_1:57;
A17: (reproj(i0,nx0)).x0 in dom(f|Z) by A9,NFCONT_1:4; then
A18: (reproj(i0,nx0)).x0 in dom f &
      (reproj(i0,nx0)).x0 in Z by RELAT_1:57;

A19: ((f|Z)*reproj(i0,nx0))/.x
       =(f|Z)/.(reproj(i0,nx0)/.x) by A15,A14,PARTFUN2:4
      .= f/. (reproj(i0,nx0)/.x) by A16,PARTFUN2:17
      .= (f*reproj(i0,nx0))/.x by A14,A16,PARTFUN2:4;
     ((f|Z)*reproj(i0,nx0))/.x0
       =(f|Z)/. (reproj(i0,nx0)/.x0 ) by A14,A17,PARTFUN2:4
      .= f/. (reproj(i0,nx0)/.x0) by A18,PARTFUN2:17
      .= (f*reproj(i0,nx0))/.x0 by A14,A18,PARTFUN2:4;
     hence (f*reproj(i0,nx0))/.x-(f*reproj(i0,nx0))/.x0 =L.(x-x0)+R/.(x-x0)
       by A7,A13,A19;
    end;
    hence f is_partial_differentiable_in nx0,i by A11,NDIFF_1:def 6;
   end;
   assume that
A20:Z c=dom f and
A21:for nx be Point of product G st nx in Z holds
     f is_partial_differentiable_in nx,i;
    now let nx0 be Point of product G;
    assume A22: nx0 in Z; then
A23:f is_partial_differentiable_in nx0,i by A21;
    reconsider x0=proj(i0).nx0 as Point of S;

    consider N0 being Neighbourhood of x0 such that
     N0 c= dom (f*reproj(i0,nx0)) and
A24: ex L be Point of RNS,R be RestFunc of S,T st
      for x be Point of S st x in N0 holds
       (f*reproj(i0,nx0))/.x-(f*reproj(i0,nx0))/.x0
         = L.(x-x0)+R  /.(x-x0) by A23,NDIFF_1:def 6;

    consider N1 being Neighbourhood of x0 such that
A25: for x be Point of S st x in N1 holds
       (reproj(i0,nx0)).x in Z by A1,A22,Th23;

A26:now let x be Point of S;
     assume x in N1; then
     (reproj(i0,nx0)).x in Z by A25; then
     (reproj(i0,nx0)).x in (dom f) /\ Z by A20,XBOOLE_0:def 4;
     hence (reproj(i0,nx0)).x in dom(f|Z) by RELAT_1:61;
    end;

A27:N1 c= dom((f|Z)*reproj(i0,nx0))
    proof
     let z be object;
     assume A28:z in N1; then
A29: z in the carrier of S;
     reconsider x=z as Point of S by A28;
A30: (reproj(i0,nx0)).x in dom(f|Z) by A28,A26;
     z in dom (reproj(i0,nx0)) by A29,FUNCT_2:def 1;
     hence z in dom((f|Z)*reproj(i0,nx0)) by A30,FUNCT_1:11;
    end;
    reconsider N=N0 /\ N1 as Neighbourhood of x0 by Th8;
    N c= N1 by XBOOLE_1:17; then
A31:N c= dom((f|Z)*reproj(i0,nx0)) by A27;

    consider L be Point of RNS,R be RestFunc of S,T such that
A32: for x be Point of S st x in N0 holds
      (f*reproj(i0,nx0))/.x-(f*reproj(i0,nx0))/.x0=L.(x-x0)+R/.(x-x0) by A24;
    now let x be Point of S;
     assume A33: x in N; then
A34: x in N0 by XBOOLE_0:def 4;
A35: dom (reproj(i0,nx0)) = the carrier of G.i0 by FUNCT_2:def 1;
     x in N1 by A33,XBOOLE_0:def 4; then
A36: (reproj(i0,nx0)).x in dom(f|Z) by A26; then
A37: (reproj(i0,nx0)).x in dom f /\ Z by RELAT_1:61; then
A38: (reproj(i0,nx0)).x in dom f by XBOOLE_0:def 4;

A39: (reproj(i0,nx0)).x0 in dom(f|Z) by A26,NFCONT_1:4; then
A40: (reproj(i0,nx0)).x0 in dom f /\ Z by RELAT_1:61; then
A41: (reproj(i0,nx0)).x0 in dom f by XBOOLE_0:def 4;

A42: ((f|Z)*reproj(i0,nx0))/.x
       = (f|Z)/.(reproj(i0,nx0)/.x) by A36,A35,PARTFUN2:4
      .= f/.(reproj(i0,nx0)/.x) by A37,PARTFUN2:16
      .= (f*reproj(i0,nx0))/.x by A35,A38,PARTFUN2:4;
     ((f|Z)*reproj(i0,nx0))/.x0
       = (f|Z)/. (reproj(i0,nx0)/.x0 ) by A35,A39,PARTFUN2:4
      .= f/. (reproj(i0,nx0)/.x0) by A40,PARTFUN2:16
      .= (f*reproj(i0,nx0))/.x0 by A35,A41,PARTFUN2:4;
     hence ((f|Z)*reproj(i0,nx0))/.x -((f|Z)*reproj(i0,nx0))/.x0
             = L.(x-x0)+R/.(x-x0) by A42,A34,A32;
    end;
    hence (f|Z) is_partial_differentiable_in nx0,i by A31,NDIFF_1:def 6;
   end;
   hence thesis by A20;
end;
