ProCGroups.CompletedGroupAlgebra.ProfiniteModules.FiniteGroupAlgebra.Topology
A finite group algebra over a profinite coefficient ring is identified with a finite product of coefficients and given its profinite ring topology. This file proves continuity of its operations and constructs continuous linear lifts from basis data.
imports
- ProCGroups.CompletedGroupAlgebra.ProfiniteModules.Basic.OpenIdeals
- Mathlib.GroupTheory.FiniteAbelian.Basic
@[reducible]
noncomputable def finiteGroupAlgebraTopology
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R] :
TopologicalSpace (MonoidAlgebra R G) :=
TopologicalSpace.induced
((MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans
Finsupp.equivFunOnFinite : MonoidAlgebra R G ≃ (G → R))
inferInstanceThe product topology on the group algebra of a finite group, transported through \(R[G] = G \to_0 R \simeq G \to R\). This is the finite stage used in the construction of the completed group algebra.
noncomputable def finiteGroupAlgebraHomeomorph
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
MonoidAlgebra R G ≃ₜ (G → R) := by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let e : MonoidAlgebra R G ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : MonoidAlgebra R G → G → R) :=
Topology.IsInducing.induced e
exact e.toHomeomorphOfIsInducing heThe finite group algebra with its transported product topology is homeomorphic to the function space \(G \to R\).
noncomputable def finiteGroupAlgebraContinuousLinearEquivPi
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
MonoidAlgebra R G ≃L[R] (G → R) := by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let e : MonoidAlgebra R G ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : MonoidAlgebra R G → G → R) :=
Topology.IsInducing.induced e
exact ContinuousLinearEquiv.mk
((MonoidAlgebra.coeffLinearEquiv R).trans
(Finsupp.linearEquivFunOnFinite R R G))
(by
change Continuous (e : MonoidAlgebra R G → G → R)
exact he.continuous)
(by
change Continuous ((e.toHomeomorphOfIsInducing he).symm : (G → R) → MonoidAlgebra R G)
exact (e.toHomeomorphOfIsInducing he).symm.continuous)The finite-stage group algebra is the finite product of copies of the coefficient ring as a topological \(R\)-module.
@[simp]
theorem finiteGroupAlgebraContinuousLinearEquivPi_apply
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
(x : MonoidAlgebra R G) :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
finiteGroupAlgebraContinuousLinearEquivPi R G x =
Finsupp.equivFunOnFinite x.coeffThe continuous equivalence is evaluated by the corresponding comparison formula.
Show Lean proof
rfl
theorem finiteGroupAlgebra_coordinate_continuous
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
∀ g : G, Continuous fun x : MonoidAlgebra R G => x.coeff gCoordinate evaluation on a finite group algebra is continuous for the transported product topology.
Show Lean proof
by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let e : MonoidAlgebra R G ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
intro g
change Continuous ((fun p : G → R => p g) ∘
(e : MonoidAlgebra R G → G → R))
exact
(continuous_apply g).comp
(continuous_induced_dom : Continuous (e : MonoidAlgebra R G → G → R))
theorem finiteGroupAlgebra_continuousAdd
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[IsTopologicalRing R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
ContinuousAdd (MonoidAlgebra R G)Addition is continuous for the finite-stage group algebra topology.
Show Lean proof
by
classical
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let A := MonoidAlgebra R G
let e : A ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : A → G → R) := Topology.IsInducing.induced e
have hcoord : ∀ g : G, Continuous fun x : A => x.coeff g :=
finiteGroupAlgebra_coordinate_continuous R G
refine ⟨?_⟩
rw [he.continuous_iff]
apply continuous_pi
intro g
change Continuous fun p : A × A => p.1.coeff g + p.2.coeff g
exact ((hcoord g).comp continuous_fst).add ((hcoord g).comp continuous_snd)
theorem finiteGroupAlgebra_continuousNeg
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[IsTopologicalRing R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
ContinuousNeg (MonoidAlgebra R G)Negation is continuous for the finite-stage group algebra topology.
Show Lean proof
by
classical
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let A := MonoidAlgebra R G
let e : A ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : A → G → R) := Topology.IsInducing.induced e
have hcoord : ∀ g : G, Continuous fun x : A => x.coeff g :=
finiteGroupAlgebra_coordinate_continuous R G
refine ⟨?_⟩
rw [he.continuous_iff]
apply continuous_pi
intro g
change Continuous fun x : A => -x.coeff g
exact (hcoord g).neg
theorem finiteGroupAlgebra_continuousMul
(R : Type u) (G : Type v) [CommRing R] [Group G] [Finite G] [TopologicalSpace R]
[IsTopologicalRing R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
ContinuousMul (MonoidAlgebra R G)Multiplication is continuous for the finite-stage group algebra topology. The coordinate formula is the finite convolution sum over pairs (g1,g2) with \(g1*g2 = g\).
Show Lean proof
by
classical
letI : Fintype G := Fintype.ofFinite G
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let A := MonoidAlgebra R G
let e : A ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : A → G → R) := Topology.IsInducing.induced e
have hcoord : ∀ g : G, Continuous fun x : A => x.coeff g :=
finiteGroupAlgebra_coordinate_continuous R G
refine ⟨?_⟩
rw [he.continuous_iff]
apply continuous_pi
intro g
change Continuous fun p : A × A => (p.1 * p.2).coeff g
rw [show (fun p : A × A => (p.1 * p.2).coeff g) =
(fun p : A × A => ∑ q ∈ (Finset.univ.filter (fun q : G × G => q.1 * q.2 = g)),
p.1.coeff q.1 * p.2.coeff q.2) from ?_]
· apply continuous_finsetSum
intro q _hq
exact ((hcoord q.1).comp continuous_fst).mul ((hcoord q.2).comp continuous_snd)
· funext p
exact MonoidAlgebra.coeff_mul_antidiag p.1 p.2 g
(Finset.univ.filter (fun q : G × G => q.1 * q.2 = g)) (by intro q; simp only
[Finset.mem_filter, Finset.mem_univ, true_and])
theorem finiteGroupAlgebra_continuousSMul
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[IsTopologicalRing R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
ContinuousSMul R (MonoidAlgebra R G)Scalar multiplication by the coefficient ring is continuous on the finite-stage group algebra topology.
Show Lean proof
by
classical
letI : Fintype G := Fintype.ofFinite G
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
let A := MonoidAlgebra R G
let e : A ≃ (G → R) :=
(MonoidAlgebra.coeffEquiv (R := R) (M := G)).trans Finsupp.equivFunOnFinite
have he : Topology.IsInducing (e : A → G → R) := Topology.IsInducing.induced e
have hcoord : ∀ g : G, Continuous fun x : A => x.coeff g :=
finiteGroupAlgebra_coordinate_continuous R G
refine ContinuousSMul.mk ?_
rw [he.continuous_iff]
apply continuous_pi
intro g
change Continuous fun p : R × A => p.1 * p.2.coeff g
exact continuous_fst.mul ((hcoord g).comp continuous_snd)
theorem finiteGroupAlgebra_isTopologicalRing
(R : Type u) (G : Type v) [CommRing R] [Group G] [Finite G] [TopologicalSpace R]
[IsTopologicalRing R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
IsTopologicalRing (MonoidAlgebra R G)The finite-stage group algebra topology makes \(R[G]\) a topological ring.
Show Lean proof
by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
letI : ContinuousAdd (MonoidAlgebra R G) := finiteGroupAlgebra_continuousAdd R G
letI : ContinuousMul (MonoidAlgebra R G) := finiteGroupAlgebra_continuousMul R G
letI : ContinuousNeg (MonoidAlgebra R G) := finiteGroupAlgebra_continuousNeg R G
letI : IsTopologicalSemiring (MonoidAlgebra R G) := IsTopologicalSemiring.mk
exact IsTopologicalRing.mk
theorem finiteGroupAlgebra_compactSpace
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[CompactSpace R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
CompactSpace (MonoidAlgebra R G)Compactness of the coefficient ring passes to a finite-stage group algebra.
Show Lean proof
by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
exact Homeomorph.compactSpace (finiteGroupAlgebraHomeomorph R G).symm
theorem finiteGroupAlgebra_t2Space
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[T2Space R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
T2Space (MonoidAlgebra R G)The Hausdorff property of the coefficient ring passes to a finite-stage group algebra.
Show Lean proof
by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
exact Homeomorph.t2Space (finiteGroupAlgebraHomeomorph R G).symm
theorem finiteGroupAlgebra_totallyDisconnectedSpace
(R : Type u) (G : Type v) [CommRing R] [Finite G] [TopologicalSpace R]
[TotallyDisconnectedSpace R] :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
TotallyDisconnectedSpace (MonoidAlgebra R G)Total disconnectedness of the coefficient ring passes to a finite-stage group algebra.
Show Lean proof
by
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
exact Homeomorph.totallyDisconnectedSpace (finiteGroupAlgebraHomeomorph R G).symm
noncomputable def finiteGroupAlgebraLift
(R : Type u) (G : Type v) (N : Type w) [CommRing R] [Finite G]
[TopologicalSpace R] [AddCommGroup N] [TopologicalSpace N] [Module R N]
[ContinuousAdd N] [ContinuousSMul R N] (f : G → N) :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
MonoidAlgebra R G →L[R] N := by
classical
letI : Fintype G := Fintype.ofFinite G
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
exact
{ toLinearMap :=
(finiteGroupAlgebraPiLift R G N f).toLinearMap.comp
((MonoidAlgebra.coeffLinearEquiv R).trans
(Finsupp.linearEquivFunOnFinite R R G)).toLinearMap
cont :=
by
have hcont :
Continuous
(((MonoidAlgebra.coeffLinearEquiv R).trans
(Finsupp.linearEquivFunOnFinite R R G)) :
MonoidAlgebra R G → G → R) := by
let e := finiteGroupAlgebraHomeomorph R G
change Continuous ((e : MonoidAlgebra R G ≃ₜ (G → R)) :
MonoidAlgebra R G → G → R)
exact e.continuous
exact (finiteGroupAlgebraPiLift R G N f).continuous.comp hcont }A continuous linear map out of a finite group algebra is determined by its values on group elements.
@[simp]
theorem finiteGroupAlgebraLift_apply_of
(R : Type u) (G : Type v) (N : Type w) [CommRing R] [Group G] [Finite G]
[TopologicalSpace R] [AddCommGroup N] [TopologicalSpace N] [Module R N]
[ContinuousAdd N] [ContinuousSMul R N] (f : G → N) (g : G) :
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
finiteGroupAlgebraLift R G N f (MonoidAlgebra.of R G g) = f gThe finite group-algebra lift sends the group-like basis vector at \(g\) to \(f(g)\).
Show Lean proof
by
classical
letI : Fintype G := Fintype.ofFinite G
letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
rw [show MonoidAlgebra.of R G g =
(MonoidAlgebra.single g 1 : MonoidAlgebra R G) by rfl]
change finiteGroupAlgebraPiLift R G N f
((Finsupp.linearEquivFunOnFinite R R G)
((MonoidAlgebra.single g (1 : R) : MonoidAlgebra R G).coeff)) =
f g
rw [MonoidAlgebra.coeff_single]
rw [Finsupp.linearEquivFunOnFinite_single]
exact finiteGroupAlgebraPiLift_apply_basis R G N f g