Agda-2.5.1.2: A dependently typed functional programming language and proof assistant

Agda.Utils.SemiRing

Synopsis

# Documentation

class SemiRing a where Source #

Minimal complete definition

Methods

ozero :: a Source #

oone :: a Source #

oplus :: a -> a -> a Source #

otimes :: a -> a -> a Source #

Instances

 Source # Occurrence is a complete lattice with least element Mixed and greatest element Unused.It forms a commutative semiring where oplus is meet (glb) and otimes is composition. Both operations are idempotent.For oplus, Unused is neutral (zero) and Mixed is dominant. For otimes, StrictPos is neutral (one) and Unused is dominant. Methods Source # Methods Source # These operations form a semiring if we quotient by the relation "the Occurrence components are equal". Methodsoplus :: Edge -> Edge -> Edge Source # SemiRing a => SemiRing (Maybe a) Source # Methodsoplus :: Maybe a -> Maybe a -> Maybe a Source #otimes :: Maybe a -> Maybe a -> Maybe a Source #

class SemiRing a => StarSemiRing a where Source #

Minimal complete definition

ostar

Methods

ostar :: a -> a Source #

Instances

 Source # Methods Source # As OccursWhere does not have an oplus we cannot do something meaningful for the OccursWhere here.E.g. ostar (Edge JustNeg w) = Edge Mixed (w oplus (w >*< w)) would probably more sense, if we could do it. Methods Source # Methodsostar :: Maybe a -> Maybe a Source #