reserve x,y,y1,y2,z,a,b for object, X,Y,Z,V1,V2 for set,
  f,g,h,h9,f1,f2 for Function,
  i for Nat,
  P for Permutation of X,
  D,D1,D2,D3 for non empty set,
  d1 for Element of D1,
  d2 for Element of D2,
  d3 for Element of D3;

theorem
  dom Frege(X-->f) = Funcs(X,dom f) & rng Frege(X-->f) = Funcs(X,rng f)
  & for g st g in Funcs(X,dom f) holds (Frege(X-->f)).g = f*g
proof
A1: product (X --> dom f) = Funcs(X, dom f) by CARD_3:11;
A2: doms (X --> f) = X --> dom f by Th20;
  rngs (X --> f) = X --> rng f & product (X --> rng f) = Funcs(X, rng f)
  by Th20,CARD_3:11;
  hence dom Frege(X-->f) = Funcs(X,dom f) & rng Frege(X-->f) = Funcs(X,rng f)
  by A2,A1,Def6,Th33;
  let g;
  assume
A3: g in Funcs(X,dom f);
  then consider h such that
A4: (Frege(X-->f)).g = h and
A5: dom h = dom (X --> f) and
A6: for x st x in dom h holds h.x = (uncurry (X --> f)).(x,g.x) by A2,A1,Def6;
A7: dom h = X by A5;
A8: ex g9 being Function st g = g9 & dom g9 = X & rng g9 c= dom f by A3,
FUNCT_2:def 2;
  then
A9: dom (f*g) = X by RELAT_1:27;
A10: dom (X --> f) = X;
  now
    let x be object;
    assume
A11: x in X;
    then
A12: h.x = (uncurry (X --> f)).(x,g.x) & (X --> f).x = f by A6,A7,FUNCOP_1:7;
    g.x in rng g & (f*g).x = f.(g.x) by A8,A9,A11,FUNCT_1:12,def 3;
    hence (f*g).x = h.x by A8,A10,A11,A12,FUNCT_5:38;
  end;
  hence thesis by A4,A7,A9,FUNCT_1:2;
end;
