-
Notifications
You must be signed in to change notification settings - Fork 331
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(SeparationQuotient): add missing instances #17239
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,8 +3,9 @@ Copyright (c) 2024 Yury Kudryashov. All rights reserved. | |
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Yury Kudryashov | ||
-/ | ||
import Mathlib.Topology.Algebra.Module.Basic | ||
import Mathlib.LinearAlgebra.Basis.VectorSpace | ||
import Mathlib.Topology.Algebra.Module.Basic | ||
import Mathlib.Topology.Maps.OpenQuotient | ||
|
||
/-! | ||
# Algebraic operations on `SeparationQuotient` | ||
|
@@ -63,6 +64,12 @@ instance instIsScalarTower [SMul M N] [ContinuousConstSMul N X] [IsScalarTower M | |
|
||
end SMul | ||
|
||
instance instContinuousSMul {M X : Type*} [SMul M X] [TopologicalSpace M] [TopologicalSpace X] | ||
[ContinuousSMul M X] : ContinuousSMul M (SeparationQuotient X) where | ||
continuous_smul := by | ||
rw [(IsOpenQuotientMap.id.prodMap isOpenQuotientMap_mk).quotientMap.continuous_iff] | ||
exact continuous_mk.comp continuous_smul | ||
|
||
instance instSMulZeroClass {M X : Type*} [Zero X] [SMulZeroClass M X] [TopologicalSpace X] | ||
[ContinuousConstSMul M X] : SMulZeroClass M (SeparationQuotient X) := | ||
ZeroHom.smulZeroClass ⟨mk, mk_zero⟩ mk_smul | ||
|
@@ -190,6 +197,17 @@ instance instCommGroup [CommGroup G] [TopologicalGroup G] : CommGroup (Separatio | |
|
||
end Group | ||
|
||
section UniformGroup | ||
|
||
@[to_additive] | ||
instance instUniformGroup {G : Type*} [Group G] [UniformSpace G] [UniformGroup G] : | ||
UniformGroup (SeparationQuotient G) where | ||
uniformContinuous_div := by | ||
rw [uniformContinuous_dom₂] | ||
exact uniformContinuous_mk.comp uniformContinuous_div | ||
|
||
end UniformGroup | ||
|
||
section MonoidWithZero | ||
|
||
variable {M₀ : Type*} [TopologicalSpace M₀] | ||
|
@@ -391,6 +409,14 @@ theorem mk_outCLM (x : SeparationQuotient E) : mk (outCLM K E x) = x := | |
@[simp] | ||
theorem mk_comp_outCLM : mk ∘ outCLM K E = id := funext (mk_outCLM K) | ||
|
||
variable {K} in | ||
theorem postcomp_mkCLM_surjective {L : Type*} [Semiring L] (σ : L →+* K) | ||
(F : Type*) [AddCommMonoid F] [Module L F] [TopologicalSpace F] : | ||
Comment on lines
+413
to
+414
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The variable order looks a little strange here; I'd expect There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. My reason was: in " |
||
Function.Surjective ((mkCLM K E).comp : (F →SL[σ] E) → (F →SL[σ] SeparationQuotient E)) := by | ||
intro f | ||
use (outCLM K E).comp f | ||
rw [← ContinuousLinearMap.comp_assoc, mkCLM_comp_outCLM, ContinuousLinearMap.id_comp] | ||
|
||
/-- The `SeparationQuotient.outCLM K E` map is a topological embedding. -/ | ||
theorem outCLM_embedding : Embedding (outCLM K E) := | ||
Function.LeftInverse.embedding (mk_outCLM K) continuous_mk (map_continuous _) | ||
|
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.
This lemma isn't a misisng instance; can you mention it in the PR description, or bump it to a later PR?
bors d+