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 Th29:
  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
    & u `| Z is_continuous_on Z
    & v is_differentiable_on Z
    & v `| Z is_continuous_on Z
    & w = <:u,v:>
  holds
     w is_differentiable_on Z
   & w `| Z is_continuous_on Z
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
    & u `| Z is_continuous_on Z
    & v is_differentiable_on Z
    & v `| Z is_continuous_on Z
    & w = <:u,v:>;
  then
  A2: 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] by Th28;

  thus w is_differentiable_on Z by A1,Th28;
  A3: Z = dom(w`|Z) by A2,NDIFF_1:def 9;
  set f = w `| Z;
  set g = u `| Z;
  set h = v `| Z;

  for x0 be Point of S
  for r be Real st x0 in Z & 0 < r
  holds
    ex s be Real
    st 0 < s
    & for x1 be Point of S
       st x1 in Z & ||.x1 - x0.|| < s
      holds ||.f/.x1 - f/.x0.|| < r
  proof
    let x0 be Point of S;
    let r0 be Real;
    assume A4: x0 in Z & 0 < r0;
    set rr0 = r0/2;
    A5: 0 < rr0 < r0 by A4,XREAL_1:215,216;

    set r = rr0/2;

    consider s1 be Real such that
    A6: 0 < s1
      & for x1 be Point of S
        st x1 in Z & ||.x1 - x0.|| < s1
        holds ||.g/.x1 - g/.x0.|| < r
        by A1,A4,A5,NFCONT_1:19,XREAL_1:215;

    consider s2 be Real such that
    A7: 0 < s2
      & for x1 be Point of S
        st x1 in Z & ||.x1 - x0.|| < s2
        holds ||.h/.x1 - h/.x0.|| < r
        by A1,A4,A5,NFCONT_1:19,XREAL_1:215;

    reconsider s = min(s1,s2) as Real;
    take s;
    thus 0 < s by A6,A7,XXREAL_0:15;

    let x1 be Point of S;
    assume A8: x1 in Z & ||.x1 - x0.|| < s;

    s <= s1 by XXREAL_0:17;
    then ||.x1 - x0.|| < s1 by A8,XXREAL_0:2;
    then A9: ||.g/.x1 - g/.x0.|| < r by A6,A8;

    s <= s2 by XXREAL_0:17;
    then ||.x1 - x0.|| < s2 by A8,XXREAL_0:2;
    then A10: ||.h/.x1 - h/.x0.|| < r by A7,A8;

    A11: now
      let dx be Point of S;
      A12: (f/.x1 - f/.x0).dx = (f/.x1).dx - (f/.x0) .dx by LOPBAN_1:40;
      A13: (f/.x0).dx = [(g/.x0).dx, (h/.x0).dx] by A1,A4,Th28;
      A14: (f/.x1).dx = [(g/.x1).dx, (h/.x1).dx] by A1,A8,Th28;

      -(f/.x0).dx = [-(g/.x0).dx, -(h/.x0).dx] by A13,PRVECT_3:18;
      then ((f/.x1) - (f/.x0)).dx
       = [(g/.x1).dx - (g/.x0).dx ,(h/.x1).dx - (h/.x0).dx]
         by A12,A14,PRVECT_3:18
      .= [(g/.x1 - g/.x0).dx, (h/.x1).dx - (h/.x0).dx] by LOPBAN_1:40
      .= [(g/.x1 - g/.x0).dx, (h/.x1 - h/.x0).dx] by LOPBAN_1:40;

      then
      A15: ||.(f/.x1 - f/.x0).dx.||
        <= ||.(g/.x1 - g/.x0).dx.|| + ||.(h/.x1 - h/.x0).dx.|| by Th17;

      reconsider g10 = g/.x1 - g/.x0 as Lipschitzian LinearOperator of S,T
        by LOPBAN_1:def 9;
      ||.(g/.x1 - g/.x0).dx.|| = ||.g10.dx.||;
      then A16: ||.(g/.x1 - g/.x0).dx.|| <= ||.g/.x1 - g/.x0.|| * ||.dx.||
        by LOPBAN_1:32;

      0 <= ||.dx.|| by NORMSP_1:4;
      then ||.g/.x1 - g/.x0.|| * ||.dx.|| <= r * ||.dx.|| by A9,XREAL_1:64;
      then A17: ||.(g/.x1 - g/.x0).dx .|| <= r * ||.dx.|| by A16,XXREAL_0:2;

      reconsider h10 = h/.x1 - h/.x0 as Lipschitzian LinearOperator of S,U
        by LOPBAN_1:def 9;
      ||.(h/.x1 - h/.x0).dx.|| = ||.h10.dx.||;
      then
      A18: ||.(h/.x1 - h/.x0).dx .|| <= ||.h/.x1 - h/.x0.|| * ||.dx.||
        by LOPBAN_1:32;
      0 <= ||.dx.|| by NORMSP_1:4;
      then ||.h/.x1 - h/.x0.|| * ||.dx.|| <= r * ||.dx.|| by A10,XREAL_1:64;
      then ||.(h/.x1 - h/.x0).dx.|| <= r * ||.dx.|| by A18,XXREAL_0:2;
      then ||.(g/.x1 - g/.x0).dx.|| + ||.(h/.x1 - h/.x0).dx.||
        <= r * ||.dx.|| + r * ||.dx.|| by A17,XREAL_1:7;
      hence ||.(f/.x1 - f/.x0).dx.|| <= 2 * r * ||.dx.|| by A15,XXREAL_0:2;
    end;

    reconsider f10 = f/.x1 - f/.x0
      as Lipschitzian LinearOperator of S,[:T,U:] by LOPBAN_1:def 9;

    now
      let s be Real;
      assume s in PreNorms f10;
      then consider dx be VECTOR of S such that
      A19: s = ||.f10.dx.|| & ||.dx.|| <= 1;
      A20: s <= rr0 * ||. dx .|| by A19,A11;
      rr0 * ||.dx.|| <= rr0 * 1 by A5,A19,XREAL_1:64;
      hence s <= rr0 by A20,XXREAL_0:2;
    end;

    then upper_bound PreNorms f10 <= rr0 by SEQ_4:45;
    then ||.f/.x1 - f/.x0.|| <= rr0 by LOPBAN_1:30;
    hence ||.f/.x1 - f/.x0.|| < r0 by A5,XXREAL_0:2;
  end;
  hence f is_continuous_on Z by A3,NFCONT_1:19;
end;
