Patterns for computational effects arising from a monad or a comonad
This paper presents equational-based logics for proving first order properties of programming languages involving effects. We propose two dual inference system patterns that can be instanciated with monads or comonads in order to be used for proving properties of different effects. The first pattern...
Saved in:
Main Authors | , , |
---|---|
Format | Journal Article |
Language | English |
Published |
02.10.2013
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | This paper presents equational-based logics for proving first order
properties of programming languages involving effects. We propose two dual
inference system patterns that can be instanciated with monads or comonads in
order to be used for proving properties of different effects. The first pattern
provides inference rules which can be interpreted in the Kleisli category of a
monad and the coKleisli category of the associated comonad. In a dual way, the
second pattern provides inference rules which can be interpreted in the
coKleisli category of a comonad and the Kleisli category of the associated
monad. The logics combine a 3-tier effect system for terms consisting of pure
terms and two other kinds of effects called 'constructors/observers' and
'modifiers', and a 2-tier system for 'up-to-effects' and 'strong' equations.
Each pattern provides generic rules for dealing with any monad (respectively
comonad), and it can be extended with specific rules for each effect. The paper
presents two use cases: a language with exceptions (using the standard monadic
semantics), and a language with state (using the less standard comonadic
semantics). Finally, we prove that the obtained inference system for states is
Hilbert-Post complete. |
---|---|
DOI: | 10.48550/arxiv.1310.0605 |