topology.algebra.group.compact
⟷
Mathlib.Topology.Algebra.Group.Compact
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
-/
-import Mathbin.Topology.Algebra.Group.Basic
-import Mathbin.Topology.CompactOpen
-import Mathbin.Topology.Sets.Compacts
+import Topology.Algebra.Group.Basic
+import Topology.CompactOpen
+import Topology.Sets.Compacts
#align_import topology.algebra.group.compact from "leanprover-community/mathlib"@"23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -44,7 +44,7 @@ is locally compact. -/
theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
(K : PositiveCompacts G) : LocallyCompactSpace G :=
by
- refine' locally_compact_of_compact_nhds fun x => _
+ refine' WeaklyLocallyCompactSpace.locallyCompactSpace fun x => _
obtain ⟨y, hy⟩ := K.interior_nonempty
let F := Homeomorph.mulLeft (x * y⁻¹)
refine' ⟨F '' K, _, K.is_compact.image F.continuous⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module topology.algebra.group.compact
-! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Algebra.Group.Basic
import Mathbin.Topology.CompactOpen
import Mathbin.Topology.Sets.Compacts
+#align_import topology.algebra.group.compact from "leanprover-community/mathlib"@"23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6"
+
/-!
# Additional results on topological groups
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -39,12 +39,12 @@ section
variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
-#print TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group /-
+#print TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group /-
/-- Every separated topological group in which there exists a compact set with nonempty interior
is locally compact. -/
@[to_additive
"Every separated topological group in which there exists a compact set with nonempty\ninterior is locally compact."]
-theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space G]
+theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
(K : PositiveCompacts G) : LocallyCompactSpace G :=
by
refine' locally_compact_of_compact_nhds fun x => _
@@ -56,8 +56,8 @@ theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space
have : F.symm x = y := by simp [F, Homeomorph.mulLeft_symm]
rw [this]
exact mem_interior_iff_mem_nhds.1 hy
-#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group
-#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_AddGroup
+#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
+#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_addGroup
-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -26,7 +26,7 @@ imports developing either positive compacts or the compact open topology.
open Classical Set Filter TopologicalSpace Function
-open Classical Topology Filter Pointwise
+open scoped Classical Topology Filter Pointwise
universe u v w x
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -51,9 +51,7 @@ theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space
obtain ⟨y, hy⟩ := K.interior_nonempty
let F := Homeomorph.mulLeft (x * y⁻¹)
refine' ⟨F '' K, _, K.is_compact.image F.continuous⟩
- suffices F.symm ⁻¹' K ∈ 𝓝 x by
- convert this
- apply Equiv.image_eq_preimage
+ suffices F.symm ⁻¹' K ∈ 𝓝 x by convert this; apply Equiv.image_eq_preimage
apply ContinuousAt.preimage_mem_nhds F.symm.continuous.continuous_at
have : F.symm x = y := by simp [F, Homeomorph.mulLeft_symm]
rw [this]
mathlib commit https://github.com/leanprover-community/mathlib/commit/3ade05ac9447ae31a22d2ea5423435e054131240
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
! This file was ported from Lean 3 source module topology.algebra.group.compact
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Topology.Sets.Compacts
/-!
# Additional results on topological groups
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Two results on topological groups that have been separated out as they require more substantial
imports developing either positive compacts or the compact open topology.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -36,11 +36,12 @@ section
variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+#print TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group /-
/-- Every separated topological group in which there exists a compact set with nonempty interior
is locally compact. -/
@[to_additive
"Every separated topological group in which there exists a compact set with nonempty\ninterior is locally compact."]
-theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
+theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space G]
(K : PositiveCompacts G) : LocallyCompactSpace G :=
by
refine' locally_compact_of_compact_nhds fun x => _
@@ -54,8 +55,9 @@ theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space
have : F.symm x = y := by simp [F, Homeomorph.mulLeft_symm]
rw [this]
exact mem_interior_iff_mem_nhds.1 hy
-#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
-#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_add_group
+#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group
+#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_AddGroup
+-/
end
@@ -63,6 +65,7 @@ section Quotient
variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
+#print QuotientGroup.continuousSMul /-
@[to_additive]
instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G (G ⧸ Γ)
where continuous_smul :=
@@ -75,7 +78,8 @@ instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G
refine' continuous_coinduced_rng.comp continuous_mul
exact QuotientMap.continuous_lift_prod_right quotientMap_quotient_mk' H
#align quotient_group.has_continuous_smul QuotientGroup.continuousSMul
-#align quotient_add_group.has_continuous_vadd quotientAddGroup.has_continuous_vadd
+#align quotient_add_group.has_continuous_vadd QuotientAddGroup.continuousVAdd
+-/
end Quotient
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -18,9 +18,11 @@ imports developing either positive compacts or the compact open topology.
-/
-open Classical Set Filter TopologicalSpace Function
+open scoped Classical
+open Set Filter TopologicalSpace Function
-open Classical Topology Filter Pointwise
+open scoped Classical
+open Topology Filter Pointwise
universe u v w x
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -55,7 +55,7 @@ instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G
change Continuous F
have H : Continuous (F ∘ fun p : G × G => (p.1, QuotientGroup.mk p.2)) := by
change Continuous fun p : G × G => QuotientGroup.mk (p.1 * p.2)
- refine' continuous_coinduced_rng.comp continuous_mul
+ exact continuous_coinduced_rng.comp continuous_mul
exact QuotientMap.continuous_lift_prod_right quotientMap_quotient_mk' H
#align quotient_group.has_continuous_smul QuotientGroup.continuousSMul
#align quotient_add_group.has_continuous_vadd QuotientAddGroup.continuousVAdd
R1Space
, a.k.a. preregular space.T2OrLocallyCompactRegularSpace
.T2OrLocallyCompactRegularSpace
to R1Space
.[T2OrLocallyCompactRegularSpace _]
assumption
if the space is known to be regular for other reason
(e.g., because it's a topological group).Specializes.not_disjoint
:
if x ⤳ y
, then 𝓝 x
and 𝓝 y
aren't disjoint;specializes_iff_not_disjoint
, Specializes.inseparable
,
disjoint_nhds_nhds_iff_not_inseparable
,
r1Space_iff_inseparable_or_disjoint_nhds
: basic API about R1Space
s;Inducing.r1Space
, R1Space.induced
, R1Space.sInf
, R1Space.iInf
,
R1Space.inf
, instances for Subtype _
, X × Y
, and ∀ i, X i
:
basic instances for R1Space
;IsCompact.mem_closure_iff_exists_inseparable
,
IsCompact.closure_eq_biUnion_inseparable
:
characterizations of the closure of a compact set in a preregular space;Inseparable.mem_measurableSet_iff
: topologically inseparable points
can't be separated by a Borel measurable set;IsCompact.closure_subset_measurableSet
, IsCompact.measure_closure
:
in a preregular space, a measurable superset of a compact set
includes its closure as well;
as a corollary, closure K
has the same measure as K
.exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds
:
an auxiliary lemma extracted from a LocallyCompactPair
instance;IsCompact.isCompact_isClosed_basis_nhds
:
if x
admits a compact neighborhood,
then it admits a basis of compact closed neighborhoods;
in particular, a weakly locally compact preregular space
is a locally compact regular space;isCompact_isClosed_basis_nhds
: a version of the previous theorem
for weakly locally compact spaces;exists_mem_nhds_isCompact_isClosed
: in a locally compact regular space,
each point admits a compact closed neighborhood.Some theorems about topological groups are true for any (pre)regular space, so we deprecate the special cases.
exists_isCompact_isClosed_subset_isCompact_nhds_one
:
use new IsCompact.isCompact_isClosed_basis_nhds
instead;instLocallyCompactSpaceOfWeaklyOfGroup
,
instLocallyCompactSpaceOfWeaklyOfAddGroup
:
are now implied by WeaklyLocallyCompactSpace.locallyCompactSpace
;local_isCompact_isClosed_nhds_of_group
,
local_isCompact_isClosed_nhds_of_addGroup
:
use isCompact_isClosed_basis_nhds
instead;exists_isCompact_isClosed_nhds_one
, exists_isCompact_isClosed_nhds_zero
:
use exists_mem_nhds_isCompact_isClosed
instead.For each renamed theorem, the old theorem is redefined as a deprecated alias.
isOpen_setOf_disjoint_nhds_nhds
: moved to Constructions
;isCompact_closure_of_subset_compact
-> IsCompact.closure_of_subset
;IsCompact.measure_eq_infi_isOpen
-> IsCompact.measure_eq_iInf_isOpen
;exists_compact_superset_iff
-> exists_isCompact_superset_iff
;separatedNhds_of_isCompact_isCompact_isClosed
-> SeparatedNhds.of_isCompact_isCompact_isClosed
;separatedNhds_of_isCompact_isCompact
-> SeparatedNhds.of_isCompact_isCompact
;separatedNhds_of_finset_finset
-> SeparatedNhds.of_finset_finset
;point_disjoint_finset_opens_of_t2
-> SeparatedNhds.of_singleton_finset
;separatedNhds_of_isCompact_isClosed
-> SeparatedNhds.of_isCompact_isClosed
;exists_open_superset_and_isCompact_closure
-> exists_isOpen_superset_and_isCompact_closure
;exists_open_with_compact_closure
-> exists_isOpen_mem_isCompact_closure
;@@ -36,15 +36,9 @@ is locally compact. -/
"Every topological additive group
in which there exists a compact set with nonempty interior is locally compact."]
theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
- (K : PositiveCompacts G) : LocallyCompactSpace G := by
- have A : WeaklyLocallyCompactSpace G :=
- { exists_compact_mem_nhds := by
- intro x
- obtain ⟨y, hy⟩ := K.interior_nonempty
- refine ⟨(x * y⁻¹) • (K : Set G), K.isCompact.smul _, ?_⟩
- rw [mem_interior_iff_mem_nhds] at hy
- simpa using smul_mem_nhds (x * y⁻¹) hy }
- infer_instance
+ (K : PositiveCompacts G) : LocallyCompactSpace G :=
+ let ⟨_x, hx⟩ := K.interior_nonempty
+ K.isCompact.locallyCompactSpace_of_mem_nhds_of_group (mem_interior_iff_mem_nhds.1 hx)
#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_addGroup
The construction we have is given in T2 spaces, but it works in non-Hausdorff spaces modulo a few modifications.
For this, we introduce an ad hoc class T2OrLocallyCompactRegularSpace
, which is just enough to unify the arguments, as a replacement for the class ClosableCompactSubsetOpenSpace
(which is not strong enough). In the file Separation.lean
, we move some material that was only available on T2 spaces to this new class.
The construction is needed for a forthcoming improvement of uniqueness results for Haar measures, based on https://mathoverflow.net/questions/456670/uniqueness-of-left-invariant-borel-probability-measure-on-compact-groups.
@@ -31,26 +31,20 @@ section
variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
/-- Every topological group in which there exists a compact set with nonempty interior
-is weakly locally compact. -/
-@[to_additive
- "Every separated topological additive group
- in which there exists a compact set with nonempty interior is weakly locally compact."]
-theorem TopologicalSpace.PositiveCompacts.weaklyLocallyCompactSpace_of_group
- (K : PositiveCompacts G) : WeaklyLocallyCompactSpace G where
- exists_compact_mem_nhds x := by
- obtain ⟨y, hy⟩ := K.interior_nonempty
- refine ⟨(x * y⁻¹) • (K : Set G), K.isCompact.smul _, ?_⟩
- rw [mem_interior_iff_mem_nhds] at hy
- simpa using smul_mem_nhds (x * y⁻¹) hy
-
-/-- Every separated topological group in which there exists a compact set with nonempty interior
is locally compact. -/
@[to_additive
- "Every separated topological additive group
+ "Every topological additive group
in which there exists a compact set with nonempty interior is locally compact."]
-theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
- (K : PositiveCompacts G) : LocallyCompactSpace G :=
- have := K.weaklyLocallyCompactSpace_of_group; inferInstance
+theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
+ (K : PositiveCompacts G) : LocallyCompactSpace G := by
+ have A : WeaklyLocallyCompactSpace G :=
+ { exists_compact_mem_nhds := by
+ intro x
+ obtain ⟨y, hy⟩ := K.interior_nonempty
+ refine ⟨(x * y⁻¹) • (K : Set G), K.isCompact.smul _, ?_⟩
+ rw [mem_interior_iff_mem_nhds] at hy
+ simpa using smul_mem_nhds (x * y⁻¹) hy }
+ infer_instance
#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_addGroup
@@ -30,25 +30,27 @@ section
variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
+/-- Every topological group in which there exists a compact set with nonempty interior
+is weakly locally compact. -/
+@[to_additive
+ "Every separated topological additive group
+ in which there exists a compact set with nonempty interior is weakly locally compact."]
+theorem TopologicalSpace.PositiveCompacts.weaklyLocallyCompactSpace_of_group
+ (K : PositiveCompacts G) : WeaklyLocallyCompactSpace G where
+ exists_compact_mem_nhds x := by
+ obtain ⟨y, hy⟩ := K.interior_nonempty
+ refine ⟨(x * y⁻¹) • (K : Set G), K.isCompact.smul _, ?_⟩
+ rw [mem_interior_iff_mem_nhds] at hy
+ simpa using smul_mem_nhds (x * y⁻¹) hy
+
/-- Every separated topological group in which there exists a compact set with nonempty interior
is locally compact. -/
@[to_additive
- "Every separated topological group in which there exists a compact set with nonempty
- interior is locally compact."]
+ "Every separated topological additive group
+ in which there exists a compact set with nonempty interior is locally compact."]
theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
- (K : PositiveCompacts G) : LocallyCompactSpace G := by
- refine' locally_compact_of_compact_nhds fun x => _
- obtain ⟨y, hy⟩ := K.interior_nonempty
- let F := Homeomorph.mulLeft (x * y⁻¹)
- refine' ⟨F '' K, _, K.isCompact.image F.continuous⟩
- suffices F.symm ⁻¹' K ∈ 𝓝 x by
- convert this using 1
- apply Equiv.image_eq_preimage
- apply ContinuousAt.preimage_mem_nhds F.symm.continuous.continuousAt
- have : F.symm x = y := by simp only [Homeomorph.mulLeft_symm, mul_inv_rev,
- inv_inv, Homeomorph.coe_mulLeft, inv_mul_cancel_right]
- rw [this]
- exact mem_interior_iff_mem_nhds.1 hy
+ (K : PositiveCompacts G) : LocallyCompactSpace G :=
+ have := K.weaklyLocallyCompactSpace_of_group; inferInstance
#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_addGroup
@@ -59,8 +61,7 @@ section Quotient
variable [Group G] [TopologicalSpace G] [TopologicalGroup G] {Γ : Subgroup G}
@[to_additive]
-instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G (G ⧸ Γ)
- where
+instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G (G ⧸ Γ) where
continuous_smul := by
let F : G × G ⧸ Γ → G ⧸ Γ := fun p => p.1 • p.2
change Continuous F
@@ -2,16 +2,13 @@
Copyright (c) 2017 Johannes Hölzl. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johannes Hölzl, Mario Carneiro, Patrick Massot
-
-! This file was ported from Lean 3 source module topology.algebra.group.compact
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Algebra.Group.Basic
import Mathlib.Topology.CompactOpen
import Mathlib.Topology.Sets.Compacts
+#align_import topology.algebra.group.compact from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Additional results on topological groups
Also adds the version for group actions, and the consequence that if we quotient by a compact subgroup then the quotient map is closed.
I also made some syntax tweaks in some places, mainly making use of our great new implicit functions.
@@ -31,9 +31,6 @@ variable {α : Type u} {β : Type v} {G : Type w} {H : Type x}
section
-/-! Some results about an open set containing the product of two sets in a topological group. -/
-
-
variable [TopologicalSpace G] [Group G] [TopologicalGroup G]
/-- Every separated topological group in which there exists a compact set with nonempty interior
@@ -41,7 +41,7 @@ is locally compact. -/
@[to_additive
"Every separated topological group in which there exists a compact set with nonempty
interior is locally compact."]
-theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space G]
+theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group [T2Space G]
(K : PositiveCompacts G) : LocallyCompactSpace G := by
refine' locally_compact_of_compact_nhds fun x => _
obtain ⟨y, hy⟩ := K.interior_nonempty
@@ -55,8 +55,8 @@ theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space
inv_inv, Homeomorph.coe_mulLeft, inv_mul_cancel_right]
rw [this]
exact mem_interior_iff_mem_nhds.1 hy
-#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group
-#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_AddGroup
+#align topological_space.positive_compacts.locally_compact_space_of_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_group
+#align topological_space.positive_compacts.locally_compact_space_of_add_group TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_addGroup
end
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -70,8 +70,7 @@ instance QuotientGroup.continuousSMul [LocallyCompactSpace G] : ContinuousSMul G
continuous_smul := by
let F : G × G ⧸ Γ → G ⧸ Γ := fun p => p.1 • p.2
change Continuous F
- have H : Continuous (F ∘ fun p : G × G => (p.1, QuotientGroup.mk p.2)) :=
- by
+ have H : Continuous (F ∘ fun p : G × G => (p.1, QuotientGroup.mk p.2)) := by
change Continuous fun p : G × G => QuotientGroup.mk (p.1 * p.2)
refine' continuous_coinduced_rng.comp continuous_mul
exact QuotientMap.continuous_lift_prod_right quotientMap_quotient_mk' H
congr!
and convert
(#2606)
congr!
, convert
, and convert_to
to control parts of the congruence algorithm, in particular transparency settings when applying congruence lemmas.congr!
now applies congruence lemmas with reducible transparency by default. This prevents it from unfolding definitions when applying congruence lemmas. It also now tries both the LHS-biased and RHS-biased simp congruence lemmas, with a configuration option to set which it should try first.HEq
congruence lemma generator that gives each hypothesis access to the proofs of previous hypotheses. This means that if you have an equality ⊢ ⟨a, x⟩ = ⟨b, y⟩
of sigma types, congr!
turns this into goals ⊢ a = b
and ⊢ a = b → HEq x y
(note that congr!
will also auto-introduce a = b
for you in the second goal). This congruence lemma generator applies to more cases than the simp congruence lemma generator does.congr!
(and hence convert
) are more careful about applying lemmas that don't force definitions to unfold. There were a number of cases in mathlib where the implementation of congr
was being abused to unfold definitions.set_option trace.congr! true
you can see what congr!
sees when it is deciding on congruence lemmas.convert_to
to do using 1
when there is no using
clause, to match its documentation.Note that congr!
is more capable than congr
at finding a way to equate left-hand sides and right-hand sides, so you will frequently need to limit its depth with a using
clause. However, there is also a new heuristic to prevent considering unlikely-to-be-provable type equalities (controlled by the typeEqs
option), which can help limit the depth automatically.
There is also a predefined configuration that you can invoke with, for example, convert (config := .unfoldSameFun) h
, that causes it to behave more like congr
, including using default transparency when unfolding.
@@ -48,7 +48,7 @@ theorem TopologicalSpace.PositiveCompacts.locallyCompactSpace_of_Group [T2Space
let F := Homeomorph.mulLeft (x * y⁻¹)
refine' ⟨F '' K, _, K.isCompact.image F.continuous⟩
suffices F.symm ⁻¹' K ∈ 𝓝 x by
- convert this
+ convert this using 1
apply Equiv.image_eq_preimage
apply ContinuousAt.preimage_mem_nhds F.symm.continuous.continuousAt
have : F.symm x = y := by simp only [Homeomorph.mulLeft_symm, mul_inv_rev,
The unported dependencies are