Results 1  10
of
10
Alias Types for Recursive Data Structures
, 2000
"... Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are severly restricted by the fact that they admit no aliasing. This paper describes a pseudolinear type system that allows a degree of aliasing and memory reuse as well as the ability to define complex recu ..."
Abstract

Cited by 137 (14 self)
 Add to MetaCart
Linear type systems permit programmers to deallocate or explicitly recycle memory, but they are severly restricted by the fact that they admit no aliasing. This paper describes a pseudolinear type system that allows a degree of aliasing and memory reuse as well as the ability to define complex recursive data structures. Our type system can encode conventional linear data structures such as linear lists and trees as well as more sophisticated data structures including cyclic and doublylinked lists and trees. In the latter cases, our type system is expressive enough to represent pointer aliasing and yet safely permit destructive operations such as object deallocation. We demonstrate the flexibility of our type system by encoding two common compiler optimizations: destinationpassing style and DeutschSchorrWaite or "linkreversal" traversal algorithms.
Structural Cut Elimination
 Proceedings of the Tenth Annual Symposium on Logic in Computer Science
, 1995
"... We present new proofs of cut elimination for intuitionistic, classical, and linear sequent calculi. In all cases the proofs proceed by three nested structural inductions, avoiding the explicit use of multisets and termination measures on sequent derivations. This makes them amenable to elegant and ..."
Abstract

Cited by 64 (8 self)
 Add to MetaCart
We present new proofs of cut elimination for intuitionistic, classical, and linear sequent calculi. In all cases the proofs proceed by three nested structural inductions, avoiding the explicit use of multisets and termination measures on sequent derivations. This makes them amenable to elegant and concise implementations in Elf, a constraint logic programming language based on the LF logical framework. 1 Introduction Gentzen's sequent calculi [Gen35] for intuitionistic and classical logic have been the central tool in many prooftheoretical investigations and applications of logic in computer science such as logic programming or automated theorem proving. The central property of sequent calculi is cut elimination (Gentzen's Hauptsatz) which yields consistency of the logic as a corollary. The algorithm for cut elimination may be interpreted computationally, similarly to the way normalization for natural deduction may be viewed as functional computation. For the case of linear logic, ...
A Judgmental Analysis of Linear Logic
, 2003
"... We reexamine the foundations of linear logic, developing a system of natural deduction following MartinL of's separation of judgments from propositions. Our construction yields a clean and elegant formulation that accounts for a rich set of multiplicative, additive, and exponential connectives, ext ..."
Abstract

Cited by 49 (27 self)
 Add to MetaCart
We reexamine the foundations of linear logic, developing a system of natural deduction following MartinL of's separation of judgments from propositions. Our construction yields a clean and elegant formulation that accounts for a rich set of multiplicative, additive, and exponential connectives, extending dual intuitionistic linear logic but differing from both classical linear logic and Hyland and de Paiva's full intuitionistic linear logic. We also provide a corresponding sequent calculus that admits a simple proof of the admissibility of cut by a single structural induction. Finally, we show how to interpret classical linear logic (with or without the MIX rule) in our system, employing a form of doublenegation translation.
Proving Memory Management Invariants for a Language Based on Linear Logic
 In LISP and Functional Programming
