let G1, G2 be Group; :: thesis: for f being Homomorphism of G1,G2 st f is one-to-one holds
FuncLatt f is one-to-one

let f be Homomorphism of G1,G2; :: thesis: ( f is one-to-one implies FuncLatt f is one-to-one )
assume A1: f is one-to-one ; :: thesis: FuncLatt f is one-to-one
for x1, x2 being set st x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) & (FuncLatt f) . x1 = (FuncLatt f) . x2 holds
x1 = x2
proof
let x1, x2 be set ; :: thesis: ( x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) & (FuncLatt f) . x1 = (FuncLatt f) . x2 implies x1 = x2 )
assume A2: ( x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) & (FuncLatt f) . x1 = (FuncLatt f) . x2 ) ; :: thesis: x1 = x2
then reconsider x1 = x1, x2 = x2 as strict Subgroup of G1 by GROUP_3:def 1;
reconsider A1 = f .: the carrier of x1, A2 = f .: the carrier of x2 as Subset of G2 ;
A4: ( (FuncLatt f) . x1 = gr A1 & (FuncLatt f) . x2 = gr A2 ) by Def3;
A5: dom f = the carrier of G1 by FUNCT_2:def 1;
1_ G1 in x1 by GROUP_2:55;
then A6: 1_ G1 in the carrier of x1 by STRUCT_0:def 5;
reconsider y = f . (1_ G1) as Element of G2 ;
A7: y in f .: the carrier of x1 by A5, A6, FUNCT_1:def 12;
A8: for g being Element of G2 st g in f .: the carrier of x1 holds
g " in f .: the carrier of x1
proof
let g be Element of G2; :: thesis: ( g in f .: the carrier of x1 implies g " in f .: the carrier of x1 )
assume g in f .: the carrier of x1 ; :: thesis: g " in f .: the carrier of x1
then consider x being Element of G1 such that
A9: ( x in the carrier of x1 & g = f . x ) by FUNCT_2:116;
x in x1 by A9, STRUCT_0:def 5;
then x " in x1 by GROUP_2:60;
then A10: x " in the carrier of x1 by STRUCT_0:def 5;
f . (x " ) = (f . x) " by GROUP_6:41;
hence g " in f .: the carrier of x1 by A9, A10, FUNCT_2:43; :: thesis: verum
end;
for g1, g2 being Element of G2 st g1 in f .: the carrier of x1 & g2 in f .: the carrier of x1 holds
g1 * g2 in f .: the carrier of x1
proof
let g1, g2 be Element of G2; :: thesis: ( g1 in f .: the carrier of x1 & g2 in f .: the carrier of x1 implies g1 * g2 in f .: the carrier of x1 )
assume A11: ( g1 in f .: the carrier of x1 & g2 in f .: the carrier of x1 ) ; :: thesis: g1 * g2 in f .: the carrier of x1
then consider x being Element of G1 such that
A12: ( x in the carrier of x1 & g1 = f . x ) by FUNCT_2:116;
A13: x in x1 by A12, STRUCT_0:def 5;
consider y being Element of G1 such that
A14: ( y in the carrier of x1 & g2 = f . y ) by A11, FUNCT_2:116;
y in x1 by A14, STRUCT_0:def 5;
then x * y in x1 by A13, GROUP_2:59;
then A15: x * y in the carrier of x1 by STRUCT_0:def 5;
f . (x * y) = (f . x) * (f . y) by GROUP_6:def 7;
hence g1 * g2 in f .: the carrier of x1 by A12, A14, A15, FUNCT_2:43; :: thesis: verum
end;
then consider B1 being strict Subgroup of G2 such that
A16: the carrier of B1 = f .: the carrier of x1 by A7, A8, GROUP_2:61;
1_ G1 in x2 by GROUP_2:55;
then A17: 1_ G1 in the carrier of x2 by STRUCT_0:def 5;
consider y being Element of G2 such that
A18: y = f . (1_ G1) ;
A19: f .: the carrier of x2 <> {} by A5, A17, A18, FUNCT_1:def 12;
A20: for g being Element of G2 st g in f .: the carrier of x2 holds
g " in f .: the carrier of x2
proof
let g be Element of G2; :: thesis: ( g in f .: the carrier of x2 implies g " in f .: the carrier of x2 )
assume g in f .: the carrier of x2 ; :: thesis: g " in f .: the carrier of x2
then consider x being Element of G1 such that
A21: ( x in the carrier of x2 & g = f . x ) by FUNCT_2:116;
x in x2 by A21, STRUCT_0:def 5;
then x " in x2 by GROUP_2:60;
then A22: x " in the carrier of x2 by STRUCT_0:def 5;
f . (x " ) = (f . x) " by GROUP_6:41;
hence g " in f .: the carrier of x2 by A21, A22, FUNCT_2:43; :: thesis: verum
end;
for g1, g2 being Element of G2 st g1 in f .: the carrier of x2 & g2 in f .: the carrier of x2 holds
g1 * g2 in f .: the carrier of x2
proof
let g1, g2 be Element of G2; :: thesis: ( g1 in f .: the carrier of x2 & g2 in f .: the carrier of x2 implies g1 * g2 in f .: the carrier of x2 )
assume A23: ( g1 in f .: the carrier of x2 & g2 in f .: the carrier of x2 ) ; :: thesis: g1 * g2 in f .: the carrier of x2
then consider x being Element of G1 such that
A24: ( x in the carrier of x2 & g1 = f . x ) by FUNCT_2:116;
A25: x in x2 by A24, STRUCT_0:def 5;
consider y being Element of G1 such that
A26: ( y in the carrier of x2 & g2 = f . y ) by A23, FUNCT_2:116;
y in x2 by A26, STRUCT_0:def 5;
then x * y in x2 by A25, GROUP_2:59;
then A27: x * y in the carrier of x2 by STRUCT_0:def 5;
f . (x * y) = (f . x) * (f . y) by GROUP_6:def 7;
hence g1 * g2 in f .: the carrier of x2 by A24, A26, A27, FUNCT_2:43; :: thesis: verum
end;
then consider B2 being strict Subgroup of G2 such that
A28: the carrier of B2 = f .: the carrier of x2 by A19, A20, GROUP_2:61;
gr (f .: the carrier of x2) = B2 by A28, Th3;
then A29: f .: the carrier of x1 = f .: the carrier of x2 by A2, A4, A16, A28, Th3;
( the carrier of x1 c= dom f & the carrier of x2 c= dom f ) by A5, GROUP_2:def 5;
then ( the carrier of x1 c= the carrier of x2 & the carrier of x2 c= the carrier of x1 ) by A1, A29, FUNCT_1:157;
then the carrier of x1 = the carrier of x2 by XBOOLE_0:def 10;
hence x1 = x2 by GROUP_2:68; :: thesis: verum
end;
hence FuncLatt f is one-to-one by FUNCT_1:def 8; :: thesis: verum