reserve F for RealNormSpace;
reserve G for RealNormSpace;
reserve y,X for set;
reserve x,x0,x1,x2,g,g1,g2,r,r1,s,p,p1,p2 for Real;
reserve i,m,k for Element of NAT;
reserve n,k for non zero Element of NAT;
reserve Y for Subset of REAL;
reserve Z for open Subset of REAL;
reserve s1,s3 for Real_Sequence;
reserve seq,seq1 for sequence of G;
reserve f,f1,f2 for PartFunc of REAL,REAL n;
reserve g,g1,g2 for PartFunc of REAL,REAL-NS n;
reserve h for 0-convergent non-zero Real_Sequence;
reserve c for constant Real_Sequence;

theorem Th15:
  Z c= dom (f1+f2) & f1 is_differentiable_on Z & f2 is_differentiable_on Z
  implies f1+f2 is_differentiable_on Z &
  for x st x in Z holds ((f1+f2)`|Z).x = diff(f1,x) + diff(f2,x)
proof
  assume that
A1: Z c= dom (f1+f2) and
A2: f1 is_differentiable_on Z & f2 is_differentiable_on Z;
  reconsider g1=f1,g2=f2 as PartFunc of REAL,REAL-NS n by REAL_NS1:def 4;
A3: f1+f2 = g1+g2 by NFCONT_4:5;
A4: Z c= dom (g1+g2) by A1,NFCONT_4:5;
A5: Z c= dom g1 & Z c= dom g2 by A2;
  now
    let x;
    assume x in Z; then
    f1|Z is_differentiable_in x by A2;
    hence
    g1|Z is_differentiable_in x;
  end;
  then
A6: g1 is_differentiable_on Z by A5,NDIFF_3:def 5;
  now
    let x;
    assume x in Z;
    then f2|Z is_differentiable_in x by A2;
    hence g2|Z is_differentiable_in x;
  end;
  then g2 is_differentiable_on Z by A5,NDIFF_3:def 5;
  then
A7: g1+g2 is_differentiable_on Z & for x st x in Z holds ((g1+g2)`|Z).x =
  diff(g1,x) + diff(g2,x) by A4,A6,NDIFF_3:17;
  now
    let x;
    assume x in Z;
    then (g1+g2) |Z is_differentiable_in x by A7,NDIFF_3:def 5;
    hence (f1+f2) |Z is_differentiable_in x by A3;
  end;
  hence
A8: f1+f2 is_differentiable_on Z by A1;
    let x;
    assume A9: x in Z;
    then f1 is_differentiable_in x & f2 is_differentiable_in x by A2,Th5;
    then f1+f2 is_differentiable_in x &
    diff(f1+f2,x) = diff(f1,x)+diff(f2,x) by Th11;
    hence thesis by A9,A8,Def4;
end;
