:: On the Lattice of Subgroups of a Group
:: by Janusz Ganczarski
::
:: Copyright (c) 1995-2021 Association of Mizar Users

theorem Th1: :: LATSUBGR:1
for G being Group
for H1, H2 being Subgroup of G holds the carrier of (H1 /\ H2) = the carrier of H1 /\ the carrier of H2
proof end;

theorem Th2: :: LATSUBGR:2
for G being Group
for h being set holds
( h in Subgroups G iff ex H being strict Subgroup of G st h = H )
proof end;

theorem Th3: :: LATSUBGR:3
for G being Group
for A being Subset of G
for H being strict Subgroup of G st A = the carrier of H holds
gr A = H
proof end;

theorem Th4: :: LATSUBGR:4
for G being Group
for H1, H2 being Subgroup of G
for A being Subset of G st A = the carrier of H1 \/ the carrier of H2 holds
H1 "\/" H2 = gr A
proof end;

theorem Th5: :: LATSUBGR:5
for G being Group
for H1, H2 being Subgroup of G
for g being Element of G st ( g in H1 or g in H2 ) holds
g in H1 "\/" H2
proof end;

theorem :: LATSUBGR:6
for G1, G2 being Group
for f being Homomorphism of G1,G2
for H1 being Subgroup of G1 ex H2 being strict Subgroup of G2 st the carrier of H2 = f .: the carrier of H1
proof end;

theorem :: LATSUBGR:7
for G1, G2 being Group
for f being Homomorphism of G1,G2
for H2 being Subgroup of G2 ex H1 being strict Subgroup of G1 st the carrier of H1 = f " the carrier of H2
proof end;

theorem :: LATSUBGR:8
for G1, G2 being Group
for f being Homomorphism of G1,G2
for H1, H2 being Subgroup of G1
for H3, H4 being Subgroup of G2 st the carrier of H3 = f .: the carrier of H1 & the carrier of H4 = f .: the carrier of H2 & H1 is Subgroup of H2 holds
H3 is Subgroup of H4
proof end;

theorem :: LATSUBGR:9
for G1, G2 being Group
for f being Homomorphism of G1,G2
for H1, H2 being Subgroup of G2
for H3, H4 being Subgroup of G1 st the carrier of H3 = f " the carrier of H1 & the carrier of H4 = f " the carrier of H2 & H1 is Subgroup of H2 holds
H3 is Subgroup of H4
proof end;

theorem :: LATSUBGR:10
for G1, G2 being Group
for f being Function of the carrier of G1, the carrier of G2
for A being Subset of G1 holds f .: A c= f .: the carrier of (gr A)
proof end;

theorem :: LATSUBGR:11
for G1, G2 being Group
for H1, H2 being Subgroup of G1
for f being Function of the carrier of G1, the carrier of G2
for A being Subset of G1 st A = the carrier of H1 \/ the carrier of H2 holds
f .: the carrier of (H1 "\/" H2) = f .: the carrier of (gr A) by Th4;

theorem Th12: :: LATSUBGR:12
for G being Group
for A being Subset of G st A = {(1_ G)} holds
gr A = (1). G
proof end;

definition
let G be Group;
func carr G -> Function of (),(bool the carrier of G) means :Def1: :: LATSUBGR:def 1
for H being strict Subgroup of G holds it . H = the carrier of H;
existence
ex b1 being Function of (),(bool the carrier of G) st
for H being strict Subgroup of G holds b1 . H = the carrier of H
proof end;
uniqueness
for b1, b2 being Function of (),(bool the carrier of G) st ( for H being strict Subgroup of G holds b1 . H = the carrier of H ) & ( for H being strict Subgroup of G holds b2 . H = the carrier of H ) holds
b1 = b2
proof end;
end;

:: deftheorem Def1 defines carr LATSUBGR:def 1 :
for G being Group
for b2 being Function of (),(bool the carrier of G) holds
( b2 = carr G iff for H being strict Subgroup of G holds b2 . H = the carrier of H );

theorem Th13: :: LATSUBGR:13
for G being Group
for H being strict Subgroup of G
for x being Element of G holds
( x in (carr G) . H iff x in H )
proof end;

theorem :: LATSUBGR:14
for G being Group
for H being strict Subgroup of G holds 1_ G in (carr G) . H
proof end;

theorem :: LATSUBGR:15
for G being Group
for H being strict Subgroup of G holds (carr G) . H <> {} by Def1;

theorem :: LATSUBGR:16
for G being Group
for H being strict Subgroup of G
for g1, g2 being Element of G st g1 in (carr G) . H & g2 in (carr G) . H holds
g1 * g2 in (carr G) . H
proof end;

theorem :: LATSUBGR:17
for G being Group
for H being strict Subgroup of G
for g being Element of G st g in (carr G) . H holds
g " in (carr G) . H
proof end;

theorem Th18: :: LATSUBGR:18
for G being Group
for H1, H2 being strict Subgroup of G holds the carrier of (H1 /\ H2) = ((carr G) . H1) /\ ((carr G) . H2)
proof end;

