7 research outputs found
Unguarded Recursion on Coinductive Resumptions
We study a model of side-effecting processes obtained by starting from a
monad modelling base effects and adjoining free operations using a cofree
coalgebra construction; one thus arrives at what one may think of as types of
non-wellfounded side-effecting trees, generalizing the infinite resumption
monad. Correspondingly, the arising monad transformer has been termed the
coinductive generalized resumption transformer. Monads of this kind have
received some attention in the recent literature; in particular, it has been
shown that they admit guarded iteration. Here, we show that they also admit
unguarded iteration, i.e. form complete Elgot monads, provided that the
underlying base effect supports unguarded iteration. Moreover, we provide a
universal characterization of the coinductive resumption monad transformer in
terms of coproducts of complete Elgot monads.Comment: 47 pages, extended version of
http://www.sciencedirect.com/science/article/pii/S157106611500079
Iteration and labelled iteration
AbstractWe analyse the conventional sum-based representation of iteration from the perspective of programmers, and show that the syntax they suggest is fundamentally not a good representation of Java-style iteration with for, while, break, and continue. We present an alternative syntax, which we call “labelled iteration”, where loops are identified using labels.The languages are analysed: we give denotational and operational semantics, adequacy proofs for both languages, and a translation function from sum-based iteration to labelled iteration
Automatic Differentiation for ML-family languages: correctness via logical relations
We give a simple, direct and reusable logical relations technique for languages with recursive features and partially defined differentiable functions. We do so by working out the case of Automatic Differentiation (AD) correctness: namely, we present a proof of the dual numbers style AD macro correctness for realistic functional languages in the ML-family. We also show how this macro provides us with correct forward- and reverse-mode AD. The starting point was to interpret a functional programming language in a suitable freely generated categorical structure. In this setting, by the universal property of the syntactic categorical structure, the dual numbers AD macro and the basic -cpo-semantics arise as structure preserving functors. The proof follows, then, by a novel logical relations argument. The key to much of our contribution is a powerful monadic logical relations technique for term recursion and recursive types. It provides us with a semantic correctness proof based on a simple approach for denotational semantics, making use only of the very basic concrete model of -cpos
Unguarded Recursion on Coinductive Resumptions
We study a model of side-effecting processes obtained by starting from a
monad modelling base effects and adjoining free operations using a cofree
coalgebra construction; one thus arrives at what one may think of as types of
non-wellfounded side-effecting trees, generalizing the infinite resumption
monad. Correspondingly, the arising monad transformer has been termed the
coinductive generalized resumption transformer. Monads of this kind have
received some attention in the recent literature; in particular, it has been
shown that they admit guarded iteration. Here, we show that they also admit
unguarded iteration, i.e. form complete Elgot monads, provided that the
underlying base effect supports unguarded iteration. Moreover, we provide a
universal characterization of the coinductive resumption monad transformer in
terms of coproducts of complete Elgot monads
Unguarded Recursion on Coinductive Resumptions
AbstractWe study a model of side-effecting processes obtained by starting from a monad modelling base effects and adjoining free operations using a cofree coalgebra construction; one thus arrives at what one may think of as types of non-wellfounded side-effecting trees, generalizing the infinite resumption monad. Types of this kind have received some attention in the recent literature; in particular, it has been shown that they admit guarded iteration. Here, we show that they also admit unguarded iteration, i.e. form complete Elgot monads, provided that the underlying base effect supports unguarded iteration