Module

Functoriality.lean

Nyll.ProCGroups.CompletedGroupAlgebra.ProfiniteModules.FiniteGroupAlgebra.Functoriality
23 declarations indexed from sourceView source ↗

Functoriality of finite group algebras

This file studies group-algebra maps induced by homomorphisms of finite groups, including composition, basis formulas, continuity, and surjectivity. It also develops coefficient calculations for cyclic reductions used in later kernel arguments.

Declarations

CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_continuous

Finite-stage group algebras are functorial by continuous ring homomorphisms.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_continuous
    (R : Type u) (G H : Type v) [CommRing R] [TopologicalSpace R] [IsTopologicalRing R]
    [Group G] [Group H] [Finite G] [Finite H] (φ : G →* H) :
    letI : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
    letI : TopologicalSpace (MonoidAlgebra R H) := finiteGroupAlgebraTopology R H
    Continuous (MonoidAlgebra.mapDomainRingHom R φ : MonoidAlgebra R G → MonoidAlgebra R H) := by
  classical
  let : Fintype G := Fintype.ofFinite G
  let : Fintype H := Fintype.ofFinite H
  let : TopologicalSpace (MonoidAlgebra R G) := finiteGroupAlgebraTopology R G
  let : TopologicalSpace (MonoidAlgebra R H) := finiteGroupAlgebraTopology R H
  let e : MonoidAlgebra R H ≃ (H → R) :=
    (MonoidAlgebra.coeffEquiv (R := R) (M := H)).trans Finsupp.equivFunOnFinite
  have he : Topology.IsInducing (e : MonoidAlgebra R H → H → R) :=
    Topology.IsInducing.induced e
  have hcoord : ∀ g : G, Continuous fun x : MonoidAlgebra R G => x.coeff g :=
    finiteGroupAlgebra_coordinate_continuous R G
  rw [he.continuous_iff]
  apply continuous_pi
  intro h
  change Continuous fun x : MonoidAlgebra R G =>
    (MonoidAlgebra.mapDomainRingHom R φ x : MonoidAlgebra R H).coeff h
  rw [show (fun x : MonoidAlgebra R G =>
        (MonoidAlgebra.mapDomainRingHom R φ x : MonoidAlgebra R H).coeff h) =
      (fun x : MonoidAlgebra R G =>
        ∑ g ∈ Finset.univ.filter (fun g : G => φ g = h), x.coeff g) from ?_]
  · apply continuous_finsetSum
    intro g _hg
    exact hcoord g
  · funext x
    change (Finsupp.mapDomain φ x.coeff) h =
      ∑ g ∈ Finset.univ.filter (fun g : G => φ g = h), x.coeff g
    rw [Finsupp.mapDomain, Finsupp.sum]
    rw [Finsupp.finsetSum_apply]
    simp only [Finsupp.single_apply]
    change (∑ g ∈ x.coeff.support, if φ g = h then x.coeff g else 0) =
      ∑ g ∈ Finset.univ.filter (fun g : G => φ g = h), x.coeff g
    rw [Finset.sum_filter]
    exact Finset.sum_subset (by intro g _hg; simp only [Finset.mem_univ]) (by
      intro g _hguniv hgnot
      by_cases hφ : φ g = h
      · simp only [hφ, ↓reduceIte, Finsupp.notMem_support_iff.mp hgnot]
      · simp only [hφ, ↓reduceIte])
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_id

The finite-stage group algebra functor sends the identity homomorphism to the identity.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_id
    (R : Type u) (G : Type v) [CommRing R] [Group G] :
    MonoidAlgebra.mapDomainRingHom R (MonoidHom.id G) = RingHom.id (MonoidAlgebra R G)
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_comp

The finite-stage group algebra functor respects composition.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_comp
    (R : Type u) (G H K : Type v) [CommRing R] [Group G] [Group H] [Group K]
    (φ : G →* H) (ψ : H →* K) :
    (MonoidAlgebra.mapDomainRingHom R ψ).comp (MonoidAlgebra.mapDomainRingHom R φ) =
      MonoidAlgebra.mapDomainRingHom R (ψ.comp φ)
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_of

Functoriality on the canonical group-like basis elements of a finite-stage group algebra.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_of
    (R : Type u) (G H : Type v) [CommRing R] [Group G] [Group H]
    (φ : G →* H) (g : G) :
    MonoidAlgebra.mapDomainRingHom R φ (MonoidAlgebra.of R G g) =
      MonoidAlgebra.of R H (φ g)
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomain_sub_one_mul_eq_zero

