reserve x,x0,x1,x2,y,y0,y1,y2,r,r1,s,p,p1 for Real;
reserve z,z0 for Element of REAL 2;
reserve n,m,k for Element of NAT;
reserve Z for Subset of REAL 2;
reserve s1 for Real_Sequence;
reserve f,f1,f2 for PartFunc of REAL 2,REAL;
reserve R,R1,R2 for RestFunc;
reserve L,L1,L2 for LinearFunc;

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