reserve x,y,z, X,Y,Z for set,
  n for Element of NAT;
reserve A for set,
  D for non empty set,
  a,b,c,l,r for Element of D,
  o,o9 for BinOp of D,
  f,g,h for Function of A,D;
reserve G for non empty multMagma;
reserve A for non empty set,
  a for Element of A,
  p for FinSequence of A,
  m1,m2 for Multiset of A;
reserve p,q for FinSequence of A;
reserve fm for Element of finite-MultiSet_over A;
reserve a,b,c for Element of D;

theorem
  for D1,D2,D being non empty set, f being Function of [:D1,D2:],D for X1
  being Subset of D1, X2 being Subset of D2 holds (f.:^2).(X1,X2) = {f.(a,b)
  where a is Element of D1, b is Element of D2: a in X1 & b in X2}
proof
  let D1,D2,D be non empty set, f be Function of [:D1,D2:],D;
  let X1 be Subset of D1, X2 be Subset of D2;
  set A = {f.(a,b) where a is Element of D1, b is Element of D2: a in X1 & b
  in X2};
A1: (f.:^2).(X1,X2) = f.:[:X1,X2:] by Th44;
  thus (f.:^2).(X1,X2) c= A
  proof
    let x be object;
    assume x in f.:^2.(X1,X2);
    then consider y being object such that
    y in dom f and
A2: y in [:X1,X2:] and
A3: x = f.y by A1,FUNCT_1:def 6;
    consider y1,y2 being object such that
A4: y1 in X1 and
A5: y2 in X2 and
A6: y = [y1,y2] by A2,ZFMISC_1:84;
    reconsider y2 as Element of D2 by A5;
    reconsider y1 as Element of D1 by A4;
    x = f.(y1,y2) by A3,A6;
    hence thesis by A4,A5;
  end;
  let x be object;
  assume x in A;
  then ex a being Element of D1, b being Element of D2 st x = f.(a,b) & a in
  X1 & b in X2;
  hence thesis by Th45;
end;
