{-# OPTIONS --safe #-}
module Cubical.Algebra.AbGroup.Instances.DirectSumFun where

open import Cubical.Foundations.Prelude

open import Cubical.Data.Nat

open import Cubical.Algebra.AbGroup
open import Cubical.Algebra.DirectSum.DirectSumFun.Base
open import Cubical.Algebra.DirectSum.DirectSumFun.Properties

private variable
   : Level

module _ (G : (n : )  Type ) (Gstr : (n : )  AbGroupStr (G n)) where

  open AbGroupStr
  open DSF-properties G Gstr

  ⊕Fun-AbGr : AbGroup 
  fst ⊕Fun-AbGr = ⊕Fun G Gstr
  0g (snd ⊕Fun-AbGr) = 0⊕Fun
  AbGroupStr._+_ (snd ⊕Fun-AbGr) = _+⊕Fun_
  - snd ⊕Fun-AbGr = Inv⊕Fun
  isAbGroup (snd ⊕Fun-AbGr) = makeIsAbGroup isSet⊕Fun +⊕FunAssoc +⊕FunRid +⊕FunInvR +⊕FunComm