{-# OPTIONS --without-K --rewriting #-} open import HoTT open import cohomology.ChainComplex open import cohomology.Theory open import groups.KernelImage open import cw.CW module cw.cohomology.ReconstructedCohomologyGroups {i : ULevel} (OT : OrdinaryTheory i) where open OrdinaryTheory OT open import cw.cohomology.Descending OT open import cw.cohomology.ReconstructedCochainComplex OT open import cw.cohomology.ReconstructedZerothCohomologyGroup OT open import cw.cohomology.ReconstructedFirstCohomologyGroup OT open import cw.cohomology.ReconstructedHigherCohomologyGroups OT abstract reconstructed-cohomology-group : ∀ m {n} (⊙skel : ⊙Skeleton {i} n) → ⊙has-cells-with-choice 0 ⊙skel i → C m ⊙⟦ ⊙skel ⟧ ≃ᴳ cohomology-group (cochain-complex ⊙skel) m reconstructed-cohomology-group (pos 0) ⊙skel ac = zeroth-cohomology-group ⊙skel ac reconstructed-cohomology-group (pos 1) ⊙skel ac = first-cohomology-group ⊙skel ac reconstructed-cohomology-group (pos (S (S m))) ⊙skel ac = higher-cohomology-group m ⊙skel ac reconstructed-cohomology-group (negsucc m) ⊙skel ac = lift-iso {j = i} ∘eᴳ trivial-iso-0ᴳ (C-cw-at-negsucc ⊙skel m ac)