CompletedGroupAlgebra.Basic.AllFinite.Ring

12 Theorem | 2 Definition | 9 Instance

This module sets up the finite-stage and inverse-limit description of the construction. It records the stage maps, projections, and comparison lemmas used to pass back to the completed object.

import
Imported by

Declarations

instance instOneCompletedGroupAlgebra : One (Carrier R G) where
  one := ⟨fun U => (1 : CompletedGroupAlgebraStage R G U), by
    intro U V hUV
    change completedGroupAlgebraTransition R G hUV
      (1 : CompletedGroupAlgebraStage R G V) = 1
    exact map_one (completedGroupAlgebraTransition R G hUV)⟩

The unit of the completed group algebra is defined coordinatewise through the finite-stage units.

instance instMulCompletedGroupAlgebra : Mul (Carrier R G) where
  mul x y := ⟨fun U =>
      (show CompletedGroupAlgebraStage R G U from x.1 U) *
        (show CompletedGroupAlgebraStage R G U from y.1 U), by
    intro U V hUV
    calc
      completedGroupAlgebraTransition R G hUV
          ((show CompletedGroupAlgebraStage R G V from x.1 V) *
            (show CompletedGroupAlgebraStage R G V from y.1 V))
          =
        completedGroupAlgebraTransition R G hUV
            (show CompletedGroupAlgebraStage R G V from x.1 V) *
          completedGroupAlgebraTransition R G hUV
            (show CompletedGroupAlgebraStage R G V from y.1 V) := by
            rw [map_mul]
      _ = (show CompletedGroupAlgebraStage R G U from x.1 U) *
            (show CompletedGroupAlgebraStage R G U from y.1 U) := by
            exact congrArg₂ HMul.hMul (x.2 U V hUV) (y.2 U V hUV)⟩

Multiplication on the completed group algebra is defined coordinatewise through the finite-stage group-algebra products.

instance instNatCastCompletedGroupAlgebra : NatCast (Carrier R G) where
  natCast n := ⟨fun U => (n : CompletedGroupAlgebraStage R G U), by
    intro U V hUV
    change completedGroupAlgebraTransition R G hUV
      (n : CompletedGroupAlgebraStage R G V) = n
    exact map_natCast (completedGroupAlgebraTransition R G hUV) n⟩

Natural-number numerals in the completed group algebra are interpreted coordinatewise through the finite-stage ring structures.

instance instIntCastCompletedGroupAlgebra : IntCast (Carrier R G) where
  intCast n := ⟨fun U => (n : CompletedGroupAlgebraStage R G U), by
    intro U V hUV
    change completedGroupAlgebraTransition R G hUV
      (n : CompletedGroupAlgebraStage R G V) = n
    exact map_intCast (completedGroupAlgebraTransition R G hUV) n⟩

Integer numerals in the completed group algebra are interpreted coordinatewise through the finite-stage ring structures.

instance instRingCompletedGroupAlgebraStage
    (U : CompletedGroupAlgebraIndex G) :
    Ring ((completedGroupAlgebraSystem R G).X U) := by
  dsimp [completedGroupAlgebraSystem, CompletedGroupAlgebraStage]
  infer_instance

The completed group algebra is a ring because all ring operations and ring axioms are inherited coordinatewise from the finite-stage group algebras.

