let X, Y be RealLinearSpace; :: thesis: ex I being Function of [:X,Y:],[:X,(product <*Y*>):] st
( I is one-to-one & I is onto & ( for x being Point of X
for y being Point of Y holds I . (x,y) = [x,<*y*>] ) & ( for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )

consider J being Function of Y,(product <*Y*>) such that
A1: ( J is one-to-one & J is onto & ( for y being Point of Y holds J . y = <*y*> ) & ( for v, w being Point of Y holds J . (v + w) = (J . v) + (J . w) ) & ( for v being Point of Y
for r being Element of REAL holds J . (r * v) = r * (J . v) ) & J . (0. Y) = 0. (product <*Y*>) ) by Th11;
defpred S1[ object , object , object ] means $3 = [$1,<*$2*>];
A2: for x, y being object st x in the carrier of X & y in the carrier of Y holds
ex z being object st
( z in the carrier of [:X,(product <*Y*>):] & S1[x,y,z] )
proof
let x, y be object ; :: thesis: ( x in the carrier of X & y in the carrier of Y implies ex z being object st
( z in the carrier of [:X,(product <*Y*>):] & S1[x,y,z] ) )

assume A3: ( x in the carrier of X & y in the carrier of Y ) ; :: thesis: ex z being object st
( z in the carrier of [:X,(product <*Y*>):] & S1[x,y,z] )

then reconsider y0 = y as Point of Y ;
J . y0 = <*y0*> by A1;
then [x,<*y*>] in [: the carrier of X, the carrier of (product <*Y*>):] by A3, ZFMISC_1:87;
hence ex z being object st
( z in the carrier of [:X,(product <*Y*>):] & S1[x,y,z] ) ; :: thesis: verum
end;
consider I being Function of [: the carrier of X, the carrier of Y:], the carrier of [:X,(product <*Y*>):] such that
A4: for x, y being object st x in the carrier of X & y in the carrier of Y holds
S1[x,y,I . (x,y)] from BINOP_1:sch 1(A2);
reconsider I = I as Function of [:X,Y:],[:X,(product <*Y*>):] ;
take I ; :: thesis: ( I is one-to-one & I is onto & ( for x being Point of X
for y being Point of Y holds I . (x,y) = [x,<*y*>] ) & ( for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )

now :: thesis: for z1, z2 being object st z1 in the carrier of [:X,Y:] & z2 in the carrier of [:X,Y:] & I . z1 = I . z2 holds
z1 = z2
let z1, z2 be object ; :: thesis: ( z1 in the carrier of [:X,Y:] & z2 in the carrier of [:X,Y:] & I . z1 = I . z2 implies z1 = z2 )
assume A5: ( z1 in the carrier of [:X,Y:] & z2 in the carrier of [:X,Y:] & I . z1 = I . z2 ) ; :: thesis: z1 = z2
consider x1, y1 being object such that
A6: ( x1 in the carrier of X & y1 in the carrier of Y & z1 = [x1,y1] ) by A5, ZFMISC_1:def 2;
consider x2, y2 being object such that
A7: ( x2 in the carrier of X & y2 in the carrier of Y & z2 = [x2,y2] ) by A5, ZFMISC_1:def 2;
[x1,<*y1*>] = I . (x1,y1) by A4, A6
.= I . (x2,y2) by A5, A6, A7
.= [x2,<*y2*>] by A4, A7 ;
then ( x1 = x2 & <*y1*> = <*y2*> ) by XTUPLE_0:1;
hence z1 = z2 by A6, A7, FINSEQ_1:76; :: thesis: verum
end;
hence I is one-to-one by FUNCT_2:19; :: thesis: ( I is onto & ( for x being Point of X
for y being Point of Y holds I . (x,y) = [x,<*y*>] ) & ( for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )

now :: thesis: for w being object st w in the carrier of [:X,(product <*Y*>):] holds
w in rng I
let w be object ; :: thesis: ( w in the carrier of [:X,(product <*Y*>):] implies w in rng I )
assume w in the carrier of [:X,(product <*Y*>):] ; :: thesis: w in rng I
then consider x, y1 being object such that
A8: ( x in the carrier of X & y1 in the carrier of (product <*Y*>) & w = [x,y1] ) by ZFMISC_1:def 2;
y1 in rng J by A1, A8, FUNCT_2:def 3;
then consider y being object such that
A9: ( y in the carrier of Y & y1 = J . y ) by FUNCT_2:11;
reconsider z = [x,y] as Element of [: the carrier of X, the carrier of Y:] by A8, A9, ZFMISC_1:87;
J . y = <*y*> by A9, A1;
then w = I . (x,y) by A4, A8, A9;
then w = I . z ;
hence w in rng I by FUNCT_2:4; :: thesis: verum
end;
then the carrier of [:X,(product <*Y*>):] c= rng I by TARSKI:def 3;
then the carrier of [:X,(product <*Y*>):] = rng I by XBOOLE_0:def 10;
hence I is onto by FUNCT_2:def 3; :: thesis: ( ( for x being Point of X
for y being Point of Y holds I . (x,y) = [x,<*y*>] ) & ( for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )

thus for x being Point of X
for y being Point of Y holds I . (x,y) = [x,<*y*>] by A4; :: thesis: ( ( for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) ) & ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )

thus for v, w being Point of [:X,Y:] holds I . (v + w) = (I . v) + (I . w) :: thesis: ( ( for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) ) & I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] )
proof
let v, w be Point of [:X,Y:]; :: thesis: I . (v + w) = (I . v) + (I . w)
consider x1 being Point of X, x2 being Point of Y such that
A10: v = [x1,x2] by Lm1;
consider y1 being Point of X, y2 being Point of Y such that
A11: w = [y1,y2] by Lm1;
A12: I . (v + w) = I . ((x1 + y1),(x2 + y2)) by A10, A11, Def1
.= [(x1 + y1),<*(x2 + y2)*>] by A4 ;
( I . v = I . (x1,x2) & I . w = I . (y1,y2) ) by A10, A11;
then A13: ( I . v = [x1,<*x2*>] & I . w = [y1,<*y2*>] ) by A4;
A14: ( J . x2 = <*x2*> & J . y2 = <*y2*> ) by A1;
then reconsider xx2 = <*x2*> as Point of (product <*Y*>) ;
reconsider yy2 = <*y2*> as Point of (product <*Y*>) by A14;
<*(x2 + y2)*> = J . (x2 + y2) by A1
.= xx2 + yy2 by A14, A1 ;
hence (I . v) + (I . w) = I . (v + w) by A12, A13, Def1; :: thesis: verum
end;
thus for v being Point of [:X,Y:]
for r being Element of REAL holds I . (r * v) = r * (I . v) :: thesis: I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):]
proof
let v be Point of [:X,Y:]; :: thesis: for r being Element of REAL holds I . (r * v) = r * (I . v)
let r be Element of REAL ; :: thesis: I . (r * v) = r * (I . v)
consider x1 being Point of X, x2 being Point of Y such that
A15: v = [x1,x2] by Lm1;
A16: I . (r * v) = I . ((r * x1),(r * x2)) by A15, Th9
.= [(r * x1),<*(r * x2)*>] by A4 ;
A17: I . v = I . (x1,x2) by A15
.= [x1,<*x2*>] by A4 ;
A18: J . x2 = <*x2*> by A1;
then reconsider xx2 = <*x2*> as Point of (product <*Y*>) ;
<*(r * x2)*> = J . (r * x2) by A1
.= r * xx2 by A18, A1 ;
hence r * (I . v) = I . (r * v) by A16, A17, Th9; :: thesis: verum
end;
A19: <*(0. Y)*> = 0. (product <*Y*>) by A1;
I . (0. [:X,Y:]) = I . ((0. X),(0. Y)) ;
hence I . (0. [:X,Y:]) = 0. [:X,(product <*Y*>):] by A19, A4; :: thesis: verum