reserve G,F for RealLinearSpace;

theorem
  for G,F be RealNormSpace holds
  ( for x be set holds
  ( x is Point of product <*G,F*>
  iff ex x1 be Point of G, x2 be Point of F st x=<* x1,x2 *> ) )
  & ( for x,y be Point of product <*G,F*>,
  x1,y1 be Point of G, x2,y2 be Point of F
  st x=<*x1,x2*> & y=<*y1,y2*> holds x+y = <* x1+y1,x2+y2 *> )
  & 0.(product <*G,F*>) = <* 0.G,0.F *>
  & ( for x be Point of product <*G,F*>, x1 be Point of G, x2 be Point of F
  st x=<*x1,x2*> holds -x = <* -x1,-x2 *> )
  & ( for x be Point of product <*G,F*>,
  x1 be Point of G, x2 be Point of F, a be Real
  st x=<*x1,x2*> holds a*x = <* a*x1,a*x2 *> )
  & ( for x be Point of product <*G,F*>, x1 be Point of G, x2 be Point of F
  st x=<*x1,x2*> holds
  ex w be Element of REAL 2 st
  w=<* ||.x1.||,||.x2.|| *> & ||.x.||  = |.w.| )
  proof
    let G,F be RealNormSpace;
    consider I be Function of [:G,F:] ,product <*G,F*> such that
    A1: I is one-to-one & I is onto
    & ( for x be Point of G, y be Point of F holds I.(x,y) = <*x,y*> )
    & ( for v,w be Point of [:G,F:] holds I.(v+w) = I.v + I.w )
    & ( for v be Point of [:G,F:], r be Real holds I.(r*v)=r*(I.v) )
    & 0. product <*G,F*> = I.(0.[:G,F:])
    & ( for v be Point of [:G,F:] holds ||. I.v .|| = ||.v.|| ) by Th15;
    thus
    A2: for x be set holds
    (x is Point of product <*G,F*>
    iff ex x1 be Point of G, x2 be Point of F st x=<*x1,x2*> )
    proof
      let y be set;
      hereby assume y is Point of product <*G,F*>; then
        y in the carrier of product <*G,F*>; then
        y in rng I by A1,FUNCT_2:def 3; then
        consider x be Element of the carrier of [:G,F:] such that
        A3:  y = I.x by FUNCT_2:113;
        consider x1 be Point of G, x2 be Point of F such that
        A4:  x=[x1,x2] by Lm1;
        take x1,x2;
        I.(x1,x2) = <*x1,x2*> by A1;
        hence y= <*x1,x2*> by A3,A4;
      end;
      hereby assume ex x1 be Point of G, x2 be Point of F st
        y=<* x1,x2 *>; then
        consider x1 be Point of G, x2 be Point of F such that
        A5:  y=<*x1,x2*>;
        A6: I.([x1,x2]) in rng I by FUNCT_2:112;
        I.(x1,x2) = <*x1,x2*> by A1;
        hence y is Point of product <*G,F*> by A5,A6;
      end;
    end;
    thus
    A7: for x,y be Point of product <*G,F*>,
    x1,y1 be Point of G, x2,y2 be Point of F
    st x=<*x1,x2*> & y=<*y1,y2*> holds x+y = <* x1+y1,x2+y2 *>
    proof
      let x,y be Point of product <*G,F*>;
      let x1,y1 be Point of G, x2,y2 be Point of F;
      assume A8: x=<*x1,x2*> & y=<*y1,y2*>;
      reconsider z=[x1,x2], w=[y1,y2] as Point of [:G,F:];
      A9: z+w = [x1+y1,x2+y2] by Def1;
      A10: I.(x1+y1,x2+y2) = <* x1+y1,x2+y2 *> by A1;
      I.(x1,x2) = <* x1,x2 *> & I.(y1,y2) = <* y1,y2 *> by A1;
      hence <* x1+y1,x2+y2 *> = x+y by A1,A9,A10,A8;
    end;
    thus
    A11: 0. product <*G,F*> = <* 0.G,0.F *>
    proof
      I.(0.G,0.F) =<* 0.G,0.F *> by A1;
      hence thesis by A1;
    end;
    thus for x be Point of product <*G,F*>,
    x1 be Point of G, x2 be Point of F
    st x=<*x1,x2*> holds -x = <* -x1,-x2 *>
    proof
      let x be Point of  product <*G,F*>;
      let x1 be Point of G, x2 be Point of F;
      assume A12: x=<* x1,x2 *>;
      reconsider y=<* -x1,-x2 *> as Point of product <*G,F*> by A2;
      x+y = <* x1+-x1,x2+-x2 *> by A7,A12
      .= <* 0.G,x2+-x2 *> by RLVECT_1:def 10
      .= 0.(product <*G,F*>) by A11,RLVECT_1:def 10;
      hence thesis by RLVECT_1:def 10;
    end;
    thus for x be Point of product <*G,F*>,
    x1 be Point of G, x2 be Point of F, a be Real
    st x=<*x1,x2*> holds a*x = <* a*x1,a*x2 *>
    proof
      let x be Point of product <*G,F*>;
      let x1 be Point of G, x2 be Point of F, a be Real;
      assume A13: x=<*x1,x2*>;
      reconsider a0=a as Element of REAL by XREAL_0:def 1;
      reconsider y=[x1,x2] as Point of [:G,F:];
      A14: <*x1,x2*> = I.(x1,x2) by A1;
      I.(a*y) = I.(a0*x1,a0*x2) by Th18
      .= <* a0*x1,a0*x2 *> by A1;
      hence thesis by A13,A14,A1;
    end;
    thus for x be Point of product <*G,F*>,
    x1 be Point of G, x2 be Point of F st x=<*x1,x2*>
    holds ex w be Element of REAL 2 st
    w=<* ||.x1.||,||.x2.|| *> & ||.x.||  = |.w.|
    proof
      let x be Point of product <*G,F*>;
      let x1 be Point of G, x2 be Point of F;
      assume A15: x=<*x1,x2*>;
      reconsider y=[x1,x2] as Point of [:G,F:];
      consider w be Element of REAL 2 such that
      A16:  w=<* ||.x1.||,||.x2.|| *> & ||.y.||  = |.w.| by Th18;
      take w;
      A17: I.y = I.(x1,x2) .=x by A1,A15;
      thus w=<* ||.x1.||,||.x2.|| *> by A16;
      thus||.x.|| = |.w.| by A1,A16,A17;
    end;
  end;
