17 research outputs found
Stateful Runners of Effectful Computations
AbstractWhat structure is required of a set so that computations in a given notion of computation can be run statefully with this set as the state set? For running nondeterministic computations statefully, a resolver structure is needed; for interactive I/O computations, a âresponder-listenerâ structure is necessary; to be able to serve stateful computations, the set must carry the structure of a lens. We show that, in general, to be a stateful runner of computations for a monad corresponding to a Lawvere theory (defined as a set equipped with a monad morphism between the given monad and the state monad for this set) is the same as to be a comodel of the theory, i.e., a coalgebra of the corresponding comonad. We work out a number of instances of this observation and also compare runners to handlers
Runners in action
Runners of algebraic effects, also known as comodels, provide a mathematical
model of resource management. We show that they also give rise to a programming
concept that models top-level external resources, as well as allows programmers
to modularly define their own intermediate "virtual machines". We capture the
core ideas of programming with runners in an equational calculus
, which we equip with a sound and coherent
denotational semantics that guarantees the linear use of resources and
execution of finalisation code. We accompany with
examples of runners in action, provide a prototype language implementation in
OCaml, as well as a Haskell library based on .Comment: ESOP 2020 final version + online appendi
Algebraic and coalgebraic perspectives on interaction laws
Monad algebras, turning computations over return values into values, are used to handle algebraic effects invoked by programs, whereas comonad coalgebras, turning initial states into environments (âcocomputationsâ) over states, describe production of coalgebraic coeffects that can respond to effects. (Monad-comonad) interaction laws by Katsumata et al. describe interaction protocols between a computation and an environment. We show that any triple of those devices can be combined into a single algebra handling computations over state predicates. This method yields an isomorphism between the category of interaction laws, and the category of so-called merge functors which merge algebras and coalgebras to form combined algebras. In a similar vein, we can combine interaction laws with coalgebras only, retrieving Uustaluâs stateful runners. If instead we combine interaction laws with algebras only, we get a novel concept of continuation-based runners that lift an environment of value predicates to a single predicate on computations of values. We use these notions to study different running examples of interactions of computations and environments.T.U. was supported by the Icelandic Research Fund project grant no. 196323-052 and by the Estonian Ministry of Education and Research institutional research grant no. IUT33-13. N.V. was supported by the Estonian IT Academy research measure (the European Social Fund project no. 2014-2020.4.05.19-0001).Post-prin
Interaction laws of monads and comonads
We introduce and study functor-functor and monad-comonad interaction laws as
mathematical objects to describe interaction of effectful computations with
behaviors of effect-performing machines. Monad-comonad interaction laws are
monoid objects of the monoidal category of functor-functor interaction laws. We
show that, for suitable generalizations of the concepts of dual and Sweedler
dual, the greatest functor resp. monad interacting with a given functor or
comonad is its dual while the greatest comonad interacting with a given monad
is its Sweedler dual. We relate monad-comonad interaction laws to stateful
runners. We show that functor-functor interaction laws are Chu spaces over the
category of endofunctors taken with the Day convolution monoidal structure.
Hasegawa's glueing endows the category of these Chu spaces with a monoidal
structure whose monoid objects are monad-comonad interaction laws
Stream processors and comodels
In 2009, Hancock, Pattinson and Ghani gave a coalgebraic characterisation of
stream processors drawing on ideas of
Brouwerian constructivism. Their stream processors have an intensional
character; in this paper, we give a corresponding coalgebraic characterisation
of extensional stream processors, i.e., the set of continuous functions
. Our account sites both our result and that of
op. cit. within the apparatus of comodels for algebraic effects originating
with Power-Shkaravska. Within this apparatus, the distinction between
intensional and extensional equivalence for stream processors arises in the
same way as the the distinction between bisimulation and trace equivalence for
labelled transition systems and probabilistic generative systems.Comment: 24 pages; v4: final accepted versio
Relational reasoning for effects and handlers
This thesis studies relational reasoning techniques for FRANK, a strict functional language supporting algebraic effects and their handlers, within a general, formalised
approach for completely characterising observational equivalence.
Algebraic effects and handlers are an emerging paradigm for representing computational effects where primitive operations, which give rise to an effect, are primary,
and given semantics through their interpretation by effect handlers. FRANK is a novel
point in the design space because it recasts effect handling as part of a generalisation
of call-by-value function application. Furthermore, FRANK generalises unary effect
handlers to the n-ary notion of multihandlers, supporting more elegant expression of
certain handlers.
There have been recent efforts to develop sound reasoning principles, with respect
to observational equivalence, for languages supporting effects and handlers. Such
techniques support powerful equational reasoning about code, such as substitution of
equivalent sub-terms (âequals for equalsâ) in larger programs. However, few studies have considered a complete characterisation of observational equivalence, and its
implications for reasoning techniques. Furthermore, there has been no account of reasoning principles for FRANK programs.
Our first contribution is a formal reconstruction of a general proof technique, triangulation, for proving completeness results for observational equivalence. The technique brackets observational equivalence between two structural relations, a logical
and an applicative notion. We demonstrate the triangulation proof method for a pure
simply-typed λ-calculus. We show that such results are readily formalisable in an implementation of type theory, specifically AGDA, using state-of-the-art technology for
dealing with syntaxes with binding.
Our second contribution is a calculus, ELLA, capturing the essence of FRANKâs
novel design. In particular, ELLA supports binary handlers and generalises function
application to incorporate effect handling. We extend our triangulation proof technique to this new setting, completely characterising observational equivalence for this
calculus. We report on our partial progress in formalising our extension to ELLA in
AGDA.
Our final contribution is the application of sound reasoning principles, inspired by
existing literature, to a variety of ELLA programs, including a proof of associativity
for a canonical pipe multihandler. Moreover, we show how leveraging completeness
leads, in certain instances, to simpler proofs of observational equivalence
Stream Processors and Comodels
In 2009, Ghani, Hancock and Pattinson gave a coalgebraic characterisation of stream processors A^? ? B^? drawing on ideas of Brouwerian constructivism. Their stream processors have an intensional character; in this paper, we give a corresponding coalgebraic characterisation of extensional stream processors, i.e., the set of continuous functions A^? ? B^?. Our account sites both our result and that of op. cit. within the apparatus of comodels for algebraic effects originating with Power-Shkaravska
Slice Nondeterminism
This paper studies a technique for describing and formalising nondeterministic functions, using slice categories. Results of a nondeterministic function are modelled by an object of the slice category over the codomain of the function, which is an indexed family over the codomain. Two such families denote the same set of results if slice morphisms exist between them in both directions. We formulate the category of nondeterministic functions by expressing a set of possible results as an equivalence class of objects. If we allow families to use any indexing set, this category will be equivalent to the category of relations. When we limit ourselves to a smaller universe of indexing sets, we get a subcategory which more closely resembles nondeterministic programs. We compare this category with other representations of the category of relations, and see how many properties can be carried over, such as its product, coproduct and other monoidal structures. We can describe inductive nondeterministic structures by lifting free monads from the category of sets. Moreover, due to the intensional nature of the slice representation, nondeterministic processes are easily represented, such as interleaving concurrency and labelled transition systems. This paper has been formalised in Agda
Continuous Functions on Final Comodels of Free Algebraic Theories
In 2009, Ghani, Hancock and Pattinson gave a tree-like representation of
stream processors . In 2021, Garner
showed that this representation can be established in terms of algebraic theory
and comodels: the set of infinite streams is the final comodel
of the algebraic theory of -valued input and the set of
stream processors can be seen as
the final --bimodel. In this paper, we generalize
Garner's results to the case of free algebraic theories.Comment: 17 page