
theorem
  for G be RealLinearSpace holds
    ( for x be set holds
      ( x is Point of product <*G*>
        iff ex x1 be Point of G st x = <*x1*> ) )
  & ( for x,y be Point of product <*G*>,
          x1,y1 be Point of G
      st x = <*x1*> & y = <*y1*>
      holds x+y = <*x1+y1*> )
  & 0.(product <*G*>) = <* 0.G *>
  & ( for x be Point of product <*G*>, x1 be Point of G
      st x = <*x1*>
      holds -x = <* -x1 *> )
  & ( for x be Point of product <*G*>, x1 be Point of G,
      a be Real
      st x = <*x1*>
      holds a*x = <* a*x1 *> )
  proof
    let G be RealLinearSpace;
    consider I be Function of G, product <*G*> such that
    A1: I is one-to-one onto
      & for x be Point of G holds I.x = <*x*>
      & for v,w be Point of G holds I.(v+w) = I.v + I.w
      & for v be Point of G, r be Element of REAL
        holds I.(r*v) = r * (I.v)
      & 0.(product <*G*>) = I.(0.G) by PRVECT_3:11;

    thus
    A2: for x be set holds
        ( x is Point of product <*G*>
          iff ex x1 be Point of G st x = <*x1*> )
    proof
      let y be set;
      hereby
        assume y is Point of product <*G*>; then
        consider x be Element of the carrier of G such that
        A3: y = I.x by A1,FUNCT_2:113;
        take x;
        thus y = <*x*> by A1,A3;
      end;

      now
        assume ex x1 be Point of G st y = <*x1*>; then
        consider x1 be Point of G such that
        A4: y = <*x1*>;
        I.x1 = <*x1*> by A1;
        hence y is Point of product <*G*> by A4;
      end;
      hence thesis;
    end;

    thus
    A5: for x,y be Point of product <*G*>,
            x1,y1 be Point of G
        st x = <*x1*> & y = <*y1*>
        holds x+y = <*x1+y1*>
    proof
      let x,y be Point of product <*G*>;
      let x1,y1 be Point of G;
      assume
      A6: x = <*x1*> & y = <*y1*>;
      I.(x1+y1) = <* x1+y1 *>
      & I.(x1) = <*x1*> & I.(y1) = <*y1*> by A1;
      hence <* x1+y1 *> = x+y by A1,A6;
    end;

    thus
    0. product <*G*> = <* 0.G *> by A1;

    thus
    for x be Point of product <*G*>, x1 be Point of G
    st x = <*x1*>
    holds -x = <* -x1 *>
    proof
      let x be Point of product <*G*>;
      let x1 be Point of G;
      assume
      A7: x = <* x1 *>;
      reconsider y = <* -x1 *> as Point of product <*G*> by A2;
      x+y
       = <* x1+-x1 *> by A5,A7
      .= <* 0.G *> by RLVECT_1:def 10
      .= 0.(product <*G*>) by A1;
      hence thesis by RLVECT_1:def 10;
    end;

    thus
    for x be Point of product <*G*>,
        x1 be Point of G, a be Real
    st x = <*x1*>
    holds a*x = <* a*x1 *>
    proof
      let x be Point of product <*G*>;
      let x1 be Point of G, a be Real;
      assume
      A8: x = <*x1*>;

      reconsider a0 = a as Element of REAL by XREAL_0:def 1;
      A9: <*x1*> = I.x1 by A1;
      I.(a0*x1) = <* a0*x1 *> by A1;
      hence thesis by A1,A8,A9;
    end;
  end;
