Augmentation and truncation of ℕ
-indexed (co)chain complexes. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
The truncation of a ℕ
-indexed chain complex,
deleting the object at 0
and shifting everything else down.
There is a canonical chain map from the truncation of a chain map C
to
the "single object" chain complex consisting of the truncated object C.X 0
in degree 0.
The components of this chain map are C.d 1 0
in degree 0, and zero otherwise.
Equations
- C.truncate_to = ⇑(((chain_complex.truncate.obj C).to_single₀_equiv (C.X 0)).symm) ⟨C.d 1 0, _⟩
We can "augment" a chain complex by inserting an arbitrary object in degree zero (shifting everything else up), along with a suitable differential.
Equations
- C.augment f w = {X := λ (i : ℕ), chain_complex.augment._match_1 C i, d := λ (i j : ℕ), chain_complex.augment._match_2 C f i j, shape' := _, d_comp_d' := _}
- chain_complex.augment._match_1 C (i + 1) = C.X i
- chain_complex.augment._match_1 C 0 = X
- chain_complex.augment._match_2 C f (n.succ + 1) (j + 1) = C.d n.succ j
- chain_complex.augment._match_2 C f n.succ.succ 0 = 0
- chain_complex.augment._match_2 C f (0 + 1) (j + 1) = C.d 0 j
- chain_complex.augment._match_2 C f 1 0 = f
- chain_complex.augment._match_2 C f 0 _x = 0
Truncating an augmented chain complex is isomorphic (with components the identity) to the original complex.
Augmenting a truncated complex with the original object and morphism is isomorphic (with components the identity) to the original complex.
Equations
- C.augment_truncate = {hom := {f := λ (i : ℕ), i.cases_on (𝟙 (((chain_complex.truncate.obj C).augment (C.d 1 0) _).X 0)) (λ (i : ℕ), 𝟙 (((chain_complex.truncate.obj C).augment (C.d 1 0) _).X i.succ)), comm' := _}, inv := {f := λ (i : ℕ), i.cases_on (𝟙 (C.X 0)) (λ (i : ℕ), 𝟙 (C.X i.succ)), comm' := _}, hom_inv_id' := _, inv_hom_id' := _}
A chain map from a chain complex to a single object chain complex in degree zero can be reinterpreted as a chain complex.
Ths is the inverse construction of truncate_to
.
Equations
- C.to_single₀_as_complex X f = chain_complex.to_single₀_as_complex._match_1 C X (⇑(C.to_single₀_equiv X) f)
- chain_complex.to_single₀_as_complex._match_1 C X ⟨f, w⟩ = C.augment f w
The truncation of a ℕ
-indexed cochain complex,
deleting the object at 0
and shifting everything else down.
There is a canonical chain map from the truncation of a cochain complex C
to
the "single object" cochain complex consisting of the truncated object C.X 0
in degree 0.
The components of this chain map are C.d 0 1
in degree 0, and zero otherwise.
Equations
- C.to_truncate = ⇑(((cochain_complex.truncate.obj C).from_single₀_equiv (C.X 0)).symm) ⟨C.d 0 1, _⟩
We can "augment" a cochain complex by inserting an arbitrary object in degree zero (shifting everything else up), along with a suitable differential.
Equations
- C.augment f w = {X := λ (i : ℕ), cochain_complex.augment._match_1 C i, d := λ (i j : ℕ), cochain_complex.augment._match_2 C f i j, shape' := _, d_comp_d' := _}
- cochain_complex.augment._match_1 C (i + 1) = C.X i
- cochain_complex.augment._match_1 C 0 = X
- cochain_complex.augment._match_2 C f (i + 1) (j + 1) = C.d i j
- cochain_complex.augment._match_2 C f n.succ 0 = 0
- cochain_complex.augment._match_2 C f 0 n.succ.succ = 0
- cochain_complex.augment._match_2 C f 0 1 = f
- cochain_complex.augment._match_2 C f 0 0 = 0
Truncating an augmented cochain complex is isomorphic (with components the identity) to the original complex.
Augmenting a truncated complex with the original object and morphism is isomorphic (with components the identity) to the original complex.
Equations
- C.augment_truncate = {hom := {f := λ (i : ℕ), i.cases_on (𝟙 (((cochain_complex.truncate.obj C).augment (C.d 0 1) _).X 0)) (λ (i : ℕ), 𝟙 (((cochain_complex.truncate.obj C).augment (C.d 0 1) _).X i.succ)), comm' := _}, inv := {f := λ (i : ℕ), i.cases_on (𝟙 (C.X 0)) (λ (i : ℕ), 𝟙 (C.X i.succ)), comm' := _}, hom_inv_id' := _, inv_hom_id' := _}
A chain map from a single object cochain complex in degree zero to a cochain complex can be reinterpreted as a cochain complex.
Ths is the inverse construction of to_truncate
.
Equations
- C.from_single₀_as_complex X f = cochain_complex.from_single₀_as_complex._match_1 C X (⇑(C.from_single₀_equiv X) f)
- cochain_complex.from_single₀_as_complex._match_1 C X ⟨f, w⟩ = C.augment f w