Module

FoxBoundary.lean

Nyll.ProCGroups.FoxDifferential.Common.FoxBoundary
11 declarations indexed from sourceView source ↗

Fox differential: common — fox boundary

The principal declarations in this module are:

  • coefficientFoxBoundary

The Fox boundary crossed differential attached to a coefficient homomorphism: \(g \mapsto \operatorname{coeff}(g)-1\).

  • coefficientFoxBoundaryCrossedHom

The coefficient Fox boundary is a crossed differential.

  • coefficientFoxBoundary_one

The coefficient Fox boundary sends the identity to zero.

  • coefficientFoxBoundary_mul

Product rule for the coefficient Fox boundary \(g \mapsto \operatorname{coeff}(g)-1\).

Declarations

FoxDifferential.coefficientFoxBoundary

The Fox boundary crossed differential attached to a coefficient homomorphism: \(g \mapsto \operatorname{coeff}(g)-1\).

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section CoefficientBoundary
variable {R : Type u} [Ring R]
variable {G : Type v} [Group G]
def coefficientFoxBoundary (coeff : G →* R) (g : G) : R
FoxDifferential.coefficientFoxBoundary_one

The coefficient Fox boundary sends the identity to zero.

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section CoefficientBoundary
variable {R : Type u} [Ring R]
variable {G : Type v} [Group G]
theorem coefficientFoxBoundary_one (coeff : G →* R) :
    coefficientFoxBoundary coeff 1 = 0
FoxDifferential.coefficientFoxBoundary_mul

Product rule for the coefficient Fox boundary \(g \mapsto \operatorname{coeff}(g)-1\).

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section CoefficientBoundary
variable {R : Type u} [Ring R]
variable {G : Type v} [Group G]
theorem coefficientFoxBoundary_mul (coeff : G →* R) (g h : G) :
    coefficientFoxBoundary coeff (g * h) =
      coefficientFoxBoundary coeff g + coeff g • coefficientFoxBoundary coeff h
FoxDifferential.coefficientFoxBoundaryCrossedHom

The coefficient Fox boundary is a crossed differential.

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section CoefficientBoundary
variable {R : Type u} [Ring R]
variable {G : Type v} [Group G]
def coefficientFoxBoundaryCrossedHom (coeff : G →* R) : ScalarCrossedHom coeff R where
  toFun := coefficientFoxBoundary coeff
  map_mul' := coefficientFoxBoundary_mul coeff
FoxDifferential.coefficientFoxBoundaryCrossedHom_apply

The coefficient boundary crossed homomorphism sends a group element to its coefficient minus one.

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section CoefficientBoundary
variable {R : Type u} [Ring R]
variable {G : Type v} [Group G]
theorem coefficientFoxBoundaryCrossedHom_apply (coeff : G →* R) (g : G) :
    coefficientFoxBoundaryCrossedHom coeff g = coeff g - 1
FoxDifferential.foxBoundaryMap

The finite Fox boundary map with prescribed generator boundary values sends a coordinate vector \(v : X \to R\) to \(\sum_x v(x)\,\mathrm{generatorBoundary}(x)\).

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section BoundaryMap
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X]
def foxBoundaryMap (generatorBoundary : X → R) : (X → R) →ₗ[R] R where
  toFun v := ∑ x : X, v x * generatorBoundary x
  map_add' v w := by
    simp only [Pi.add_apply, add_mul, Finset.sum_add_distrib]
  map_smul' r v := by
    simp only [Pi.smul_apply, smul_eq_mul, mul_assoc, RingHom.id_apply, Finset.mul_sum]
FoxDifferential.foxBoundaryMap_apply

The boundary map is evaluated on the canonical generators and then extended linearly to the coordinate module.

Source context 7 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section BoundaryMap
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X]
theorem foxBoundaryMap_apply (generatorBoundary : X → R) (v : X → R) :
    foxBoundaryMap generatorBoundary v =
      ∑ x : X, v x * generatorBoundary x
FoxDifferential.foxBoundaryMap_single

The finite Fox boundary map sends a coordinate basis vector to the corresponding generator boundary.