theorem :: LATSUBGR:19
for G being Group
for H1, H2 being strict Subgroup of G holds (carr G) . (H1 /\ H2) = ((carr G) . H1) /\ ((carr G) . H2)
proof end;

definition
let G be Group;
let F be non empty Subset of ();
func meet F -> strict Subgroup of G means :Def2: :: LATSUBGR:def 2
the carrier of it = meet ((carr G) .: F);
existence
ex b1 being strict Subgroup of G st the carrier of b1 = meet ((carr G) .: F)
proof end;
uniqueness
for b1, b2 being strict Subgroup of G st the carrier of b1 = meet ((carr G) .: F) & the carrier of b2 = meet ((carr G) .: F) holds
b1 = b2
by GROUP_2:59;
end;

:: deftheorem Def2 defines meet LATSUBGR:def 2 :
for G being Group
for F being non empty Subset of ()
for b3 being strict Subgroup of G holds
( b3 = meet F iff the carrier of b3 = meet ((carr G) .: F) );

theorem :: LATSUBGR:20
for G being Group
for F being non empty Subset of () st (1). G in F holds
meet F = (1). G
proof end;

theorem :: LATSUBGR:21
for G being Group
for h being Element of Subgroups G
for F being non empty Subset of () st F = {h} holds
meet F = h
proof end;

theorem Th22: :: LATSUBGR:22
for G being Group
for H1, H2 being Subgroup of G
for h1, h2 being Element of () st h1 = H1 & h2 = H2 holds
h1 "\/" h2 = H1 "\/" H2
proof end;

theorem Th23: :: LATSUBGR:23
for G being Group
for H1, H2 being Subgroup of G
for h1, h2 being Element of () st h1 = H1 & h2 = H2 holds
h1 "/\" h2 = H1 /\ H2
proof end;

theorem :: LATSUBGR:24
for G being Group
for p being Element of ()
for H being Subgroup of G st p = H holds
H is strict Subgroup of G by GROUP_3:def 1;

theorem Th25: :: LATSUBGR:25
for G being Group
for H1, H2 being Subgroup of G
for p, q being Element of () st p = H1 & q = H2 holds
( p [= q iff the carrier of H1 c= the carrier of H2 )
proof end;

theorem :: LATSUBGR:26
for G being Group
for H1, H2 being Subgroup of G
for p, q being Element of () st p = H1 & q = H2 holds
( p [= q iff H1 is Subgroup of H2 )
proof end;

theorem :: LATSUBGR:27
for G being Group holds lattice G is complete
proof end;

definition
let G1, G2 be Group;
let f be Function of the carrier of G1, the carrier of G2;
func FuncLatt f -> Function of the carrier of (lattice G1), the carrier of (lattice G2) means :Def3: :: LATSUBGR:def 3
for H being strict Subgroup of G1
for A being Subset of G2 st A = f .: the carrier of H holds
it . H = gr A;
existence
ex b1 being Function of the carrier of (lattice G1), the carrier of (lattice G2) st
for H being strict Subgroup of G1
for A being Subset of G2 st A = f .: the carrier of H holds
b1 . H = gr A
proof end;
uniqueness
for b1, b2 being Function of the carrier of (lattice G1), the carrier of (lattice G2) st ( for H being strict Subgroup of G1
for A being Subset of G2 st A = f .: the carrier of H holds
b1 . H = gr A ) & ( for H being strict Subgroup of G1
for A being Subset of G2 st A = f .: the carrier of H holds
b2 . H = gr A ) holds
b1 = b2
proof end;
end;

:: deftheorem Def3 defines FuncLatt LATSUBGR:def 3 :
for G1, G2 being Group
for f being Function of the carrier of G1, the carrier of G2
for b4 being Function of the carrier of (lattice G1), the carrier of (lattice G2) holds
( b4 = FuncLatt f iff for H being strict Subgroup of G1
for A being Subset of G2 st A = f .: the carrier of H holds
b4 . H = gr A );

theorem :: LATSUBGR:28
for G being Group holds FuncLatt (id the carrier of G) = id the carrier of ()
proof end;

theorem :: LATSUBGR:29
for G1, G2 being Group
for f being Homomorphism of G1,G2 st f is one-to-one holds
FuncLatt f is one-to-one
proof end;

theorem :: LATSUBGR:30
for G1, G2 being Group
for f being Homomorphism of G1,G2 holds () . ((1). G1) = (1). G2
proof end;

theorem Th31: :: LATSUBGR:31
for G1, G2 being Group
for f being Homomorphism of G1,G2 st f is one-to-one holds
FuncLatt f is Semilattice-Homomorphism of (lattice G1),(lattice G2)
proof end;

theorem Th32: :: LATSUBGR:32
for G1, G2 being Group
for f being Homomorphism of G1,G2 holds FuncLatt f is sup-Semilattice-Homomorphism of (lattice G1),(lattice G2)
proof end;

theorem :: LATSUBGR:33
for G1, G2 being Group
for f being Homomorphism of G1,G2 st f is one-to-one holds
FuncLatt f is Homomorphism of (lattice G1),(lattice G2) by ;