Theory of topological modules and continuous linear maps. #
We use the class ContinuousSMul
for topological (semi) modules and topological vector spaces.
In this file we define continuous (semi-)linear maps, as semilinear maps between topological
modules which are continuous. The set of continuous semilinear maps between the topological
R₁
-module M
and R₂
-module M₂
with respect to the RingHom
σ
is denoted by M →SL[σ] M₂
.
Plain linear maps are denoted by M →L[R] M₂
and star-linear maps by M →L⋆[R] M₂
.
The corresponding notation for equivalences is M ≃SL[σ] M₂
, M ≃L[R] M₂
and M ≃L⋆[R] M₂
.
If M
is a topological module over R
and 0
is a limit of invertible elements of R
, then
⊤
is the only submodule of M
with a nonempty interior.
This is the case, e.g., if R
is a nontrivially normed field.
Let R
be a topological ring such that zero is not an isolated point (e.g., a nontrivially
normed field, see NormedField.punctured_nhds_neBot
). Let M
be a nontrivial module over R
such that c • x = 0
implies c = 0 ∨ x = 0
. Then M
has no isolated points. We formulate this
using NeBot (𝓝[≠] x)
.
This lemma is not an instance because Lean would need to find [ContinuousSMul ?m_1 M]
with
unknown ?m_1
. We register this as an instance for R = ℝ
in Real.punctured_nhds_module_neBot
.
One can also use haveI := Module.punctured_nhds_neBot R M
in a proof.
The span of a separable subset with respect to a separable scalar ring is again separable.
The (topological-space) closure of a submodule of a topological R
-module M
is itself
a submodule.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The topological closure of a closed submodule s
is equal to s
.
A subspace is dense iff its topological closure is the entire space.
A maximal proper subspace of a topological module (i.e a Submodule
satisfying IsCoatom
)
is either closed or dense.
- toFun : M → M₂
- map_add' : ∀ (x y : M), AddHom.toFun s.toAddHom (x + y) = AddHom.toFun s.toAddHom x + AddHom.toFun s.toAddHom y
- map_smul' : ∀ (r : R) (x : M), AddHom.toFun s.toAddHom (r • x) = ↑σ r • AddHom.toFun s.toAddHom x
- cont : Continuous s.toFun
Continuous linear maps between modules. We only put the type classes that are necessary for the definition, although in applications
M
andM₂
will be topological modules over the topological ringR
.
Continuous linear maps between modules. We only put the type classes that are necessary for the
definition, although in applications M
and M₂
will be topological modules over the topological
ring R
.
Instances For
Continuous linear maps between modules. We only put the type classes that are necessary for the
definition, although in applications M
and M₂
will be topological modules over the topological
ring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuous linear maps between modules. We only put the type classes that are necessary for the
definition, although in applications M
and M₂
will be topological modules over the topological
ring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuous linear maps between modules. We only put the type classes that are necessary for the
definition, although in applications M
and M₂
will be topological modules over the topological
ring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- coe : F → M → M₂
- coe_injective' : Function.Injective FunLike.coe
- map_continuous : ∀ (f : F), Continuous ↑f
Continuity
ContinuousSemilinearMapClass F σ M M₂
asserts F
is a type of bundled continuous
σ
-semilinear maps M → M₂
. See also ContinuousLinearMapClass F R M M₂
for the case where
σ
is the identity map on R
. A map f
between an R
-module and an S
-module over a ring
homomorphism σ : R →+* S
is semilinear if it satisfies the two properties f (x + y) = f x + f y
and f (c • x) = (σ c) • f x
.
Instances
ContinuousLinearMapClass F R M M₂
asserts F
is a type of bundled continuous
R
-linear maps M → M₂
. This is an abbreviation for
ContinuousSemilinearMapClass F (RingHom.id R) M M₂
.
Equations
- ContinuousLinearMapClass F R M M₂ = ContinuousSemilinearMapClass F (RingHom.id R) M M₂
Instances For
- toFun : M → M₂
- map_add' : ∀ (x y : M), AddHom.toFun s.toAddHom (x + y) = AddHom.toFun s.toAddHom x + AddHom.toFun s.toAddHom y
- map_smul' : ∀ (r : R) (x : M), AddHom.toFun s.toAddHom (r • x) = ↑σ r • AddHom.toFun s.toAddHom x
- invFun : M₂ → M
- left_inv : Function.LeftInverse s.invFun s.toFun
- right_inv : Function.RightInverse s.invFun s.toFun
- continuous_toFun : Continuous s.toFun
Continuous linear equivalences between modules. We only put the type classes that are necessary for the definition, although in applications
M
andM₂
will be topological modules over the topological semiringR
. - continuous_invFun : Continuous s.invFun
Continuous linear equivalences between modules. We only put the type classes that are necessary for the definition, although in applications
M
andM₂
will be topological modules over the topological semiringR
.
Continuous linear equivalences between modules. We only put the type classes that are necessary
for the definition, although in applications M
and M₂
will be topological modules over the
topological semiring R
.
Instances For
Continuous linear equivalences between modules. We only put the type classes that are necessary
for the definition, although in applications M
and M₂
will be topological modules over the
topological semiring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuous linear equivalences between modules. We only put the type classes that are necessary
for the definition, although in applications M
and M₂
will be topological modules over the
topological semiring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuous linear equivalences between modules. We only put the type classes that are necessary
for the definition, although in applications M
and M₂
will be topological modules over the
topological semiring R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- coe : F → M → M₂
- inv : F → M₂ → M
- left_inv : ∀ (e : F), Function.LeftInverse (EquivLike.inv e) (EquivLike.coe e)
- right_inv : ∀ (e : F), Function.RightInverse (EquivLike.inv e) (EquivLike.coe e)
- coe_injective' : ∀ (e g : F), EquivLike.coe e = EquivLike.coe g → EquivLike.inv e = EquivLike.inv g → e = g
- map_continuous : ∀ (f : F), Continuous ↑f
ContinuousSemilinearEquivClass F σ M M₂
assertsF
is a type of bundled continuousσ
-semilinear equivsM → M₂
. See alsoContinuousLinearEquivClass F R M M₂
for the case whereσ
is the identity map onR
. A mapf
between anR
-module and anS
-module over a ring homomorphismσ : R →+* S
is semilinear if it satisfies the two propertiesf (x + y) = f x + f y
andf (c • x) = (σ c) • f x
. - inv_continuous : ∀ (f : F), Continuous (EquivLike.inv f)
ContinuousSemilinearEquivClass F σ M M₂
assertsF
is a type of bundled continuousσ
-semilinear equivsM → M₂
. See alsoContinuousLinearEquivClass F R M M₂
for the case whereσ
is the identity map onR
. A mapf
between anR
-module and anS
-module over a ring homomorphismσ : R →+* S
is semilinear if it satisfies the two propertiesf (x + y) = f x + f y
andf (c • x) = (σ c) • f x
.
ContinuousSemilinearEquivClass F σ M M₂
asserts F
is a type of bundled continuous
σ
-semilinear equivs M → M₂
. See also ContinuousLinearEquivClass F R M M₂
for the case
where σ
is the identity map on R
. A map f
between an R
-module and an S
-module over a ring
homomorphism σ : R →+* S
is semilinear if it satisfies the two properties f (x + y) = f x + f y
and f (c • x) = (σ c) • f x
.
Instances
ContinuousLinearEquivClass F σ M M₂
asserts F
is a type of bundled continuous
R
-linear equivs M → M₂
. This is an abbreviation for
ContinuousSemilinearEquivClass F (RingHom.id R) M M₂
.
Equations
- ContinuousLinearEquivClass F R M M₂ = ContinuousSemilinearEquivClass F (RingHom.id R) M M₂
Instances For
Equations
- ContinuousSemilinearEquivClass.continuousSemilinearMapClass F σ M M₂ = ContinuousSemilinearMapClass.mk (_ : ∀ (f : F), Continuous ↑f)
Constructs a bundled linear map from a function and a proof that this function belongs to the closure of the set of linear maps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a bundled linear map from a pointwise limit of linear maps
Equations
- linearMapOfTendsto f g h = linearMapOfMemClosureRangeCoe f (_ : f ∈ closure (Set.range FunLike.coe))
Instances For
Properties that hold for non-necessarily commutative semirings. #
Coerce continuous linear maps to linear maps.
Equations
- ContinuousLinearMap.LinearMap.coe = { coe := ContinuousLinearMap.toLinearMap }
Equations
- ContinuousLinearMap.continuousSemilinearMapClass = ContinuousSemilinearMapClass.mk (_ : ∀ (f : M₁ →SL[σ₁₂] M₂), Continuous f.toFun)
Coerce continuous linear maps to functions.
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
See Note [custom simps projection].
Equations
Instances For
Copy of a ContinuousLinearMap
with a new toFun
equal to the old one. Useful to fix
definitional equalities.
Equations
- ContinuousLinearMap.copy f f' h = ContinuousLinearMap.mk (LinearMap.copy (↑f) f' h)
Instances For
If two continuous linear maps are equal on a set s
, then they are equal on the closure
of the Submodule.span
of this set.
If the submodule generated by a set s
is dense in the ambient module, then two continuous
linear maps equal on s
are equal.
Under a continuous linear map, the image of the TopologicalClosure
of a submodule is
contained in the TopologicalClosure
of its image.
Under a dense continuous linear map, a submodule whose TopologicalClosure
is ⊤
is sent to
another such submodule. That is, the image of a dense set under a map with dense range is dense.
The continuous map that is constantly zero.
Equations
- ContinuousLinearMap.zero = { zero := ContinuousLinearMap.mk 0 }
Equations
- ContinuousLinearMap.inhabited = { default := 0 }
Equations
- ContinuousLinearMap.uniqueOfLeft = Function.Injective.unique (_ : Function.Injective ContinuousLinearMap.toLinearMap)
Equations
- ContinuousLinearMap.uniqueOfRight = Function.Injective.unique (_ : Function.Injective ContinuousLinearMap.toLinearMap)
the identity map as a continuous linear map.
Equations
- ContinuousLinearMap.id R₁ M₁ = ContinuousLinearMap.mk LinearMap.id
Instances For
Equations
- ContinuousLinearMap.one = { one := ContinuousLinearMap.id R₁ M₁ }
Equations
- ContinuousLinearMap.add = { add := fun f g => ContinuousLinearMap.mk (↑f + ↑g) }
Composition of bounded linear maps.
Equations
Instances For
Composition of bounded linear maps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ContinuousLinearMap.instMul = { mul := ContinuousLinearMap.comp }
Equations
- One or more equations did not get rendered due to their size.
ContinuousLinearMap.toLinearMap
as a RingHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tautological action by M₁ →L[R₁] M₁
on M
.
This generalizes Function.End.applyMulAction
.
Equations
- ContinuousLinearMap.applyModule = Module.compHom M₁ ContinuousLinearMap.toLinearMapRingHom
ContinuousLinearMap.applyModule
is faithful.
The cartesian product of two bounded linear maps, as a bounded linear map.
Equations
- ContinuousLinearMap.prod f₁ f₂ = ContinuousLinearMap.mk (LinearMap.prod ↑f₁ ↑f₂)
Instances For
The left injection into a product is a continuous linear map.
Equations
- ContinuousLinearMap.inl R₁ M₁ M₂ = ContinuousLinearMap.prod (ContinuousLinearMap.id R₁ M₁) 0
Instances For
The right injection into a product is a continuous linear map.
Equations
- ContinuousLinearMap.inr R₁ M₁ M₂ = ContinuousLinearMap.prod 0 (ContinuousLinearMap.id R₁ M₂)
Instances For
Restrict codomain of a continuous linear map.
Equations
- ContinuousLinearMap.codRestrict f p h = ContinuousLinearMap.mk (LinearMap.codRestrict p (↑f) h)
Instances For
Submodule.subtype
as a ContinuousLinearMap
.
Equations
Instances For
Prod.fst
as a ContinuousLinearMap
.
Equations
- ContinuousLinearMap.fst R₁ M₁ M₂ = ContinuousLinearMap.mk (LinearMap.fst R₁ M₁ M₂)
Instances For
Prod.snd
as a ContinuousLinearMap
.
Equations
- ContinuousLinearMap.snd R₁ M₁ M₂ = ContinuousLinearMap.mk (LinearMap.snd R₁ M₁ M₂)
Instances For
Prod.map
of two continuous linear maps.
Equations
- ContinuousLinearMap.prodMap f₁ f₂ = ContinuousLinearMap.prod (ContinuousLinearMap.comp f₁ (ContinuousLinearMap.fst R₁ M₁ M₃)) (ContinuousLinearMap.comp f₂ (ContinuousLinearMap.snd R₁ M₁ M₃))
Instances For
The continuous linear map given by (x, y) ↦ f₁ x + f₂ y
.
Equations
- ContinuousLinearMap.coprod f₁ f₂ = ContinuousLinearMap.mk (LinearMap.coprod ↑f₁ ↑f₂)
Instances For
The linear map fun x => c x • f
. Associates to a scalar-valued linear map and an element of
M₂
the M₂
-valued linear map obtained by multiplying the two (a.k.a. tensoring by M₂
).
See also ContinuousLinearMap.smulRightₗ
and ContinuousLinearMap.smulRightL
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an element x
of a topological space M
over a semiring R
, the natural continuous
linear map from R
to M
by taking multiples of x
.
Equations
Instances For
A special case of to_span_singleton_smul'
for when R
is commutative.
pi
construction for continuous linear functions. From a family of continuous linear functions
it produces a continuous linear function into a family of topological modules.
Equations
- ContinuousLinearMap.pi f = ContinuousLinearMap.mk (LinearMap.pi fun i => ↑(f i))
Instances For
The projections from a family of topological modules are continuous linear maps.
Equations
Instances For
If I
and J
are complementary index sets, the product of the kernels of the J
th projections
of φ
is linearly equivalent to the product over I
.
Equations
- ContinuousLinearMap.iInfKerProjEquiv R φ hd hu = ContinuousLinearEquiv.mk (LinearMap.iInfKerProjEquiv R φ hd hu)
Instances For
Equations
- ContinuousLinearMap.neg = { neg := fun f => ContinuousLinearMap.mk (-↑f) }
Equations
- ContinuousLinearMap.sub = { sub := fun f g => ContinuousLinearMap.mk (↑f - ↑g) }
Given a right inverse f₂ : M₂ →L[R] M
to f₁ : M →L[R] M₂
,
projKerOfRightInverse f₁ f₂ h
is the projection M →L[R] LinearMap.ker f₁
along
LinearMap.range f₂
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A nonzero continuous linear functional is open.
ContinuousLinearMap.prod
as an Equiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
ContinuousLinearMap.prod
as a LinearEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coercion from M →L[R] M₂
to M →ₗ[R] M₂
, as a linear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coercion from M →SL[σ] M₂
to M →ₛₗ[σ] M₂
, as a linear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given c : E →L[𝕜] 𝕜
, c.smulRightₗ
is the linear map from F
to E →L[𝕜] F
sending f
to fun e => c e • f
. See also ContinuousLinearMap.smulRightL
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
If A
is an R
-algebra, then a continuous A
-linear map can be interpreted as a continuous
R
-linear map. We assume LinearMap.CompatibleSMul M M₂ R A
to match assumptions of
LinearMap.map_smul_of_tower
.
Equations
Instances For
ContinuousLinearMap.restrictScalars
as a LinearMap
. See also
ContinuousLinearMap.restrictScalarsL
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A continuous linear equivalence induces a continuous linear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coerce continuous linear equivs to continuous linear maps.
Equations
- ContinuousLinearEquiv.ContinuousLinearMap.coe = { coe := ContinuousLinearEquiv.toContinuousLinearMap }
Equations
- ContinuousLinearEquiv.continuousSemilinearEquivClass = ContinuousSemilinearEquivClass.mk
A continuous linear equivalence induces a homeomorphism.
Equations
- ContinuousLinearEquiv.toHomeomorph e = Homeomorph.mk (LinearEquiv.toEquiv e.toLinearEquiv)
Instances For
An extensionality lemma for R ≃L[R] M
.
The identity map as a continuous linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse of a continuous linear equivalence as a continuous linear equivalence
Equations
- One or more equations did not get rendered due to their size.
Instances For
See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.
Equations
Instances For
See Note [custom simps projection]
Equations
Instances For
The composition of two continuous linear equivalences as a continuous linear equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Product of two continuous linear equivalences. The map comes from Equiv.prodCongr
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Create a ContinuousLinearEquiv
from two ContinuousLinearMap
s that are
inverse of each other.
Equations
- ContinuousLinearEquiv.equivOfInverse f₁ f₂ h₁ h₂ = ContinuousLinearEquiv.mk { toLinearMap := ↑f₁, invFun := ↑f₂, left_inv := h₁, right_inv := h₂ }
Instances For
The continuous linear equivalences from M
to itself form a group under composition.
The continuous linear equivalence between ULift M₁
and M₁
.
This is a continuous version of ULift.moduleEquiv
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pair of continuous (semi)linear equivalences generates an equivalence between the spaces of
continuous linear maps. See also ContinuousLinearEquiv.arrowCongr
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equivalence given by a block lower diagonal matrix. e
and e'
are diagonal square blocks,
and f
is a rectangular block below the diagonal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The next theorems cover the identification between M ≃L[𝕜] M
and the group of units of the ring
M →L[R] M
.
An invertible continuous linear map f
determines a continuous equivalence from M
to itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A continuous equivalence from M
to itself determines an invertible continuous linear map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The units of the algebra of continuous R
-linear endomorphisms of M
is multiplicatively
equivalent to the type of continuous linear equivalences between M
and itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Continuous linear equivalences R ≃L[R] R
are enumerated by Rˣ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A pair of continuous linear maps such that f₁ ∘ f₂ = id
generates a continuous
linear equivalence e
between M
and M₂ × f₁.ker
such that (e x).2 = x
for x ∈ f₁.ker
,
(e x).1 = f₁ x
, and (e (f₂ y)).2 = 0
. The map is given by e x = (f₁ x, x - f₂ (f₁ x))
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If ι
has a unique element, then ι → M
is continuously linear equivalent to M
.
Equations
- ContinuousLinearEquiv.funUnique ι R M = let src := Homeomorph.funUnique ι M; ContinuousLinearEquiv.mk (LinearEquiv.funUnique ι R M)
Instances For
Continuous linear equivalence between dependent functions (i : Fin 2) → M i
and M 0 × M 1
.
Equations
- ContinuousLinearEquiv.piFinTwo R M = let src := Homeomorph.piFinTwo M; ContinuousLinearEquiv.mk (LinearEquiv.piFinTwo R M)
Instances For
Continuous linear equivalence between vectors in M² = Fin 2 → M
and M × M
.
Equations
- ContinuousLinearEquiv.finTwoArrow R M = let src := ContinuousLinearEquiv.piFinTwo R fun x => M; ContinuousLinearEquiv.mk (LinearEquiv.finTwoArrow R M)
Instances For
Introduce a function inverse
from M →L[R] M₂
to M₂ →L[R] M
, which sends f
to f.symm
if
f
is a continuous linear equivalence and to 0
otherwise. This definition is somewhat ad hoc,
but one needs a fully (rather than partially) defined inverse function for some purposes, including
for calculus.
Equations
- ContinuousLinearMap.inverse f = if h : ∃ e, ↑e = f then ↑(ContinuousLinearEquiv.symm (Classical.choose h)) else 0
Instances For
By definition, if f
is not invertible then inverse f = 0
.
The function ContinuousLinearEquiv.inverse
can be written in terms of Ring.inverse
for the
ring of self-maps of the domain.
A submodule p
is called complemented if there exists a continuous projection M →ₗ[R] p
.
Equations
- Submodule.ClosedComplemented p = ∃ f, ∀ (x : { x // x ∈ p }), ↑f ↑x = x