let G, F be RealNormSpace; :: thesis: ( ( for x being set holds
( x is Point of (product <*G,F*>) iff ex x1 being Point of G ex x2 being Point of F st x = <*x1,x2*> ) ) & ( for x, y being Point of (product <*G,F*>)
for x1, y1 being Point of G
for x2, y2 being 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 being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) ) )

consider I being Function of [:G,F:],(product <*G,F*>) such that
A1: ( I is one-to-one & I is onto & ( for x being Point of G
for y being Point of F holds I . (x,y) = <*x,y*> ) & ( for v, w being Point of [:G,F:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:G,F:]
for r being Real holds I . (r * v) = r * (I . v) ) & 0. (product <*G,F*>) = I . (0. [:G,F:]) & ( for v being Point of [:G,F:] holds ||.(I . v).|| = ||.v.|| ) ) by Th15;
thus A2: for x being set holds
( x is Point of (product <*G,F*>) iff ex x1 being Point of G ex x2 being Point of F st x = <*x1,x2*> ) :: thesis: ( ( for x, y being Point of (product <*G,F*>)
for x1, y1 being Point of G
for x2, y2 being 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 being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) ) )
proof
let y be set ; :: thesis: ( y is Point of (product <*G,F*>) iff ex x1 being Point of G ex x2 being Point of F st y = <*x1,x2*> )
hereby :: thesis: ( ex x1 being Point of G ex x2 being Point of F st y = <*x1,x2*> implies y is Point of (product <*G,F*>) )
assume y is Point of (product <*G,F*>) ; :: thesis: ex x1 being Point of G ex x2 being Point of F st y = <*x1,x2*>
then y in the carrier of (product <*G,F*>) ;
then y in rng I by A1, FUNCT_2:def 3;
then consider x being Element of the carrier of [:G,F:] such that
A3: y = I . x by FUNCT_2:113;
consider x1 being Point of G, x2 being Point of F such that
A4: x = [x1,x2] by Lm1;
take x1 = x1; :: thesis: ex x2 being Point of F st y = <*x1,x2*>
take x2 = x2; :: thesis: y = <*x1,x2*>
I . (x1,x2) = <*x1,x2*> by A1;
hence y = <*x1,x2*> by A3, A4; :: thesis: verum
end;
hereby :: thesis: verum
assume ex x1 being Point of G ex x2 being Point of F st y = <*x1,x2*> ; :: thesis: y is Point of (product <*G,F*>)
then consider x1 being Point of G, x2 being 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; :: thesis: verum
end;
end;
thus A7: for x, y being Point of (product <*G,F*>)
for x1, y1 being Point of G
for x2, y2 being Point of F st x = <*x1,x2*> & y = <*y1,y2*> holds
x + y = <*(x1 + y1),(x2 + y2)*> :: thesis: ( 0. (product <*G,F*>) = <*(0. G),(0. F)*> & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) ) )
proof
let x, y be Point of (product <*G,F*>); :: thesis: for x1, y1 being Point of G
for x2, y2 being Point of F st x = <*x1,x2*> & y = <*y1,y2*> holds
x + y = <*(x1 + y1),(x2 + y2)*>

let x1, y1 be Point of G; :: thesis: for x2, y2 being Point of F st x = <*x1,x2*> & y = <*y1,y2*> holds
x + y = <*(x1 + y1),(x2 + y2)*>

let x2, y2 be Point of F; :: thesis: ( x = <*x1,x2*> & y = <*y1,y2*> implies x + y = <*(x1 + y1),(x2 + y2)*> )
assume A8: ( x = <*x1,x2*> & y = <*y1,y2*> ) ; :: thesis: x + y = <*(x1 + y1),(x2 + 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; :: thesis: verum
end;
thus A11: 0. (product <*G,F*>) = <*(0. G),(0. F)*> :: thesis: ( ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) ) )
proof
I . ((0. G),(0. F)) = <*(0. G),(0. F)*> by A1;
hence 0. (product <*G,F*>) = <*(0. G),(0. F)*> by A1; :: thesis: verum
end;
thus for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*> :: thesis: ( ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> ) & ( for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) ) )
proof
let x be Point of (product <*G,F*>); :: thesis: for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*>

let x1 be Point of G; :: thesis: for x2 being Point of F st x = <*x1,x2*> holds
- x = <*(- x1),(- x2)*>

let x2 be Point of F; :: thesis: ( x = <*x1,x2*> implies - x = <*(- x1),(- x2)*> )
assume A12: x = <*x1,x2*> ; :: thesis: - 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 - x = <*(- x1),(- x2)*> by RLVECT_1:def 10; :: thesis: verum
end;
thus for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*> :: thesis: for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| )
proof
let x be Point of (product <*G,F*>); :: thesis: for x1 being Point of G
for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*>

let x1 be Point of G; :: thesis: for x2 being Point of F
for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*>

let x2 be Point of F; :: thesis: for a being Real st x = <*x1,x2*> holds
a * x = <*(a * x1),(a * x2)*>

let a be Real; :: thesis: ( x = <*x1,x2*> implies a * x = <*(a * x1),(a * x2)*> )
assume A13: x = <*x1,x2*> ; :: thesis: a * x = <*(a * x1),(a * 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 a * x = <*(a * x1),(a * x2)*> by A13, A14, A1; :: thesis: verum
end;
thus for x being Point of (product <*G,F*>)
for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) :: thesis: verum
proof
let x be Point of (product <*G,F*>); :: thesis: for x1 being Point of G
for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| )

let x1 be Point of G; :: thesis: for x2 being Point of F st x = <*x1,x2*> holds
ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| )

let x2 be Point of F; :: thesis: ( x = <*x1,x2*> implies ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| ) )

assume A15: x = <*x1,x2*> ; :: thesis: ex w being Element of REAL 2 st
( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| )

reconsider y = [x1,x2] as Point of [:G,F:] ;
consider w being Element of REAL 2 such that
A16: ( w = <*||.x1.||,||.x2.||*> & ||.y.|| = |.w.| ) by Th18;
take w ; :: thesis: ( w = <*||.x1.||,||.x2.||*> & ||.x.|| = |.w.| )
A17: I . y = I . (x1,x2)
.= x by A1, A15 ;
thus w = <*||.x1.||,||.x2.||*> by A16; :: thesis: ||.x.|| = |.w.|
thus ||.x.|| = |.w.| by A1, A16, A17; :: thesis: verum
end;