Source context 8 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section BoundaryMap
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X]
variable [DecidableEq X]
theorem foxBoundaryMap_single (generatorBoundary : X → R) (x : X) :
    foxBoundaryMap generatorBoundary (Pi.single x (1 : R)) = generatorBoundary x
FoxDifferential.foxBoundaryMap_freeCrossedHomWithCoeff

Boundary-map form of the generic free-group Fox formula: applying the Fox boundary map to the free crossed differential recovers the crossed differential with the prescribed generator values.

Source context 9 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section FreeGroup
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X] [DecidableEq X]
variable (coeff : FreeGroup X →* R)
variable (generatorBoundary : X → R)
theorem foxBoundaryMap_freeCrossedHomWithCoeff
    (boundary : ScalarCrossedHom coeff R)
    (hgenerator : ∀ x : X, boundary (FreeGroup.of x) = generatorBoundary x)
    (w : FreeGroup X) :
    foxBoundaryMap generatorBoundary
        (freeCrossedHomWithCoeff
          (A := X → R) coeff (fun x : X => Pi.single x (1 : R)) w) =
      boundary w := by
  let delta : ScalarCrossedHom coeff R :=
    ScalarCrossedHom.mapLinear
      (freeCrossedHomWithCoeff
        (A := X → R) coeff (fun x : X => Pi.single x (1 : R)))
      (foxBoundaryMap generatorBoundary)
  have hdelta_generator :
      ∀ x : X, delta (FreeGroup.of x) = generatorBoundary x := by
    intro x
    simp only [delta, ScalarCrossedHom.mapLinear_apply, freeCrossedHomWithCoeff_of,
      foxBoundaryMap_single]
  have hdelta_eq :
      delta = freeCrossedHomWithCoeff (A := R) coeff generatorBoundary :=
    freeCrossedHomWithCoeff_unique
      (A := R) coeff generatorBoundary delta hdelta_generator
  have hboundary_eq :
      boundary = freeCrossedHomWithCoeff (A := R) coeff generatorBoundary :=
    freeCrossedHomWithCoeff_unique
      (A := R) coeff generatorBoundary boundary hgenerator
  change delta w = boundary w
  rw [hdelta_eq, hboundary_eq]
FoxDifferential.foxBoundaryMap_of_crossedHom

Conditional boundary-map form of the generic free-group Fox formula. Any crossed differential with standard coordinate values satisfies the same boundary formula as the canonical free crossed differential.

Source context 9 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section FreeGroup
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X] [DecidableEq X]
variable (coeff : FreeGroup X →* R)
variable (generatorBoundary : X → R)
theorem foxBoundaryMap_of_crossedHom
    (delta : ScalarCrossedHom coeff (X → R))
    (hdelta_generator :
      ∀ x : X, delta (FreeGroup.of x) = Pi.single x (1 : R))
    (boundary : ScalarCrossedHom coeff R)
    (hboundary_generator :
      ∀ x : X, boundary (FreeGroup.of x) = generatorBoundary x)
    (w : FreeGroup X) :
    foxBoundaryMap generatorBoundary (delta w) = boundary w
FoxDifferential.foxEulerFormula_of_crossedHom

Explicit finite-sum form of the generic Fox--Euler formula for any crossed differential with standard coordinate values: \(\mathrm{coeff}(w)-1=\sum_x \delta_x(w)(\mathrm{coeff}(x)-1)\).

Source context 9 commands

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

namespace FoxDifferential
noncomputable section
open scoped BigOperators
universe u v
section FreeGroup
variable {R : Type u} [Ring R]
variable {X : Type v} [Fintype X] [DecidableEq X]
variable (coeff : FreeGroup X →* R)
variable (generatorBoundary : X → R)
theorem foxEulerFormula_of_crossedHom
    (delta : ScalarCrossedHom coeff (X → R))
    (hdelta_generator :
      ∀ x : X, delta (FreeGroup.of x) = Pi.single x (1 : R))
    (w : FreeGroup X) :
    coeff w - 1 =
      ∑ x : X, delta w x * (coeff (FreeGroup.of x) - 1)