theorem
  (f1<++>f2) <//> f = (f1<//>f) <++> (f2<//>f)
proof
  set f3 = f1<//>f, f4 = f2<//>f, f5 = f1<++>f2;
A1: dom(f5<//>f) = dom f /\ dom f5 by Def48;
A2: dom f5 = dom f1 /\ dom f2 by Def45;
A3: dom(f3<++>f4) = dom f3 /\ dom f4 by Def45;
  dom f3 = dom f1 /\ dom f & dom f4 = dom f2 /\ dom f by Def48;
  hence
A4: dom(f5<//>f) = dom(f3<++>f4) by A1,A3,A2,Lm1;
  let x be object;
  assume
A5: x in dom(f5<//>f);
  then
A6: x in dom f3 by A3,A4,XBOOLE_0:def 4;
A7: x in dom f5 by A1,A5,XBOOLE_0:def 4;
A8: x in dom f4 by A3,A4,A5,XBOOLE_0:def 4;
  thus (f5<//>f).x = f5.x /" f.x by A5,Def48
    .= (f1.x+f2.x) /" f.x by A7,Def45
    .= f1.x /" f.x + f2.x /" f.x by RFUNCT_1:10
    .= f3.x + f2.x /" f.x by A6,Def48
    .= f3.x + f4.x by A8,Def48
    .= (f3<++>f4).x by A4,A5,Def45;
end;