A finite group-algebra relation is preserved by pushing the group variable along a homomorphism.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomain_sub_one_mul_eq_zero
    {R G H : Type*} [Ring R] [Group G] [Group H]
    (f : G →* H) (g : G) (y : MonoidAlgebra R G)
    (hrel : (MonoidAlgebra.of R G g - 1) * y = 0) :
    (MonoidAlgebra.of R H (f g) - 1) *
        MonoidAlgebra.mapDomainRingHom R f y = 0
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomain_zpow_sub_one_mul_eq_zero

Integer-power version of finite group-algebra relation functoriality.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomain_zpow_sub_one_mul_eq_zero
    {R G H : Type*} [Ring R] [Group G] [Group H]
    (f : G →* H) (g : G) (n : ℤ) (y : MonoidAlgebra R G)
    (hrel : (MonoidAlgebra.of R G (g ^ n) - 1) * y = 0) :
    (MonoidAlgebra.of R H ((f g) ^ n) - 1) *
    MonoidAlgebra.mapDomainRingHom R f y = 0
CompletedGroupAlgebra.finiteGroupAlgebra_coeff_eq_zpow_mul_of_sub_one_mul_eq_zero

A finite group-algebra relation \((a - 1)y = 0\) makes coefficients constant along the left \(a\)-orbits.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_coeff_eq_zpow_mul_of_sub_one_mul_eq_zero
    {R G : Type*} [Ring R] [Group G] (a : G) (y : MonoidAlgebra R G)
    (hrel : (MonoidAlgebra.of R G a - 1) * y = 0) :
    ∀ k : ℤ, ∀ t : G, y.coeff (a ^ k * t) = y.coeff t
CompletedGroupAlgebra.finiteGroupAlgebra_zpow_sub_one_mul_eq_zero_of_sub_one_mul_eq_zero

A finite group-algebra relation \((a - 1)y = 0\) also gives \((a^k - 1)y = 0\) for every integer power \(k\).

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_zpow_sub_one_mul_eq_zero_of_sub_one_mul_eq_zero
    {R G : Type*} [Ring R] [Group G] (a : G) (k : ℤ) (y : MonoidAlgebra R G)
    (hrel : (MonoidAlgebra.of R G a - 1) * y = 0) :
    (MonoidAlgebra.of R G (a ^ k) - 1) * y = 0
CompletedGroupAlgebra.finiteCyclicReduction

The standard finite cyclic reduction from \(\mathbb{Z}/(K M)\mathbb{Z}\) to \(\mathbb{Z}/M\mathbb{Z}\).

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
def finiteCyclicReduction (M K : ℕ) :
    Multiplicative (ZMod (K * M)) →* Multiplicative (ZMod M)
CompletedGroupAlgebra.finiteProductCyclicReduction

The finite product cyclic reduction keeps an auxiliary finite quotient coordinate while reducing only the cyclic coordinate.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
def finiteProductCyclicReduction (Q : Type*) [Group Q] (M K : ℕ) :
    Q × Multiplicative (ZMod (K * M)) →*
      Q × Multiplicative (ZMod M) where
  toFun x := (x.1, finiteCyclicReduction M K x.2)
  map_one' := by
    ext <;> simp [finiteCyclicReduction]
  map_mul' x y := by
    ext <;> simp [finiteCyclicReduction]
CompletedGroupAlgebra.int_cast_eq_natAbs_or_neg_natAbs_zmod_of_modulus

An integer cast to \(\mathbb{Z}/n\mathbb{Z}\) is represented by either its absolute value or the negative of its absolute value, depending on its sign.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem int_cast_eq_natAbs_or_neg_natAbs_zmod_of_modulus (L : ℕ) (n : ℤ) :
    (n : ZMod L) = (n.natAbs : ZMod L) ∨
      (n : ZMod L) = -(n.natAbs : ZMod L)
CompletedGroupAlgebra.zmod_natCast_mem_zmultiples_intCast_of_gcd_dvd

A natural number cast into \(\mathbb{Z}/n\mathbb{Z}\) lies in the subgroup generated by an integer cast whenever the required gcd divisibility condition holds.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem zmod_natCast_mem_zmultiples_intCast_of_gcd_dvd
    {L M : ℕ} (n : ℤ) (hdiv : Nat.gcd n.natAbs L ∣ M) :
    ∃ q : ℤ, (M : ZMod L) = q • (n : ZMod L)
