Group and ring filter bases #
A GroupFilterBasis
is a FilterBasis
on a group with some properties relating
the basis to the group structure. The main theorem is that a GroupFilterBasis
on a group gives a topology on the group which makes it into a topological group
with neighborhoods of the neutral element generated by the given basis.
Main definitions and results #
Given a group G
and a ring R
:
GroupFilterBasis G
: the type of filter bases that will become neighborhood of1
for a topology onG
compatible with the group structureGroupFilterBasis.topology
: the associated topologyGroupFilterBasis.isTopologicalGroup
: the compatibility between the above topology and the group structureRingFilterBasis R
: the type of filter bases that will become neighborhood of0
for a topology onR
compatible with the ring structureRingFilterBasis.topology
: the associated topologyRingFilterBasis.isTopologicalRing
: the compatibility between the above topology and the ring structure
References #
A GroupFilterBasis
on a group is a FilterBasis
satisfying some additional axioms.
Example : if G
is a topological group then the neighbourhoods of the identity are a
GroupFilterBasis
. Conversely given a GroupFilterBasis
one can define a topology
compatible with the group structure on G
.
- nonempty : GroupFilterBasis.toFilterBasis.sets.Nonempty
Instances
An AddGroupFilterBasis
on an additive group is a FilterBasis
satisfying some additional
axioms. Example : if G
is a topological group then the neighbourhoods of the identity are an
AddGroupFilterBasis
. Conversely given an AddGroupFilterBasis
one can define a topology
compatible with the group structure on G
.
- nonempty : AddGroupFilterBasis.toFilterBasis.sets.Nonempty
Instances
GroupFilterBasis
constructor in the commutative group case.
Equations
- groupFilterBasisOfComm sets nonempty inter_sets one mul inv = { sets := sets, nonempty := nonempty, inter_sets := ⋯, one' := ⋯, mul' := ⋯, inv' := ⋯, conj' := ⋯ }
Instances For
AddGroupFilterBasis
constructor in the additive commutative group case.
Equations
- addGroupFilterBasisOfComm sets nonempty inter_sets one mul inv = { sets := sets, nonempty := nonempty, inter_sets := ⋯, zero' := ⋯, add' := ⋯, neg' := ⋯, conj' := ⋯ }
Instances For
Equations
- GroupFilterBasis.instMembershipSet = { mem := fun (f : GroupFilterBasis G) (s : Set G) => s ∈ GroupFilterBasis.toFilterBasis.sets }
Equations
- AddGroupFilterBasis.instMembershipSet = { mem := fun (f : AddGroupFilterBasis G) (s : Set G) => s ∈ AddGroupFilterBasis.toFilterBasis.sets }
The trivial group filter basis consists of {1}
only. The associated topology
is discrete.
Equations
- GroupFilterBasis.instInhabited = { default := { sets := {{1}}, nonempty := ⋯, inter_sets := ⋯, one' := ⋯, mul' := ⋯, inv' := ⋯, conj' := ⋯ } }
The trivial additive group filter basis consists of {0}
only. The associated
topology is discrete.
Equations
- AddGroupFilterBasis.instInhabited = { default := { sets := {{0}}, nonempty := ⋯, inter_sets := ⋯, zero' := ⋯, add' := ⋯, neg' := ⋯, conj' := ⋯ } }
The neighborhood function of a GroupFilterBasis
.
Equations
- B.N x = Filter.map (fun (y : G) => x * y) GroupFilterBasis.toFilterBasis.filter
Instances For
The neighborhood function of an AddGroupFilterBasis
.
Equations
- B.N x = Filter.map (fun (y : G) => x + y) AddGroupFilterBasis.toFilterBasis.filter
Instances For
The topological space structure coming from a group filter basis.
Equations
- B.topology = TopologicalSpace.mkOfNhds B.N
Instances For
The topological space structure coming from an additive group filter basis.
Equations
- B.topology = TopologicalSpace.mkOfNhds B.N
Instances For
If a group is endowed with a topological structure coming from a group filter basis then it's a topological group.
Equations
- ⋯ = ⋯
If a group is endowed with a topological structure coming from a group filter basis then it's a topological group.
Equations
- ⋯ = ⋯
A RingFilterBasis
on a ring is a FilterBasis
satisfying some additional axioms.
Example : if R
is a topological ring then the neighbourhoods of the identity are a
RingFilterBasis
. Conversely given a RingFilterBasis
on a ring R
, one can define a
topology on R
which is compatible with the ring structure.
- nonempty : AddGroupFilterBasis.toFilterBasis.sets.Nonempty
Instances
Equations
- RingFilterBasis.instMembershipSet = { mem := fun (B : RingFilterBasis R) (s : Set R) => s ∈ AddGroupFilterBasis.toFilterBasis.sets }
The topology associated to a ring filter basis. It has the given basis as a basis of neighborhoods of zero.
Equations
- B.topology = RingFilterBasis.toAddGroupFilterBasis.topology
Instances For
If a ring is endowed with a topological structure coming from a ring filter basis then it's a topological ring.
Equations
- ⋯ = ⋯
A ModuleFilterBasis
on a module is a FilterBasis
satisfying some additional axioms.
Example : if M
is a topological module then the neighbourhoods of zero are a
ModuleFilterBasis
. Conversely given a ModuleFilterBasis
one can define a topology
compatible with the module structure on M
.
- nonempty : AddGroupFilterBasis.toFilterBasis.sets.Nonempty
Instances For
Equations
- ModuleFilterBasis.GroupFilterBasis.hasMem = { mem := fun (B : ModuleFilterBasis R M) (s : Set M) => s ∈ AddGroupFilterBasis.toFilterBasis.sets }
If R
is discrete then the trivial additive group filter basis on any R
-module is a
module filter basis.
Equations
- One or more equations did not get rendered due to their size.
The topology associated to a module filter basis on a module over a topological ring. It has the given basis as a basis of neighborhoods of zero.
Equations
- B.topology = B.topology
Instances For
The topology associated to a module filter basis on a module over a topological ring. It has the given basis as a basis of neighborhoods of zero. This version gets the ring topology by unification instead of type class inference.
Equations
- B.topology' = B.topology
Instances For
A topological add group with a basis of 𝓝 0
satisfying the axioms of ModuleFilterBasis
is a topological module.
This lemma is mathematically useless because one could obtain such a result by applying
ModuleFilterBasis.continuousSMul
and use the fact that group topologies are characterized
by their neighborhoods of 0 to obtain the ContinuousSMul
on the pre-existing topology.
But it turns out it's just easier to get it as a byproduct of the proof, so this is just a free quality-of-life improvement.
If a module is endowed with a topological structure coming from a module filter basis then it's a topological module.
Equations
- ⋯ = ⋯
Build a module filter basis from compatible ring and additive group filter bases.
Equations
- ModuleFilterBasis.ofBases BR BM smul smul_left smul_right = { toAddGroupFilterBasis := BM, smul' := ⋯, smul_left' := smul_left, smul_right' := ⋯ }