Group and ring filter bases #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
A group_filter_basis
is a filter_basis
on a group with some properties relating
the basis to the group structure. The main theorem is that a group_filter_basis
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
:
group_filter_basis G
: the type of filter bases that will become neighborhood of1
for a topology onG
compatible with the group structuregroup_filter_basis.topology
: the associated topologygroup_filter_basis.is_topological_group
: the compatibility between the above topology and the group structurering_filter_basis R
: the type of filter bases that will become neighborhood of0
for a topology onR
compatible with the ring structurering_filter_basis.topology
: the associated topologyring_filter_basis.is_topological_ring
: the compatibility between the above topology and the ring structure
References #
- to_filter_basis : filter_basis G
- one' : ∀ {U : set G}, U ∈ group_filter_basis.to_filter_basis.sets → 1 ∈ U
- mul' : ∀ {U : set G}, U ∈ group_filter_basis.to_filter_basis.sets → (∃ (V : set G) (H : V ∈ group_filter_basis.to_filter_basis.sets), V * V ⊆ U)
- inv' : ∀ {U : set G}, U ∈ group_filter_basis.to_filter_basis.sets → (∃ (V : set G) (H : V ∈ group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : G), x⁻¹) ⁻¹' U)
- conj' : ∀ (x₀ : G) {U : set G}, U ∈ group_filter_basis.to_filter_basis.sets → (∃ (V : set G) (H : V ∈ group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : G), x₀ * x * x₀⁻¹) ⁻¹' U)
A group_filter_basis
on a group is a filter_basis
satisfying some additional axioms.
Example : if G
is a topological group then the neighbourhoods of the identity are a
group_filter_basis
. Conversely given a group_filter_basis
one can define a topology
compatible with the group structure on G
.
Instances for group_filter_basis
- group_filter_basis.has_sizeof_inst
- group_filter_basis.has_mem
- group_filter_basis.inhabited
- to_filter_basis : filter_basis A
- zero' : ∀ {U : set A}, U ∈ add_group_filter_basis.to_filter_basis.sets → 0 ∈ U
- add' : ∀ {U : set A}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set A) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V + V ⊆ U)
- neg' : ∀ {U : set A}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set A) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : A), -x) ⁻¹' U)
- conj' : ∀ (x₀ : A) {U : set A}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set A) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : A), x₀ + x + -x₀) ⁻¹' U)
A add_group_filter_basis
on an additive group is a filter_basis
satisfying some additional
axioms. Example : if G
is a topological group then the neighbourhoods of the identity are a
add_group_filter_basis
. Conversely given a add_group_filter_basis
one can define a topology
compatible with the group structure on G
.
Instances of this typeclass
Instances of other typeclasses for add_group_filter_basis
- add_group_filter_basis.has_sizeof_inst
- add_group_filter_basis.has_mem
- add_group_filter_basis.inhabited
add_group_filter_basis
constructor in the additive commutative group case.
Equations
- add_group_filter_basis_of_comm sets nonempty inter_sets one mul inv = {to_filter_basis := {sets := sets, nonempty := nonempty, inter_sets := inter_sets}, zero' := one, add' := mul, neg' := inv, conj' := _}
group_filter_basis
constructor in the commutative group case.
Equations
- group_filter_basis_of_comm sets nonempty inter_sets one mul inv = {to_filter_basis := {sets := sets, nonempty := nonempty, inter_sets := inter_sets}, one' := one, mul' := mul, inv' := inv, conj' := _}
Equations
- add_group_filter_basis.has_mem = {mem := λ (s : set G) (f : add_group_filter_basis G), s ∈ add_group_filter_basis.to_filter_basis.sets}
Equations
- group_filter_basis.has_mem = {mem := λ (s : set G) (f : group_filter_basis G), s ∈ group_filter_basis.to_filter_basis.sets}
The trivial group filter basis consists of {1}
only. The associated topology
is discrete.
Equations
- group_filter_basis.inhabited = {default := {to_filter_basis := {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
- add_group_filter_basis.inhabited = {default := {to_filter_basis := {sets := {{0}}, nonempty := _, inter_sets := _}, zero' := _, add' := _, neg' := _, conj' := _}}
The neighborhood function of a add_group_filter_basis
Equations
- B.N = λ (x : G), filter.map (λ (y : G), x + y) add_group_filter_basis.to_filter_basis.filter
The neighborhood function of a group_filter_basis
Equations
- B.N = λ (x : G), filter.map (λ (y : G), x * y) group_filter_basis.to_filter_basis.filter
The topological space structure coming from a group filter basis.
Equations
The topological space structure coming from an additive group filter basis.
Equations
If a group is endowed with a topological structure coming from a group filter basis then it's a topological group.
If a group is endowed with a topological structure coming from a group filter basis then it's a topological group.
- to_add_group_filter_basis : add_group_filter_basis R
- mul' : ∀ {U : set R}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set R) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V * V ⊆ U)
- mul_left' : ∀ (x₀ : R) {U : set R}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set R) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : R), x₀ * x) ⁻¹' U)
- mul_right' : ∀ (x₀ : R) {U : set R}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set R) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : R), x * x₀) ⁻¹' U)
A ring_filter_basis
on a ring is a filter_basis
satisfying some additional axioms.
Example : if R
is a topological ring then the neighbourhoods of the identity are a
ring_filter_basis
. Conversely given a ring_filter_basis
on a ring R
, one can define a
topology on R
which is compatible with the ring structure.
Instances for ring_filter_basis
- ring_filter_basis.has_sizeof_inst
- ring_filter_basis.has_mem
Equations
- ring_filter_basis.has_mem = {mem := λ (s : set R) (B : ring_filter_basis R), s ∈ add_group_filter_basis.to_filter_basis.sets}
The topology associated to a ring filter basis. It has the given basis as a basis of neighborhoods of zero.
Equations
If a ring is endowed with a topological structure coming from a ring filter basis then it's a topological ring.
- to_add_group_filter_basis : add_group_filter_basis M
- smul' : ∀ {U : set M}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set R) (H : V ∈ nhds 0) (W : set M) (H : W ∈ add_group_filter_basis.to_filter_basis.sets), V • W ⊆ U)
- smul_left' : ∀ (x₀ : R) {U : set M}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∃ (V : set M) (H : V ∈ add_group_filter_basis.to_filter_basis.sets), V ⊆ (λ (x : M), x₀ • x) ⁻¹' U)
- smul_right' : ∀ (m₀ : M) {U : set M}, U ∈ add_group_filter_basis.to_filter_basis.sets → (∀ᶠ (x : R) in nhds 0, x • m₀ ∈ U)
A module_filter_basis
on a module is a filter_basis
satisfying some additional axioms.
Example : if M
is a topological module then the neighbourhoods of zero are a
module_filter_basis
. Conversely given a module_filter_basis
one can define a topology
compatible with the module structure on M
.
Instances for module_filter_basis
- module_filter_basis.has_sizeof_inst
- module_filter_basis.group_filter_basis.has_mem
- module_filter_basis.inhabited
Equations
- module_filter_basis.group_filter_basis.has_mem = {mem := λ (s : set M) (B : module_filter_basis R M), s ∈ add_group_filter_basis.to_filter_basis.sets}
If R
is discrete then the trivial additive group filter basis on any R
-module is a
module filter basis.
Equations
- module_filter_basis.inhabited = {default := {to_add_group_filter_basis := {to_filter_basis := add_group_filter_basis.to_filter_basis (show add_group_filter_basis M, from inhabited.default), zero' := _, add' := _, neg' := _, conj' := _}, smul' := _, smul_left' := _, smul_right' := _}}
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
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
A topological add group whith a basis of 𝓝 0
satisfying the axioms of module_filter_basis
is a topological module.
This lemma is mathematically useless because one could obtain such a result by applying
module_filter_basis.has_continuous_smul
and use the fact that group topologies are characterized
by their neighborhoods of 0 to obtain the has_continuous_smul
on the pre-existing topology.
But it turns out it's just easier to get it as a biproduct 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.
Build a module filter basis from compatible ring and additive group filter bases.
Equations
- module_filter_basis.of_bases BR BM smul smul_left smul_right = {to_add_group_filter_basis := {to_filter_basis := add_group_filter_basis.to_filter_basis BM, zero' := _, add' := _, neg' := _, conj' := _}, smul' := _, smul_left' := smul_left, smul_right' := _}