instance instRingCompletedGroupAlgebraFamily :
    Ring ((U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) :=
  inferInstance

The completed group algebra is a ring because all ring operations and ring axioms are inherited coordinatewise from the finite-stage group algebras.

instance instPowCompletedGroupAlgebra : Pow (Carrier R G) ℕ where
  pow x n := ⟨fun U => (show CompletedGroupAlgebraStage R G U from x.1 U) ^ n, by
    intro U V hUV
    change completedGroupAlgebraTransition R G hUV
        ((show CompletedGroupAlgebraStage R G V from x.1 V) ^ n) =
      (show CompletedGroupAlgebraStage R G U from x.1 U) ^ n
    rw [map_pow]
    exact congrArg (fun t => t ^ n) (x.2 U V hUV)⟩

Powers in the completed group algebra are computed coordinatewise in the finite-stage group algebras.

theorem coe_one_completedGroupAlgebra :
    ((1 : Carrier R G) :
      (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) = 1

The unit operation is computed coordinatewise in the inverse-limit completed group algebra.

Show proof
theorem coe_mul_completedGroupAlgebra (x y : Carrier R G) :
    ((x * y : Carrier R G) :
      (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) =
      x * y

The multiplication operation is computed coordinatewise in the inverse-limit completed group algebra.

Show proof
theorem coe_natCast_completedGroupAlgebra (n : ℕ) :
    ((n : Carrier R G) :
      (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) =
      n

Natural number casts are computed coordinatewise in the inverse-limit completed group algebra.

Show proof
theorem coe_intCast_completedGroupAlgebra (n : ℤ) :
    ((n : Carrier R G) :
      (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) =
      n

Integer casts are computed coordinatewise in the inverse-limit completed group algebra.

Show proof
theorem coe_pow_completedGroupAlgebra (x : Carrier R G) (n : ℕ) :
    ((x ^ n : Carrier R G) :
      (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U) =
      x ^ n

The pow operation is computed coordinatewise in the inverse-limit completed group algebra.

Show proof
instance instRingCompletedGroupAlgebra : Ring (Carrier R G) :=
  Function.Injective.ring
    (fun x : Carrier R G =>
      (x : (U : CompletedGroupAlgebraIndex G) → (completedGroupAlgebraSystem R G).X U))
    Subtype.val_injective
    (coe_zero_completedGroupAlgebra (R := R) (G := G))
    (coe_one_completedGroupAlgebra (R := R) (G := G))
    (coe_add_completedGroupAlgebra (R := R) (G := G))
    (coe_mul_completedGroupAlgebra (R := R) (G := G))
    (coe_neg_completedGroupAlgebra (R := R) (G := G))
    (coe_sub_completedGroupAlgebra (R := R) (G := G))
    (fun n x => coe_nsmul_completedGroupAlgebra (R := R) (G := G) n x)
    (fun n x => coe_zsmul_completedGroupAlgebra (R := R) (G := G) n x)
    (fun x n => coe_pow_completedGroupAlgebra (R := R) (G := G) x n)
    (by intro n; exact coe_natCast_completedGroupAlgebra (R := R) (G := G) n)
    (by intro n; exact coe_intCast_completedGroupAlgebra (R := R) (G := G) n)

The completed group algebra is a ring because all ring operations and ring axioms are inherited coordinatewise from the finite-stage group algebras.

def completedGroupAlgebraCoeffMap
    (S : Type w) [CommRing S] [TopologicalSpace S] [IsTopologicalRing S]
    (f : R →+* S) :
    Carrier R G →+* Carrier S G where
  toFun x := ⟨fun U => completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U (x.1 U), by
    intro U V hUV
    have hcompat := congrFun
      (congrArg DFunLike.coe
        (completedGroupAlgebraStageCoeffMap_compatible
          (R := R) (G := G) S f hUV))
      (x.1 V)
    calc
      completedGroupAlgebraTransition S G hUV
          (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f V (x.1 V))
          =
        completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U
          (completedGroupAlgebraTransition R G hUV (x.1 V)) := hcompat.symm
      _ =
        completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U (x.1 U) := by
          exact congrArg (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U)
            (x.2 U V hUV)⟩
  map_zero' := by
    apply Subtype.ext
    funext U
    exact map_zero (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U)
  map_one' := by
    apply Subtype.ext
    funext U
    exact map_one (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U)
  map_add' x y := by
    apply Subtype.ext
    funext U
    exact map_add (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U) (x.1 U) (y.1 U)
  map_mul' x y := by
    apply Subtype.ext
    funext U
    exact map_mul (completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U) (x.1 U) (y.1 U)

@[simp]

The all-finite completed group-algebra coefficient-change map is defined stagewise.

theorem completedGroupAlgebraProjection_coeffMap
    (S : Type w) [CommRing S] [TopologicalSpace S] [IsTopologicalRing S]
    (f : R →+* S) (U : CompletedGroupAlgebraIndex G)
    (x : Carrier R G) :
    completedGroupAlgebraProjection S G U
        (completedGroupAlgebraCoeffMap (R := R) (G := G) S f x) =
      completedGroupAlgebraStageCoeffMap (R := R) (G := G) S f U
        (completedGroupAlgebraProjection R G U x)

Projection to a finite stage commutes with change of coefficients: changing coefficients in \(\widehat{R[G]}\) and then projecting to \(R[G/U]\) is the same as projecting first and changing coefficients on the finite group algebra.

Show proof
theorem completedGroupAlgebraProjection_zero (U : CompletedGroupAlgebraIndex G) :
    completedGroupAlgebraProjection R G U (0 : Carrier R G) = 0

The projection from \(\widehat{R[G]}\) to \(R[G/U]\) sends \(0\) to \(0\).

Show proof
theorem completedGroupAlgebraProjection_add (U : CompletedGroupAlgebraIndex G)
    (x y : Carrier R G) :
    completedGroupAlgebraProjection R G U (x + y) =
      completedGroupAlgebraProjection R G U x + completedGroupAlgebraProjection R G U y

The finite-stage projection preserves addition.

Show proof
theorem completedGroupAlgebraProjection_smul (U : CompletedGroupAlgebraIndex G)
    (r : R) (x : Carrier R G) :
    completedGroupAlgebraProjection R G U (r • x) =
      r • completedGroupAlgebraProjection R G U x

The projection from \(\widehat{R[G]}\) to \(R[G/U]\) is compatible with scalar multiplication by elements of \(R\).

Show proof
theorem completedGroupAlgebraProjection_one (U : CompletedGroupAlgebraIndex G) :
    completedGroupAlgebraProjection R G U (1 : Carrier R G) = 1

The projection from \(\widehat{R[G]}\) to \(R[G/U]\) sends the unit of the completed group algebra to the unit of the finite-stage group algebra.

Show proof
theorem completedGroupAlgebraProjection_mul (U : CompletedGroupAlgebraIndex G)
    (x y : Carrier R G) :
    completedGroupAlgebraProjection R G U (x * y) =
      completedGroupAlgebraProjection R G U x * completedGroupAlgebraProjection R G U y

The projection from \(\widehat{R[G]}\) to a finite stage \(R[G/U]\) preserves multiplication.

Show proof
theorem completedGroupAlgebraTransition_algebraMap
    {U V : CompletedGroupAlgebraIndex G} (hUV : U ≤ V) (r : R) :
    completedGroupAlgebraTransition R G hUV
        (algebraMap R (CompletedGroupAlgebraStage R G V) r) =
      algebraMap R (CompletedGroupAlgebraStage R G U) r

Transition maps between finite group-algebra stages preserve scalar elements coming from the coefficient ring \(R\).

Show proof
def completedGroupAlgebraAlgebraMap (R : Type u) (G : Type v) [CommRing R]
    [TopologicalSpace R] [IsTopologicalRing R] [Group G] [TopologicalSpace G]
    [IsTopologicalGroup G] : R →+* Carrier R G where
  toFun r := ⟨fun U => algebraMap R (CompletedGroupAlgebraStage R G U) r, by
    intro U V hUV
    exact completedGroupAlgebraTransition_algebraMap (R := R) (G := G) hUV r⟩
  map_zero' := by
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change algebraMap R (CompletedGroupAlgebraStage R G U) (0 : R) = 0
    exact map_zero (algebraMap R (CompletedGroupAlgebraStage R G U))
  map_one' := by
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change algebraMap R (CompletedGroupAlgebraStage R G U) (1 : R) = 1
    exact map_one (algebraMap R (CompletedGroupAlgebraStage R G U))
  map_add' r s := by
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change algebraMap R (CompletedGroupAlgebraStage R G U) (r + s) =
      algebraMap R (CompletedGroupAlgebraStage R G U) r +
        algebraMap R (CompletedGroupAlgebraStage R G U) s
    exact map_add (algebraMap R (CompletedGroupAlgebraStage R G U)) r s
  map_mul' r s := by
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change algebraMap R (CompletedGroupAlgebraStage R G U) (r * s) =
      algebraMap R (CompletedGroupAlgebraStage R G U) r *
        algebraMap R (CompletedGroupAlgebraStage R G U) s
    exact map_mul (algebraMap R (CompletedGroupAlgebraStage R G U)) r s

The coefficient-ring map sends a coefficient to the corresponding constant element of the completed group algebra.

instance instAlgebraCompletedGroupAlgebra : Algebra R (Carrier R G) where
  algebraMap := completedGroupAlgebraAlgebraMap R G
  commutes' := by
    intro r x
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change algebraMap R (CompletedGroupAlgebraStage R G U) r *
        completedGroupAlgebraProjection R G U x =
      completedGroupAlgebraProjection R G U x *
        algebraMap R (CompletedGroupAlgebraStage R G U) r
    exact Algebra.commutes r (completedGroupAlgebraProjection R G U x)
  smul_def' := by
    intro r x
    apply (completedGroupAlgebraSystem R G).ext
    intro U
    change completedGroupAlgebraProjection R G U (r • x) =
      completedGroupAlgebraProjection R G U (completedGroupAlgebraAlgebraMap R G r * x)
    rw [completedGroupAlgebraProjection_smul, completedGroupAlgebraProjection_mul]
    change r • completedGroupAlgebraProjection R G U x =
      algebraMap R (CompletedGroupAlgebraStage R G U) r *
        completedGroupAlgebraProjection R G U x
    rw [Algebra.smul_def]

The completed group algebra is an algebra over the coefficient ring via the coordinatewise finite-stage algebra maps.