reserve x, y for object, X, X1, X2 for set;
reserve Y, Y1, Y2 for complex-functions-membered set,
  c, c1, c2 for Complex,
  f for PartFunc of X,Y,
  f1 for PartFunc of X1,Y1,
  f2 for PartFunc of X2, Y2,
  g, h, k for complex-valued Function;

theorem
  f <#> g <#> h = f <#> (g(#)h)
proof
  set f1 = f<#>g;
A1: dom(g(#)h) = dom g /\ dom h by VALUED_1:def 4;
A2: dom(f1<#>h) = dom f1 /\ dom h by Def43;
  dom f1 = dom f /\ dom g & dom(f<#>(g(#)h)) = dom f /\ dom(g(#)h) by Def43;
  hence
A3: dom(f1<#>h) = dom(f<#>(g(#)h)) by A2,A1,XBOOLE_1:16;
  let x be object;
  assume
A4: x in dom(f1<#>h);
  then
A5: x in dom f1 by A2,XBOOLE_0:def 4;
A6: x in dom(g(#)h) by A3,A4,XBOOLE_0:def 4;
  thus (f1<#>h).x = f1.x (#) h.x by A4,Def43
    .= f.x (#) g.x (#) h.x by A5,Def43
    .= f.x (#) (g.x * h.x) by Th16
    .= f.x (#) ((g(#)h).x) by A6,VALUED_1:def 4
    .= (f<#>(g(#)h)).x by A3,A4,Def43;
end;
