theorem Th34:
  f tolerates g iff f +* g = g +* f
proof
  thus f tolerates g implies f +* g = g +* f
  proof
    assume
A1: f tolerates g;
A2: for x being object st x in dom(f +* g) holds (f +* g).x = (g +* f).x
    proof
      let x being object such that
A3:   x in dom(f +* g);
      now
A4:     dom(f +* g) = dom f \/ dom g by Def1;
        per cases by A3,A4,XBOOLE_0:def 3;
        suppose
A5:       x in dom f & x in dom g;
          then
A6:       (g +* f).x = f.x by Th13;
          x in dom f /\ dom g & (f +* g).x = g.x by A5,Th13,XBOOLE_0:def 4;
          hence thesis by A1,A6;
        end;
        suppose
A7:       x in dom f & not x in dom g;
          then (f +* g).x = f.x by Th11;
          hence thesis by A7,Th13;
        end;
        suppose
A8:       not x in dom f & x in dom g;
          then (f +* g).x = g.x by Th13;
          hence thesis by A8,Th11;
        end;
      end;
      hence thesis;
    end;
    dom(f +* g) = dom g \/ dom f by Def1
      .= dom(g +* f) by Def1;
    hence thesis by A2;
  end;
  assume
A9: f +* g = g +* f;
  let x be object;
  assume
A10: x in dom f /\ dom g;
  then x in dom g by XBOOLE_0:def 4;
  then
A11: (f +* g).x = g.x by Th13;
  x in dom f by A10,XBOOLE_0:def 4;
  hence thesis by A9,A11,Th13;
end;
