Results 1 
9 of
9
Adequacy for algebraic effects
 In 4th FoSSaCS
, 2001
"... We present a logic for algebraic effects, based on the algebraic representation of computational effects by operations and equations. We begin with the acalculus, a minimal calculus which separates values, effects, and computations and thereby canonises the order of evaluation. This is extended to ..."
Abstract

Cited by 30 (16 self)
 Add to MetaCart
We present a logic for algebraic effects, based on the algebraic representation of computational effects by operations and equations. We begin with the acalculus, a minimal calculus which separates values, effects, and computations and thereby canonises the order of evaluation. This is extended to obtain the logic, which is a classical firstorder multisorted logic with higherorder value and computation types, as in Levy’s callbypushvalue, a principle of induction over computations, a free algebra principle, and predicate fixed points. This logic embraces Moggi’s computational λcalculus, and also, via definable modalities, HennessyMilner logic, and evaluation logic, though Hoare logic presents difficulties. 1
Generic Exception Handling and the Java Monad

, 2004
"... We develop an equational de nition of exception monads that characterizes Moggi's exception monad transformer. This axiomatization is then used to de ne an extension of previously described monadindependent computational logics by abnormal termination. Instantiating this generic formalism with ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
We develop an equational de nition of exception monads that characterizes Moggi's exception monad transformer. This axiomatization is then used to de ne an extension of previously described monadindependent computational logics by abnormal termination. Instantiating this generic formalism with the Java monad used in the LOOP project yields in particular the known Hoare calculi with abnormal termination and JML's method speci cations; this opens up the possibility of extending these formalisms by hitherto missing computational features such as I/O and nondeterminism.
A Generic Complete Dynamic Logic for Reasoning about Purity and Effects
 TO APPEAR IN FORMAL ASPECTS OF COMPUTING
"... For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
For a number of programming languages, among them Eiffel, C, Java, and Ruby, Hoarestyle logics and dynamic logics have been developed. In these logics, pre and postconditions are typically formulated using potentially effectful programs. In order to ensure that these pre and postconditions behave like logical formulae (that is, enjoy some kind of referential transparency), a notion of purity is needed. Here, we introduce a generic framework for reasoning about purity and effects. Effects are modelled abstractly and axiomatically, using Moggi’s idea of encapsulation of effects as monads. We introduce a dynamic logic (from which, as usual, a Hoare logic can be derived) whose logical formulae are pure programs in a strong sense. We formulate a set of proof rules for this logic, and prove it to be complete with respect to a categorical semantics. Using dynamic logic, we then develop a relaxed notion of purity which allows for observationally neutral effects such writing on newly allocated memory.
The logic of the partial λcalculus with equality
 In Jerzy Marcinkowski and Andrzej Tarlecki, editors, Computer Science Logic (CSL 04
, 2004
"... Abstract. We investigate the logical aspects of the partial λcalculus with equality, exploiting an equivalence between partial λtheories and partial cartesian closed categories (pcccs) established here. The partial λcalculus with equality provides a fullblown intuitionistic higher order logic, w ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. We investigate the logical aspects of the partial λcalculus with equality, exploiting an equivalence between partial λtheories and partial cartesian closed categories (pcccs) established here. The partial λcalculus with equality provides a fullblown intuitionistic higher order logic, which in a precise sense turns out to be almost the logic of toposes, the distinctive feature of the latter being unique choice. We give a linguistic proof of the generalization of the fundamental theorem of toposes to pcccs with equality; type theoretically, one thus obtains that the partial λcalculus with equality encompasses a MartinLöfstyle dependent type theory. This work forms part of the semantical foundations for the higher order algebraic specification language HasCasl.
Completeness of global evaluation logic
 IN MFCS 06, LNCS 4162
, 2006
"... Monads serve the abstract encapsulation of side effects in semantics and functional programming. Various monadbased specification languages have been introduced in order to express requirements on generic sideeffecting programs. A basic role is played here by global evaluation logic, concerned wit ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Monads serve the abstract encapsulation of side effects in semantics and functional programming. Various monadbased specification languages have been introduced in order to express requirements on generic sideeffecting programs. A basic role is played here by global evaluation logic, concerned with formulae which may be thought of as being universally quantified over the state space; this formalism is the fundament of more advanced logics such as monadbased Hoare logic or dynamic logic. We prove completeness of global evaluation logic for models in cartesian categories with a distinguished Heyting algebra object.
Kleene Monads: Handling Iteration in a Framework of Generic Effects
"... Abstract. Monads are a wellestablished tool for modelling various computational effects. They form the semantic basis of Moggi’s computational metalanguage, the metalanguage of effects for short, which made its way into modern functional programming in the shape of Haskell’s donotation. Standard c ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. Monads are a wellestablished tool for modelling various computational effects. They form the semantic basis of Moggi’s computational metalanguage, the metalanguage of effects for short, which made its way into modern functional programming in the shape of Haskell’s donotation. Standard computational idioms call for specific classes of monads that support additional control operations. Here, we introduce Kleene monads, which additionally feature nondeterministic choice and Kleene star, i.e. nondeterministic iteration, and we provide a metalanguage and a sound calculus for Kleene monads, the metalanguage of control and effects, which is the natural joint extension of Kleene algebra and the metalanguage of effects. This provides a framework for studying abstract program equality focussing on iteration and effects. These aspects are known to have decidable equational theories when studied in isolation. However, it is well known that decidability breaks easily; e.g. the Horn theory of continuous Kleene algebras fails to be recursively enumerable. Here, we prove several negative results for the metalanguage of control and effects; in particular, already the equational theory of the unrestricted metalanguage of control and effects over continuous Kleene monads fails to be recursively enumerable. We proceed to identify a fragment of this language which still contains both Kleene algebra and the metalanguage of effects and for which the natural axiomatisation is complete, and indeed the equational theory is decidable. 1
HasCasl  Integrated functional . . .
, 2004
"... The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and polymorphism, and that contains a functional language as an executabl ..."
Abstract
 Add to MetaCart
The development of programs in modern functional languages such as Haskell calls for a widespectrum specification formalism that supports the type system of such languages, in particular higher order types, type constructors, and polymorphism, and that contains a functional language as an executable subset in order to facilitate rapid prototyping. We lay out the design of HasCasl, a higher order extension of Casl that is geared towards precisely this purpose. Its semantics is tuned to allow program development by specification refinement, while at the same time staying close to the settheoretic semantics of first order Casl. The number of primitive concepts in the logic has been kept as small as possible; advanced concepts, in particular general recursion, can be formulated within the language itself. This document provides a detailed definition of the HasCasl syntax and an informal description of the semantics, building on the existing Casl Summary [CoF].