Module

Augmentation.lean

Nyll.GaloisCohomology.GroupTheory.Augmentation
46 declarations indexed from sourceView source ↗

Integral group-ring augmentation

This file develops the actual augmentation quotient I_G / I_G² used in the transfer/augmentation comparison. It is kept separate from the transfer calculation so that the group-ring identities can be reused in the proof of Witt's transfer theorem.

Imports6
  • Mathlib.Algebra.MonoidAlgebra.Lift
  • Mathlib.Algebra.Module.BigOperators
  • Mathlib.GroupTheory.Abelianization.Defs
  • Mathlib.RingTheory.TwoSidedIdeal.Kernel
  • Mathlib.RingTheory.TwoSidedIdeal.Operations
  • Mathlib.Tactic.NoncommRing
Imported by3

Declarations

GroupTheory.Augmentation.IntegralGroupRing

The integral group ring ℤ[G].

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
abbrev IntegralGroupRing
GroupTheory.Augmentation.augmentation

The augmentation homomorphism ℤ[G] → ℤ.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def augmentation : IntegralGroupRing G →+* ℤ
GroupTheory.Augmentation.augmentation_single
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem augmentation_single (g : G) (n : ℤ) :
    augmentation G (MonoidAlgebra.single g n) = n
GroupTheory.Augmentation.augmentation_apply

The augmentation is the sum of the coefficients.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem augmentation_apply (x : IntegralGroupRing G) :
    augmentation G x = x.coeff.sum (fun _ n => n) := by
  classical
  conv_lhs => rw [← MonoidAlgebra.sum_coeff_single x]
  rw [map_finsuppSum]
  simp
GroupTheory.Augmentation.ideal

The augmentation ideal I_G.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def ideal : TwoSidedIdeal (IntegralGroupRing G)
GroupTheory.Augmentation.mem_ideal_iff
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem mem_ideal_iff (x : IntegralGroupRing G) :
    x ∈ ideal G ↔ augmentation G x = 0
GroupTheory.Augmentation.underlyingAddSubgroup

The underlying additive subgroup of a two-sided ideal.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def underlyingAddSubgroup
    {R : Type*} [NonUnitalNonAssocRing R]
    (I : TwoSidedIdeal R) : AddSubgroup R where
  carrier := I
  zero_mem' := I.zero_mem
  add_mem' := I.add_mem
  neg_mem' := I.neg_mem
GroupTheory.Augmentation.square

The product ideal I_G², generated by products of two augmentation elements.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def square : TwoSidedIdeal (IntegralGroupRing G)
GroupTheory.Augmentation.square_le_ideal
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem square_le_ideal :
    square G ≤ ideal G
GroupTheory.Augmentation.squareInIdeal

I_G² as an additive subgroup of I_G.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def squareInIdeal : AddSubgroup (ideal G) where
  carrier := {x | (x : IntegralGroupRing G) ∈ square G}
  zero_mem' := (square G).zero_mem
  add_mem' := (square G).add_mem
  neg_mem' := (square G).neg_mem
GroupTheory.Augmentation.mem_squareInIdeal_iff

Membership in I_G², expressed after forgetting the ambient augmentation-ideal subtype.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem mem_squareInIdeal_iff (x : ideal G) :
    x ∈ squareInIdeal G ↔
      (x : IntegralGroupRing G) ∈ square G
GroupTheory.Augmentation.Quotient

The augmentation quotient I_G / I_G².

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
abbrev Quotient
GroupTheory.Augmentation.deltaElement

The element g - 1 of the augmentation ideal.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaElement (g : G) : ideal G
GroupTheory.Augmentation.deltaElement_val
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaElement_val (g : G) :
    (deltaElement G g : IntegralGroupRing G) =
      MonoidAlgebra.single g 1 -
        MonoidAlgebra.single (1 : G) 1
GroupTheory.Augmentation.deltaCombination

The canonical expression of an augmentation-zero group-ring element as a finite integral linear combination of the differences g - 1.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaCombination (x : IntegralGroupRing G) :
    IntegralGroupRing G
