------------------------------------------------------------------------
-- Properties of the modality semiring.
------------------------------------------------------------------------

import Graded.Modality

module Graded.Modality.Properties
  {a} {M : Set a}
  (open Graded.Modality M)
  (๐•„ : Modality)
  where

open Modality ๐•„

open import Graded.Modality.Properties.Addition semiring-with-meet public
open import Graded.Modality.Properties.Division semiring-with-meet
  public
open import Graded.Modality.Properties.Equivalence semiring-with-meet
  public
open import
  Graded.Modality.Properties.Has-well-behaved-zero semiring-with-meet as H
  public
open import Graded.Modality.Properties.Meet semiring-with-meet public
open import Graded.Modality.Properties.Multiplication semiring-with-meet public
open import Graded.Modality.Properties.PartialOrder semiring-with-meet public
open import Graded.Modality.Properties.Star semiring-with-meet public

open import Tools.Bool

-- Properties that hold if ๐Ÿ˜ is well-behaved also hold if ๐Ÿ˜แต is
-- allowed.

module ๐Ÿ˜แต (ok : T ๐Ÿ˜แต-allowed) where
  open H โฆƒ ๐Ÿ˜-well-behaved = ๐Ÿ˜-well-behaved ok โฆ„ public