148 research outputs found
Handling Fibred Algebraic Effects
International audienceWe study algebraic computational effects and their handlers in the dependently typed setting. We describecomputational effects using a generalisation of Plotkin and Pretnarâs effect theories, whose dependentlytyped operations allow us to capture precise notions of computation, e.g., state with location-dependent storetypes and dependently typed update monads. Our treatment of handlers is based on an observation that theirconventional term-level definition leads to unsound program equivalences being derivable in languages thatinclude a notion of homomorphism. We solve this problem by giving handlers a novel type-based treatmentvia a new computation type, the user-defined algebra type, which pairs a value type (the carrier) with a set ofvalue terms (the operations), capturing Plotkin and Pretnarâs insight that effect handlers denote algebras. Wethen show that the conventional presentation of handlers can be routinely derived, and demonstrate that thistype-based treatment of handlers provides a useful mechanism for reasoning about effectful computations.We also equip the resulting language with a sound denotational semantics based on families fibrations
Exploring the Boundaries of Monad Tensorability on Set
We study a composition operation on monads, equivalently presented as large
equational theories. Specifically, we discuss the existence of tensors, which
are combinations of theories that impose mutual commutation of the operations
from the component theories. As such, they extend the sum of two theories,
which is just their unrestrained combination. Tensors of theories arise in
several contexts; in particular, in the semantics of programming languages, the
monad transformer for global state is given by a tensor. We present two main
results: we show that the tensor of two monads need not in general exist by
presenting two counterexamples, one of them involving finite powerset (i.e. the
theory of join semilattices); this solves a somewhat long-standing open
problem, and contrasts with recent results that had ruled out previously
expected counterexamples. On the other hand, we show that tensors with bounded
powerset monads do exist from countable powerset upwards
Computational effects and operations: an overview
We overview a programme to provide a unified semantics for computational effects
based upon the notion of a countable enriched Lawvere theory. We define the notion
of countable enriched Lawvere theory, show how the various leading examples of
computational effects, except for continuations, give rise to them, and we compare
the definition with that of a strong monad. We outline how one may use the notion
to model three natural ways in which to combine computational effects: by their
sum, by their commutative combination, and by distributivity. We also outline a
unified account of operational semantics. We present results we have already shown,
some partial results, and our plans for further development of the programme
Combining Effects: Sum and Tensor
AbstractWe seek a unified account of modularity for computational effects. We begin by reformulating Moggi's monadic paradigm for modelling computational effects using the notion of enriched Lawvere theory, together with its relationship with strong monads; this emphasises the importance of the operations that produce the effects. Effects qua theories are then combined by appropriate bifunctors on the category of theories. We give a theory for the sum of computational effects, which in particular yields Moggi's exceptions monad transformer and an interactive input/output monad transformer. We further give a theory of the commutative combination of effects, their tensor, which yields Moggi's side-effects monad transformer. Finally, we give a theory of operation transformers, for redefining operations when adding new effects; we derive explicit forms for the operation transformers associated to the above monad transformers
Combining computational effects: commutativity and sum
We begin to develop a unified account of modularity for computational effects. We use the notion of enriched Lawvere theory, together with its relationship with strong monads, to reformulate Moggiâs
paradigm for modelling computational effects; we emphasise the importance here of the operations that induce computational effects. Effects
qua theories are then combined by appropriate bifunctors (on the category of theories). We give a theory of the commutative combination of
effects, which in particular yields Moggiâs side-effects monad transformer
(an application is the combination of side-effects with nondeterminism).
And we give a theory for the sum of computational effects, which in particular yields Moggiâs exceptions monad transformer (an application is
the combination of exceptions with other effects)
Enriched Lawvere Theories for Operational Semantics
Enriched Lawvere theories are a generalization of Lawvere theories that allow
us to describe the operational semantics of formal systems. For example, a
graph enriched Lawvere theory describes structures that have a graph of
operations of each arity, where the vertices are operations and the edges are
rewrites between operations. Enriched theories can be used to equip systems
with operational semantics, and maps between enriching categories can serve to
translate between different forms of operational and denotational semantics.
The Grothendieck construction lets us study all models of all enriched theories
in all contexts in a single category. We illustrate these ideas with the
SKI-combinator calculus, a variable-free version of the lambda calculus.Comment: In Proceedings ACT 2019, arXiv:2009.0633
A Coalgebraic Semantics for Imperative Programming Languages
In the theory of programming languages, one often takes two complementary perspectives. In operational semantics, one defines and reasons about the behaviour of programs; and in denotational semantics, one abstracts away implementation details, and reasons about programs as mathematical objects or denotations. The denotational semantics should be compositional, meaning that denotations of programs are determined by the denotations of their parts. It should also be adequate with respect to operational equivalence: programs with the same denotation should be behaviourally indistinguishable. One often has to prove adequacy and compositionality independently for different languages, and the proofs are often laborious and repetitive. These proofs were provided systematically in the context of process algebras by the mathematical operational semantics framework of Turi and Plotkin â which represented transition systems as coalgebras, and program syntax by free algebras; operational specifications were given by distributive laws of syntax over behaviour. By framing the semantics on this abstract level, one derives denotational and operational semantics which are guaranteed to be adequate and compositional for a wide variety of examples.
However, despite speculation on the possibility, it is hard to apply the framework to programming languages, because one obtains undesirably fine-grained behavioural equivalences, and unconventional notions of operational semantics. Moreover, the behaviour of these languages is often formalised in a different way â such as computational effects, which may be thought of as an interface between programs and external factors such as non-determinism or a variable store; and comodels, or transition systems which implement these effects.
This thesis adapts the mathematical operational semantics framework to provide semantics for various classes of programming languages. After identifying the need for such an adaptation, we show how program behaviour may be characterised by final coalgebras in suitably order- enriched Kleisli categories. We define both operational and denotational semantics, first for languages with syntactic effects, and then for languages with effects and/or comodels given by a Lawvere theory. To ensure adequacy and compositionality, we define concrete and abstract operational rule-formats for these languages, based on the idea of evaluation-in-context; we give syntactic and then categorical proofs that those properties are guaranteed by operational specifications in these rule-formats.Open Acces
- âŠ