Source: ProCGroups.NormalSubgroups.SimpleQuotients.Compactness

1import ProCGroups.NormalSubgroups.SimpleQuotients.FiniteIntersections
3/-!
4# Compactness for intersections above a simple-quotient kernel
6This module upgrades a finite-intersection property for closed normal subgroups of a compact
7group to the corresponding arbitrary-intersection property.
8-/
10namespace ProCGroups.NormalSubgroups
12universe u
14/--
15Compactness step: if the closed normal subgroups satisfying \(M \sqcup K = \top\) are already
16stable under finite intersections, then they are stable under arbitrary intersections.
17-/
18theorem maximal_open_normal_intersections_compactness_step
19 {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G] [CompactSpace G]
20 (K : Subgroup G) [K.Normal] (hKclosed : IsClosed (K : Set G))
21 (๐“œ : Set (Subgroup G))
22 (hMclosed : โˆ€ M โˆˆ ๐“œ, IsClosed (M : Set G))
23 (hfinite :
24 โˆ€ S : Set (Subgroup G), S.Finite โ†’ S โІ ๐“œ โ†’ sInf S โŠ” K = โŠค) :
25 sInf ๐“œ โŠ” K = โŠค := by
26 rw [eq_top_iff]
27 intro g _
28 by_cases h๐“œ : ๐“œ.Nonempty
29 ยท rcases h๐“œ with โŸจMโ‚€, hMโ‚€โŸฉ
30 let coset : Set G := {x | gโปยน * x โˆˆ K}
31 let I := {M : Subgroup G // M โˆˆ ๐“œ}
32 let F : I โ†’ Set G := fun i => (i.1 : Set G) โˆฉ coset
33 have hcosetClosed : IsClosed coset := by
34 change IsClosed ((fun x : G => gโปยน * x) โปยน' (K : Set G))
35 exact hKclosed.preimage (continuous_const_mul gโปยน)
36 have hclosed : โˆ€ i : I, IsClosed (F i) := by
37 intro i
38 exact (hMclosed i.1 i.2).inter hcosetClosed
39 have hfiniteNonempty : โˆ€ s : Finset I, (โ‹‚ i โˆˆ s, F i).Nonempty := by
40 intro s
41 let S : Set (Subgroup G) := (fun i : I => i.1) '' (s : Set _)
42 have hSfinite : S.Finite := s.finite_toSet.image _
43 have hSsub : S โІ ๐“œ := by
44 rintro M โŸจi, _hi, rflโŸฉ
45 exact i.2
46 have htop : sInf S โŠ” K = โŠค := hfinite S hSfinite hSsub
47 have hgmem : g โˆˆ sInf S โŠ” K := by
48 rw [htop]
49 exact Subgroup.mem_top g
50 rcases (Subgroup.mem_sup_of_normal_right (s := sInf S) (t := K) (x := g)).1 hgmem with
51 โŸจl, hlS, k, hk, hlkโŸฉ
52 refine โŸจl, ?_โŸฉ
53 simp only [Set.mem_iInter]
54 intro i hi
55 constructor
56 ยท exact (Subgroup.mem_sInf.mp hlS) i.1 โŸจi, hi, rflโŸฉ
57 ยท have hg : g = l * k := hlk.symm
58 have : gโปยน * l = kโปยน := by
59 rw [hg]
60 simp only [mul_inv_rev, mul_assoc, inv_mul_cancel, mul_one]
61 change gโปยน * l โˆˆ K
62 rw [this]
63 exact K.inv_mem hk
64 rcases CompactSpace.iInter_nonempty (t := F) hclosed hfiniteNonempty with โŸจx, hxโŸฉ
65 have hxall : โˆ€ i : I, x โˆˆ F i := by
66 simpa [F] using hx
67 have hxL : x โˆˆ sInf ๐“œ := by
68 rw [Subgroup.mem_sInf]
69 intro M hM
70 exact (hxall โŸจM, hMโŸฉ).1
71 have hxK : gโปยน * x โˆˆ K := (hxall โŸจMโ‚€, hMโ‚€โŸฉ).2
72 have hxmem : x * (gโปยน * x)โปยน โˆˆ sInf ๐“œ โŠ” K :=
73 Subgroup.mul_mem_sup hxL (K.inv_mem hxK)
74 simpa [mul_assoc] using hxmem
75 ยท have h๐“œ_empty : ๐“œ = โˆ… := Set.not_nonempty_iff_eq_empty.mp h๐“œ
76 have htop : sInf ๐“œ = โŠค := by
77 rw [h๐“œ_empty, sInf_empty]
78 simp only [htop, le_top, sup_of_le_left, Subgroup.mem_top]
80/--
81Maximal open normal subgroups with a fixed nonabelian simple quotient are closed under arbitrary
82intersections.
83-/
84theorem maximal_open_normal_intersections_nonabelian_simple
85 {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G] [CompactSpace G]
86 (K : Subgroup G) [K.Normal] [IsSimpleGroup (G โงธ K)]
87 (hquotNoncomm : ProCGroups.IsNoncommutativeGroup (G โงธ K))
88 (hKclosed : IsClosed (K : Set G))
89 (๐“œ : Set (Subgroup G))
90 (hMnormal : โˆ€ M โˆˆ ๐“œ, M.Normal)
91 (hMclosed : โˆ€ M โˆˆ ๐“œ, IsClosed (M : Set G))
92 (hMtop : โˆ€ M โˆˆ ๐“œ, M โŠ” K = โŠค) :
93 sInf ๐“œ โŠ” K = โŠค :=
94 maximal_open_normal_intersections_compactness_step K hKclosed ๐“œ hMclosed
95 (fun _S hSfinite hSsub =>
96 finite_sInf_sup_eq_top_of_noncomm_simple_quotient K hquotNoncomm hSfinite
97 (fun M hM => hMnormal M (hSsub hM))
98 (fun M hM => hMtop M (hSsub hM)))
100end ProCGroups.NormalSubgroups