reserve P,Q,X,Y,Z for set, p,x,x9,x1,x2,y,z for object;
reserve D for non empty set;

theorem Th89:
  for f,g being PartFunc of X,Y st TotFuncs f c= TotFuncs g & (
  for y holds Y <> {y}) holds g c= f
proof
  let f,g be PartFunc of X,Y such that
A1: TotFuncs f c= TotFuncs g and
A2: for y holds Y <> {y};
  now
    per cases;
    suppose Y = {};
      hence dom g c= dom f;
    end;
    suppose
A3:   Y <> {};
      thus dom g c= dom f
      proof
        deffunc F(object) = f.$1;
        defpred P[object] means $1 in dom f;
        let x be object such that
A4:     x in dom g and
A5:     not x in dom f;
A6:     Y <> {g.x} by A2;
        g.x in Y by A4,PARTFUN1:4;
        then consider y being object such that
A7:     y in Y and
A8:     y <> g.x by A6,ZFMISC_1:35;
        deffunc G(object) = y;
A9:     for x9 being object st x9 in X
holds (P[ x9] implies F(x9) in Y) & (not P[ x9]
        implies G(x9) in Y) by A7,PARTFUN1:4;
        consider h being Function of X,Y such that
A10:    for x9 being object st x9 in X
  holds (P[ x9] implies h.x9 = F(x9)) & (not
        P[ x9] implies h.x9 = G(x9)) from Lambda1C(A9);
        f tolerates h
        proof
          let x9 be object;
          assume x9 in dom f /\ dom h;
          then x9 in dom f by XBOOLE_0:def 4;
          hence thesis by A10;
        end;
        then
A11:    h in TotFuncs f by A3,PARTFUN1:def 5;
        x in X by A4;
        then x in dom h by A3,Def1;
        then
A12:    x in dom g /\ dom h by A4,XBOOLE_0:def 4;
        h.x = y by A4,A5,A10;
        hence contradiction by A8,A11,A12,A1,PARTFUN1:71,def 4;
      end;
    end;
  end;
  hence thesis by A1,Th88;
end;
