Module

FiniteCyclicCarryCocycle.lean

Nyll.GaloisCohomology.ProP.FiniteCyclicCarryCocycle
24 declarations indexed from sourceView source ↗

Generator coordinates and the cyclic carry cocycle

A specified generator of a finite cyclic group identifies the group with ZMod (Nat.card G). Taking the standard natural-number representative of that coordinate records multiplication by addition with a possible carry. This file constructs the resulting normalized inhomogeneous two-cocycle from a coefficient fixed by the chosen generator; cyclicity makes it invariant.

The comparison with the periodic resolution is deliberately left to the next gate; this file only constructs the explicit bar representative.

Declarations

ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate

The coordinate in ZMod (card G) determined by a specified generator.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
def finiteCyclicGeneratorCoordinate
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x : G) :
    ZMod (Nat.card G)
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_one
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_one
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) :
    finiteCyclicGeneratorCoordinate g hg 1 = 0
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_generator
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_generator
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) :
    finiteCyclicGeneratorCoordinate g hg g = 1
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_mul
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_mul
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x y : G) :
    finiteCyclicGeneratorCoordinate g hg (x * y) =
      finiteCyclicGeneratorCoordinate g hg x +
        finiteCyclicGeneratorCoordinate g hg y
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_zpow
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_zpow
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (i : ℤ) :
    finiteCyclicGeneratorCoordinate g hg (g ^ i) =
      (i : ZMod (Nat.card G))
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_pow
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_pow
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (i : ℕ) :
    finiteCyclicGeneratorCoordinate g hg (g ^ i) =
      (i : ZMod (Nat.card G))
ClassFieldTower.Cohomology.finiteCyclicGeneratorCoordinate_injective

The generator coordinate is injective.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGeneratorCoordinate_injective
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) :
    Function.Injective (finiteCyclicGeneratorCoordinate g hg)
ClassFieldTower.Cohomology.finiteCyclicGenerator_zpow_coordinate

Reconstructing from the standard representative of the generator coordinate returns the original group element.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicGenerator_zpow_coordinate
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x : G) :
    g ^ (finiteCyclicGeneratorCoordinate g hg x).val = x
ClassFieldTower.Cohomology.zmodCarry

The 0/1 carry in the sum of the standard representatives of two elements of ZMod n.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
def zmodCarry {n : ℕ} [NeZero n] (x y : ZMod n) : ℕ
ClassFieldTower.Cohomology.zmodCarry_eq_one_iff
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem zmodCarry_eq_one_iff {n : ℕ} [NeZero n] (x y : ZMod n) :
    zmodCarry x y = 1 ↔ n ≤ x.val + y.val
ClassFieldTower.Cohomology.zmodCarry_eq_zero_iff
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem zmodCarry_eq_zero_iff {n : ℕ} [NeZero n] (x y : ZMod n) :
    zmodCarry x y = 0 ↔ x.val + y.val < n
ClassFieldTower.Cohomology.zmodCarry_zero_left
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem zmodCarry_zero_left {n : ℕ} [NeZero n] (x : ZMod n) :
    zmodCarry 0 x = 0
ClassFieldTower.Cohomology.zmodCarry_zero_right
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem zmodCarry_zero_right {n : ℕ} [NeZero n] (x : ZMod n) :
    zmodCarry x 0 = 0
ClassFieldTower.Cohomology.zmodCarry_cocycle

Carries satisfy the inhomogeneous two-cocycle equation on ZMod n.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem zmodCarry_cocycle {n : ℕ} [NeZero n] (x y z : ZMod n) :
    zmodCarry (x + y) z + zmodCarry x y =
      zmodCarry y z + zmodCarry x (y + z)
ClassFieldTower.Cohomology.finiteCyclicCarry

The natural-number carry attached to multiplication in a finite cyclic group with a specified generator.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
def finiteCyclicCarry
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x y : G) : ℕ
ClassFieldTower.Cohomology.finiteCyclicCarry_one_left
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarry_one_left
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x : G) :
    finiteCyclicCarry g hg 1 x = 0
ClassFieldTower.Cohomology.finiteCyclicCarry_one_right
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarry_one_right
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x : G) :
    finiteCyclicCarry g hg x 1 = 0
ClassFieldTower.Cohomology.finiteCyclicCarry_cocycle

The carry on a finite cyclic group satisfies the two-cocycle equation.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarry_cocycle
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g) (x y z : G) :
    finiteCyclicCarry g hg (x * y) z + finiteCyclicCarry g hg x y =
      finiteCyclicCarry g hg y z + finiteCyclicCarry g hg x (y * z)
ClassFieldTower.Cohomology.finiteCyclicCarry_zpow_val
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarry_zpow_val
    {G : Type u} [Group G] [Fintype G]
    (g : G) (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (i j : ZMod (Nat.card G)) :
    finiteCyclicCarry g hg (g ^ i.val) (g ^ j.val) = zmodCarry i j
ClassFieldTower.Cohomology.finiteCyclicCarryTwoCocycle

The normalized inhomogeneous carry cocycle attached to an element fixed by the chosen generator.

Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
def finiteCyclicCarryTwoCocycle
    {R G : Type u} [CommRing R] [CommGroup G] [Fintype G]
    (A : Rep R G) (g : G)
    (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (a : LinearMap.ker (Rep.applyAsHom A g - 𝟙 A).hom.toLinearMap) :
    groupCohomology.cocycles₂ A
ClassFieldTower.Cohomology.finiteCyclicCarryTwoCocycle_apply
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarryTwoCocycle_apply
    {R G : Type u} [CommRing R] [CommGroup G] [Fintype G]
    (A : Rep R G) (g : G)
    (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (a : LinearMap.ker (Rep.applyAsHom A g - 𝟙 A).hom.toLinearMap)
    (x y : G) :
    finiteCyclicCarryTwoCocycle A g hg a (x, y) =
      finiteCyclicCarry g hg x y • a.1
ClassFieldTower.Cohomology.finiteCyclicCarryTwoCocycle_zpow_val
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarryTwoCocycle_zpow_val
    {R G : Type u} [CommRing R] [CommGroup G] [Fintype G]
    (A : Rep R G) (g : G)
    (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (a : LinearMap.ker (Rep.applyAsHom A g - 𝟙 A).hom.toLinearMap)
    (i j : ZMod (Nat.card G)) :
    finiteCyclicCarryTwoCocycle A g hg a (g ^ i.val, g ^ j.val) =
      zmodCarry i j • a.1
ClassFieldTower.Cohomology.finiteCyclicCarryTwoCocycle_one_left
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarryTwoCocycle_one_left
    {R G : Type u} [CommRing R] [CommGroup G] [Fintype G]
    (A : Rep R G) (g : G)
    (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (a : LinearMap.ker (Rep.applyAsHom A g - 𝟙 A).hom.toLinearMap)
    (x : G) :
    finiteCyclicCarryTwoCocycle A g hg a (1, x) = 0
ClassFieldTower.Cohomology.finiteCyclicCarryTwoCocycle_one_right
Source context 4 commands

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

namespace ClassFieldTower.Cohomology
noncomputable section
open CategoryTheory Representation
universe u
theorem finiteCyclicCarryTwoCocycle_one_right
    {R G : Type u} [CommRing R] [CommGroup G] [Fintype G]
    (A : Rep R G) (g : G)
    (hg : ∀ x : G, x ∈ Subgroup.zpowers g)
    (a : LinearMap.ker (Rep.applyAsHom A g - 𝟙 A).hom.toLinearMap)
    (x : G) :
    finiteCyclicCarryTwoCocycle A g hg a (x, 1) = 0