Linear topologies on modules and rings #
Let M
be a (left) module over a ring R
. Following
Stacks: Definition 15.36.1, we say that a
topology on M
is R
-linear if it is invariant by translations and admits a basis of
neighborhoods of 0 consisting of (left) R
-submodules.
If M
is an (R, R')
-bimodule, we show that a topology is both R
-linear and R'
-linear
if and only if there exists a basis of neighborhoods of 0 consisting of (R, R')
-subbimodules.
In particular, we say that a topology on the ring R
is linear if it is linear if
it is linear when R
is viewed as an (R, Rᵐᵒᵖ)
-bimodule. By the previous results,
this means that there exists a basis of neighborhoods of 0 consisting of two-sided ideals,
hence our definition agrees with [N. Bourbaki, Algebra II, chapter 4, §2, n° 3][bourbaki1981].
Main definitions and statements #
IsLinearTopology R M
: the topology onM
isR
-linear, meaning that there exists a basis of neighborhoods of 0 consisting ofR
-submodules. Note that we don't impose that the topology is invariant by translation, so you'll often want to addContinuousConstVAdd M M
to get something meaningless. To express that the topology of a ringR
is linear, use[IsLinearTopology R R] [IsLinearTopology Rᵐᵒᵖ R]
.IsLinearTopology.mk_of_hasBasis
: a convenient constructor forIsLinearTopology
. See alsoIsLinearTopology.mk_of_hasBasis'
.The discrete topology on
M
isR
-linear (declared as aninstance
).IsLinearTopology.hasBasis_subbimodule
: assume thatM
is an(R, R')
-bimodule, and that its topology is bothR
-linear andR'
-linear. Then there exists a basis of neighborhoods of 0 made of(R, R')
-subbimodules. Note that this is not trivial, since the bases witnessingR
-linearity andR'
-linearity may have nothing to do with each otherIsLinearTopology.tendsto_smul_zero
: assume that the topology onM
is linear. Form : ι → M
such thatm i
tends to 0,r i • m i
still tends to 0 for anyr : ι → R
.IsLinearTopology.hasBasis_twoSidedIdeal
: if the ringR
is linearly topologized, in the sense that we have bothIsLinearTopology R R
andIsLinearTopology Rᵐᵒᵖ R
, then there exists a basis of neighborhoods of 0 consisting of two-sided ideals.Conversely, to prove
IsLinearTopology R R
andIsLinearTopology Rᵐᵒᵖ R
from a basis of two-sided ideals, useIsLinearTopology.mk_of_hasBasis'
twice.IsLinearTopology.tendsto_mul_zero_of_left
: assume that the topology onR
is (right-)linear. Forf, g : ι → R
such thatf i
tends to0
,f i * g i
still tends to0
.IsLinearTopology.tendsto_mul_zero_of_right
: assume that the topology onR
is (left-)linear. Forf, g : ι → R
such thatg i
tends to0
,f i * g i
still tends to0
If
R
is a commutative ring and its topology is left-linear, it is automatically right-linear (declared as a low-priority instance).
Notes on the implementation #
- Some statements assume
ContinuousAdd M
whereContinuousConstVAdd M M
(invariance by translation) would be enough. In fact, in presence ofIsLinearTopology R M
, invariance by translation implies thatM
is a topological additive group on whichR
acts by homeomorphisms. Similarly,IsLinearTopology R R
andContinuousConstVAdd R R
imply thatR
is a topological ring. All of this will follow from PR#18437.
Nevertheless, we don't plan on adding those facts as instances: one should use directly
results from PR#18437 to get TopologicalAddGroup
and TopologicalRing
instances.
- The main constructor for
IsLinearTopology
,IsLinearTopology.mk_of_hasBasis
is formulated in terms of the subobject classesAddSubmonoidClass
andSMulMemClass
to allow for more complicated types thanSubmodule R M
orIdeal R
. Unfortunately, the scalar ring inSMulMemClass
is anoutParam
, which means that Lean only considers one base ring for a given subobject type. For example, Lean will never findSMulMemClass (TwoSidedIdeal R) R R
because it prioritizes the (later-defined) instance ofSMulMemClass (TwoSidedIdeal R) Rᵐᵒᵖ R
.
This makes IsLinearTopology.mk_of_hasBasis
un-applicable to TwoSidedIdeal
(and probably other
types), thus we provide IsLinearTopology.mk_of_hasBasis'
as an alternative not relying on
typeclass inference.
Consider a (left-)module M
over a ring R
. A topology on M
is R
-linear
if the open sub-R
-modules of M
form a basis of neighborhoods of zero.
Typically one would also that the topology is invariant by translation (ContinuousConstVAdd M M
),
or equivalently that M
is a topological group, but we do not assume it for the definition.
In particular, we say that a topology on the ring R
is linear if it is both
R
-linear and Rᵐᵒᵖ
-linear for the obvious module structures. To spell this in Lean,
simply use [IsLinearTopology R R] [IsLinearTopology Rᵐᵒᵖ R]
.
Instances
A variant of IsLinearTopology.mk_of_hasBasis
asking for an explicit proof that S
is a class of submodules instead of relying on (fragile) typeclass inference of SMulCommClass
.
To show that M
is linearly-topologized as an R
-module, it suffices to show
that it has a basis of neighborhoods of zero made of R
-submodules.
Note: for technical reasons detailed in the module docstring, Lean sometimes struggle to find the
right SMulMemClass
instance. See IsLinearTopology.mk_of_hasBasis'
for a more
explicit variant.
The discrete topology on any R
-module is R
-linear.
Assume that M
is a module over two rings R
and R'
, and that its topology
is linear with respect to each of these rings. Then, it has a basis of neighborhoods of zero
made of sub-(R, R')
-bimodules.
The proof is inspired by lemma 9 in I. Kaplansky, Topological Rings. TODO: Formalize the lemma in its full strength.
Note: due to the lack of a satisfying theory of sub-bimodules, we use AddSubgroup
s with
extra conditions.
A variant of IsLinearTopology.hasBasis_subbimodule
using IsOpen I
instead of I ∈ 𝓝 0
.
If M
is a linearly topologized R
-module and i ↦ m i
tends to zero,
then i ↦ a i • m i
still tends to zero for any family a : ι → R
.
If the left and right actions of R
on M
coincide, then a topology is Rᵐᵒᵖ
-linear
if and only if it is R
-linear.
If a ring R
is linearly ordered as a left and right module over itself,
then it has a basis of neighborhoods of zero made of two-sided ideals.
This is usually called a linearly topologized ring, but we do not add a specific spelling:
you should use [IsLinearTopology R R] [IsLinearTopology Rᵐᵒᵖ R]
instead.
If R
is commutative and left-linearly topologized, it is also right-linearly topologized.