GroupTheory.Augmentation.deltaCombination_eq_of_mem_ideal
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaCombination_eq_of_mem_ideal
    (x : IntegralGroupRing G) (hx : x ∈ ideal G) :
    deltaCombination G x = x
GroupTheory.Augmentation.deltaCombinationElement

The same finite combination, now intrinsically valued in I_G.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaCombinationElement (x : IntegralGroupRing G) :
    ideal G
GroupTheory.Augmentation.deltaCombinationElement_val
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaCombinationElement_val
    (x : IntegralGroupRing G) :
    (deltaCombinationElement G x : IntegralGroupRing G) =
      deltaCombination G x
GroupTheory.Augmentation.deltaCombinationElement_eq_of_mem_ideal
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaCombinationElement_eq_of_mem_ideal
    (x : IntegralGroupRing G) (hx : x ∈ ideal G) :
    deltaCombinationElement G x = ⟨x, hx⟩
GroupTheory.Augmentation.deltaClass

The class of g - 1 in I_G / I_G².

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaClass (g : G) : Quotient G
GroupTheory.Augmentation.deltaClass_one
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaClass_one :
    deltaClass G 1 = 0
GroupTheory.Augmentation.deltaClass_mul

Modulo I_G², the identity δ(gh)=δg+δh makes the augmentation class a homomorphism from G to the additive quotient.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaClass_mul (g h : G) :
    deltaClass G (g * h) =
      deltaClass G g + deltaClass G h
GroupTheory.Augmentation.deltaMonoidHom

Multiplicative spelling of g ↦ δg, convenient for passage through the abelianization.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaMonoidHom :
    G →* Multiplicative (Quotient G) where
  toFun g := Multiplicative.ofAdd (deltaClass G g)
  map_one' := by
    apply Multiplicative.toAdd.injective
    exact deltaClass_one G
  map_mul' g h := by
    apply Multiplicative.toAdd.injective
    exact deltaClass_mul G g h
GroupTheory.Augmentation.deltaAbelianization

The augmentation class factors canonically through Gᵃᵇ.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaAbelianization :
    Abelianization G →* Multiplicative (Quotient G)
GroupTheory.Augmentation.deltaAbelianization_of
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianization_of (g : G) :
    deltaAbelianization G (Abelianization.of g) =
      Multiplicative.ofAdd (deltaClass G g)
GroupTheory.Augmentation.deltaPreimage

A finite preimage in Gᵃᵇ for the coefficient combination attached to a group-ring element.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaPreimage (x : IntegralGroupRing G) :
    Abelianization G
