{-# OPTIONS --safe --lossy-unification #-} module Cubical.Algebra.GradedRing.Instances.Polynomials where open import Cubical.Foundations.Prelude open import Cubical.Foundations.Isomorphism open import Cubical.Foundations.Equiv open import Cubical.Data.Unit open import Cubical.Data.Nat using (ℕ) open import Cubical.Data.Vec open import Cubical.Data.Vec.OperationsNat open import Cubical.Data.Sigma open import Cubical.Algebra.Monoid open import Cubical.Algebra.Monoid.Instances.NatVec open import Cubical.Algebra.AbGroup open import Cubical.Algebra.AbGroup.Instances.Unit open import Cubical.Algebra.DirectSum.DirectSumHIT.Base open import Cubical.Algebra.Ring open import Cubical.Algebra.GradedRing.Base open import Cubical.Algebra.GradedRing.DirectSumHIT private variable ℓ : Level open Iso open GradedRing-⊕HIT-index open GradedRing-⊕HIT-⋆ module _ (ARing@(A , Astr) : Ring ℓ) (n : ℕ) where open RingStr Astr open RingTheory ARing PolyGradedRing : GradedRing ℓ-zero ℓ PolyGradedRing = makeGradedRingSelf (NatVecMonoid n) (λ _ → A) (λ _ → snd (Ring→AbGroup ARing)) 1r _·_ 0LeftAnnihilates 0RightAnnihilates (λ a b c → ΣPathP ((+n-vec-assoc _ _ _) , (·Assoc _ _ _))) (λ a → ΣPathP ((+n-vec-rid _) , (·IdR _))) (λ a → ΣPathP ((+n-vec-lid _) , (·IdL _))) ·DistR+ ·DistL+