
theorem Th6:
  for X1,Y1, X2,Y2 be non empty set for f being Function of X1,X2,
  g being Function of Y1,Y2 st f tolerates g holds f* tolerates g*
proof
  let X1,Y1, X2,Y2 be non empty set;
  let f be Function of X1,X2, g be Function of Y1,Y2;
A1: dom g = Y1 by FUNCT_2:def 1;
  assume
A2: for x being object st x in dom f /\ dom g holds f.x = g.x;
  let x be object;
  assume
A3: x in dom (f*) /\ dom (g*);
  then reconsider q = x as Element of Y1*;
A4: g*.x = g*q by LANG1:def 13;
  x in dom (f*) by A3,XBOOLE_0:def 4;
  then reconsider p = x as Element of X1*;
A5: dom f = X1 by FUNCT_2:def 1;
A6: now
    let i be object;
    assume
A7: i in dom p;
    then
A8: q.i in rng q by FUNCT_1:def 3;
    p.i in rng p by A7,FUNCT_1:def 3;
    then p.i in dom f /\ dom g by A5,A1,A8,XBOOLE_0:def 4;
    then f.(p.i) = g.(q.i) by A2
      .= (g*q).i by A7,FUNCT_1:13;
    hence (f*p).i = (g*q).i by A7,FUNCT_1:13;
  end;
  rng q c= Y1;
  then
A9: dom (g*q) = dom q by A1,RELAT_1:27;
  rng p c= X1;
  then
A10: dom (f*p) = dom p by A5,RELAT_1:27;
  f*.x = f*p by LANG1:def 13;
  hence thesis by A4,A10,A9,A6;
end;