, 1992
"... : We develop tools for the rigorous formulation and proof of properties of runtime memory management for a sample programming language based on a linear type system. Two semantics are described, one at a level of observable results of computations and one describing linear connectives in terms of me ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
: We develop tools for the rigorous formulation and proof of properties of runtime memory management for a sample programming language based on a linear type system. Two semantics are described, one at a level of observable results of computations and one describing linear connectives in terms of memorymanagement primitives. The two semantics are proven equivalent and the memorymanagement model is proven to satisfy fundamental correctness criteria for reference counts. 1 Introduction Although much literature on optimization of programs discusses the interaction of program execution and memory management, one does not often find formal statements and proofs regarding this interaction. For instance, a compiler for a functional language may generate code that updates an array inplace instead of copying the entire array, even though this optimization is not always safe. The compiler writer probably does not prove the optimization is safe: the size and complexity of real compilers is on...
Formalising Actors in Linear Logic
 In Proceedings of the International Conference on ObjectOriented Information Systems (OOIS'94
, 1995
"... We present a logical formalism of the actorbased concurrent object oriented computation in terms of the deduction in linear logic. By encoding messages and objects in the actor model as formulae of linear logic, the distributed state of the actor computation, regarded as a configuration, can be rep ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We present a logical formalism of the actorbased concurrent object oriented computation in terms of the deduction in linear logic. By encoding messages and objects in the actor model as formulae of linear logic, the distributed state of the actor computation, regarded as a configuration, can be represented as a multiset of object formulae and message formulae. Methods are encoded as a special form of logical implication describing the effect of the communication between objects and messages. With this logical encoding, actor based concurrent computation can be fully modelled as a deduction procedure in linear logic. In the paper, we provide a detailed mapping of the actor model into the logical system. It is shown that, with such a mapping, the logical semantics of actors can be developed. 1 Introduction Concurrent interaction between objects is an intrinsic feature of object oriented systems. However, this feature has not been formally studied since there seems to exist no agreement...
Confidentiality and Integrity with Untrusted Hosts
, 2000
"... Several securitytyped languages have recently been proposed to enforce security properties such as confidentiality or integrity by type checking. We propose a new securitytyped language, Spl@, that addresses two important limitations of previous approaches. First, existing languages assume that th ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
Several securitytyped languages have recently been proposed to enforce security properties such as confidentiality or integrity by type checking. We propose a new securitytyped language, Spl@, that addresses two important limitations of previous approaches. First, existing languages assume that the underlying execution platform is trusted; this assumption does not scale to distributed computation in which a variety of diffierently trusted hosts are available to execute programs. Our new approach, secure program partitioning, translates programs written assuming complete trust in a single executing host into programs that execute using a collection of variously trusted hosts to perform computation. As the trust configuration of a distributed system evolves, this translation can be performed as necessary for security. Second, many common program transformations do not work in existing securitytyped languages; although they produce equivalent programs, these programs are reject...
Classical Proofs as Programs, Cut Elimination as Computation
, 1998
"... We show that the SN and CR cutelimination procedure on Gentzenstyle classical logic LKT/LKQ, as presented in Danos et al.(1994), is isomorphic to callbyname (CBN) and callbyvalue (CBV) reduction system respectively. Our method is simple. We assign typed terms on intuitionistic decoration of ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We show that the SN and CR cutelimination procedure on Gentzenstyle classical logic LKT/LKQ, as presented in Danos et al.(1994), is isomorphic to callbyname (CBN) and callbyvalue (CBV) reduction system respectively. Our method is simple. We assign typed terms on intuitionistic decoration of LKT/LKQ so as to simulate the cutelimination procedure by ficontraction  i.e. we simulate cutelimination by normalization. As a consequence we revealed that these term assignments are precisely the one which are known as continuation passing style (CPS). We also establish the isomorphism between ¯calculus and our CPS calculus. 1 Introduction Proof theory: There is a long line of proof theoretical approaches to understanding "deconstructive " classical logic. That is, classical logic that has Strongly Normalizing (SN) and confluent (ChurchRosser or CR) cutelimination procedure. This thread began with Girard's linear logic(LL)[9], followed by LC [10] and the logic of unity (LU) [11]....
Reduction as Deduction
 6th Implementation of Functional Languages
, 1994
"... ion as server [x := N ] ffi = !(8m:x(m) \Gammaffi [N ] ffi m ) Stored environment entry [(MN )] ffi z = 9x; y; u:([N ] ffi u\Omega (8v:u(v) \Gammaffi [M ] ffi x\Omega (8f:x(f) \Gammaffi f(y; z)\Omega [y := v] ffi ))) Call by value reduction [(MN )] ffi z = 9x; y:([M ] ffi x\Omega ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
ion as server [x := N ] ffi = !(8m:x(m) \Gammaffi [N ] ffi m ) Stored environment entry [(MN )] ffi z = 9x; y; u:([N ] ffi u\Omega (8v:u(v) \Gammaffi [M ] ffi x\Omega (8f:x(f) \Gammaffi f(y; z)\Omega [y := v] ffi ))) Call by value reduction [(MN )] ffi z = 9x; y:([M ] ffi x\Omega [y := N ] ffi\Omega (8f:x(f) \Gammaffi f(y; z))) Call by name reduction [(MN )] ffi z = 9x; y; u:([M ] ffi x\Omega (8f:x(f) \Gammaffi f(y; z)\Omega (8r:y(r) \Gammaffi [N ] ffi u\Omega (8v:u(v) \Gammaffi r(v)\Omega [y := v] ffi )))) Call by need reduction In the encoding, the behaviour of a function x:e is compiled as transmitting the new function name f , which is itself a channel, via the result channel z and storing the function as a server waiting on the channel f for the input messages (requests) (x; y) where x is the argument and y is the destination channel for the result of the function application. Such an encoding of abstraction provides a general protocol for the c...
Working with Linear Logic in Coq
"... In this paper we describe the encoding of linear logic in the Coq system, a proof assistant for higherorder logic. This process involved encoding a suitable consequence relation, the relevant operators, and some auxiliary theorems and tactics. The encoding allows us to state and prove theorems ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this paper we describe the encoding of linear logic in the Coq system, a proof assistant for higherorder logic. This process involved encoding a suitable consequence relation, the relevant operators, and some auxiliary theorems and tactics. The encoding allows us to state and prove theorems in linear logic, and we demonstrate its use through two examples: a simple blocks world scenario, and the Towers of Hanoi problem.