@@ -7,6 +7,7 @@ import Mathlib.GroupTheory.GroupAction.ConjAct
7
7
import Mathlib.GroupTheory.GroupAction.Quotient
8
8
import Mathlib.Topology.Algebra.Monoid
9
9
import Mathlib.Topology.Algebra.Constructions
10
+ import Mathlib.Topology.Maps.OpenQuotient
10
11
import Mathlib.Algebra.Order.Archimedean.Basic
11
12
import Mathlib.GroupTheory.QuotientGroup.Basic
12
13
@@ -862,44 +863,43 @@ instance [CompactSpace G] (N : Subgroup G) : CompactSpace (G ⧸ N) :=
862
863
theorem quotientMap_mk (N : Subgroup G) : QuotientMap (mk : G → G ⧸ N) :=
863
864
quotientMap_quot_mk
864
865
865
- variable [TopologicalGroup G] (N : Subgroup G)
866
+ @[to_additive]
867
+ theorem continuous_mk {N : Subgroup G} : Continuous (mk : G → G ⧸ N) :=
868
+ continuous_quot_mk
869
+
870
+ section ContinuousMul
871
+
872
+ variable [ContinuousMul G] {N : Subgroup G}
873
+
874
+ @[to_additive]
875
+ theorem isOpenMap_coe : IsOpenMap ((↑) : G → G ⧸ N) := isOpenMap_quotient_mk'_mul
866
876
867
877
@[to_additive]
868
- theorem isOpenMap_coe : IsOpenMap ((↑) : G → G ⧸ N) :=
869
- isOpenMap_quotient_mk'_mul
878
+ theorem isOpenQuotientMap_mk : IsOpenQuotientMap (mk : G → G ⧸ N) :=
879
+ MulAction.isOpenQuotientMap_quotientMk
870
880
871
881
@[to_additive (attr := simp)]
872
882
theorem dense_preimage_mk {s : Set (G ⧸ N)} : Dense ((↑) ⁻¹' s : Set G) ↔ Dense s :=
873
- letI := leftRel N -- `Dense.quotient` assumes `[Setoid G]`
874
- ⟨fun h ↦ h.quotient.mono <| image_preimage_subset _ _, fun h ↦ h.preimage <| isOpenMap_coe _⟩
883
+ isOpenQuotientMap_mk.dense_preimage_iff
875
884
876
885
@[to_additive]
877
886
theorem dense_image_mk {s : Set G} :
878
887
Dense (mk '' s : Set (G ⧸ N)) ↔ Dense (s * (N : Set G)) := by
879
888
rw [← dense_preimage_mk, preimage_image_mk_eq_mul]
880
889
881
890
@[to_additive]
882
- instance instTopologicalGroup [N.Normal] : TopologicalGroup (G ⧸ N) where
883
- continuous_mul := by
884
- have cont : Continuous (((↑) : G → G ⧸ N) ∘ fun p : G × G ↦ p.fst * p.snd) :=
885
- continuous_quot_mk.comp continuous_mul
886
- have quot : QuotientMap fun p : G × G ↦ ((p.1 : G ⧸ N), (p.2 : G ⧸ N)) := by
887
- apply IsOpenMap.to_quotientMap
888
- · exact (QuotientGroup.isOpenMap_coe N).prod (QuotientGroup.isOpenMap_coe N)
889
- · exact continuous_quot_mk.prod_map continuous_quot_mk
890
- · exact (surjective_quot_mk _).prodMap (surjective_quot_mk _)
891
- exact quot.continuous_iff.2 cont
892
- continuous_inv := continuous_inv.quotient_map' _
891
+ instance instContinuousSMul : ContinuousSMul G (G ⧸ N) where
892
+ continuous_smul := by
893
+ rw [← (IsOpenQuotientMap.id.prodMap isOpenQuotientMap_mk).continuous_comp_iff]
894
+ exact continuous_mk.comp continuous_mul
893
895
894
- @[to_additive (attr := deprecated (since := "2024-08-05"))]
895
- theorem _root_.topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N) :=
896
- instTopologicalGroup N
896
+ variable (N)
897
897
898
898
/-- Neighborhoods in the quotient are precisely the map of neighborhoods in the prequotient. -/
899
899
@[to_additive
900
900
"Neighborhoods in the quotient are precisely the map of neighborhoods in the prequotient." ]
901
901
theorem nhds_eq (x : G) : 𝓝 (x : G ⧸ N) = Filter.map (↑) (𝓝 x) :=
902
- le_antisymm ((QuotientGroup.isOpenMap_coe N).nhds_le x) continuous_quot_mk.continuousAt
902
+ (isOpenQuotientMap_mk.map_nhds_eq _).symm
903
903
904
904
@[to_additive]
905
905
instance instFirstCountableTopology [FirstCountableTopology G] :
@@ -911,6 +911,21 @@ theorem nhds_one_isCountablyGenerated [FirstCountableTopology G] [N.Normal] :
911
911
(𝓝 (1 : G ⧸ N)).IsCountablyGenerated :=
912
912
inferInstance
913
913
914
+ end ContinuousMul
915
+
916
+ variable [TopologicalGroup G] (N : Subgroup G)
917
+
918
+ @[to_additive]
919
+ instance instTopologicalGroup [N.Normal] : TopologicalGroup (G ⧸ N) where
920
+ continuous_mul := by
921
+ rw [← (isOpenQuotientMap_mk.prodMap isOpenQuotientMap_mk).continuous_comp_iff]
922
+ exact continuous_mk.comp continuous_mul
923
+ continuous_inv := continuous_inv.quotient_map' _
924
+
925
+ @[to_additive (attr := deprecated (since := "2024-08-05"))]
926
+ theorem _root_.topologicalGroup_quotient [N.Normal] : TopologicalGroup (G ⧸ N) :=
927
+ instTopologicalGroup N
928
+
914
929
end QuotientGroup
915
930
916
931
/-- A typeclass saying that `p : G × G ↦ p.1 - p.2` is a continuous function. This property
@@ -1612,7 +1627,7 @@ instance [LocallyCompactSpace G] (N : Subgroup G) : LocallyCompactSpace (G ⧸ N
1612
1627
obtain ⟨y, rfl⟩ : ∃ y, π y = x := Quot.exists_rep x
1613
1628
have : π ⁻¹' n ∈ 𝓝 y := preimage_nhds_coinduced hn
1614
1629
rcases local_compact_nhds this with ⟨s, s_mem, hs, s_comp⟩
1615
- exact ⟨π '' s, ( QuotientGroup.isOpenMap_coe N) .image_mem_nhds s_mem, mapsTo'.mp hs,
1630
+ exact ⟨π '' s, QuotientGroup.isOpenMap_coe.image_mem_nhds s_mem, mapsTo'.mp hs,
1616
1631
s_comp.image C⟩
1617
1632
1618
1633
end
0 commit comments