reserve i,j,x,y for object,
  f,g for Function;

theorem
  for I being non empty set, A being set,
      B being non-empty ManySortedSet of I,
      F being ManySortedFunction of (I --> A qua total I-defined
  Function), B holds dom commute F = A
proof
  let I be non empty set, A be set, B be non-empty ManySortedSet of I, F be
  ManySortedFunction of (I --> A), B;
A1: dom B = I by PARTFUN1:def 2;
A2: dom F = I by PARTFUN1:def 2;
  per cases;
  suppose
A3: A is empty;
    rng F c= {{}}
    proof
      let x be object;
      assume x in rng F;
      then consider i being object such that
A4:   i in I & x = F.i by A2,FUNCT_1:def 3;
      (I -->A).i = A & x is Function of (I -->A).i, B.i by A4,FUNCOP_1:7
,PBOOLE:def 15;
      then x = {} by A3;
      hence thesis by TARSKI:def 1;
    end;
    then rng F = {{}} by ZFMISC_1:33;
    then
A5: F = I --> {} by A2,FUNCOP_1:9;
    commute F = curry' uncurry F by FUNCT_6:def 10
      .= {} by A5,Th3,FUNCT_5:42;
    hence thesis by A3;
  end;
  suppose
A6: A is non empty;
    rng F c= Funcs(A, union rng B)
    proof
      let x be object;
      assume x in rng F;
      then consider i being object such that
A7:   i in dom F and
A8:   x = F.i by FUNCT_1:def 3;
      (I -->A).i = A by A2,A7,FUNCOP_1:7;
      then reconsider x9 = x as Function of A, B.i by A2,A7,A8,PBOOLE:def 15;
      B.i in rng B by A1,A2,A7,FUNCT_1:def 3;
      then rng x9 c= B.i & B.i c= union rng B by RELAT_1:def 19,ZFMISC_1:74;
      then
A9:   rng x9 c= union rng B;
      dom x9 = A by A2,A7,FUNCT_2:def 1;
      hence thesis by A9,FUNCT_2:def 2;
    end;
    then F in Funcs (I, Funcs(A, union rng B)) by A2,FUNCT_2:def 2;
    then commute F in Funcs (A, Funcs(I, union rng B)) by A6,FUNCT_6:55;
    then
A10: commute F is Function of A, Funcs(I, union rng B) by FUNCT_2:66;
    union rng B is non empty by Th2;
    then Funcs (I, union rng B) is non empty by FUNCT_2:8;
    hence thesis by A10,FUNCT_2:def 1;
  end;
end;
