{-# OPTIONS --safe #-}
module Cubical.Algebra.RingSolver.RawRing where

open import Cubical.Foundations.Prelude
open import Cubical.Data.Sigma
open import Cubical.Data.Nat using ()

open import Cubical.Algebra.RingSolver.AlmostRing hiding (⟨_⟩)

private
  variable
     : Level

record RawRing  : Type (ℓ-suc ) where

  constructor rawring

  field
    Carrier : Type 
    0r      : Carrier
    1r      : Carrier
    _+_     : Carrier  Carrier  Carrier
    _·_     : Carrier  Carrier  Carrier
    -_      : Carrier  Carrier

  infixl 8 _·_
  infixl 7 -_
  infixl 6 _+_

⟨_⟩ : RawRing   Type 
⟨_⟩ = RawRing.Carrier

AlmostRing→RawRing : AlmostRing   RawRing 
AlmostRing→RawRing (almostring Carrier 0r 1r _+_ _·_ -_ isAlmostRing) =
                   rawring Carrier 0r 1r _+_ _·_ -_