Results 1 
8 of
8
A syntax for linear logic
 Presented at Conference on Mathematical Foundations of Programming Language Semantics
, 1993
"... Abstract. This tutorial paper provides an introduction to intuitionistic logic and linear logic, and shows how they correspond to type systems for functional languages via the notion of ‘Propositions as Types’. The presentation of linear logic is simplified by basing it on the Logic of Unity. An app ..."
Abstract

Cited by 72 (5 self)
 Add to MetaCart
Abstract. This tutorial paper provides an introduction to intuitionistic logic and linear logic, and shows how they correspond to type systems for functional languages via the notion of ‘Propositions as Types’. The presentation of linear logic is simplified by basing it on the Logic of Unity. An application to the array update problem is briefly discussed. 1
On Bunched Typing
, 2002
"... We study a typing scheme derived from a semantic situation where a single category possesses several closed structures, corresponding to dierent varieties of function type. In this scheme typing contexts are trees built from two (or more) binary combining operations, or in short, bunches. Bunched ..."
Abstract

Cited by 33 (2 self)
 Add to MetaCart
We study a typing scheme derived from a semantic situation where a single category possesses several closed structures, corresponding to dierent varieties of function type. In this scheme typing contexts are trees built from two (or more) binary combining operations, or in short, bunches. Bunched typing and its logical counterpart, bunched implications, have arisen in joint work of the author and David Pym. The present paper gives a basic account of the type system, and then focusses on concrete models that illustrate how it may be understood in terms of resource access and sharing. The most
There's No Substitute for Linear Logic
, 1991
"... Surprisingly, there is not a good fit between a syntax for linear logic in the style of Abramsky, and a semantics in the style of Seely. Notably, the Substitution Lemma is valid if and only if !A and !!A are isomorphic in a canonical way. An alternative syntax is proposed, that has striking parallel ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
Surprisingly, there is not a good fit between a syntax for linear logic in the style of Abramsky, and a semantics in the style of Seely. Notably, the Substitution Lemma is valid if and only if !A and !!A are isomorphic in a canonical way. An alternative syntax is proposed, that has striking parallels to Moggi's language for monads. In the old syntax, some terms look like the identity that should not, and vice versa; the new syntax eliminates this awkwardness. 1 Introduction This paper has two purposes: to show that linear logic has no substitute, and to propose one. The first part presents a standard syntax and semantics for linear logic, and notes some resulting difficulties. The linear logic is that of Girard [Gir87]. The syntax is based on lambda terms, following in the footsteps of Abramsky [Abr90]: the four rules associated with the `of course' type, Weakening, Contraction, Dereliction, and Promotion, are each represented by a separate term form. The semantics is based on categor...
Linear Logic
, 1992
"... this paper we will restrict attention to propositional linear logic. The sequent calculus notation, due to Gentzen [10], uses roman letters for propositions, and greek letters for sequences of formulas. A sequent is composed of two sequences of formulas separated by a `, or turnstile symbol. One may ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
this paper we will restrict attention to propositional linear logic. The sequent calculus notation, due to Gentzen [10], uses roman letters for propositions, and greek letters for sequences of formulas. A sequent is composed of two sequences of formulas separated by a `, or turnstile symbol. One may read the sequent \Delta ` \Gamma as asserting that the multiplicative conjunction of the formulas in \Delta together imply the multiplicative disjunction of the formulas in \Gamma. A sequent calculus proof rule consists of a set of hypothesis sequents, displayed above a horizontal line, and a single conclusion sequent, displayed below the line, as below: Hypothesis1 Hypothesis2 Conclusion 4 Connections to Other Logics
Passivity and independence
 In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science
, 1994
"... Most programming languages have certain phrases (like expressions) which only read information from the state and certain others (like commands) which write information to the state. These are called passive and active phrases respectively. Semantic models which make these distinctions have been har ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
Most programming languages have certain phrases (like expressions) which only read information from the state and certain others (like commands) which write information to the state. These are called passive and active phrases respectively. Semantic models which make these distinctions have been hard to find. For instance, most semantic models have expression denotations that (temporarily) change the state. Common reasoning principles, such as the Hoare’s assignment axiom, are not valid in such models. We define here a semantic model which captures the notions of “change”, “absence of change” and “independent change ” etc. This is done by extending the author’s “linear logic model of state ” with dependence/independence relations so that sequential traces give way to pomset traces. 1
Syntactic Control of Interference for Separation Logic
"... Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with program variables continues to be based on traditional Hoare Logic without taking any benefit of the separation principle. This has led to unwieldy proof rules suffering from lack of clarity as well as questions surrounding their soundness. In this paper, we extend the separation idea to the treatment of variables in Separation Logic, especially Concurrent Separation Logic, using the system of Syntactic Control of Interference proposed by Reynolds in 1978. We extend the original system with permission algebras, making it more powerful and able to deal with the issues of concurrent programs. The result is a streamined presentation of Concurrent Separation Logic, whose rules are memorable and soundness obvious. We also include a discussion of how the new rules impact the semantics and devise static analysis techniques to infer the required permissions automatically. Categories and Subject Descriptors D.3.1 [Programming Languages]:
Imperative Lambda Calculus Revisited
, 1997
"... Imperative Lambda Calculus is a type system designed to combine functional and imperative programming features in an orthogonal fashion without compromising the algebraic properties of functions. It has been noted that the original system is too restrictive and lacks the subject reduction property. ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Imperative Lambda Calculus is a type system designed to combine functional and imperative programming features in an orthogonal fashion without compromising the algebraic properties of functions. It has been noted that the original system is too restrictive and lacks the subject reduction property. We define a revised type system that solves these problems using ideas from Reynolds's Syntactic Control of Interference. We also extend it to handle HindleyMilner style polymorphism and devise type reconstruction algorithms. A sophisticated constraint language is designed to formulate principal types for terms. 1 Introduction The recent research in programming languages has greatly clarified the interaction between imperative and functional programming. The conventional notion that functional programming and imperative statemanipulation are in conflict has been dispelled. Several programming languages have now been designed which combine functions and assignments without destroying algeb...
A linear logic model of state (extended abstract
, 1993
"... We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. Two issues motivate this work: how to describe the semantics of higherorder imperative programming langauges and how to incorporate state manipulation in functional programming languages. The centra ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. Two issues motivate this work: how to describe the semantics of higherorder imperative programming langauges and how to incorporate state manipulation in functional programming languages. The central idea is that a state is linear and “regenerative”, where the latter is the property of a value that generates a new value upon each use. Based on this, we define a type constructor for states and a “modality ” type constructor for regenerative values. Just as Girard’s “of course ” modality allows him to express static values and intuitionistic logic within the framework of linear logic, our regenerative modality allows us to express dynamic values and imperative programs within the same framework. We demonstrate the expressiveness of the model by showing that a higherorder Algollike language can be embedded in it. 1