reserve A for non empty closed_interval Subset of REAL;

theorem
for a,b,c being Real, f,g be Function of REAL,REAL st a <= c & c <= b
holds
f | [.a,c.[ +* g | [.c,b.] = f | [.a,c.] +* g | [.c,b.]
proof
 let a,b,c be Real;
 let f,g be Function of REAL,REAL;
 assume
 A4: a <= c & c <= b;
 set
  f1 = (f|[.a,c.[) +* (g|[.c,b.]);
 set
  f2 = (f|[.a,c.]) +* (g|[.c,b.]);
 A2: dom f1
  = dom (f|[.a,c.[) \/  dom (g|[.c,b.]) by FUNCT_4:def 1
 .= [.a,c.[ \/ dom (g|[.c,b.])  by FUNCT_2:def 1
 .= [.a,c.[ \/ [.c,b.]  by FUNCT_2:def 1
 .= [.a,b.] by XXREAL_1:166,A4
 .= [.a,c.] \/ [.c,b.] by XXREAL_1:165,A4
 .= dom (f | [.a,c.]) \/ [.c,b.]  by FUNCT_2:def 1
 .= dom (f | [.a,c.]) \/ dom (g | [.c,b.])  by FUNCT_2:def 1
 .= dom f2 by FUNCT_4:def 1;
 Dg: dom (g|[.c,b.]) = [.c,b.] by FUNCT_2:def 1;
 for x being object st x in dom f1 holds
 f1 . x = f2 . x
 proof
  let x be object;
  assume A3: x in dom f1;
  A5: dom f1
   = dom (f|[.a,c.[) \/  dom (g|[.c,b.]) by FUNCT_4:def 1
  .= [.a,c.[ \/ dom (g|[.c,b.])  by FUNCT_2:def 1
  .= [.a,c.[ \/ [.c,b.]  by FUNCT_2:def 1
  .= [.a,b.] by XXREAL_1:166,A4;
  then
  reconsider x as Real by A3;::XREAL_0:def 1,
  A6: a <= x & x <= b by A5,A3,XXREAL_1:1;
  per cases;
  suppose C1: x >= c;
   ((f|[.a,c.[) +* (g|[.c,b.])).x
    = (g|[.c,b.]).x by FUNCT_4:13,Dg,C1,XXREAL_1:1,A6;
   hence thesis by FUNCT_4:13,Dg,C1,XXREAL_1:1,A6;
  end;
  suppose C2: x < c;
   C6: x in [.a,c.] by A6,C2;
   C4: not (x in dom (g|[.c,b.]) ) by C2,XXREAL_1:1;
   ((f|[.a,c.[) +* (g|[.c,b.])).x
    = (f|[.a,c.[).x by FUNCT_4:11,C4::C7,FUNCT_2:def 1
   .= f .x by FUNCT_1:49,XXREAL_1:3,A6,C2
   .= (f|[.a,c.]).x by FUNCT_1:49,C6;
   hence thesis by FUNCT_4:11,C4;
  end;
 end;
 hence thesis by FUNCT_1:2,A2;
end;
