reserve x,y,X,Y for set;
reserve C,D,E for non empty set;
reserve SC for Subset of C;
reserve SD for Subset of D;
reserve SE for Subset of E;
reserve c,c1,c2 for Element of C;
reserve d,d1,d2 for Element of D;
reserve e for Element of E;
reserve f,f1,g for PartFunc of C,D;
reserve t for PartFunc of D,C;
reserve s for PartFunc of D,E;
reserve h for PartFunc of C,E;
reserve F for PartFunc of D,D;

theorem
  f tolerates g iff for c st c in dom f /\ dom g holds f/.c = g/.c
proof
  thus f tolerates g implies for c st c in dom f /\ dom g holds f/.c = g/.c
  proof
    assume
A1: f tolerates g;
    let c;
    assume
A2: c in dom f /\ dom g;
    then
A3: c in dom f by XBOOLE_0:def 4;
    (f qua Function).c = (g qua Function).c by A1,A2,PARTFUN1:def 4;
    then
A4: f/.c = (g qua Function).c by A3,PARTFUN1:def 6;
    c in dom g by A2,XBOOLE_0:def 4;
    hence thesis by A4,PARTFUN1:def 6;
  end;
  assume
A5: for c st c in dom f /\ dom g holds f/.c = g/.c;
  now
    let x be object;
    assume
A6: x in dom f /\ dom g;
    then reconsider x1=x as Element of C;
    x in dom f & f/.x1 = g/.x1 by A5,A6,XBOOLE_0:def 4;
    then
A7: (f qua Function).x = g/.x1 by PARTFUN1:def 6;
    x in dom g by A6,XBOOLE_0:def 4;
    hence (f qua Function).x = (g qua Function).x by A7,PARTFUN1:def 6;
  end;
  hence thesis by PARTFUN1:def 4;
end;
