------------------------------------------------------------------------
-- A definition related to the mode instance Zero-one.
------------------------------------------------------------------------
import Graded.Modality
module Graded.Mode.Instances.Zero-one.Variant
{a} {M : Set a}
(open Graded.Modality M)
(๐ : Modality)
where
open Modality ๐
open import Tools.Bool
------------------------------------------------------------------------
-- The mode variant, either a single mode or two modes.
record Mode-variant : Set a where
no-eta-equality
field
-- Does the mode ๐แต exist?
๐แต-allowed : Bool
-- If mode ๐แต exists the modality is assumed to have a well-behaved
-- zero.
๐-well-behaved :
T ๐แต-allowed โ Has-well-behaved-zero ๐
------------------------------------------------------------------------
-- Mode variant instances
-- A mode variant for which ๐แต is allowed if the boolean is true.
๐แต-allowed-if : (b : Bool) โ (T b โ Has-well-behaved-zero ๐) โ Mode-variant
๐แต-allowed-if b ok = record
{ ๐แต-allowed = b ; ๐-well-behaved = ok }
-- A mode variant for which ๐แต is allowed.
๐แต-Allowed : โฆ ok : Has-well-behaved-zero ๐ โฆ โ Mode-variant
๐แต-Allowed โฆ ok โฆ = ๐แต-allowed-if true ฮป _ โ ok
-- A mode variant for which ๐แต is not allowed.
๐แต-Not-Allowed : Mode-variant
๐แต-Not-Allowed = ๐แต-allowed-if false (ฮป ())