CompletedGroupAlgebra.exists_zsmul_natCast_of_zmod_castHom_eq

The kernel direction of the map from \(\mathbb{Z}/(K M)\mathbb{Z}\) to \(\mathbb{Z}/M\mathbb{Z}\) is described by integer multiples of \(M\).

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem exists_zsmul_natCast_of_zmod_castHom_eq
    {M K : ℕ} [NeZero (K * M)] {a b : ZMod (K * M)}
    (h :
      (ZMod.castHom (Nat.dvd_mul_left M K) (ZMod M)) a =
        (ZMod.castHom (Nat.dvd_mul_left M K) (ZMod M)) b) :
    ∃ q : ℤ, a = b + q • (M : ZMod (K * M))
CompletedGroupAlgebra.finiteCyclicReduction_fiber_card

Every fiber of \(\mathbb{Z}/(K M)\mathbb{Z} \to \mathbb{Z}/M\mathbb{Z}\) has \(K\) elements.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteCyclicReduction_fiber_card
    {M K : ℕ} [NeZero (K * M)] (i : Multiplicative (ZMod M)) :
    Fintype.card {t : Multiplicative (ZMod (K * M)) //
      finiteCyclicReduction M K t = i} = K
CompletedGroupAlgebra.finiteProductCyclicReduction_fiber_card

The product-with-other-coordinates fiber over \((q,i)\) has the same size as the cyclic fiber, namely \(K\).

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteProductCyclicReduction_fiber_card
    {Q : Type*} [Group Q] [Fintype Q] [DecidableEq Q]
    {M K : ℕ} [NeZero (K * M)] (i : Q × Multiplicative (ZMod M)) :
    Fintype.card {t : Q × Multiplicative (ZMod (K * M)) //
      finiteProductCyclicReduction Q M K t = i} = K
CompletedGroupAlgebra.finiteProductCyclicGroupAlgebra_coeff_eq_of_same_reduction_of_int_sub_one_mul_eq_zero

Product-coordinate version of the GCD-conditioned fiber constancy.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteProductCyclicGroupAlgebra_coeff_eq_of_same_reduction_of_int_sub_one_mul_eq_zero
    {R Q : Type*} [Ring R] [Group Q] {M K : ℕ} [NeZero (K * M)] (n : ℤ)
    (hgcd : Nat.gcd n.natAbs (K * M) ∣ M)
    (y : MonoidAlgebra R (Q × Multiplicative (ZMod (K * M))))
    (hrel :
      (MonoidAlgebra.of R (Q × Multiplicative (ZMod (K * M)))
          (1, Multiplicative.ofAdd (n : ZMod (K * M))) - 1) * y = 0)
    {s t : Q × Multiplicative (ZMod (K * M))}
    (hst : finiteProductCyclicReduction Q M K s = finiteProductCyclicReduction Q M K t) :
    y.coeff s = y.coeff t
CompletedGroupAlgebra.mapDomain_coeff_eq_nsmul_of_fiber_const

