reserve E, F, G,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 Th28:
  for S,T,U be RealNormSpace,
      Z be Subset of S,
      u be PartFunc of S,T,
      v be PartFunc of S,U,
      w be PartFunc of S,[:T,U:]
   st u is_differentiable_on Z
    & v is_differentiable_on Z
    & w = <:u,v:>
  holds
    w is_differentiable_on Z
  & ( for x be Point of S st x in Z
      holds (w`|Z)/.x = <:(u`|Z)/.x, (v`|Z)/.x :> )
  & for x be Point of S st x in Z
    holds
      for dx be Point of S
      holds ((w`|Z)/.x).dx = [((u`|Z)/.x).dx, ((v`|Z)/.x).dx]
proof
  let S,T,U be RealNormSpace,
      Z be Subset of S,
      u be PartFunc of S,T,
      v be PartFunc of S,U,
      w be PartFunc of S,[:T,U:];

  assume
  A1: u is_differentiable_on Z
    & v is_differentiable_on Z
    & w = <:u,v:>;

  A2: dom w = (dom u) /\ (dom v) by A1,FUNCT_3:def 7;
  A3: Z is open by A1,NDIFF_1:32;
  A4: Z c= dom w by A1,A2,XBOOLE_1:19;

  for x be Point of S st x in Z
  holds w is_differentiable_in x
  proof
    let x be Point of S;
    assume A5: x in Z;
    then A6: u is_differentiable_in x by A1,A3,NDIFF_1:31;
    v is_differentiable_in x by A1,A3,A5,NDIFF_1:31;
    hence thesis by A1,A6,Th27;
  end;
  hence A7: w is_differentiable_on Z by A3,A4,NDIFF_1:31;

  thus
  for x be Point of S st x in Z
  holds (w`|Z)/.x = <:(u`|Z)/.x, (v`|Z)/.x:>
  proof
    let x be Point of S;
    assume A8: x in Z;
    then A9: u is_differentiable_in x by A1,A3,NDIFF_1:31;
    A10: v is_differentiable_in x by A1,A3,A8,NDIFF_1:31;
    thus (w`|Z)/.x
     = diff(w,x) by A7,A8,NDIFF_1:def 9
    .= <:diff(u,x),diff(v,x):> by A1,A9,A10,Th27
    .= <:(u`|Z)/.x, diff(v,x):> by A1,A8,NDIFF_1:def 9
    .= <:(u`|Z)/.x, (v`|Z)/.x :> by A1,A8,NDIFF_1:def 9;
  end;
  thus
  for x be Point of S st x in Z
  holds
    for dx be Point of S
    holds ((w`|Z)/.x).dx = [((u`|Z)/.x).dx, ((v`|Z)/.x).dx]
  proof
    let x be Point of S;
    assume A11: x in Z;
    let dx be Point of S;
    A12: u is_differentiable_in x by A1,A3,A11,NDIFF_1:31;
    A13: v is_differentiable_in x by A1,A3,A11,NDIFF_1:31;
    thus ((w`|Z)/.x).dx
     = diff(w,x).dx by A7,A11,NDIFF_1:def 9
    .= [diff(u,x).dx, diff(v,x).dx] by A1,A12,A13,Th27
    .= [((u`|Z)/.x).dx, diff(v,x).dx] by A1,A11,NDIFF_1:def 9
    .= [((u`|Z)/.x).dx,((v`|Z)/.x).dx] by A1,A11,NDIFF_1:def 9;
  end;
end;
