Module

Definitions.lean

Nyll.ProCGroups.CompletedGroupAlgebra.ProfiniteModules.Basic.Definitions
12 declarations indexed from sourceView source ↗

Bundled profinite rings and modules

This file defines profinite rings, commutative profinite coefficient rings, and profinite modules. It also states their free-extension, discreteness, and finite-index submodule-basis properties.

Imports5
Imported by2

Declarations

CompletedGroupAlgebra.ProfiniteRing

A profinite ring object. Its standard algebraic and topological structures are stored once on the carrier.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
structure ProfiniteRing where
  /-- The underlying profinite space. -/
  toProfinite : Profinite.{u}
  /-- The ring structure on the underlying profinite space. -/
  [ring : Ring toProfinite]
  /-- The assertion that the ring operations are continuous. -/
  [isTopologicalRing : IsTopologicalRing toProfinite]

A bundled profinite ring coerces to its underlying profinite type.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
namespace ProfiniteRing
instance : CoeSort ProfiniteRing.{u} (Type u) where
  coe Λ := Λ.toProfinite
CompletedGroupAlgebra.ProfiniteCommRing

A commutative profinite ring, used as the coefficient object for completed group algebras. The completed algebra itself may be noncommutative and therefore uses ProfiniteRing. This separate bundle avoids installing a second Ring instance on ProfiniteRing.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
structure ProfiniteCommRing where
  /-- The underlying profinite space. -/
  toProfinite : Profinite.{u}
  /-- The commutative ring structure on the underlying profinite space. -/
  [commRing : CommRing toProfinite]
  /-- The assertion that the ring operations are continuous. -/
  [isTopologicalRing : IsTopologicalRing toProfinite]

A bundled profinite commutative ring coerces to its underlying profinite type.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
namespace ProfiniteCommRing
instance : CoeSort ProfiniteCommRing.{u} (Type u) where
  coe R := R.toProfinite
CompletedGroupAlgebra.ProfiniteCommRing.toProfiniteRing

Forget commutativity while retaining the bundled profinite ring object.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
namespace ProfiniteCommRing
def toProfiniteRing (R : ProfiniteCommRing.{u}) : ProfiniteRing.{u} where
  toProfinite := R.toProfinite
  ring := inferInstance
  isTopologicalRing := inferInstance
CompletedGroupAlgebra.IsTopologicalModuleOver

A topological module over a topological ring.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
def IsTopologicalModuleOver (Λ : Type u) (M : Type v) [Ring Λ] [TopologicalSpace Λ]
    [AddCommGroup M] [TopologicalSpace M] [Module Λ M] : Prop
CompletedGroupAlgebra.ProfiniteModule

A profinite module object over a fixed profinite ring.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
structure ProfiniteModule (Λ : ProfiniteRing.{u}) where
  /-- The underlying profinite space. -/
  toProfinite : Profinite.{v}
  /-- The additive commutative group structure on the underlying profinite space. -/
  [addCommGroup : AddCommGroup toProfinite]
  /-- The \(\Lambda\)-module structure on the underlying profinite space. -/
  [module : Module Λ toProfinite]
  /-- The assertion that addition and negation are continuous. -/
  [isTopologicalAddGroup : IsTopologicalAddGroup toProfinite]
  /-- The assertion that scalar multiplication by \(\Lambda\) is jointly continuous. -/
  [continuousSMul : ContinuousSMul Λ toProfinite]

A bundled profinite module coerces to its underlying profinite type.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
attribute [instance] ProfiniteModule.addCommGroup
attribute [instance] ProfiniteModule.module
attribute [instance] ProfiniteModule.isTopologicalAddGroup
attribute [instance] ProfiniteModule.continuousSMul
namespace ProfiniteModule
instance (Λ : ProfiniteRing.{u}) : CoeSort (ProfiniteModule.{u, v} Λ) (Type v) where
  coe M := M.toProfinite
CompletedGroupAlgebra.ProfiniteModule.HasFreeLiftTo

The extension-and-uniqueness property from a candidate free profinite module to one bundled target. Keeping the target as an argument makes this API universe-polymorphic without ULift.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
attribute [instance] ProfiniteModule.addCommGroup
attribute [instance] ProfiniteModule.module
attribute [instance] ProfiniteModule.isTopologicalAddGroup
attribute [instance] ProfiniteModule.continuousSMul
namespace ProfiniteModule
def HasFreeLiftTo {Λ : ProfiniteRing.{u}} (M : ProfiniteModule.{u, w} Λ)
    (X : Type v) [TopologicalSpace X] (ι : X → M)
    (N : ProfiniteModule.{u, z} Λ) : Prop
CompletedGroupAlgebra.ProfiniteModule.IsFreeOn

Universal-property predicate for a free profinite module in a fixed ambient universe. Cross-universe targets use HasFreeLiftTo directly. The scalar, generator, and source/target modules are bundled objects, so their profiniteness is part of the statement.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
attribute [instance] ProfiniteModule.addCommGroup
attribute [instance] ProfiniteModule.module
attribute [instance] ProfiniteModule.isTopologicalAddGroup
attribute [instance] ProfiniteModule.continuousSMul
namespace ProfiniteModule
def IsFreeOn {Λ : ProfiniteRing.{u}} (M : ProfiniteModule.{u, w} Λ)
    (X : Profinite.{v}) (ι : X → M) : Prop
CompletedGroupAlgebra.IsDiscreteModule

A topological module whose underlying module topology is discrete.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
attribute [instance] ProfiniteModule.addCommGroup
attribute [instance] ProfiniteModule.module
attribute [instance] ProfiniteModule.isTopologicalAddGroup
attribute [instance] ProfiniteModule.continuousSMul
def IsDiscreteModule (Λ : Type u) (M : Type v) [Ring Λ] [TopologicalSpace Λ]
    [AddCommGroup M] [TopologicalSpace M] [Module Λ M] : Prop
CompletedGroupAlgebra.HasFiniteIndexSubmoduleBasis

Finite-index submodules form a neighborhood basis at zero.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
namespace CompletedGroupAlgebra
universe u v w z
attribute [instance] ProfiniteRing.ring ProfiniteRing.isTopologicalRing
attribute [instance] ProfiniteCommRing.commRing ProfiniteCommRing.isTopologicalRing
attribute [instance] ProfiniteModule.addCommGroup
attribute [instance] ProfiniteModule.module
attribute [instance] ProfiniteModule.isTopologicalAddGroup
attribute [instance] ProfiniteModule.continuousSMul
def HasFiniteIndexSubmoduleBasis (Λ : Type u) (M : Type v) [Ring Λ] [TopologicalSpace M]
    [AddCommGroup M] [Module Λ M] : Prop