Euler characteristic of homological complexes #
The Euler characteristic is defined using the ComplexShape.EulerCharSigns typeclass,
which provides the alternating signs for each index. This allows the definition to work
uniformly for chain complexes, cochain complexes, and complexes with other index types.
The definitions work on graded objects, with the homological complex versions
defined as abbreviations that apply the graded object versions to C.X and C.homology.
Junk values #
These definitions may have junk values from finsum (0 for infinite support) and
Module.finrank (0 for modules not free of finite rank).
Main definitions #
ComplexShape.EulerCharSigns: Typeclass providing alternating signs for Euler characteristicGradedObject.eulerChar: The Euler characteristic of a graded object usingfinsumGradedObject.finrankSupport: Indices whereModule.finrankis nonzeroHomologicalComplex.eulerChar: The Euler characteristic usingfinsumHomologicalComplex.homologyEulerChar: The homological Euler characteristic usingfinsum
Main results #
GradedObject.eulerChar_eq_sum_finSet_of_finrankSupport_subset: Thefinsumequals the finite sum when the graded object has finite support contained in the given setHomologicalComplex.eulerChar_eq_sum_finSet_of_finrankSupport_subset: Thefinsumequals the finite sum when the complex has finite support contained in the given setHomologicalComplex.homologyEulerChar_eq_sum_finSet_of_finrankSupport_subset: Thefinsumhomological Euler characteristic equals the finite sum when homology has finite support
The sign at index i for Euler characteristic computations.
Equations
Instances For
Signs alternate in the forward direction of the complex shape.
Signs alternate in the backward direction of the complex shape.
Equations
Equations
Equations
- ComplexShape.eulerCharSignsUpNat = { χ := fun (n : ℕ) => (-1) ^ n, χ_next := @ComplexShape.eulerCharSignsUpNat._proof_1 }
Equations
- ComplexShape.eulerCharSignsDownNat = { χ := fun (n : ℕ) => (-1) ^ n, χ_next := @ComplexShape.eulerCharSignsDownNat._proof_1 }
The support of a graded object with respect to finite rank: the set of indices where the rank is nonzero.
Equations
- GradedObject.finrankSupport X = Function.support fun (i : ι) => Module.finrank R ↑(X i)
Instances For
The finite rank support is contained in a set if and only if the rank vanishes outside that set.
The Euler characteristic of a graded object as a sum over all indices.
The sign at each index is determined by the ComplexShape.EulerCharSigns instance.
Defaults to 0 if the support of the ranks of the objects of X is infinite.
Equations
- GradedObject.eulerChar c X = ∑ᶠ (i : ι), ↑(c.χ i) * ↑(Module.finrank R ↑(X i))
Instances For
If a graded object has finite rank support contained in a finite set,
the finsum Euler characteristic equals the finite sum over that set.
The Euler characteristic of a homological complex as a sum over all indices using finsum.
The sign at each index is determined by the ComplexShape.EulerCharSigns instance.
Defaults to 0 if the support of the ranks is infinite.
Equations
- C.eulerChar = GradedObject.eulerChar c C.X
Instances For
The homological Euler characteristic as a sum over all indices using finsum.
This is the Euler characteristic computed from the homology groups rather than
the original complex. Defaults to 0 if the support of the ranks is infinite.
Equations
- C.homologyEulerChar = GradedObject.eulerChar c fun (i : ι) => C.homology i
Instances For
If a complex has finite rank support contained in a finite set,
the finsum Euler characteristic equals the finite sum over that set.
If homology has finite rank support contained in a finite set,
the finsum homological Euler characteristic equals the finite sum over that set.