Skip to content

Commit 6fe3c13

Browse files
committed
[WIP] Categories of (non-negatively graded) chain complexes
1 parent b9128b3 commit 6fe3c13

File tree

2 files changed

+71
-6
lines changed

2 files changed

+71
-6
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{-# OPTIONS --without-K --safe #-}
2+
3+
4+
open import Categories.Category.Core
5+
open import Experiments.Category.Abelian
6+
7+
module Experiments.Category.Instance.NonNegativeChainComplexes {o ℓ e} {𝒜 : Category o ℓ e} (abelian : Abelian 𝒜) where
8+
9+
open import Level
10+
11+
open import Data.Nat using (ℕ)
12+
13+
open import Categories.Morphism.Reasoning 𝒜
14+
15+
open Category 𝒜
16+
open Abelian abelian
17+
18+
open HomReasoning
19+
open Equiv
20+
21+
record ChainComplex : Set (o ⊔ ℓ ⊔ e) where
22+
field
23+
Chain : Obj
24+
boundary : (n : ℕ) Chain (ℕ.suc n) ⇒ Chain n
25+
bounary-zero : {n} boundary n ∘ boundary (ℕ.suc n) ≈ zero⇒
26+
27+
record ChainMap (V W : ChainComplex) : Set (ℓ ⊔ e) where
28+
private
29+
module V = ChainComplex V
30+
module W = ChainComplex W
31+
field
32+
hom : (n : ℕ) V.Chain n ⇒ W.Chain n
33+
commute : {n : ℕ} (hom n ∘ V.boundary n) ≈ (W.boundary n ∘ hom (ℕ.suc n))
34+
35+
ChainComplexes : Category (o ⊔ ℓ ⊔ e) (ℓ ⊔ e) e
36+
ChainComplexes = record
37+
{ Obj = ChainComplex
38+
; _⇒_ = ChainMap
39+
; _≈_ = λ f g
40+
let module f = ChainMap f
41+
module g = ChainMap g
42+
in {n : ℕ} f.hom n ≈ g.hom n
43+
; id = record
44+
{ hom = λ _ id
45+
; commute = id-comm-sym
46+
}
47+
; _∘_ = λ {U} {V} {W} f g
48+
let module U = ChainComplex U
49+
module V = ChainComplex V
50+
module W = ChainComplex W
51+
module f = ChainMap f
52+
module g = ChainMap g
53+
in record
54+
{ hom = λ n f.hom n ∘ g.hom n
55+
; commute = λ {n} begin
56+
(f.hom n ∘ g.hom n) ∘ U.boundary n ≈⟨ pullʳ g.commute ⟩
57+
f.hom n ∘ V.boundary n ∘ g.hom (ℕ.suc n) ≈⟨ extendʳ f.commute ⟩
58+
W.boundary n ∘ f.hom (ℕ.suc n) ∘ g.hom (ℕ.suc n) ∎
59+
}
60+
; assoc = assoc
61+
; sym-assoc = sym-assoc
62+
; identityˡ = identityˡ
63+
; identityʳ = identityʳ
64+
; identity² = identity²
65+
; equiv = record
66+
{ refl = refl
67+
; sym = λ eq sym eq
68+
; trans = λ eq₁ eq₂ trans eq₁ eq₂
69+
}
70+
; ∘-resp-≈ = λ eq₁ eq₂ ∘-resp-≈ eq₁ eq₂
71+
}

src/Experiments/Category/Object/ChainComplex.agda

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,3 @@ open import Data.Nat using (ℕ)
1212
open Category 𝒞
1313
open Zero has-zero
1414

15-
-- Non-negatively graded chain complexes for now
16-
record ChainComplex : Set (o ⊔ ℓ ⊔ e) where
17-
field
18-
Chain : Obj
19-
boundary : (n : ℕ) Chain (ℕ.suc n) ⇒ Chain n
20-
bounary-zero : {n} boundary n ∘ boundary (ℕ.suc n) ≈ zero⇒

0 commit comments

Comments
 (0)