Results 1  10
of
30
Separation logic for higherorder store
 Pages 575–590 of: Computer Science Logic. Lecture Notes in Computer Science
, 2006
"... Abstract. Separation Logic is a substructural logic that supports local reasoning for imperative programs. It is designed to elegantly describe sharing and aliasing properties of heap structures, thus facilitating the verification of programs with pointers. In past work, separation logic has been d ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Abstract. Separation Logic is a substructural logic that supports local reasoning for imperative programs. It is designed to elegantly describe sharing and aliasing properties of heap structures, thus facilitating the verification of programs with pointers. In past work, separation logic has been developed for heaps containing records of basic data types. Languages like C or ML, however, also permit the use of code pointers. The corresponding heap model is commonly referred to as “higherorder store ” since heaps may contain commands which in turn are interpreted as partial functions between heaps. In this paper we make Separation Logic and the benefits of local reasoning available to languages with higherorder store. In particular, we introduce an extension of the logic and prove it sound, including the Frame Rule that enables specifications of code to be extended by invariants on parts of the heap that are not accessed. 1
Eager normal form bisimulation
 In Proc. 20th Annual IEEE Symposium on Logic in Computer Science
, 2005
"... Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we prese ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Abstract. Normal form bisimulation is a powerful theory of program equivalence, originally developed to characterize LévyLongo tree equivalence and Boehm tree equivalence. It has been adapted to a range of untyped, higherorder calculi, but types have presented a difficulty. In this paper, we present an account of normal form bisimulation for types, including recursive types. We develop our theory for a continuationpassing style calculus, JumpWithArgument (JWA), where normal form bisimilarity takes a very simple form. We give a novel congruence proof, based on insights from game semantics. A notable feature is the seamless treatment of etaexpansion. We demonstrate the normal form bisimulation proof principle by using it to establish a syntactic minimal invariance result and the uniqueness of the fixed point operator at each type.
CallByPushValue: Decomposing CallByValue And CallByName
"... We present the callbypushvalue (CBPV) calculus, which decomposes the typed callbyvalue (CBV) and typed callbyname (CBN) paradigms into finegrain primitives. On the operational side, we give bigstep semantics and a stack machine for CBPV, which leads to a straightforward push/pop reading of ..."
Abstract

Cited by 8 (3 self)
 Add to MetaCart
We present the callbypushvalue (CBPV) calculus, which decomposes the typed callbyvalue (CBV) and typed callbyname (CBN) paradigms into finegrain primitives. On the operational side, we give bigstep semantics and a stack machine for CBPV, which leads to a straightforward push/pop reading of CBPV programs. On the denotational side, we model CBPV using cpos and, more generally, using algebras for a strong monad. For storage, we present an O’Hearnstyle “behaviour semantics” that does not use a monad. We present the translations from CBN and CBV to CBPV. All these translations straightforwardly preserve denotational semantics. We also study their operational properties: simulation and full abstraction. We give an equational theory for CBPV, and show it equivalent to a categorical semantics using monads and algebras. We use this theory to formally compare CBPV to Filinski’s variant of the monadic metalanguage, as well as to Marz’s language SFPL, both of which have essentially the same type structure as CBPV. We also discuss less formally the differences between the CBPV and monadic frameworks.
Enriching an Effect Calculus with Linear Types
"... Abstract. We define an enriched effect calculus by extending a type theory for computational effects with primitives from linear logic. The new calculus provides a formalism for expressing linear aspects of computational effects; for example, the linear usage of imperative features such as state and ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
Abstract. We define an enriched effect calculus by extending a type theory for computational effects with primitives from linear logic. The new calculus provides a formalism for expressing linear aspects of computational effects; for example, the linear usage of imperative features such as state and/or continuations. Our main syntactic result is the conservativity of the enriched effect calculus over a basic effect calculus without linear primitives (closely related to Moggi’s computational metalanguage, Filinski’s effect PCF and Levy’s callbypushvalue). The proof of this syntactic theorem makes essential use of a categorytheoretic semantics, whose study forms the second half of the paper. Our semantic results include soundness, completeness, the initiality of a syntactic model, and an embedding theorem: every model of the basic effect calculus fully embeds in a model of the enriched calculus. The latter means that our enriched effect calculus is applicable to arbitrary computational effects, answering in the positive a question of Benton and Wadler (LICS 1996). 1
Combining algebraic effects with continuations
, 2007
"... We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor ext ..."
Abstract

Cited by 8 (3 self)
 Add to MetaCart
We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor extend, with effort, to include commonly used combinations of the various algebraic effects with continuations. Continuations also give rise to a third sort of combination, that given by applying the continuations monad transformer to an algebraic effect. We investigate the extent to which sum and tensor extend from algebraic effects to arbitrary monads, and the extent to which Felleisen et al.’s C operator extends from continuations to its combination with algebraic effects. To do all this, we use Dubuc’s characterisation of strong monads in terms of enriched large Lawvere theories.
Algebraic foundations for effectdependent optimisations
 In POPL
