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

let f be Homomorphism of G1,G2; :: thesis: ( f is one-to-one implies FuncLatt f is Semilattice-Homomorphism of (lattice G1),(lattice G2) )
assume A1: f is one-to-one ; :: thesis: FuncLatt f is Semilattice-Homomorphism of (lattice G1),(lattice G2)
for a, b being Element of (lattice G1) holds (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b)
proof
let a, b be Element of (lattice G1); :: thesis: (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b)
consider A1 being strict Subgroup of G1 such that
A2: A1 = a by Th2;
consider B1 being strict Subgroup of G1 such that
A3: B1 = b by Th2;
thus (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) :: thesis: verum
proof
A4: for g1, g2 being Element of G2 st g1 in f .: the carrier of B1 & g2 in f .: the carrier of B1 holds
g1 * g2 in f .: the carrier of B1
proof
let g1, g2 be Element of G2; :: thesis: ( g1 in f .: the carrier of B1 & g2 in f .: the carrier of B1 implies g1 * g2 in f .: the carrier of B1 )
assume that
A5: g1 in f .: the carrier of B1 and
A6: g2 in f .: the carrier of B1 ; :: thesis: g1 * g2 in f .: the carrier of B1
consider x being Element of G1 such that
A7: x in the carrier of B1 and
A8: g1 = f . x by A5, FUNCT_2:65;
consider y being Element of G1 such that
A9: y in the carrier of B1 and
A10: g2 = f . y by A6, FUNCT_2:65;
A11: y in B1 by A9, STRUCT_0:def 5;
x in B1 by A7, STRUCT_0:def 5;
then x * y in B1 by A11, GROUP_2:50;
then A12: x * y in the carrier of B1 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 B1 by A8, A10, A12, FUNCT_2:35; :: thesis: verum
end;
A13: for g being Element of G2 st g in f .: the carrier of B1 holds
g " in f .: the carrier of B1
proof
let g be Element of G2; :: thesis: ( g in f .: the carrier of B1 implies g " in f .: the carrier of B1 )
assume g in f .: the carrier of B1 ; :: thesis: g " in f .: the carrier of B1
then consider x being Element of G1 such that
A14: x in the carrier of B1 and
A15: g = f . x by FUNCT_2:65;
x in B1 by A14, STRUCT_0:def 5;
then x " in B1 by GROUP_2:51;
then A16: x " in the carrier of B1 by STRUCT_0:def 5;
f . (x ") = (f . x) " by GROUP_6:32;
hence g " in f .: the carrier of B1 by A15, A16, FUNCT_2:35; :: thesis: verum
end;
A17: for g being Element of G2 st g in f .: the carrier of A1 holds
g " in f .: the carrier of A1
proof
let g be Element of G2; :: thesis: ( g in f .: the carrier of A1 implies g " in f .: the carrier of A1 )
assume g in f .: the carrier of A1 ; :: thesis: g " in f .: the carrier of A1
then consider x being Element of G1 such that
A18: x in the carrier of A1 and
A19: g = f . x by FUNCT_2:65;
x in A1 by A18, STRUCT_0:def 5;
then x " in A1 by GROUP_2:51;
then A20: x " in the carrier of A1 by STRUCT_0:def 5;
f . (x ") = (f . x) " by GROUP_6:32;
hence g " in f .: the carrier of A1 by A19, A20, FUNCT_2:35; :: thesis: verum
end;
1_ G1 in A1 by GROUP_2:46;
then A21: 1_ G1 in the carrier of A1 by STRUCT_0:def 5;
A22: (FuncLatt f) . (A1 /\ B1) = gr (f .: the carrier of (A1 /\ B1)) by Def3;
consider C1 being strict Subgroup of G1 such that
A23: C1 = A1 /\ B1 ;
A24: for g1, g2 being Element of G2 st g1 in f .: the carrier of A1 & g2 in f .: the carrier of A1 holds
g1 * g2 in f .: the carrier of A1
proof
let g1, g2 be Element of G2; :: thesis: ( g1 in f .: the carrier of A1 & g2 in f .: the carrier of A1 implies g1 * g2 in f .: the carrier of A1 )
assume that
A25: g1 in f .: the carrier of A1 and
A26: g2 in f .: the carrier of A1 ; :: thesis: g1 * g2 in f .: the carrier of A1
consider x being Element of G1 such that
A27: x in the carrier of A1 and
A28: g1 = f . x by A25, FUNCT_2:65;
consider y being Element of G1 such that
A29: y in the carrier of A1 and
A30: g2 = f . y by A26, FUNCT_2:65;
A31: y in A1 by A29, STRUCT_0:def 5;
x in A1 by A27, STRUCT_0:def 5;
then x * y in A1 by A31, GROUP_2:50;
then A32: x * y in the carrier of A1 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 A1 by A28, A30, A32, FUNCT_2:35; :: thesis: verum
end;
1_ G1 in B1 by GROUP_2:46;
then A33: 1_ G1 in the carrier of B1 by STRUCT_0:def 5;
A34: ( (FuncLatt f) . a = gr (f .: the carrier of A1) & (FuncLatt f) . b = gr (f .: the carrier of B1) ) by A2, A3, Def3;
A35: dom f = the carrier of G1 by FUNCT_2:def 1;
A36: for g1, g2 being Element of G2 st g1 in f .: the carrier of C1 & g2 in f .: the carrier of C1 holds
g1 * g2 in f .: the carrier of C1
proof
let g1, g2 be Element of G2; :: thesis: ( g1 in f .: the carrier of C1 & g2 in f .: the carrier of C1 implies g1 * g2 in f .: the carrier of C1 )
assume that
A37: g1 in f .: the carrier of C1 and
A38: g2 in f .: the carrier of C1 ; :: thesis: g1 * g2 in f .: the carrier of C1
consider x being Element of G1 such that
A39: x in the carrier of C1 and
A40: g1 = f . x by A37, FUNCT_2:65;
consider y being Element of G1 such that
A41: y in the carrier of C1 and
A42: g2 = f . y by A38, FUNCT_2:65;
A43: y in C1 by A41, STRUCT_0:def 5;
x in C1 by A39, STRUCT_0:def 5;
then x * y in C1 by A43, GROUP_2:50;
then A44: x * y in the carrier of C1 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 C1 by A40, A42, A44, FUNCT_2:35; :: thesis: verum
end;
A45: for g being Element of G2 st g in f .: the carrier of C1 holds
g " in f .: the carrier of C1
proof
let g be Element of G2; :: thesis: ( g in f .: the carrier of C1 implies g " in f .: the carrier of C1 )
assume g in f .: the carrier of C1 ; :: thesis: g " in f .: the carrier of C1
then consider x being Element of G1 such that
A46: x in the carrier of C1 and
A47: g = f . x by FUNCT_2:65;
x in C1 by A46, STRUCT_0:def 5;
then x " in C1 by GROUP_2:51;
then A48: x " in the carrier of C1 by STRUCT_0:def 5;
f . (x ") = (f . x) " by GROUP_6:32;
hence g " in f .: the carrier of C1 by A47, A48, FUNCT_2:35; :: thesis: verum
end;
1_ G1 in C1 by GROUP_2:46;
then A49: 1_ G1 in the carrier of C1 by STRUCT_0:def 5;
ex y2 being Element of G2 st y2 = f . (1_ G1) ;
then f .: the carrier of C1 <> {} by A35, A49, FUNCT_1:def 6;
then consider C3 being strict Subgroup of G2 such that
A50: the carrier of C3 = f .: the carrier of C1 by A45, A36, GROUP_2:52;
ex y1 being Element of G2 st y1 = f . (1_ G1) ;
then f .: the carrier of B1 <> {} by A35, A33, FUNCT_1:def 6;
then consider B3 being strict Subgroup of G2 such that
A51: the carrier of B3 = f .: the carrier of B1 by A13, A4, GROUP_2:52;
ex y being Element of G2 st y = f . (1_ G1) ;
then f .: the carrier of A1 <> {} by A35, A21, FUNCT_1:def 6;
then consider A3 being strict Subgroup of G2 such that
A52: the carrier of A3 = f .: the carrier of A1 by A17, A24, GROUP_2:52;
A53: the carrier of C3 c= the carrier of (A3 /\ B3)
proof
A54: f .: the carrier of (A1 /\ B1) c= f .: the carrier of B1
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in f .: the carrier of (A1 /\ B1) or x in f .: the carrier of B1 )
assume A55: x in f .: the carrier of (A1 /\ B1) ; :: thesis: x in f .: the carrier of B1
then reconsider x = x as Element of G2 ;
consider y being Element of G1 such that
A56: y in the carrier of (A1 /\ B1) and
A57: x = f . y by A55, FUNCT_2:65;
y in the carrier of A1 /\ the carrier of B1 by A56, Th1;
then y in the carrier of B1 by XBOOLE_0:def 4;
hence x in f .: the carrier of B1 by A57, FUNCT_2:35; :: thesis: verum
end;
A58: f .: the carrier of (A1 /\ B1) c= f .: the carrier of A1
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in f .: the carrier of (A1 /\ B1) or x in f .: the carrier of A1 )
assume A59: x in f .: the carrier of (A1 /\ B1) ; :: thesis: x in f .: the carrier of A1
then reconsider x = x as Element of G2 ;
consider y being Element of G1 such that
A60: y in the carrier of (A1 /\ B1) and
A61: x = f . y by A59, FUNCT_2:65;
y in the carrier of A1 /\ the carrier of B1 by A60, Th1;
then y in the carrier of A1 by XBOOLE_0:def 4;
hence x in f .: the carrier of A1 by A61, FUNCT_2:35; :: thesis: verum
end;
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in the carrier of C3 or x in the carrier of (A3 /\ B3) )
assume A62: x in the carrier of C3 ; :: thesis: x in the carrier of (A3 /\ B3)
the carrier of C3 c= the carrier of G2 by GROUP_2:def 5;
then reconsider x = x as Element of G2 by A62;
consider y being Element of G1 such that
A63: y in the carrier of (A1 /\ B1) and
A64: x = f . y by A23, A50, A62, FUNCT_2:65;
f . y in f .: the carrier of (A1 /\ B1) by A63, FUNCT_2:35;
then f . y in the carrier of A3 /\ the carrier of B3 by A52, A51, A58, A54, XBOOLE_0:def 4;
hence x in the carrier of (A3 /\ B3) by A64, Th1; :: thesis: verum
end;
A65: gr (f .: the carrier of B1) = B3 by A51, Th3;
the carrier of (A3 /\ B3) c= the carrier of C3
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in the carrier of (A3 /\ B3) or x in the carrier of C3 )
assume x in the carrier of (A3 /\ B3) ; :: thesis: x in the carrier of C3
then x in the carrier of A3 /\ the carrier of B3 by Th1;
then x in f .: ( the carrier of A1 /\ the carrier of B1) by A1, A52, A51, FUNCT_1:62;
hence x in the carrier of C3 by A23, A50, Th1; :: thesis: verum
end;
then the carrier of (A3 /\ B3) = the carrier of C3 by A53;
then gr (f .: the carrier of (A1 /\ B1)) = A3 /\ B3 by A23, A50, Th3
.= (gr (f .: the carrier of A1)) /\ (gr (f .: the carrier of B1)) by A52, A65, Th3
.= ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) by A34, Th23 ;
hence (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) by A2, A3, A22, Th23; :: thesis: verum
end;
end;
hence FuncLatt f is Semilattice-Homomorphism of (lattice G1),(lattice G2) by LATTICE4:def 2; :: thesis: verum