reserve D for set;
reserve x,x0,x1,x2,y,y0,y1,y2,z,z0,z1,z2,r,s,t for Real;
reserve p,a,u,u0 for Element of REAL 3;
reserve n,m,k for Element of NAT;
reserve f,f1,f2,f3,g for PartFunc of REAL 3,REAL;
reserve R,R1,R2 for RestFunc;
reserve L,L1,L2 for LinearFunc;

theorem Th2:
  dom proj(2,3) = REAL 3 & rng proj(2,3) = REAL &
  for x,y,z be Real holds proj(2,3).<*x,y,z*> = y
proof
    set f = proj(2,3);
A1: for y be object st y in REAL ex u be object st u in REAL 3 & y = f.u
    proof
      let y be object;
      assume y in REAL;
      then reconsider y1 = y as Element of REAL;
      set x = the Element of REAL;
      reconsider u = <*x,y1,x*> as Element of REAL 3 by FINSEQ_2:104;
      f.u = u.2 by PDIFF_1:def 1;
      then f.u = y;
      hence thesis;
    end;
    now let x,y,z;
      reconsider xx=x, yy=y, zz=z as Element of REAL by XREAL_0:def 1;
      <*xx,yy,zz*> is Element of 3-tuples_on REAL by FINSEQ_2:104;
      then proj(2,3).<*x,y,z*> = <*x,y,z*>.2 by PDIFF_1:def 1;
      hence proj(2,3).<*x,y,z*> = y;
    end;
    hence thesis by A1,FUNCT_2:10,def 1;
end;
