reserve x,y,z, X,Y,Z for set,
  n for Element of NAT;

theorem
  for D1,D2,D being non empty set for f being Function of [:D1,D2:],D for A
being set, f1 being (Function of A,D1), f2 being Function of A,D2 for x st x in
  A holds ((f,D).:A)..(f1,f2,x) = f.(f1.x,f2.x)
proof
  let D1,D2,D be non empty set;
  let f be Function of [:D1,D2:],D;
  let A be set, f1 be (Function of A,D1), f2 be Function of A,D2;
  dom f2 = A & rng f2 c= D2 by FUNCT_2:def 1;
  then reconsider f2 as Element of Funcs(A,D2) by FUNCT_2:def 2;
  dom f1 = A & rng f1 c= D1 by FUNCT_2:def 1;
  then reconsider f1 as Element of Funcs(A,D1) by FUNCT_2:def 2;
A1: dom (f.: (f1,f2)) = A by FUNCT_2:def 1;
A2: ((f,D).:A).(f1,f2) = f.:(f1,f2) & [f1,f2] = [f1,f2] by Def2;
  let x such that
A3: x in A;
  dom ((f,D).:A) = [:Funcs(A,D1), Funcs(A,D2):] & (f.:(f1,f2)).x = f.(f1.x
  ,f2. x) by A3,A1,FUNCOP_1:22,FUNCT_2:def 1;
  hence thesis by A3,A1,A2,FUNCT_5:38;
end;