In a finite-stage group algebra projection, coefficients that are constant on a fiber aggregate to the fiber cardinality times the common coefficient.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem mapDomain_coeff_eq_nsmul_of_fiber_const
    {R G H : Type*} [Semiring R] [Monoid G] [Monoid H] [Fintype G] [DecidableEq H]
    (f : G →* H) (y : MonoidAlgebra R G) (h : H) (c : R)
    (hconst : ∀ g : G, f g = h → y.coeff g = c) :
    (MonoidAlgebra.mapDomainRingHom R f y).coeff h =
      Fintype.card {g : G // f g = h} • c
CompletedGroupAlgebra.finiteProductCyclicGroupAlgebra_projection_coeff_eq_K_nsmul_of_int_sub_one_mul_eq_zero_of_gcd

Product-coordinate coefficient aggregation with the GCD-conditioned cyclic depth.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem
  finiteProductCyclicGroupAlgebra_projection_coeff_eq_K_nsmul_of_int_sub_one_mul_eq_zero_of_gcd
    {R Q : Type*} [Ring R] [Group Q] [Finite Q]
    {M K : ℕ} [NeZero (K * M)] (n : ℤ)
    (hgcd : Nat.gcd n.natAbs (K * M) ∣ M)
    (y : MonoidAlgebra R (Q × Multiplicative (ZMod (K * M))))
    (i : Q × Multiplicative (ZMod M)) (t0 : Q × Multiplicative (ZMod (K * M)))
    (ht0 : finiteProductCyclicReduction Q M K t0 = i)
    (hrel :
      (MonoidAlgebra.of R (Q × Multiplicative (ZMod (K * M)))
          (1, Multiplicative.ofAdd (n : ZMod (K * M))) - 1) * y = 0) :
    (MonoidAlgebra.mapDomainRingHom R
      (finiteProductCyclicReduction Q M K) y).coeff i =
      K • y.coeff t0
CompletedGroupAlgebra.finiteProductCyclicGroupAlgebra_projection_eq_zero_of_int_sub_one_mul_eq_zero_of_gcd

With \(\mathbb{Z}/K\mathbb{Z}\) coefficients, the product-coordinate projection vanishes under the stated gcd-conditioned multiple of \(g-1\).

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteProductCyclicGroupAlgebra_projection_eq_zero_of_int_sub_one_mul_eq_zero_of_gcd
    {Q : Type*} [Group Q] [Finite Q]
    {M K : ℕ} [NeZero (K * M)] (n : ℤ)
    (hgcd : Nat.gcd n.natAbs (K * M) ∣ M)
    (y : MonoidAlgebra (ZMod K) (Q × Multiplicative (ZMod (K * M))))
    (hrel :
      (MonoidAlgebra.of (ZMod K) (Q × Multiplicative (ZMod (K * M)))
          (1, Multiplicative.ofAdd (n : ZMod (K * M))) - 1) * y = 0) :
    MonoidAlgebra.mapDomainRingHom (ZMod K) (finiteProductCyclicReduction Q M K) y = 0
CompletedGroupAlgebra.finiteProductCyclicGroupAlgebra_projection_eq_zero_of_pair_relation_of_order

Product-coordinate vanishing when the first coordinate is killed by taking a finite integer power of the relation element.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteProductCyclicGroupAlgebra_projection_eq_zero_of_pair_relation_of_order
    {Q : Type*} [Group Q] [Finite Q]
    {M K : ℕ} [NeZero (K * M)] (a : Q) (n : ℤ) (d : ℕ)
    (had : a ^ d = 1)
    (hgcd : Nat.gcd (((d : ℤ) * n).natAbs) (K * M) ∣ M)
    (y : MonoidAlgebra (ZMod K) (Q × Multiplicative (ZMod (K * M))))
    (hrel :
      (MonoidAlgebra.of (ZMod K) (Q × Multiplicative (ZMod (K * M)))
          (a, Multiplicative.ofAdd (n : ZMod (K * M))) - 1) * y = 0) :
    MonoidAlgebra.mapDomainRingHom (ZMod K) (finiteProductCyclicReduction Q M K) y = 0
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_of_preimage

A surjective group homomorphism lets each group-like basis element be lifted through the induced group-algebra map.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_of_preimage
    (R : Type u) (G H : Type v) [CommRing R] [Group G] [Group H]
    (φ : MonoidHom G H) (hφ : Function.Surjective φ) (h : H) :
    ∃ g : G, φ g = h ∧
      MonoidAlgebra.mapDomainRingHom R φ (MonoidAlgebra.of R G g) =
        MonoidAlgebra.of R H h
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_single_preimage

A coefficient supported at a target group element has a coefficient-supported lift along a surjective group homomorphism.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_single_preimage
    (R : Type u) (G H : Type v) [CommRing R] [Group G] [Group H]
    (φ : MonoidHom G H) (hφ : Function.Surjective φ) (h : H) (r : R) :
    ∃ g : G, φ g = h ∧
      MonoidAlgebra.mapDomainRingHom R φ (MonoidAlgebra.single g r) =
        MonoidAlgebra.single h r
CompletedGroupAlgebra.finiteGroupAlgebra_mapDomainRingHom_surjective

A surjective group homomorphism induces a surjective map on group algebras.

Source context 4 commands

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

open scoped Topology
open ProCGroups
namespace CompletedGroupAlgebra
universe u v
theorem finiteGroupAlgebra_mapDomainRingHom_surjective
    (R : Type u) (G H : Type v) [CommRing R] [Group G] [Group H]
    (φ : MonoidHom G H) (hφ : Function.Surjective φ) :
    Function.Surjective (MonoidAlgebra.mapDomainRingHom R φ)