let X, Y be AbGroup; :: thesis: ex I being Homomorphism of [:X,Y:],[:X,():] st
( I is bijective & ( for x being Element of X
for y being Element of Y holds I . (x,y) = [x,<*y*>] ) )

consider J being Homomorphism of Y,() such that
A1: ( J is bijective & ( for y being Element of Y holds J . y = <*y*> ) ) by Th1;
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,():] & 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,():] & 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,():] & S1[x,y,z] )

then reconsider y0 = y as Element of Y ;
reconsider z = [x,<*y0*>] as set by TARSKI:1;
take z ; :: thesis: ( z in the carrier of [:X,():] & S1[x,y,z] )
J . y0 = <*y0*> by A1;
hence ( z in the carrier of [:X,():] & S1[x,y,z] ) by ; :: thesis: verum
end;
consider I being Function of [: the carrier of X, the carrier of Y:], the carrier of [:X,():] 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 reconsider I = I as Function of [:X,Y:],[:X,():] ;
for v, w being Element of [:X,Y:] holds I . (v + w) = (I . v) + (I . w)
proof
let v, w be Element of [:X,Y:]; :: thesis: I . (v + w) = (I . v) + (I . w)
consider x1 being Element of X, x2 being Element of Y such that
A5: v = [x1,x2] by SUBSET_1:43;
consider y1 being Element of X, y2 being Element of Y such that
A6: w = [y1,y2] by SUBSET_1:43;
A7: I . (v + w) = I . ((x1 + y1),(x2 + y2)) by
.= [(x1 + y1),<*(x2 + y2)*>] by A4 ;
( I . v = I . (x1,x2) & I . w = I . (y1,y2) ) by A5, A6;
then A8: ( I . v = [x1,<*x2*>] & I . w = [y1,<*y2*>] ) by A4;
A9: ( J . x2 = <*x2*> & J . y2 = <*y2*> ) by A1;
then reconsider xx2 = <*x2*> as Element of () ;
reconsider yy2 = <*y2*> as Element of () by A9;
<*(x2 + y2)*> = J . (x2 + y2) by A1
.= xx2 + yy2 by ;
hence (I . v) + (I . w) = I . (v + w) by ; :: thesis: verum
end;
then reconsider I = I as Homomorphism of [:X,Y:],[:X,():] by VECTSP_1:def 20;
take I ; :: thesis: ( I is bijective & ( for x being Element of X
for y being Element of Y holds I . (x,y) = [x,<*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 A10: ( 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
A11: ( x1 in the carrier of X & y1 in the carrier of Y & z1 = [x1,y1] ) by ;
consider x2, y2 being object such that
A12: ( x2 in the carrier of X & y2 in the carrier of Y & z2 = [x2,y2] ) by ;
[x1,<*y1*>] = I . (x1,y1) by
.= I . (x2,y2) by
.= [x2,<*y2*>] by ;
then ( x1 = x2 & <*y1*> = <*y2*> ) by XTUPLE_0:1;
hence z1 = z2 by ; :: thesis: verum
end;
then A13: I is one-to-one by FUNCT_2:19;
now :: thesis: for w being object st w in the carrier of [:X,():] holds
w in rng I
let w be object ; :: thesis: ( w in the carrier of [:X,():] implies w in rng I )
assume w in the carrier of [:X,():] ; :: thesis: w in rng I
then consider x, y1 being object such that
A14: ( x in the carrier of X & y1 in the carrier of () & w = [x,y1] ) by ZFMISC_1:def 2;
y1 in rng J by ;
then consider y being object such that
A15: ( 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 ;
J . y = <*y*> by ;
then w = I . (x,y) by A4, A14, A15;
then w = I . z ;
hence w in rng I by FUNCT_2:4; :: thesis: verum
end;
then the carrier of [:X,():] c= rng I by TARSKI:def 3;
then I is onto by ;
hence I is bijective by A13; :: thesis: for x being Element of X
for y being Element of Y holds I . (x,y) = [x,<*y*>]

thus for x being Element of X
for y being Element of Y holds I . (x,y) = [x,<*y*>] by A4; :: thesis: verum