, 2012
"... We present a general theory of Giffordstyle type and effect annotations, where effect annotations are sets of effects. Generality is achieved by recourse to the theory of algebraic effects, a development of Moggi’s monadic theory of computational effects that emphasises the operations causing the e ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
We present a general theory of Giffordstyle type and effect annotations, where effect annotations are sets of effects. Generality is achieved by recourse to the theory of algebraic effects, a development of Moggi’s monadic theory of computational effects that emphasises the operations causing the effects at hand and their equational theory. The key observation is that annotation effects can be identified with operation symbols. We develop an annotated version of Levy’s CallbyPushValue language with a kind of computations for every effect set; it can be thought of as a sequential, annotated intermediate language. We develop a range of validated optimisations (i.e., equivalences), generalising many existing ones and adding new ones. We classify these optimisations as structural, algebraic, or abstract: structural optimisations always hold; algebraic ones depend on the effect theory at hand; and abstract ones depend on the global nature of that theory (we give modularlycheckable sufficient conditions for their validity).
Monads and Adjunctions for Global Exceptions
, 2006
"... In this paper, we look at two categorical accounts of computational effects (strong monad as a model of the monadic metalanguage, adjunction as a model of callbypushvalue with stacks), and we adapt them to incorporate global exceptions. In each case, we extend the calculus with a construct, due t ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
In this paper, we look at two categorical accounts of computational effects (strong monad as a model of the monadic metalanguage, adjunction as a model of callbypushvalue with stacks), and we adapt them to incorporate global exceptions. In each case, we extend the calculus with a construct, due to Benton and Kennedy, that fuses exception handling with sequencing. This immediately gives us an equational theory, simply by adapting the equations for sequencing. We study the categorical semantics of the two equational theories. In the case of the monadic metalanguage, we see that a monad supporting exceptions is a coalgebra for a certain comonad. We further show, using Beck’s theorem, that, on a category with equalizers, the monad constructor for exceptions gives all such monads. In the case of callbypushvalue (CBPV) with stacks, we generalize the notion of CBPV adjunction so that a stack awaiting a value can deal both with a value being returned, and with an exception being raised. We see how to obtain a model of exceptions from a CBPV adjunction, and vice versa by restricting to those stacks that are homomorphic with respect to exception raising.
Linearlyused continuations in an enriched effect calculus
 In preparation
, 2009
"... Abstract. The enriched effect calculus is an extension of Moggi’s computational metalanguage with a selection of primitives from linear logic. In this paper, we present an extended case study within the enriched effect calculus: the linear usage of continuations. We show that established callbyval ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Abstract. The enriched effect calculus is an extension of Moggi’s computational metalanguage with a selection of primitives from linear logic. In this paper, we present an extended case study within the enriched effect calculus: the linear usage of continuations. We show that established callbyvalue and callby name linearlyused CPS translations are uniformly captured by a single generic translation of the enriched effect calculus into itself. As a main syntactic theorem, we prove that the generic translation is involutive up to isomorphism. As corollaries, we obtain full completeness results for the original callbyvalue and callbyname translations. The main syntactic theorem is proved using a categorytheoretic semantics for the enriched effect calculus. We show that models are closed under a natural dual model construction. The canonical linearlyused CPS translation then arises as the unique (up to isomorphism) map from the syntactic initial model to its own dual. This map is an equivalence of models. Thus the initial model is selfdual. 1
Handlers in Action
"... We lay operational foundations for effect handlers. Introduced by Plotkin and Pretnar, effect handlers are a novel programming construct that generalises exception handlers, handling a range of computational effects, such as I/O, state, and nondeterminism. We propose a smallstep structural operatio ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
We lay operational foundations for effect handlers. Introduced by Plotkin and Pretnar, effect handlers are a novel programming construct that generalises exception handlers, handling a range of computational effects, such as I/O, state, and nondeterminism. We propose a smallstep structural operational semantics for a higherorder calculus of effect handlers, along with a sound type and effect system. We explore two alternative effect handler implementation techniques: free monads, and delimited continuations. Finally, we show that Filinski’s monadic reflection can be straightforwardly simulated by effect handlers. 1.
Substructural Logical Specifications
, 2012
"... Any opinions, findings, conclusions or recommendations expressed in this publication are those of the author and A logical framework and its implementation should serve as a flexible tool for specifying, simulating, and reasoning about formal systems. When the formal systems we are interested in exh ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Any opinions, findings, conclusions or recommendations expressed in this publication are those of the author and A logical framework and its implementation should serve as a flexible tool for specifying, simulating, and reasoning about formal systems. When the formal systems we are interested in exhibit state and concurrency, however, existing logical frameworks fall short of this goal. Logical frameworks based on a rewriting interpretation of substructural logics, ordered and linear logic in particular, can help. To this end, this dissertation introduces and demonstrates four methodologies for developing and using substructural logical frameworks for specifying and reasoning about stateful and concurrent systems. Structural focalization is a synthesis of ideas from Andreoli’s focused sequent calculi and Watkins’s hereditary substitution. We can use structural focalization to take a logic and define a restricted form of derivations, the focused derivations, that form the basis of a logical framework. We apply this methodology to define SLS, a logical framework for substructural logical specifications, as a fragment of ordered