reserve x,y,y1,y2 for set;
reserve C for non empty set;
reserve c for Element of C;
reserve f,h,g,h1 for Membership_Func of C;

theorem
  (f ++ g)*(f ++ h) c= f ++ (g*h)
proof
  let c;
  set x = f.c, y = g.c, z = h.c;
  f*f c= f by Th28;
  then (f*f).c <= f.c;
  then x*x <= x by Def2;
  then
A1: x*x - x <= 0 by XREAL_1:47;
  0<=(1_minus (g++h)).c by Th1;
  then
A2: ((1_minus (g++h)).c)*(-x+ x*x) <= 0*(-x+ x*x) by A1,XREAL_1:65;
  ((f ++ g)*(f ++ h)).c - (f ++ (g*h)).c = ((f ++ g).c)*((f ++ h).c) - (f
  ++ (g*h)).c by Def2
    .= (x + y - x*y)*((f ++ h).c) - (f ++ (g*h)).c by Def3
    .= (x + y - x*y)*(x + z - x*z) - (f ++ (g*h)).c by Def3
    .= (x + y - x*y)*(x + z - x*z) - (x + (g*h).c - x*((g*h).c)) by Def3
    .= (x + y - x*y)*(x + z - x*z) - (x + y*z - x*((g*h).c)) by Def2
    .= (x - x*y + y)*(x + z - x*z) - (x + y*z - (y*z)*x) by Def2
    .= x*(y +z -y*z -1)+( - y+y*z -z +1)*(x*x)
    .= x*((g++h).c -1)+( - (y+z-y*z) +1)*(x*x) by Def3
    .= x*(-(-(g++h).c +1))+( - (g++h).c +1)*(x*x) by Def3
    .= (1-(g++h).c)*(-x+ x*x)
    .=((1_minus (g++h)).c)*(-x+ x*x) by FUZZY_1:def 5;
  hence thesis by A2,XREAL_1:50;
end;
