Degree-at-least stupid truncations and retained components #
Mathlib's degree-at-least stupid truncation has a canonical inclusion into its source cochain complex. Nested truncations have compatible inclusion maps in any category with zero morphisms and a zero object.
Main definitions #
HomologicalComplex.stupidTruncGEιincludes a tail in its source complex.HomologicalComplex.stupidTruncGEMapincludes a deeper tail in a shallower one.HomologicalComplex.stupidTruncGETowerandHomologicalComplex.stupidTruncGETowerCoconecollect the nested tails.HomologicalComplex.stupidTruncGEXIsochooses one component isomorphism at every retained integer degree, with a bicomplex specialization atHomologicalComplex₂.stupidTruncGEXIso.
Main results #
HomologicalComplex.stupidTruncGEMap_selfandHomologicalComplex.stupidTruncGEMap_compgive the nested-tail laws.HomologicalComplex.isColimitStupidTruncGETowerCoconeproves that the tower recovers the original complex as a colimit.HomologicalComplex.stupidTrunc_d_eqdescribes the retained differential.HomologicalComplex.stupidTruncMap_comp_stupidTruncGEιproves naturality of the tail inclusion, andHomologicalComplex.stupidTruncGEι_isIso_of_isZerodetects an isomorphism when the discarded components vanish.HomologicalComplex.stupidTruncGEMap_naturalitycommutes tail inclusion with a cochain map.
Implementation notes #
On retained degrees, the maps use Mathlib's canonical truncation isomorphism; outside the tail they use zero morphisms. The inclusion into the source is monic, so it characterizes the nested maps and proves their laws. At each fixed degree, the lower-tail tower eventually becomes constant; Mathlib's degreewise colimit criterion assembles these into a complex colimit.
References #
This extends Mathlib's HomologicalComplex.stupidTrunc and
HomologicalComplex.stupidTruncXIso in
Algebra/Homology/Embedding/StupidTrunc.lean.
The component of a degree-at-least stupid truncation at a retained integer degree.
This chooses the normalized index (i - p).toNat for Mathlib's
HomologicalComplex.stupidTruncXIso;
HomologicalComplex.stupidTruncXIso_eq_stupidTruncGEXIso identifies every
retained-index presentation with this one.
Equations
- K.stupidTruncGEXIso p i hi = K.stupidTruncXIso (ComplexShape.embeddingUpIntGE p) ⋯
Instances For
The embedding equation forces k = (i - p).toNat. Substituting that
unique index identifies Mathlib's component isomorphism with the normalized
one, independent of the caller's witness.
On retained degrees this uses HomologicalComplex.stupidTruncXIso; below
p its source component is zero. The resulting map is monic without an
abelian-category assumption.
Equations
- K.stupidTruncGEι p = { f := fun (i : ℤ) => if hi : p ≤ i then (K.stupidTruncXIso (ComplexShape.embeddingUpIntGE p) ⋯).hom else 0, comm' := ⋯ }
Instances For
On retained degrees, the naturality square commutes by Mathlib's canonical truncation isomorphisms; below the cutoff its source is zero.
On retained degrees, the naturality square commutes by Mathlib's canonical truncation isomorphisms; below the cutoff its source is zero.
The inclusion is the canonical component isomorphism above the cutoff and the unique map between zero objects below it.
Compatibility with the monic HomologicalComplex.stupidTruncGEι maps
characterizes this nested-tail inclusion; cancellation gives its identity and
composition laws.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A cochain map commutes with nested-tail inclusion. On retained degrees, both composites reduce to the same map after transporting through the stupid-truncation degreewise isomorphisms; elsewhere the source is zero.
Stage n has lower cutoff c - n. If the components of K vanish
above some degree, each stage has finite degree support. The colimit
construction needs no such bound.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The stage inclusions commute with the transition maps, and the vertex
is definitionally K; this lets the degreewise colimit criterion apply directly.
Equations
- HomologicalComplex.stupidTruncGETowerCocone K c = { pt := K, ι := { app := fun (n : ℕ) => HomologicalComplex.stupidTruncGEι K (c - ↑n), naturality := ⋯ } }
Instances For
The lower stupid truncations recover every complex: at each fixed degree, the inclusions are eventually isomorphisms. No upper bound or ambient colimits are required.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bicomplex specialization of the normalized retained component
HomologicalComplex.stupidTruncGEXIso. It is definitionally the same iso as
Mathlib's HomologicalComplex.stupidTruncXIso at index (i - p).toNat.
Equations
- K.stupidTruncGEXIso p i hi = HomologicalComplex.stupidTruncGEXIso K p i hi