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 object st x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) & (FuncLatt f) . x1 = (FuncLatt f) . x2 holds
x1 = x2
proof
reconsider y = f . (1_ G1) as Element of G2 ;
let x1, x2 be object ; :: thesis: ( x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) & (FuncLatt f) . x1 = (FuncLatt f) . x2 implies x1 = x2 )
assume that
A2: ( x1 in dom (FuncLatt f) & x2 in dom (FuncLatt f) ) and
A3: (FuncLatt f) . x1 = (FuncLatt f) . x2 ; :: thesis: x1 = x2
reconsider x1 = x1, x2 = x2 as strict Subgroup of G1 by A2, GROUP_3:def 1;
reconsider A1 = f .: the carrier of x1, A2 = f .: the carrier of x2 as Subset of G2 ;
A4: 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
A5: x in the carrier of x1 and
A6: g = f . x by FUNCT_2:65;
x in x1 by A5, STRUCT_0:def 5;
then x " in x1 by GROUP_2:51;
then A7: x " in the carrier of x1 by STRUCT_0:def 5;
f . (x ") = (f . x) " by GROUP_6:32;
hence g " in f .: the carrier of x1 by A6, A7, FUNCT_2:35; :: thesis: verum
end;
A8: 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 that
A9: g1 in f .: the carrier of x1 and
A10: g2 in f .: the carrier of x1 ; :: thesis: g1 * g2 in f .: the carrier of x1
consider x being Element of G1 such that
A11: x in the carrier of x1 and
A12: g1 = f . x by A9, FUNCT_2:65;
consider y being Element of G1 such that
A13: y in the carrier of x1 and
A14: g2 = f . y by A10, FUNCT_2:65;
A15: y in x1 by A13, STRUCT_0:def 5;
x in x1 by A11, STRUCT_0:def 5;
then x * y in x1 by A15, GROUP_2:50;
then A16: x * y in the carrier of x1 by STRUCT_0:def 5;
f . (x * y) = (f . x) * (f . y) by GROUP_6:def 6;
hence g1 * g2 in f .: the carrier of x1 by A12, A14, A16, FUNCT_2:35; :: thesis: verum
end;
A17: 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
A18: x in the carrier of x2 and
A19: g = f . x by FUNCT_2:65;
x in x2 by A18, STRUCT_0:def 5;
then x " in x2 by GROUP_2:51;
then A20: x " in the carrier of x2 by STRUCT_0:def 5;
f . (x ") = (f . x) " by GROUP_6:32;
hence g " in f .: the carrier of x2 by A19, A20, FUNCT_2:35; :: thesis: verum
end;
A21: dom f = the carrier of G1 by FUNCT_2:def 1;
A22: 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 that
A23: g1 in f .: the carrier of x2 and
A24: g2 in f .: the carrier of x2 ; :: thesis: g1 * g2 in f .: the carrier of x2
consider x being Element of G1 such that
A25: x in the carrier of x2 and
A26: g1 = f . x by A23, FUNCT_2:65;
consider y being Element of G1 such that
A27: y in the carrier of x2 and
A28: g2 = f . y by A24, FUNCT_2:65;
A29: y in x2 by A27, STRUCT_0:def 5;
x in x2 by A25, STRUCT_0:def 5;
then x * y in x2 by A29, GROUP_2:50;
then A30: x * y in the carrier of x2 by STRUCT_0:def 5;
f . (x * y) = (f . x) * (f . y) by GROUP_6:def 6;
hence g1 * g2 in f .: the carrier of x2 by A26, A28, A30, FUNCT_2:35; :: thesis: verum
end;
1_ G1 in x2 by GROUP_2:46;
then A31: 1_ G1 in the carrier of x2 by STRUCT_0:def 5;
A32: ( (FuncLatt f) . x1 = gr A1 & (FuncLatt f) . x2 = gr A2 ) by Def3;
ex y being Element of G2 st y = f . (1_ G1) ;
then f .: the carrier of x2 <> {} by A21, A31, FUNCT_1:def 6;
then consider B2 being strict Subgroup of G2 such that
A33: the carrier of B2 = f .: the carrier of x2 by A17, A22, GROUP_2:52;
1_ G1 in x1 by GROUP_2:46;
then 1_ G1 in the carrier of x1 by STRUCT_0:def 5;
then y in f .: the carrier of x1 by A21, FUNCT_1:def 6;
then A34: ex B1 being strict Subgroup of G2 st the carrier of B1 = f .: the carrier of x1 by A4, A8, GROUP_2:52;
gr (f .: the carrier of x2) = B2 by A33, Th3;
then A35: f .: the carrier of x1 = f .: the carrier of x2 by A3, A32, A34, A33, Th3;
the carrier of x2 c= dom f by A21, GROUP_2:def 5;
then A36: the carrier of x2 c= the carrier of x1 by A1, A35, FUNCT_1:87;
the carrier of x1 c= dom f by A21, GROUP_2:def 5;
then the carrier of x1 c= the carrier of x2 by A1, A35, FUNCT_1:87;
then the carrier of x1 = the carrier of x2 by A36;
hence x1 = x2 by GROUP_2:59; :: thesis: verum
end;
hence FuncLatt f is one-to-one by FUNCT_1:def 4; :: thesis: verum