{-# OPTIONS --safe #-}
module Cubical.Algebra.BooleanRing.Instances.Bool where
open import Cubical.Foundations.Prelude
open import Cubical.Algebra.BooleanRing.Base
open import Cubical.Data.Bool renaming (elim to bool-ind)
open import Cubical.Algebra.CommRing
open BooleanRingStr
open IsBooleanRing
BoolBRStr : BooleanRingStr Bool
𝟘 BoolBRStr   = false
𝟙 BoolBRStr   = true
_+_ BoolBRStr = _⊕_
_·_ BoolBRStr = _and_
- BoolBRStr   = λ x → x
isCommRing (isBooleanRing BoolBRStr) = makeIsCommRing
  isSetBool ⊕-assoc ⊕-identityʳ
  (bool-ind refl refl) ⊕-comm and-assoc
  and-identityʳ (bool-ind (λ _ _ → refl)
  (λ _ _ → refl)) and-comm
·Idem (isBooleanRing BoolBRStr) = bool-ind refl refl
BoolBR : BooleanRing ℓ-zero
BoolBR = Bool , BoolBRStr