reserve A for non empty closed_interval Subset of REAL;

theorem
for a, b, c being Real st a < b & b < c holds
(for x be Real st not x in ].a,c.[ holds
TriangularFS (a,b,c).x = AffineMap (0,0).x )
proof
 let a, b, c be Real;
 assume A1: a < b & b < c;
  set f = ((AffineMap (0,0)) | (REAL \ ].a,c.[));
  set fab = ((AffineMap ((1 / (b - a)),(- (a / (b - a))))) | [.a,b.]);
  set fbc = ((AffineMap ((- (1 / (c - b))),(c / (c - b)))) | [.b,c.]);
 for x be Real st not x in ].a,c.[ holds
 TriangularFS (a,b,c).x = (AffineMap (0,0)).x
 proof
  let x be Real;
  assume B1: not x in ].a,c.[;
  x in REAL by XREAL_0:def 1; then
  B33: x in REAL \ ].a,c.[ by XBOOLE_0:def 5,B1;
A4:  for x being object st x in (dom f) /\ dom (fab +* fbc) holds
  f.x = (fab +* fbc).x
  proof
   let x be object;
   assume A6: x in (dom f) /\ dom (fab +* fbc); then
   reconsider x as Real;
   x in REAL \ ].a,c.[ & x in dom (fab +* fbc) by A6,XBOOLE_0:def 4;
   then
   x in REAL \ ].a,c.[ & x in dom fab \/ dom fbc by FUNCT_4:def 1;
   then
   x in REAL \ ].a,c.[ & x in [.a,b.] \/ dom fbc by FUNCT_2:def 1;
   then
   x in REAL \ ].a,c.[ & x in [.a,b.] \/ [.b,c.] by FUNCT_2:def 1;
   then
   (x in ].-infty,a.] \/ [.c,+infty.[) & x in [.a,c.]
      by XXREAL_1:398,XXREAL_1:165,A1; then
   (x in ].-infty,a.] or x in [.c,+infty.[) & x in [.a,c.]
          by XBOOLE_0:def 3; then
   (-infty < x & x <= a & a <= x & x <= c) or
      (c <= x & x <+infty & a <= x & x <= c)
     by XXREAL_1:1,XXREAL_1:3,XXREAL_1:2; then
   per cases by XXREAL_0:1;
   suppose D4:x = a;
    D1: not a in dom fbc by A1,XXREAL_1:1;
    D2: a in [.a,b.] by A1;
    a in ].-infty,a.] or a in [.c,+infty.[ by XXREAL_1:234;
    then
    a in ].-infty,a.] \/ [.c,+infty.[ by XBOOLE_0:def 3; then
    a in (REAL \ ].a,c.[) by XXREAL_1:398; then
    D5: f.x = (AffineMap (0,0)).a by FUNCT_1:49,D4
    .= 0*a+0 by FCONT_1:def 4
    .= 0;
    (fab +* fbc).x = fab.a by FUNCT_4:11,D1,D4
    .= (AffineMap ((1 / (b - a)),(- (a / (b - a))))).a by FUNCT_1:49,D2
    .= (1 / (b - a))*a+ - (a / (b - a)) by FCONT_1:def 4
    .= (a*1 / (b - a))+ - (a / (b - a)) by XCMPLX_1:74
    .= 0;
    hence thesis by D5;
   end;
   suppose E4: x = c;
    E2: c in [.b,c.] by A1; then
    E1: c in dom fbc by FUNCT_2:def 1;
    c in ].-infty,a.] or c in [.c,+infty.[ by XXREAL_1:236;
    then
    c in ].-infty,a.] \/ [.c,+infty.[ by XBOOLE_0:def 3;
    then
    c in (REAL \ ].a,c.[) by XXREAL_1:398; then
    E5:f.x = (AffineMap (0,0)).c by FUNCT_1:49,E4
    .= 0*c+0 by FCONT_1:def 4
    .= 0;
    (fab +* fbc).x = fbc.c by FUNCT_4:13,E1,E4
    .= AffineMap (- (1 / (c - b)), c / (c - b)).c by FUNCT_1:49,E2
    .= (- (1 / (c - b)))*c+ c / (c - b) by FCONT_1:def 4
     .= - (c*(1 / (c - b))) + c / (c - b)
     .= - (c*1 / (c - b)) + c / (c - b) by XCMPLX_1:74
     .= 0;
    hence thesis by E5;
   end;
  end;
  A5: x in dom f by B33,FUNCT_2:def 1;
   thus TriangularFS (a,b,c).x
   = ((((AffineMap (0,0)) | (REAL \ ].a,c.[)) +*
  ((AffineMap ((1 / (b - a)),(- (a / (b - a))))) | [.a,b.])) +*
  ((AffineMap ((- (1 / (c - b))),(c / (c - b)))) | [.b,c.])).x
   by A1,FUZNUM_1:def 7
  .= (f +* (fab +* fbc)).x by FUNCT_4:14
  .= f.x by A4,PARTFUN1:def 4,A5,FUNCT_4:15
  .= (AffineMap (0,0)) . x by FUNCT_1:49,B33;
 end;
 hence thesis;
end;
