
theorem Th43:
  for f being non-empty Function, X being set, i being object
  st i in dom f & X c= f.i holds proj(f,i).:product(f +* (i,X)) = X
proof
  let f be non-empty Function, X be set, i be object;
  assume A1: i in dom f & X c= f.i;
  then A2: f +* (i,X) = f +* (i .--> X) by FUNCT_7:def 3
    .= f +* ({i} --> X) by FUNCOP_1:def 9;
  A3: i in dom (f +* (i,X)) by A1, FUNCT_7:30;
  per cases;
  suppose A4: X is non empty;
    {i} c= dom f by A1, ZFMISC_1:31;
    then A5: dom ({i} --> X) c= dom f;
    A6: for j being object st j in dom ({i} --> X) holds ({i} --> X).j c= f.j
    proof
      let j be object;
      assume A7: j in dom ({i} --> X);
      then i = j by TARSKI:def 1;
      hence thesis by A1, A7, FUNCOP_1:7;
    end;
    A8: i in {i} by TARSKI:def 1;
    then i in dom ({i} --> X);
    then proj(f,i).:product(f +* ({i} --> X)) = ({i} --> X).i
      by A5, A6, A4, Th25;
    hence thesis by A2,A8, FUNCOP_1:7;
  end;
  suppose A9: X is empty;
    then (f +* (i,X)).i is empty by A1, FUNCT_7:31;
    then {} in rng (f +* (i,X)) by A3, FUNCT_1:3;
    then product(f +* (i,X)) = {} by CARD_3:26;
    hence thesis by A9;
  end;
end;