GroupTheory.Augmentation.deltaAbelianization_deltaPreimage
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianization_deltaPreimage
    (x : IntegralGroupRing G) (hx : x ∈ ideal G) :
    deltaAbelianization G (deltaPreimage G x) =
      Multiplicative.ofAdd
        (QuotientAddGroup.mk' (squareInIdeal G) ⟨x, hx⟩)
GroupTheory.Augmentation.deltaAbelianization_surjective

The augmentation map Gᵃᵇ → I_G/I_G² is surjective.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianization_surjective :
    Function.Surjective (deltaAbelianization G)
GroupTheory.Augmentation.coefficientToAbelianization

A coefficient at g contributes that many copies of the class of g in the abelianization.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def coefficientToAbelianization (g : G) :
    ℤ →+ Additive (Abelianization G) where
  toFun n := n • Additive.ofMul (Abelianization.of g)
  map_zero' := zero_zsmul _
  map_add' m n := add_zsmul _ m n
GroupTheory.Augmentation.linearization

Linearization of the integral group ring in the abelianization.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def linearization :
    IntegralGroupRing G →+ Additive (Abelianization G)
GroupTheory.Augmentation.linearization_single
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem linearization_single (g : G) (n : ℤ) :
    linearization G (MonoidAlgebra.single g n) =
      n • Additive.ofMul (Abelianization.of g)
GroupTheory.Augmentation.linearization_deltaElement
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem linearization_deltaElement (g : G) :
    linearization G (deltaElement G g) =
      Additive.ofMul (Abelianization.of g)
GroupTheory.Augmentation.linearization_deltaElement_mul_deltaElement

Products of two basic augmentation differences vanish after linearization.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem linearization_deltaElement_mul_deltaElement
    (g h : G) :
    linearization G
        ((deltaElement G g : IntegralGroupRing G) *
          (deltaElement G h : IntegralGroupRing G)) =
      0
GroupTheory.Augmentation.linearization_mul_eq_zero_of_mem_ideal

Linearization kills a product of two augmentation-zero elements.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem linearization_mul_eq_zero_of_mem_ideal
    (x y : IntegralGroupRing G)
    (hx : x ∈ ideal G) (hy : y ∈ ideal G) :
    linearization G (x * y) = 0
GroupTheory.Augmentation.linearization_eq_zero_of_mem_square

Linearization vanishes on the square of the augmentation ideal.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem linearization_eq_zero_of_mem_square
    (z : IntegralGroupRing G) (hz : z ∈ square G) :
    linearization G z = 0
GroupTheory.Augmentation.linearizationOnIdeal

Linearization restricted to the augmentation ideal.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def linearizationOnIdeal :
    ideal G →+ Additive (Abelianization G) where
  toFun x := linearization G (x : IntegralGroupRing G)
  map_zero' := (linearization G).map_zero
  map_add' x y := (linearization G).map_add x y
GroupTheory.Augmentation.quotientLinearization

The inverse linearization map on I_G/I_G².

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def quotientLinearization :
    Quotient G →+ Additive (Abelianization G)
GroupTheory.Augmentation.quotientLinearization_deltaClass
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem quotientLinearization_deltaClass (g : G) :
    quotientLinearization G (deltaClass G g) =
      Additive.ofMul (Abelianization.of g)
GroupTheory.Augmentation.quotientLinearizationMonoidHom

Multiplicative spelling of inverse linearization.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def quotientLinearizationMonoidHom :
    Multiplicative (Quotient G) →* Abelianization G
GroupTheory.Augmentation.quotientLinearizationMonoidHom_deltaClass
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem quotientLinearizationMonoidHom_deltaClass (g : G) :
    quotientLinearizationMonoidHom G
        (Multiplicative.ofAdd (deltaClass G g)) =
      Abelianization.of g
GroupTheory.Augmentation.quotientLinearizationMonoidHom_deltaAbelianization

Inverse linearization is a left inverse to the augmentation-class map.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem quotientLinearizationMonoidHom_deltaAbelianization
    (a : Abelianization G) :
    quotientLinearizationMonoidHom G
        (deltaAbelianization G a) =
      a
GroupTheory.Augmentation.deltaAbelianization_injective

The canonical augmentation-class map is injective.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianization_injective :
    Function.Injective (deltaAbelianization G)
GroupTheory.Augmentation.deltaAbelianizationEquiv

The classical canonical isomorphism Gᵃᵇ ≃ I_G/I_G², in multiplicative notation on the target.

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
def deltaAbelianizationEquiv :
    Abelianization G ≃* Multiplicative (Quotient G)
GroupTheory.Augmentation.deltaAbelianizationEquiv_apply
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianizationEquiv_apply (a : Abelianization G) :
    deltaAbelianizationEquiv G a =
      deltaAbelianization G a
GroupTheory.Augmentation.deltaAbelianizationEquiv_of
Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaAbelianizationEquiv_of (g : G) :
    deltaAbelianizationEquiv G (Abelianization.of g) =
      Multiplicative.ofAdd (deltaClass G g)
GroupTheory.Augmentation.deltaClass_eq_zero_of_mem_commutator

Every commutator has zero augmentation class modulo I_G².

Source context 5 commands

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

open scoped Pointwise
noncomputable section
namespace GroupTheory
namespace Augmentation
variable (G : Type*) [Group G]
theorem deltaClass_eq_zero_of_mem_commutator
    {g : G} (hg : g ∈ commutator G) :
    deltaClass G g = 0