reserve A,B,C for Ordinal,
  K,L,M,N for Cardinal,
  x,y,y1,y2,z,u for object,X,Y,Z,Z1,Z2 for set,
  n for Nat,
  f,f1,g,h for Function,
  Q,R for Relation;
reserve ff for Cardinal-Function;

theorem
  x in dom f & product f <> {} implies pi(product f,x) = f.x
proof
  assume that
A1: x in dom f and
A2: product f <> {};
A3: pi(product f,x) c= f.x
  proof
    let y be object;
    assume y in pi(product f,x);
    then ex g st g in product f & y = g.x by Def6;
    hence thesis by A1,Th9;
  end;
  f.x c= pi(product f,x)
  proof set z = the Element of product f;
    consider g such that
    z = g and
A4: dom g = dom f and
A5: for x being object st x in dom f holds g.x in f.x by A2,Def5;
    let y be object;
     reconsider yy=y as set by TARSKI:1;
    deffunc f(object) = yy;
    deffunc g(object) = g.$1;
    defpred C[object] means x = $1;
    consider h being Function such that
A6: dom h = dom g & for z being object st z in dom g holds
    (C[z] implies h.z = f(z)) & (not C[z] implies h.z = g(z)) from
    PARTFUN1:sch 1;
    assume
A7: y in f.x;
    now
      let z be object;
      assume
A8:   z in dom f;
      then x <> z implies g.z = h.z by A4,A6;
      hence h.z in f.z by A4,A5,A6,A7,A8;
    end;
    then
A9: h in product f by A4,A6,Th9;
    h.x = y by A1,A4,A6;
    hence thesis by A9,Def6;
  end;
  hence thesis by A3;
end;
