reserve S,T,W,Y for RealNormSpace;
reserve f,f1,f2 for PartFunc of S,T;
reserve Z for Subset of S;
reserve i,n for Nat;

theorem
  for X, Y be RealNormSpace,
  f be PartFunc of product <*X,Y*>, W,
  D be Subset of product <*X,Y*>
  st f is_differentiable_on D holds
  for z be Point of product <*X,Y*>
  st z in dom (f`| D ) holds
  (f`| D ).z = ((f*IsoCPNrSP(X,Y) `| (IsoCPNrSP(X,Y))"D)
  /.((IsoCPNrSP(X,Y)").z)) *(IsoCPNrSP(X,Y)")
  proof
    let X, Y be RealNormSpace,
    f be PartFunc of product <*X,Y*>, W,
    D be Subset of product <*X,Y*>;
    assume AS2: f is_differentiable_on D;
    then OP1: D is open by NDIFF_1:32;
    set I = IsoCPNrSP(X,Y);
    X1: I is one-to-one onto &
    ( for x be Point of X, y be Point of Y holds I.(x,y) = <*x,y*> ) &
    0. product <*X,Y*> = I.(0.[:X,Y:]) & I is isometric by defISO,ZeZe;
    set J = (IsoCPNrSP(X,Y)");
    P1: dom (f`| D) = D &
    for x be Point of product <*X,Y*> st x in D holds (f`| D)/.x = diff(f,x)
    by NDIFF_1:def 9,AS2;
    set g = f*I;
    set E = I"D;
    P3: g is_differentiable_on E by LM155,AS2;
    for z be Point of product <*X,Y*> st z in dom (f`| D)
    holds (f`| D).z = ((g`| E )/.(J.z)) *I"
    proof
      let z be Point of product <*X,Y*>;
      assume F1: z in dom (f`| D);
      then
      F2: (f`| D).z = (f`| D)/.z by PARTFUN1:def 6
      .= diff(f,z) by F1,P1;
      F3: f is_differentiable_in z by F1,OP1,P1,AS2,NDIFF_1:31;
      consider w be Point of [:X,Y:] such that
      F4: z = IsoCPNrSP(X,Y).w by X1,FUNCT_2:113;
      reconsider I0 = I as Point of R_NormSpace_of_BoundedLinearOperators
      ( [:X,Y:],product <*X,Y*> ) by LOPBAN_1:def 9;
      F11: diff(f,z) * I0 * I0"
      = modetrans(diff(f,z), product <*X,Y*>,W)
      * ( modetrans(I0,[:X,Y:],product <*X,Y*>) * I0" ) by RELAT_1:36
      .= modetrans(diff(f,z), product <*X,Y*>,W)
      * ( I * I" ) by LOPBAN_1:def 11
      .= modetrans(diff(f,z), product <*X,Y*>,W)
      * (id rng I0) by FUNCT_1:39
      .= modetrans(diff(f,z), product <*X,Y*>,W) by X1,FUNCT_2:17
      .= (f`| D).z by F2,LOPBAN_1:def 11;
      w in E by F1,F4,P1,FUNCT_2:38; then
      F12: ((g`| E )/.w) *I0" = diff(g,w)*I0" by P3,NDIFF_1:def 9;
      F13: w = J.z by F4,FUNCT_2:26;
      thus (f`| D).z = ((g`| E )/.(J.z)) *I" by F3,F4,F11,F12,F13,LM120;
    end;
    hence thesis;
  end;
