{-# OPTIONS --safe #-} module Cubical.Algebra.Module.Instances.FinVec where open import Cubical.Foundations.Prelude open import Cubical.Foundations.HLevels open import Cubical.Foundations.SIP using (str; ⟨_⟩) open import Cubical.Data.Nat using (ℕ) open import Cubical.Data.FinData open import Cubical.Algebra.Ring open import Cubical.Algebra.Module module _ {ℓ} (R : Ring ℓ) {n : ℕ} where private open module R' = RingStr (str R) renaming (_+_ to _+r_; -_ to -r_) open LeftModuleStr FinVecLeftModule : LeftModule R ℓ fst FinVecLeftModule = FinVec ⟨ R ⟩ n 0m (snd FinVecLeftModule) = λ _ → 0r _+_ (snd FinVecLeftModule) = λ xs ys z → xs z +r ys z -_ (snd FinVecLeftModule) = λ xs z → -r xs z _⋆_ (snd FinVecLeftModule) = λ r xs z → r · xs z isLeftModule (snd FinVecLeftModule) = isLeftModuleR where isLeftModuleR : IsLeftModule R _ _ _ _ isLeftModuleR = makeIsLeftModule (isSet→ R'.is-set) (λ _ _ _ → funExt λ _ → R'.+Assoc _ _ _) (λ _ → funExt λ _ → R'.+IdR _) (λ _ → funExt λ _ → R'.+InvR _) (λ _ _ → funExt λ _ → R'.+Comm _ _) (λ _ _ _ → funExt λ _ → sym (R'.·Assoc _ _ _)) (λ _ _ _ → funExt λ _ → ·DistR+ _ _ _) (λ _ _ _ → funExt λ _ → ·DistL+ _ _ _) (λ _ → funExt λ _ → R'.·IdL _)