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
A3: A1 = a by Th2;
consider B1 being strict Subgroup of G1 such that
A4: B1 = b by Th2;
thus (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) :: thesis: verum
proof
A5: (FuncLatt f) . a = gr (f .: the carrier of A1) by A3, Def3;
A6: (FuncLatt f) . b = gr (f .: the carrier of B1) by A4, Def3;
A7: (FuncLatt f) . (A1 /\ B1) = gr (f .: the carrier of (A1 /\ B1)) by Def3;
A8: dom f = the carrier of G1 by FUNCT_2:def 1;
1_ G1 in A1 by GROUP_2:55;
then A9: 1_ G1 in the carrier of A1 by STRUCT_0:def 5;
consider y being Element of G2 such that
A10: y = f . (1_ G1) ;
A11: f .: the carrier of A1 <> {} by A8, A9, A10, FUNCT_1:def 12;
A12: 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
A13: ( x in the carrier of A1 & g = f . x ) by FUNCT_2:116;
x in A1 by A13, STRUCT_0:def 5;
then x " in A1 by GROUP_2:60;
then A14: x " in the carrier of A1 by STRUCT_0:def 5;
f . (x " ) = (f . x) " by GROUP_6:41;
hence g " in f .: the carrier of A1 by A13, A14, FUNCT_2:43; :: thesis: verum
end;
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 A15: ( g1 in f .: the carrier of A1 & g2 in f .: the carrier of A1 ) ; :: thesis: g1 * g2 in f .: the carrier of A1
then consider x being Element of G1 such that
A16: ( x in the carrier of A1 & g1 = f . x ) by FUNCT_2:116;
A17: x in A1 by A16, STRUCT_0:def 5;
consider y being Element of G1 such that
A18: ( y in the carrier of A1 & g2 = f . y ) by A15, FUNCT_2:116;
y in A1 by A18, STRUCT_0:def 5;
then x * y in A1 by A17, GROUP_2:59;
then A19: x * y in the carrier of A1 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 A1 by A16, A18, A19, FUNCT_2:43; :: thesis: verum
end;
then consider A3 being strict Subgroup of G2 such that
A20: the carrier of A3 = f .: the carrier of A1 by A11, A12, GROUP_2:61;
1_ G1 in B1 by GROUP_2:55;
then A21: 1_ G1 in the carrier of B1 by STRUCT_0:def 5;
consider y1 being Element of G2 such that
A22: y1 = f . (1_ G1) ;
A23: f .: the carrier of B1 <> {} by A8, A21, A22, FUNCT_1:def 12;
A24: 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
A25: ( x in the carrier of B1 & g = f . x ) by FUNCT_2:116;
x in B1 by A25, STRUCT_0:def 5;
then x " in B1 by GROUP_2:60;
then A26: x " in the carrier of B1 by STRUCT_0:def 5;
f . (x " ) = (f . x) " by GROUP_6:41;
hence g " in f .: the carrier of B1 by A25, A26, FUNCT_2:43; :: thesis: verum
end;
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 A27: ( g1 in f .: the carrier of B1 & g2 in f .: the carrier of B1 ) ; :: thesis: g1 * g2 in f .: the carrier of B1
then consider x being Element of G1 such that
A28: ( x in the carrier of B1 & g1 = f . x ) by FUNCT_2:116;
A29: x in B1 by A28, STRUCT_0:def 5;
consider y being Element of G1 such that
A30: ( y in the carrier of B1 & g2 = f . y ) by A27, FUNCT_2:116;
y in B1 by A30, STRUCT_0:def 5;
then x * y in B1 by A29, GROUP_2:59;
then A31: x * y in the carrier of B1 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 B1 by A28, A30, A31, FUNCT_2:43; :: thesis: verum
end;
then consider B3 being strict Subgroup of G2 such that
A32: the carrier of B3 = f .: the carrier of B1 by A23, A24, GROUP_2:61;
A33: gr (f .: the carrier of B1) = B3 by A32, Th3;
consider C1 being strict Subgroup of G1 such that
A34: C1 = A1 /\ B1 ;
1_ G1 in C1 by GROUP_2:55;
then A35: 1_ G1 in the carrier of C1 by STRUCT_0:def 5;
consider y2 being Element of G2 such that
A36: y2 = f . (1_ G1) ;
A37: f .: the carrier of C1 <> {} by A8, A35, A36, FUNCT_1:def 12;
A38: 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
A39: ( x in the carrier of C1 & g = f . x ) by FUNCT_2:116;
x in C1 by A39, STRUCT_0:def 5;
then x " in C1 by GROUP_2:60;
then A40: x " in the carrier of C1 by STRUCT_0:def 5;
f . (x " ) = (f . x) " by GROUP_6:41;
hence g " in f .: the carrier of C1 by A39, A40, FUNCT_2:43; :: thesis: verum
end;
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 A41: ( g1 in f .: the carrier of C1 & g2 in f .: the carrier of C1 ) ; :: thesis: g1 * g2 in f .: the carrier of C1
then consider x being Element of G1 such that
A42: ( x in the carrier of C1 & g1 = f . x ) by FUNCT_2:116;
A43: x in C1 by A42, STRUCT_0:def 5;
consider y being Element of G1 such that
A44: ( y in the carrier of C1 & g2 = f . y ) by A41, FUNCT_2:116;
y in C1 by A44, STRUCT_0:def 5;
then x * y in C1 by A43, GROUP_2:59;
then A45: x * y in the carrier of C1 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 C1 by A42, A44, A45, FUNCT_2:43; :: thesis: verum
end;
then consider C3 being strict Subgroup of G2 such that
A46: the carrier of C3 = f .: the carrier of C1 by A37, A38, GROUP_2:61;
the carrier of (A3 /\ B3) = the carrier of C3
proof
thus the carrier of (A3 /\ B3) c= the carrier of C3 :: according to XBOOLE_0:def 10 :: thesis: the carrier of C3 c= the carrier of (A3 /\ B3)
proof
let x be set ; :: 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, A20, A32, FUNCT_1:121;
hence x in the carrier of C3 by A34, A46, Th1; :: thesis: verum
end;
thus the carrier of C3 c= the carrier of (A3 /\ B3) :: thesis: verum
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in the carrier of C3 or x in the carrier of (A3 /\ B3) )
assume A47: 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 A47;
consider y being Element of G1 such that
A48: ( y in the carrier of (A1 /\ B1) & x = f . y ) by A34, A46, A47, FUNCT_2:116;
A49: f .: the carrier of (A1 /\ B1) c= f .: the carrier of A1
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in f .: the carrier of (A1 /\ B1) or x in f .: the carrier of A1 )
assume A50: 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
A51: ( y in the carrier of (A1 /\ B1) & x = f . y ) by A50, FUNCT_2:116;
y in the carrier of A1 /\ the carrier of B1 by A51, Th1;
then ( y in the carrier of A1 & y in the carrier of B1 ) by XBOOLE_0:def 4;
hence x in f .: the carrier of A1 by A51, FUNCT_2:43; :: thesis: verum
end;
A52: f .: the carrier of (A1 /\ B1) c= f .: the carrier of B1
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in f .: the carrier of (A1 /\ B1) or x in f .: the carrier of B1 )
assume A53: 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
A54: ( y in the carrier of (A1 /\ B1) & x = f . y ) by A53, FUNCT_2:116;
y in the carrier of A1 /\ the carrier of B1 by A54, Th1;
then ( y in the carrier of A1 & y in the carrier of B1 ) by XBOOLE_0:def 4;
hence x in f .: the carrier of B1 by A54, FUNCT_2:43; :: thesis: verum
end;
( f . y in f .: the carrier of (A1 /\ B1) & f . y in f .: the carrier of (A1 /\ B1) ) by A48, FUNCT_2:43;
then f . y in the carrier of A3 /\ the carrier of B3 by A20, A32, A49, A52, XBOOLE_0:def 4;
hence x in the carrier of (A3 /\ B3) by A48, Th1; :: thesis: verum
end;
end;
then gr (f .: the carrier of (A1 /\ B1)) = A3 /\ B3 by A34, A46, Th3
.= (gr (f .: the carrier of A1)) /\ (gr (f .: the carrier of B1)) by A20, A33, Th3
.= ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) by A5, A6, Th28 ;
hence (FuncLatt f) . (a "/\" b) = ((FuncLatt f) . a) "/\" ((FuncLatt f) . b) by A3, A4, A7, Th28; :: thesis: verum
end;
end;
hence FuncLatt f is Semilattice-Homomorphism of lattice G1, lattice G2 by VECTSP_8:def 8; :: thesis: verum