reserve y for set;
reserve g,r,s,p,t,x,x0,x1,x2 for Real;
reserve n,n1 for Nat;
reserve s1,s2,s3 for Real_Sequence;
reserve f,f1,f2 for PartFunc of REAL,REAL;

theorem
  for p,g for f1,f2 st f1 is_differentiable_on ].p,g.[ & f2
is_differentiable_on ].p,g.[ & (for x st x in ].p,g.[ holds diff(f1,x) = diff(
f2,x)) holds (f1-f2)|].p,g.[ is constant & ex r st for x st x in ].p,g.[ holds
  f1.x = f2.x+r
proof
  let p,g;
  let f1,f2 such that
A1: f1 is_differentiable_on ].p,g.[ & f2 is_differentiable_on ].p,g.[ and
A2: for x st x in ].p,g.[ holds diff(f1,x) = diff(f2,x);
  reconsider Z=].p,g.[ as open Subset of REAL;
  ].p,g.[ c= dom f1 & ].p,g.[ c= dom f2 by A1,FDIFF_1:def 6;
  then ].p,g.[ c= dom f1 /\ dom f2 by XBOOLE_1:19;
  then
A3: ].p,g.[ c= dom (f1-f2) by VALUED_1:12;
  then
A4: f1-f2 is_differentiable_on Z by A1,FDIFF_1:19;
  now
    let x;
    assume
A5: x in ].p,g.[;
    hence diff(f1-f2,x) = ((f1-f2)`|Z).x by A4,FDIFF_1:def 7
      .= diff(f1,x)-diff(f2,x) by A1,A3,A5,FDIFF_1:19
      .= diff(f1,x)-diff(f1,x) by A2,A5
      .= 0;
  end;
  hence (f1-f2)|].p,g.[ is constant by A1,A3,Th7,FDIFF_1:19;
  then consider r being Element of REAL such that
A6: for x being Element of REAL
   st x in ].p,g.[ /\ dom(f1-f2) holds (f1-f2).x = r
     by PARTFUN2:57;
  take r;
  let x;
  assume
A7: x in ].p,g.[;
  then x in ].p,g.[ /\ dom(f1-f2) by A3,XBOOLE_1:28;
  then r = (f1-f2).x by A6
    .= f1.x - f2.x by A3,A7,VALUED_1:13;
  hence thesis;
end;
