reserve y for set;
reserve x,a,b,c for Real;
reserve n for Element of NAT;
reserve Z for open Subset of REAL;
reserve f,f1,f2 for PartFunc of REAL,REAL;

theorem
  Z c= dom (exp_R(#)f) & (for x st x in Z holds f.x=x-1) implies exp_R
  (#)f is_differentiable_on Z & for x st x in Z holds ((exp_R(#)f)`|Z).x = x*(
  exp_R.x)
proof
  assume that
A1: Z c= dom (exp_R(#)f) and
A2: for x st x in Z holds f.x=x-1;
A3: for x st x in Z holds f.x = 1*x+-1
  proof
    let x;
A4: 1*x+-1=1*x-1;
    assume x in Z;
    hence thesis by A2,A4;
  end;
  Z c= dom f /\ dom exp_R by A1,VALUED_1:def 4;
  then
A5: Z c= dom f by XBOOLE_1:18;
  then
A6: f is_differentiable_on Z by A3,FDIFF_1:23;
A7: exp_R is_differentiable_on Z by FDIFF_1:26,TAYLOR_1:16;
  now
    let x;
    assume
A8: x in Z;
    hence
    ((exp_R(#)f)`|Z).x = (f.x)*diff(exp_R,x) + (exp_R.x)*diff(f,x) by A1,A6,A7,
FDIFF_1:21
      .=(x-1)*diff(exp_R,x)+ (exp_R.x)*diff(f,x) by A2,A8
      .=(x-1)*(exp_R.x)+ (exp_R.x)*diff(f,x) by TAYLOR_1:16
      .=(x-1)*(exp_R.x)+(exp_R.x)*(f`|Z).x by A6,A8,FDIFF_1:def 7
      .=(x-1)*(exp_R.x)+(exp_R.x)*1 by A5,A3,A8,FDIFF_1:23
      .=x*(exp_R.x);
  end;
  hence thesis by A1,A6,A7,FDIFF_1:21;
end;
