-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat: define ProperConstSMul
#6675
Closed
Closed
Changes from 3 commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
42c8d83
feat: define `CocompactSMul`
urkud 0725c5a
Apply suggestions from code review
urkud 6b6493f
Fix def/lemma
urkud 9c15766
Merge branch 'master' into YK-cocompact-smul
urkud e108562
Rename file&TC
urkud e8f9c1d
Merge branch 'master' into YK-cocompact-smul
urkud 79a2047
Merge branch 'master' into YK-cocompact-smul
urkud 74f8ea4
Add a lemma requested in a review
urkud c8c7696
Fix
urkud b94e690
Merge branch 'master' into YK-cocompact-smul
urkud 444260e
Snapshot
urkud 4a04c8b
Update Mathlib/Topology/Algebra/ProperConstSMul.lean
urkud File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/- | ||
Copyright (c) 2023 Yury Kudryashov. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Yury Kudryashov | ||
-/ | ||
import Mathlib.Topology.Algebra.ConstMulAction | ||
/-! | ||
# Cocompact actions | ||
|
||
In this file we define `CocompactSMul M X` to be a mixin `Prop`-value class | ||
stating that the preimage of a compact set under `(c • ·)` is a compact set. | ||
|
||
We also provide 2 instances: | ||
- for a continuous action on a compact Hausdorff space, | ||
- and for a continuous group action on a general space. | ||
-/ | ||
|
||
/-- A mixin typeclass saying that | ||
the preimage of a compact set under `(c +ᵥ ·)` is a compact set. -/ | ||
class CocompactVAdd (M X : Type*) [VAdd M X] [TopologicalSpace X] : Prop where | ||
/-- The preimage of a compact set under `(c +ᵥ ·)` is a compact set. -/ | ||
isCompact_preimage_vadd (c : M) {s : Set X} (hs : IsCompact s) : IsCompact ((c +ᵥ ·) ⁻¹' s) | ||
|
||
/-- A mixin typeclass saying that the preimage of a compact set under `(c • ·)` is a compact set. -/ | ||
@[to_additive] | ||
class CocompactSMul (M X : Type*) [SMul M X] [TopologicalSpace X] : Prop where | ||
/-- The preimage of a compact set under `(c • ·)` is a compact set. -/ | ||
isCompact_preimage_smul (c : M) {s : Set X} (hs : IsCompact s) : IsCompact ((c • ·) ⁻¹' s) | ||
|
||
/-- The preimage of a compact set under `(c • ·)` is a compact set. -/ | ||
@[to_additive "The preimage of a compact set under `(c +ᵥ ·)` is a compact set."] | ||
theorem IsCompact.preimage_smul {M X : Type*} [SMul M X] [TopologicalSpace X] [CocompactSMul M X] | ||
{s : Set X} (hs : IsCompact s) (c : M) : IsCompact ((c • ·) ⁻¹' s) := | ||
CocompactSMul.isCompact_preimage_smul c hs | ||
|
||
@[to_additive] | ||
instance (priority := 100) {M X : Type*} [SMul M X] [TopologicalSpace X] [ContinuousConstSMul M X] | ||
[T2Space X] [CompactSpace X] : CocompactSMul M X := | ||
⟨fun c _s hs ↦ hs.preimage_continuous (continuous_const_smul c)⟩ | ||
|
||
@[to_additive] | ||
instance (priority := 100) {G X : Type*} [Group G] [MulAction G X] [TopologicalSpace X] | ||
[ContinuousConstSMul G X] : CocompactSMul G X := | ||
⟨fun c _s hs ↦ by rw [Set.preimage_smul]; exact hs.smul _⟩ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While you're at it, could you link this to the IsProperMap API by showing that any map from a compact space to a Hausdorff space is proper?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW, we have
IsProperMap
andCocompactMap
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know, I added
IsProperMap
recently. I claim that it is the right concept mathematically, so I think we should expand this API rather than that ofCocompactMap
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't be surprised if both are useful (or even all 3 if you add
isCompact_preimage
). BTW, I didn't look closely at the definitions; which one is weaker?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general spaces (and for continuous functions of course),
IsProperMap
->isCompact_preimage
->CocompactMap
. The equivalence betweenisCompact_preimage
andCocompactMap
works as soon as the codomain is Hausdorff, and everything is equivalent when the codomain is Hausdorff and locally compact.Regarding
isCompact_preimage
vsCocompactMap
, I think we can safely redefineCocompactMap
in terms of compact preimages, the tendsto definition was a nice trick but I don't think it's mathematically meaningful.IsProperMap
on the other hand is indeed significantly stronger thanCocompactMap
, so I'm not suggesting removing the latter, but I know that some key results that are usually proved forisCompact_preimage
maps only work in locally compact space unless you assume the strongerIsProperMap
. I don't have a good example in mathlib of such a theorem aboutCocompactMap
, but we have some in the context of group actions. For example you can remove the locally compactness assumption in t2Space_of_properlyDiscontinuousSMul_of_t2Space if you strengthen the definition of ProperlyDiscontinuousSMul to useIsProperMap
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. I also added a version of
isProperMap_iff_ultrafilter
for a T₂ codomain.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think I should use
IsProperMap
instead ofIsCompact s → IsCompact (f ⁻¹' s)
? UPD: done.