669 research outputs found
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
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
Breaking a monad-comonad symmetry between computational effects
Computational effects may often be interpreted in the Kleisli category of a
monad or in the coKleisli category of a comonad. The duality between monads and
comonads corresponds, in general, to a symmetry between construction and
observation, for instance between raising an exception and looking up a state.
Thanks to the properties of adjunction one may go one step further: the
coKleisli-on-Kleisli category of a monad provides a kind of observation with
respect to a given construction, while dually the Kleisli-on-coKleisli category
of a comonad provides a kind of construction with respect to a given
observation. In the previous examples this gives rise to catching an exception
and updating a state. However, the interpretation of computational effects is
usually based on a category which is not self-dual, like the category of sets.
This leads to a breaking of the monad-comonad duality. For instance, in a
distributive category the state effect has much better properties than the
exception effect. This remark provides a novel point of view on the usual
mechanism for handling exceptions. The aim of this paper is to build an
equational semantics for handling exceptions based on the coKleisli-on-Kleisli
category of the monad of exceptions. We focus on n-ary functions and
conditionals. We propose a programmer's language for exceptions and we prove
that it has the required behaviour with respect to n-ary functions and
conditionals.Comment: arXiv admin note: substantial text overlap with arXiv:1310.060
Adjunctions for exceptions
An algebraic method is used to study the semantics of exceptions in computer
languages. The exceptions form a computational effect, in the sense that there
is an apparent mismatch between the syntax of exceptions and their intended
semantics. We solve this apparent contradiction by efining a logic for
exceptions with a proof system which is close to their syntax and where their
intended semantics can be seen as a model. This requires a robust framework for
logics and their morphisms, which is provided by categorical tools relying on
adjunctions, fractions and limit sketches.Comment: In this Version 2, minor improvements are made to Version
Healthiness from Duality
Healthiness is a good old question in program logics that dates back to
Dijkstra. It asks for an intrinsic characterization of those predicate
transformers which arise as the (backward) interpretation of a certain class of
programs. There are several results known for healthiness conditions: for
deterministic programs, nondeterministic ones, probabilistic ones, etc.
Building upon our previous works on so-called state-and-effect triangles, we
contribute a unified categorical framework for investigating healthiness
conditions. We find the framework to be centered around a dual adjunction
induced by a dualizing object, together with our notion of relative
Eilenberg-Moore algebra playing fundamental roles too. The latter notion seems
interesting in its own right in the context of monads, Lawvere theories and
enriched categories.Comment: 13 pages, Extended version with appendices of a paper accepted to
LICS 201
States and exceptions considered as dual effects
In this paper we consider the two major computational effects of states and
exceptions, from the point of view of diagrammatic logics. We get a surprising
result: there exists a symmetry between these two effects, based on the
well-known categorical duality between products and coproducts. More precisely,
the lookup and update operations for states are respectively dual to the throw
and catch operations for exceptions. This symmetry is deeply hidden in the
programming languages; in order to unveil it, we start from the monoidal
equational logic and we add progressively the logical features which are
necessary for dealing with either effect. This approach gives rise to a new
point of view on states and exceptions, which bypasses the problems due to the
non-algebraicity of handling exceptions
Generic Trace Semantics via Coinduction
Trace semantics has been defined for various kinds of state-based systems,
notably with different forms of branching such as non-determinism vs.
probability. In this paper we claim to identify one underlying mathematical
structure behind these "trace semantics," namely coinduction in a Kleisli
category. This claim is based on our technical result that, under a suitably
order-enriched setting, a final coalgebra in a Kleisli category is given by an
initial algebra in the category Sets. Formerly the theory of coalgebras has
been employed mostly in Sets where coinduction yields a finer process semantics
of bisimilarity. Therefore this paper extends the application field of
coalgebras, providing a new instance of the principle "process semantics via
coinduction."Comment: To appear in Logical Methods in Computer Science. 36 page
- …