ProCGroups.CompletedGroupAlgebra.UniversalProperty.Basic
This module packages canonical completed-group-algebra models by their finite-stage cone and inverse-limit universal property, derives comparison equivalences, and develops the continuous group-like map and its spanning properties.
imports
- ProCGroups.CompletedGroupAlgebra.OpenFiniteQuotientTopology.OpenFiniteComparison
- ProCGroups.CompletedGroupAlgebra.AllFiniteFunctoriality.GroupLike
- Mathlib.Topology.Algebra.Category.ProfiniteGrp.Basic
structure CanonicalCompletedGroupAlgebraModel
(R : ProfiniteCommRing.{u}) (G : ProfiniteGrp.{v}) (RG : ProfiniteRing.{w})
(algebraicMap : CompletedGroupAlgebraNaturalSource R G →+* RG) where
/-- The projection from the candidate model to each finite group-algebra stage. -/
stageProjection : ∀ U : CompletedGroupAlgebraIndex G,
RG →+* CompletedGroupAlgebraStage R G U
/-- Each stage projection agrees with the canonical stage map on the algebraic source. -/
stageProjection_comp_algebraicMap : ∀ U : CompletedGroupAlgebraIndex G,
(stageProjection U).comp algebraicMap = completedGroupAlgebraNaturalSourceStageMap R G U
/-- The stage projections exhibit the candidate carrier as the inverse limit. -/
isInverseLimit :
(completedGroupAlgebraSystem R G).IsInverseLimit
(fun U x => stageProjection U x)Certificate that a profinite ring realizes the inverse limit of the finite group algebras R[G/U] for bundled profinite coefficients and group.
The data are the bundled finite-stage ring homomorphisms, their compatibility with the specified algebraic map, and the inverse-limit universal property. Continuity and transition compatibility of the projections are contained in isInverseLimit. In particular, no comparison with the canonical carrier is assumed: the comparison homeomorphism and ring equivalence below are derived from the universal property. Profiniteness is inherited from the three bundled objects rather than repeated as certificate fields.
theorem stageProjection_continuous
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap)
(U : CompletedGroupAlgebraIndex G) :
letI : TopologicalSpace (CompletedGroupAlgebraStage R G U) :=
(completedGroupAlgebraSystem R G).topologicalSpace U
Continuous (h.stageProjection U)Each model projection is continuous, as a consequence of the inverse-limit witness.
Show Lean proof
by
letI : TopologicalSpace (CompletedGroupAlgebraStage R G U) :=
(completedGroupAlgebraSystem R G).topologicalSpace U
exact h.isInverseLimit.continuous_proj U
theorem stageProjection_compatible
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap)
{U V : CompletedGroupAlgebraIndex G} (hUV : U ≤ V) :
(completedGroupAlgebraTransition R G hUV).comp (h.stageProjection V) =
h.stageProjection UModel projections commute with finite-stage transition ring homomorphisms.
Show Lean proof
by
apply RingHom.ext
intro x
change
(completedGroupAlgebraSystem R G).map hUV (h.stageProjection V x) =
h.stageProjection U x
exact congrFun (h.isInverseLimit.compatible U V hUV) x
noncomputable def comparisonHomeomorph
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
RG ≃ₜ CompletedGroupAlgebraCarrier R G :=
h.isInverseLimit.homeomorphToInverseLimitThe comparison homeomorphism with the concrete inverse-limit carrier, derived solely from the two inverse-limit universal properties.
@[simp]
theorem completedGroupAlgebraProjection_comparisonHomeomorph
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap)
(U : CompletedGroupAlgebraIndex G) (x : RG) :
completedGroupAlgebraProjection R G U (h.comparisonHomeomorph x) =
h.stageProjection U xThe derived comparison is characterized by every finite-stage projection.
Show Lean proof
by
rfl
noncomputable def comparisonRingEquiv
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
RG ≃+* CompletedGroupAlgebraCarrier R G where
toEquiv := h.comparisonHomeomorph.toEquiv
map_add' x y := by
apply completedGroupAlgebra_ext (R := R) (G := G)
intro U
change completedGroupAlgebraProjection R G U (h.comparisonHomeomorph (x + y)) =
completedGroupAlgebraProjection R G U
(h.comparisonHomeomorph x + h.comparisonHomeomorph y)
calc
completedGroupAlgebraProjection R G U (h.comparisonHomeomorph (x + y)) =
h.stageProjection U (x + y) :=
h.completedGroupAlgebraProjection_comparisonHomeomorph U (x + y)
_ = h.stageProjection U x + h.stageProjection U y := map_add _ x y
_ = completedGroupAlgebraProjection R G U (h.comparisonHomeomorph x) +
completedGroupAlgebraProjection R G U (h.comparisonHomeomorph y) :=
congrArg₂ (· + ·)
(h.completedGroupAlgebraProjection_comparisonHomeomorph U x).symm
(h.completedGroupAlgebraProjection_comparisonHomeomorph U y).symm
_ = completedGroupAlgebraProjection R G U
(h.comparisonHomeomorph x + h.comparisonHomeomorph y) :=
(map_add (completedGroupAlgebraProjection R G U) _ _).symm
map_mul' x y := by
apply completedGroupAlgebra_ext (R := R) (G := G)
intro U
change completedGroupAlgebraProjection R G U (h.comparisonHomeomorph (x * y)) =
completedGroupAlgebraProjection R G U
(h.comparisonHomeomorph x * h.comparisonHomeomorph y)
calc
completedGroupAlgebraProjection R G U (h.comparisonHomeomorph (x * y)) =
h.stageProjection U (x * y) :=
h.completedGroupAlgebraProjection_comparisonHomeomorph U (x * y)
_ = h.stageProjection U x * h.stageProjection U y := map_mul _ x y
_ = completedGroupAlgebraProjection R G U (h.comparisonHomeomorph x) *
completedGroupAlgebraProjection R G U (h.comparisonHomeomorph y) :=
congrArg₂ (· * ·)
(h.completedGroupAlgebraProjection_comparisonHomeomorph U x).symm
(h.completedGroupAlgebraProjection_comparisonHomeomorph U y).symm
_ = completedGroupAlgebraProjection R G U
(h.comparisonHomeomorph x * h.comparisonHomeomorph y) :=
(map_mul (completedGroupAlgebraProjection R G U) _ _).symmThe comparison homeomorphism preserves the ring operations because all model projections are ring homomorphisms.
@[simp]
theorem completedGroupAlgebraProjection_comparisonRingEquiv
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap)
(U : CompletedGroupAlgebraIndex G) (x : RG) :
completedGroupAlgebraProjection R G U (h.comparisonRingEquiv x) =
h.stageProjection U xRing-equivalence form of the finite-stage characterization.
Show Lean proof
h.completedGroupAlgebraProjection_comparisonHomeomorph U x
theorem comparisonRingEquiv_continuous
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
Continuous h.comparisonRingEquivThe derived comparison ring equivalence is continuous.
Show Lean proof
by
change Continuous h.comparisonHomeomorph
exact h.comparisonHomeomorph.continuous
theorem comparisonRingEquiv_symm_continuous
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
Continuous h.comparisonRingEquiv.symmThe inverse of the derived comparison ring equivalence is continuous.
Show Lean proof
by
change Continuous h.comparisonHomeomorph.symm
exact h.comparisonHomeomorph.symm.continuous
@[simp]
theorem comparisonRingEquiv_algebraicMap
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap)
(x : CompletedGroupAlgebraNaturalSource R G) :
h.comparisonRingEquiv (algebraicMap x) =
toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) xThe derived comparison extends the specified algebraic map.
Show Lean proof
by
apply completedGroupAlgebra_ext (R := R) (G := G)
intro U
calc
completedGroupAlgebraProjection R G U
(h.comparisonRingEquiv (algebraicMap x)) =
h.stageProjection U (algebraicMap x) :=
h.completedGroupAlgebraProjection_comparisonRingEquiv U (algebraicMap x)
_ = completedGroupAlgebraNaturalSourceStageMap R G U x :=
congrFun (congrArg DFunLike.coe (h.stageProjection_comp_algebraicMap U)) x
_ = completedGroupAlgebraProjection R G U
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) x) := by
rw [completedGroupAlgebraNaturalSourceStageMap_apply]
change completedGroupAlgebraStageMap R G U x.toMonoidAlgebra =
completedGroupAlgebraProjection R G U
(toCompletedGroupAlgebra R G x.toMonoidAlgebra)
exact
(completedGroupAlgebraProjection_toCompletedGroupAlgebra
(R := R) (G := G) U x.toMonoidAlgebra).symm
theorem comparisonRingEquiv_comp_algebraicMap
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
h.comparisonRingEquiv.toRingHom.comp algebraicMap =
toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G)Bundled ring-homomorphism form of algebraic-map compatibility.
Show Lean proof
by
apply RingHom.ext
intro x
exact h.comparisonRingEquiv_algebraicMap x
theorem algebraicMap_eq_comparisonRingEquiv_symm_comp
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
algebraicMap = h.comparisonRingEquiv.symm.toRingHom.comp
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G))The specified algebraic map is forced by the finite-stage cone: it is the canonical map followed by the inverse comparison equivalence.
Show Lean proof
by
apply RingHom.ext
intro x
apply h.comparisonRingEquiv.injective
change h.comparisonRingEquiv (algebraicMap x) =
h.comparisonRingEquiv
(h.comparisonRingEquiv.symm
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) x))
calc
h.comparisonRingEquiv (algebraicMap x) =
toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) x :=
h.comparisonRingEquiv_algebraicMap x
_ = h.comparisonRingEquiv
(h.comparisonRingEquiv.symm
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) x)) :=
(h.comparisonRingEquiv.apply_symm_apply _).symm
theorem algebraicMap_continuous
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
Continuous algebraicMapContinuity of the specified algebraic map is derived from the inverse-limit comparison.
Show Lean proof
by
rw [h.algebraicMap_eq_comparisonRingEquiv_symm_comp]
exact h.comparisonRingEquiv_symm_continuous.comp
(continuous_toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G))
theorem algebraicMap_dense
(h : CanonicalCompletedGroupAlgebraModel R G RG algebraicMap) :
DenseRange algebraicMapDensity of the specified algebraic map is likewise forced by the canonical inverse-limit model; it is not independent structure data.
Show Lean proof
by
rw [h.algebraicMap_eq_comparisonRingEquiv_symm_comp]
exact h.comparisonRingEquiv.symm.surjective.denseRange.comp
(denseRange_toCompletedGroupAlgebraNaturalSourceRingHom
(R := R) (G := G))
h.comparisonRingEquiv_symm_continuous
noncomputable def modelToModelHomeomorph
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂) :
RG₁ ≃ₜ RG₂ :=
h₁.comparisonHomeomorph.trans h₂.comparisonHomeomorph.symmThe canonical homeomorphism between two finite-stage inverse-limit models.
noncomputable def modelToModelRingEquiv
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂) :
RG₁ ≃+* RG₂ :=
h₁.comparisonRingEquiv.trans h₂.comparisonRingEquiv.symmThe canonical ring equivalence between two finite-stage inverse-limit models.
@[simp]
theorem stageProjection_modelToModelRingEquiv
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂)
(U : CompletedGroupAlgebraIndex G) (x : RG₁) :
h₂.stageProjection U (h₁.modelToModelRingEquiv h₂ x) =
h₁.stageProjection U xThe model-to-model equivalence commutes with every finite-stage projection.
Show Lean proof
by
change h₂.stageProjection U
(h₂.comparisonRingEquiv.symm (h₁.comparisonRingEquiv x)) =
h₁.stageProjection U x
calc
h₂.stageProjection U
(h₂.comparisonRingEquiv.symm (h₁.comparisonRingEquiv x)) =
completedGroupAlgebraProjection R G U
(h₂.comparisonRingEquiv
(h₂.comparisonRingEquiv.symm (h₁.comparisonRingEquiv x))) :=
(h₂.completedGroupAlgebraProjection_comparisonRingEquiv U
(h₂.comparisonRingEquiv.symm (h₁.comparisonRingEquiv x))).symm
_ = completedGroupAlgebraProjection R G U (h₁.comparisonRingEquiv x) := by
rw [RingEquiv.apply_symm_apply]
_ = h₁.stageProjection U x :=
h₁.completedGroupAlgebraProjection_comparisonRingEquiv U x
theorem modelToModelRingEquiv_continuous
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂) :
Continuous (h₁.modelToModelRingEquiv h₂)The canonical model-to-model ring equivalence is continuous.
Show Lean proof
by
change Continuous (h₁.modelToModelHomeomorph h₂)
exact (h₁.modelToModelHomeomorph h₂).continuous
theorem modelToModelRingEquiv_symm_continuous
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂) :
Continuous (h₁.modelToModelRingEquiv h₂).symmThe inverse of the canonical model-to-model ring equivalence is continuous.
Show Lean proof
by
change Continuous (h₁.modelToModelHomeomorph h₂).symm
exact (h₁.modelToModelHomeomorph h₂).symm.continuous
@[simp]
theorem modelToModelRingEquiv_algebraicMap
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂)
(x : CompletedGroupAlgebraNaturalSource R G) :
h₁.modelToModelRingEquiv h₂ (algebraicMap₁ x) = algebraicMap₂ xThe canonical model-to-model equivalence carries one specified algebraic map to the other.
Show Lean proof
by
apply h₂.comparisonRingEquiv.injective
change h₂.comparisonRingEquiv
(h₂.comparisonRingEquiv.symm
(h₁.comparisonRingEquiv (algebraicMap₁ x))) =
h₂.comparisonRingEquiv (algebraicMap₂ x)
rw [RingEquiv.apply_symm_apply, h₁.comparisonRingEquiv_algebraicMap,
h₂.comparisonRingEquiv_algebraicMap]
theorem modelToModelRingEquiv_comp_algebraicMap
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂) :
(h₁.modelToModelRingEquiv h₂).toRingHom.comp algebraicMap₁ = algebraicMap₂Bundled ring-homomorphism form of model-to-model algebraic-map compatibility.
Show Lean proof
by
apply RingHom.ext
intro x
exact h₁.modelToModelRingEquiv_algebraicMap h₂ x
theorem modelToModelRingEquiv_unique
(h₁ : CanonicalCompletedGroupAlgebraModel R G RG₁ algebraicMap₁)
(h₂ : CanonicalCompletedGroupAlgebraModel R G RG₂ algebraicMap₂)
(e : RG₁ ≃+* RG₂)
(hstage : ∀ U : CompletedGroupAlgebraIndex G,
(h₂.stageProjection U).comp e.toRingHom = h₁.stageProjection U) :
e = h₁.modelToModelRingEquiv h₂A ring equivalence commuting with all finite-stage projections is the canonical model-to-model equivalence. Joint injectivity of the canonical stage projections makes a separate continuity hypothesis unnecessary.
Show Lean proof
by
apply RingEquiv.ext
intro x
apply h₂.comparisonRingEquiv.injective
apply completedGroupAlgebra_ext (R := R) (G := G)
intro U
calc
completedGroupAlgebraProjection R G U (h₂.comparisonRingEquiv (e x)) =
h₂.stageProjection U (e x) :=
h₂.completedGroupAlgebraProjection_comparisonRingEquiv U (e x)
_ = h₁.stageProjection U x :=
congrFun (congrArg DFunLike.coe (hstage U)) x
_ = h₂.stageProjection U (h₁.modelToModelRingEquiv h₂ x) :=
(h₁.stageProjection_modelToModelRingEquiv h₂ U x).symm
_ = completedGroupAlgebraProjection R G U
(h₂.comparisonRingEquiv (h₁.modelToModelRingEquiv h₂ x)) :=
(h₂.completedGroupAlgebraProjection_comparisonRingEquiv U
(h₁.modelToModelRingEquiv h₂ x)).symm
structure CompletedGroupAlgebraModel
(R : ProfiniteCommRing.{u}) (G : ProfiniteGrp.{v}) where
/-- The profinite ring underlying the completed group-algebra model. -/
carrier : ProfiniteRing.{w}
/-- The canonical map from the algebraic group algebra into the model. -/
algebraicMap : CompletedGroupAlgebraNaturalSource R G →+* carrier
/-- The projection from the model to each finite group-algebra stage. -/
stageProjection : ∀ U : CompletedGroupAlgebraIndex G,
carrier →+* CompletedGroupAlgebraStage R G U
/-- Each stage projection agrees with the canonical stage map on the algebraic source. -/
stageProjection_comp_algebraicMap : ∀ U : CompletedGroupAlgebraIndex G,
(stageProjection U).comp algebraicMap = completedGroupAlgebraNaturalSourceStageMap R G U
/-- The stage projections exhibit the model carrier as the inverse limit. -/
isInverseLimit :
(completedGroupAlgebraSystem R G).IsInverseLimit
(fun U x => stageProjection U x)A completed group algebra model whose coefficient ring, profinite carrier, and group are genuine bundled objects.
The data fields contain the algebraic map and the finite-stage cone with its universal property. Continuity, density, and carrier profiniteness are theorems forced by comparison with the concrete inverse limit; they are not stored as independent witnesses. Likewise, all input profiniteness structure is inherited from the objects. CompletedGroupAlgebraModel.certificate reconstructs the finite-stage certificate when needed.
def certificate (M : CompletedGroupAlgebraModel R G) :
CanonicalCompletedGroupAlgebraModel R G M.carrier M.algebraicMap where
stageProjection := M.stageProjection
stageProjection_comp_algebraicMap := M.stageProjection_comp_algebraicMap
isInverseLimit := M.isInverseLimitExpose the bundled model's finite-stage inverse-limit certificate.
def ofCertificate (carrier : ProfiniteRing.{w})
(algebraicMap : CompletedGroupAlgebraNaturalSource R G →+* carrier)
(h : CanonicalCompletedGroupAlgebraModel R G carrier algebraicMap) :
CompletedGroupAlgebraModel R G where
carrier := carrier
algebraicMap := algebraicMap
stageProjection := h.stageProjection
stageProjection_comp_algebraicMap := h.stageProjection_comp_algebraicMap
isInverseLimit := h.isInverseLimitPackage a finite-stage certificate as a completed-group-algebra model.
theorem algebraicMap_continuous (M : CompletedGroupAlgebraModel R G) :
Continuous M.algebraicMapThe bundled model's specified algebraic map is continuous; this is derived, not stored.
Show Lean proof
M.certificate.algebraicMap_continuous
theorem algebraicMap_dense (M : CompletedGroupAlgebraModel R G) :
DenseRange M.algebraicMapThe bundled model's specified algebraic map has dense range; this is derived, not stored.
Show Lean proof
M.certificate.algebraicMap_dense
def coefficientMap (M : CompletedGroupAlgebraModel R G) : R →+* M.carrier :=
M.algebraicMap.comp
(completedGroupAlgebraNaturalSourceCoefficientRingHom (R := R) (G := G))Restriction of the algebraic map to the coefficient ring.
def groupMap (M : CompletedGroupAlgebraModel R G) : G →* M.carrier :=
M.algebraicMap.toMonoidHom.comp
(completedGroupAlgebraNaturalSourceGroupMonoidHom (R := R) (G := G))Restriction of the algebraic map to group-like elements.
def groupUnitsMap (M : CompletedGroupAlgebraModel R G) : G →* M.carrierˣ :=
M.groupMap.toHomUnitsGroup-like elements land in units; this is the object-level unit representation of a model.
@[simp]
theorem groupUnitsMap_coe (M : CompletedGroupAlgebraModel R G) (g : G) :
((M.groupUnitsMap g : M.carrierˣ) : M.carrier) = M.groupMap gForgetting the unit structure from a model's group map recovers its underlying group-like element.
Show Lean proof
rfl
noncomputable def comparisonRingEquiv (M : CompletedGroupAlgebraModel R G) :
M.carrier ≃+* CompletedGroupAlgebraCarrier R G :=
M.certificate.comparisonRingEquivThe derived comparison with the concrete compatible-family model.
noncomputable def comparisonHomeomorph (M : CompletedGroupAlgebraModel R G) :
M.carrier ≃ₜ CompletedGroupAlgebraCarrier R G :=
M.certificate.comparisonHomeomorphThe derived comparison is a homeomorphism.
@[simp]
theorem completedGroupAlgebraProjection_comparisonRingEquiv
(M : CompletedGroupAlgebraModel R G) (U : CompletedGroupAlgebraIndex G) (x : M.carrier) :
completedGroupAlgebraProjection R G U (M.comparisonRingEquiv x) =
M.stageProjection U xThe bundled comparison is characterized by every finite-stage projection.
Show Lean proof
M.certificate.completedGroupAlgebraProjection_comparisonRingEquiv U x
@[simp]
theorem comparisonRingEquiv_algebraicMap (M : CompletedGroupAlgebraModel R G)
(x : CompletedGroupAlgebraNaturalSource R G) :
M.comparisonRingEquiv (M.algebraicMap x) =
toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) xThe bundled comparison extends the model's full algebraic map.
Show Lean proof
M.certificate.comparisonRingEquiv_algebraicMap x
@[simp]
theorem comparisonRingEquiv_coefficientMap (M : CompletedGroupAlgebraModel R G) (r : R) :
M.comparisonRingEquiv (M.coefficientMap r) =
algebraMap R (CompletedGroupAlgebraCarrier R G) rThe comparison therefore respects the coefficient-ring embedding.
Show Lean proof
by
change M.comparisonRingEquiv
(M.algebraicMap
(completedGroupAlgebraNaturalSourceCoefficientRingHom (R := R) (G := G) r)) =
algebraMap R (CompletedGroupAlgebraCarrier R G) r
exact
(M.comparisonRingEquiv_algebraicMap
(completedGroupAlgebraNaturalSourceCoefficientRingHom (R := R) (G := G) r)).trans
(toCompletedGroupAlgebraNaturalSourceRingHom_coefficient (R := R) (G := G) r)
@[simp]
theorem comparisonRingEquiv_groupMap_source (M : CompletedGroupAlgebraModel R G) (g : G) :
M.comparisonRingEquiv (M.groupMap g) =
toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G)
(completedGroupAlgebraNaturalSourceGroupMonoidHom (R := R) (G := G) g)Source-wrapper form of compatibility with the group-like map. The normalized completedGroupAlgebraOf form is stated after that canonical map is introduced below.
Show Lean proof
M.comparisonRingEquiv_algebraicMap
(completedGroupAlgebraNaturalSourceGroupMonoidHom (R := R) (G := G) g)
noncomputable def modelEquiv (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G) :
M.carrier ≃+* N.carrier :=
M.certificate.modelToModelRingEquiv N.certificateCanonical equivalence between any two bundled models.
@[simp]
theorem modelEquiv_algebraicMap (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G)
(x : CompletedGroupAlgebraNaturalSource R G) :
M.modelEquiv N (M.algebraicMap x) = N.algebraicMap xThe model equivalence carries the specified algebraic map to the specified algebraic map.
Show Lean proof
M.certificate.modelToModelRingEquiv_algebraicMap N.certificate x
@[simp]
theorem stageProjection_modelEquiv (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G)
(U : CompletedGroupAlgebraIndex G) (x : M.carrier) :
N.stageProjection U (M.modelEquiv N x) = M.stageProjection U xThe canonical equivalence commutes with every finite-stage projection.
Show Lean proof
M.certificate.stageProjection_modelToModelRingEquiv N.certificate U x
@[simp]
theorem modelEquiv_coefficientMap (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G) (r : R) :
M.modelEquiv N (M.coefficientMap r) = N.coefficientMap rThe canonical equivalence restricts to the identity on coefficient-ring data.
Show Lean proof
M.modelEquiv_algebraicMap N
(completedGroupAlgebraNaturalSourceCoefficientRingHom (R := R) (G := G) r)
@[simp]
theorem modelEquiv_groupMap (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G) (g : G) :
M.modelEquiv N (M.groupMap g) = N.groupMap gThe canonical equivalence restricts to the identity on group-like data.
Show Lean proof
M.modelEquiv_algebraicMap N
(completedGroupAlgebraNaturalSourceGroupMonoidHom (R := R) (G := G) g)
theorem modelEquiv_continuous (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G) :
Continuous (M.modelEquiv N)The canonical equivalence between bundled models is continuous.
Show Lean proof
M.certificate.modelToModelRingEquiv_continuous N.certificate
theorem modelEquiv_symm_continuous (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G) :
Continuous (M.modelEquiv N).symmIts inverse is continuous as well.
Show Lean proof
M.certificate.modelToModelRingEquiv_symm_continuous N.certificate
theorem modelEquiv_unique (M : CompletedGroupAlgebraModel.{u, v, w} R G)
(N : CompletedGroupAlgebraModel.{u, v, z} R G)
(e : M.carrier ≃+* N.carrier)
(hstage : ∀ U : CompletedGroupAlgebraIndex G,
(N.stageProjection U).comp e.toRingHom = M.stageProjection U) :
e = M.modelEquiv NPublic bundled uniqueness theorem: a ring equivalence commuting with all stage projections is the canonical model equivalence.
Show Lean proof
M.certificate.modelToModelRingEquiv_unique N.certificate e hstage
noncomputable def completedGroupAlgebraProfiniteRing
(R : ProfiniteCommRing.{u}) (G : ProfiniteGrp.{v}) : ProfiniteRing := by
letI : CompactSpace (CompletedGroupAlgebraCarrier R G) :=
completedGroupAlgebra_compactSpace (R := R) (G := G)
letI : T2Space (CompletedGroupAlgebraCarrier R G) :=
completedGroupAlgebra_t2Space (R := R) (G := G)
letI : TotallyDisconnectedSpace (CompletedGroupAlgebraCarrier R G) :=
completedGroupAlgebra_totallyDisconnectedSpace (R := R) (G := G)
exact
{ toProfinite := Profinite.of (CompletedGroupAlgebraCarrier R G)
ring := inferInstance
isTopologicalRing := inferInstance }The concrete inverse-limit carrier as a profinite ring object.
noncomputable def completedGroupAlgebraCanonicalModel
(R : ProfiniteCommRing.{u}) (G : ProfiniteGrp.{v}) :
CanonicalCompletedGroupAlgebraModel R G (completedGroupAlgebraProfiniteRing R G)
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G)) where
stageProjection := completedGroupAlgebraProjection R G
stageProjection_comp_algebraicMap := by
intro U
apply RingHom.ext
intro x
change completedGroupAlgebraProjection R G U
(toCompletedGroupAlgebraNaturalSourceRingHom (R := R) (G := G) x) =
completedGroupAlgebraNaturalSourceStageMap R G U x
rw [completedGroupAlgebraNaturalSourceStageMap_apply]
change completedGroupAlgebraProjection R G U
(toCompletedGroupAlgebra R G x.toMonoidAlgebra) =
completedGroupAlgebraStageMap R G U x.toMonoidAlgebra
exact completedGroupAlgebraProjection_toCompletedGroupAlgebra
(R := R) (G := G) U x.toMonoidAlgebra
isInverseLimit := by
change
(completedGroupAlgebraSystem R G).IsInverseLimit
(fun U x => (completedGroupAlgebraSystem R G).projection U x)
exact (completedGroupAlgebraSystem R G).isInverseLimit_projectionThe inverse-limit carrier with its canonical dense map is the canonical model.
noncomputable def completedGroupAlgebraModel
(Λ : ProfiniteCommRing.{u}) (P : ProfiniteGrp.{v}) :
CompletedGroupAlgebraModel Λ P :=
CompletedGroupAlgebraModel.ofCertificate
(completedGroupAlgebraProfiniteRing Λ P)
(toCompletedGroupAlgebraNaturalSourceRingHom (R := Λ) (G := P))
(completedGroupAlgebraCanonicalModel Λ P)The concrete inverse limit packaged as the canonical bundled completed-group-algebra model.
This is the object-level source of truth: the coefficient ring and group enter as standard profinite bundles, so their compactness and separation witnesses are not repeated in the API.
@[simp]
theorem comparisonRingEquiv_groupMap (M : CompletedGroupAlgebraModel R G) (g : G) :
M.comparisonRingEquiv (M.groupMap g) = completedGroupAlgebraOf R G gThe model comparison sends its group-like map to the canonical completed group element.
Show Lean proof
by
change M.comparisonRingEquiv (M.groupMap g) =
toCompletedGroupAlgebra R G (MonoidAlgebra.of R G g)
exact (M.comparisonRingEquiv_groupMap_source g).trans
(toCompletedGroupAlgebraNaturalSourceRingHom_group (R := R) (G := G) g)
theorem toCompletedGroupAlgebraRingHom_mem_span_completedGroupAlgebraOf
(x : MonoidAlgebra R G) :
toCompletedGroupAlgebraRingHom R G x ∈
Submodule.span R (Set.range (completedGroupAlgebraOf R G))The dense abstract group-algebra map lands in the span of the completed group-like elements.
Show Lean proof
by
classical
let P := fun y : MonoidAlgebra R G =>
toCompletedGroupAlgebraRingHom R G y ∈
Submodule.span R (Set.range (completedGroupAlgebraOf R G))
change P x
refine MonoidAlgebra.induction_on (p := P) x ?_ ?_ ?_
· intro g
dsimp [P]
change completedGroupAlgebraOf R G g ∈
Submodule.span R (Set.range (completedGroupAlgebraOf R G))
exact Submodule.subset_span ⟨g, rfl⟩
· intro a b ha hb
dsimp [P] at ha hb ⊢
rw [map_add]
exact Submodule.add_mem _ ha hb
· intro r y hy
dsimp [P] at hy ⊢
change toCompletedGroupAlgebra R G (r • y) ∈
Submodule.span R (Set.range (completedGroupAlgebraOf R G))
rw [toCompletedGroupAlgebra_smul]
exact Submodule.smul_mem _ r hy
theorem completedGroupAlgebraOf_dense_span :
closure (Submodule.span R (Set.range (completedGroupAlgebraOf R G)) :
Set (CompletedGroupAlgebraCarrier R G)) = Set.univThe completed group-like elements have dense linear span in the completed group algebra.
Show Lean proof
by
rw [Set.eq_univ_iff_forall]
intro y
have hy :
y ∈ closure (Set.range (toCompletedGroupAlgebraRingHom R G)) := by
rw [(denseRange_toCompletedGroupAlgebraRingHom (R := R) (G := G)).closure_range]
exact Set.mem_univ y
exact closure_mono (by
intro z hz
rcases hz with ⟨x, rfl⟩
exact toCompletedGroupAlgebraRingHom_mem_span_completedGroupAlgebraOf
(R := R) (G := G) x) hy
theorem completedGroupAlgebraContinuousLinearMap_ext_of_basis
{N : Type w} [AddCommGroup N] [TopologicalSpace N] [Module R N] [T2Space N]
{F K : CompletedGroupAlgebraCarrier R G →L[R] N}
(hbasis : ∀ g : G, F (completedGroupAlgebraOf R G g) =
K (completedGroupAlgebraOf R G g)) :
F = KThe uniqueness half of the universal property in Lemma 5.3.5(d): a continuous linear map out of \(\widehat{R[G]}\) is determined by its values on the completed group-like elements.
Show Lean proof
by
apply ContinuousLinearMap.ext
intro x
have hclosed : IsClosed {x : CompletedGroupAlgebraCarrier R G | F x = K x} :=
isClosed_eq F.continuous K.continuous
have hspan :
(Submodule.span R (Set.range (completedGroupAlgebraOf R G)) :
Set (CompletedGroupAlgebraCarrier R G)) ⊆
{x : CompletedGroupAlgebraCarrier R G | F x = K x} := by
intro y hy
exact Submodule.span_induction
(fun z hz => by
rcases hz with ⟨g, rfl⟩
exact hbasis g)
(by simp only [Set.mem_setOf_eq, map_zero])
(fun z w _ _ hz hw => by
change F (z + w) = K (z + w)
rw [map_add, map_add, hz, hw])
(fun r z _ hz => by
change F (r • z) = K (r • z)
rw [map_smul, map_smul, hz])
hy
have hx :
x ∈ closure (Submodule.span R (Set.range (completedGroupAlgebraOf R G)) :
Set (CompletedGroupAlgebraCarrier R G)) := by
rw [completedGroupAlgebraOf_dense_span (R := R) (G := G)]
exact Set.mem_univ x
exact hclosed.closure_subset_iff.2 hspan hx