open import Function using (_$_)
open import Data.Product hiding (map)
open import Data.Nat using ()
open import Data.Fin using (Fin)
open import Data.Vec.Functional
open import Algebra.Core
open import Algebra.Bundles
open import Algebra.Module
open import Relation.Binary
import Data.Vec.Functional.Relation.Binary.Equality.Setoid as VecSetoid
import Algebra.Definitions as AD
import Algebra.Structures as AS
open import Vector.Structures

module Algebra.Module.Instances.CommutativeRing
  {c } (cRing : CommutativeRing c ) where

private variable
  n : 

open CommutativeRing cRing
open import Algebra.Module.Instances.FunctionalVector ring
open import Algebra.Module.Instances.AllVecLeftModule ring
open import Data.Vec.Functional.Relation.Binary.Equality.Setoid setoid
open module AD′ {n} = AD (_≋_ {n})
open module AS′ {n} = AS (_≋_ {n})
open VRing rawRing renaming (1ⱽ to 𝟙)

*ⱽ-comm : Commutative {n} _*ⱽ_
*ⱽ-comm x y i = *-comm _ _

*ⱽ-isCommutativeRing : IsCommutativeRing {n} _+ᴹ_ _*ⱽ_ -ᴹ_ 𝟘 𝟙
*ⱽ-isCommutativeRing = record { isRing = v-isRing ; *-comm = *ⱽ-comm }

*ⱽ-commutativeRing :   CommutativeRing _ _
*ⱽ-commutativeRing n = record { isCommutativeRing = *ⱽ-isCommutativeRing {n}}