{-# OPTIONS --without-K --rewriting #-} open import HoTT open import homotopy.EilenbergMacLane open import cohomology.Theory open import cohomology.SpectrumModel open import cohomology.WithCoefficients module cohomology.EMModel where module _ {i} (G : AbGroup i) where open EMExplicit G using (⊙EM; EM-level; EM-conn; spectrum) private E : (n : ℤ) → Ptd i E (pos m) = ⊙EM m E (negsucc m) = ⊙Lift ⊙Unit E-spectrum : (n : ℤ) → ⊙Ω (E (succ n)) ⊙≃ E n E-spectrum (pos n) = spectrum n E-spectrum (negsucc O) = ≃-to-⊙≃ {X = ⊙Ω (E 0)} (equiv (λ _ → _) (λ _ → idp) (λ _ → idp) (prop-has-all-paths (EM-level _ _ _) _)) idp E-spectrum (negsucc (S n)) = ≃-to-⊙≃ {X = ⊙Ω (E (negsucc n))} (equiv (λ _ → _) (λ _ → idp) (λ _ → idp) (prop-has-all-paths (Lift-level Unit-is-set _ _) _)) idp EM-Cohomology : CohomologyTheory i EM-Cohomology = spectrum-cohomology E E-spectrum open CohomologyTheory EM-Cohomology EM-dimension : {n : ℤ} → n ≠ 0 → is-trivialᴳ (C n (⊙Lift ⊙S⁰)) EM-dimension {pos O} neq = ⊥-rec (neq idp) EM-dimension {pos (S n)} _ = contr-is-trivialᴳ (C (pos (S n)) (⊙Lift ⊙S⁰)) $ connected-at-level-is-contr (Trunc-level {n = 0}) (Trunc-preserves-conn 0 (equiv-preserves-conn (pre⊙∘-equiv ⊙lower-equiv ∘e ⊙Bool→-equiv-idf _ ⁻¹) (path-conn (connected-≤T (⟨⟩-monotone-≤ (≤-ap-S (O≤ n))) (EM-conn (S n)))))) EM-dimension {negsucc O} _ = contr-is-trivialᴳ (C (negsucc O) (⊙Lift ⊙S⁰)) $ Trunc-preserves-level 0 $ ⊙→-level $ inhab-prop-is-contr idp (EM-level O _ _) EM-dimension {negsucc (S n)} _ = contr-is-trivialᴳ (C (negsucc (S n)) (⊙Lift ⊙S⁰)) $ Trunc-preserves-level 0 $ ⊙→-level $ Lift-level Unit-is-prop _ _ EM-Ordinary : OrdinaryTheory i EM-Ordinary = ordinary-theory EM-Cohomology EM-dimension