reserve y for object, X for set;
reserve x,x0,x1,x2,g,g1,g2,r,r1,s,p,p1 for Real;
reserve n,m,k for Element of NAT;
reserve Y for Subset of REAL;
reserve Z for open Subset of REAL;
reserve s1,s3 for Real_Sequence;
reserve f,f1,f2 for PartFunc of REAL,REAL;
reserve h for non-zero 0-convergent Real_Sequence;
reserve c for constant Real_Sequence;
reserve R,R1,R2 for RestFunc;
reserve L,L1,L2 for LinearFunc;

theorem
  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;
  now
    let x0;
    assume x0 in Z;
    then f1 is_differentiable_in x0 & f2 is_differentiable_in x0 by A2,Th9;
    hence f1+f2 is_differentiable_in x0 by Th13;
  end;
  hence
A3: f1+f2 is_differentiable_on Z by A1,Th9;
  now
    let x;
    assume
A4: x in Z;
    then
A5: f1 is_differentiable_in x & f2 is_differentiable_in x by A2,Th9;
    thus ((f1+f2)`|Z).x = diff((f1+f2),x) by A3,A4,Def7
      .= diff(f1,x) + diff(f2,x) by A5,Th13;
  end;
  hence thesis;
end;
