Results 1  10
of
52
A New Deconstructive Logic: Linear Logic
, 1995
"... The main concern of this paper is the design of a noetherian and confluent normalization for LK 2 (that is, classical second order predicate logic presented as a sequent calculus). The method we present is powerful: since it allows us to recover as fragments formalisms as seemingly different a ..."
Abstract

Cited by 104 (11 self)
 Add to MetaCart
The main concern of this paper is the design of a noetherian and confluent normalization for LK 2 (that is, classical second order predicate logic presented as a sequent calculus). The method we present is powerful: since it allows us to recover as fragments formalisms as seemingly different as Girard's LC and Parigot's , FD ([9, 11, 27, 31]), delineates other viable systems as well, and gives means to extend the Krivine/Leivant paradigm of `programmingwithproofs' ([22, 23]) to classical logic; it is painless: since we reduce strong normalization and confluence to the same properties for linear logic (for nonadditive proof nets, to be precise) using appropriate embeddings (socalled decorations); it is unifying: it organizes known solutions in a simple pattern that makes apparent the how and why of their making. A comparison of our method to that of embedding LK into LJ (intuitionistic sequent calculus) brings to the fore the latter's defects for these `deconstructi...
A CurryHoward foundation for functional computation with control
 In Proceedings of ACM SIGPLANSIGACT Symposium on Principle of Programming Languages
, 1997
"... We introduce the type theory ¯ v , a callbyvalue variant of Parigot's ¯calculus, as a CurryHoward representation theory of classical propositional proofs. The associated rewrite system is ChurchRosser and strongly normalizing, and definitional equality of the type theory is consistent, com ..."
Abstract

Cited by 77 (3 self)
 Add to MetaCart
We introduce the type theory ¯ v , a callbyvalue variant of Parigot's ¯calculus, as a CurryHoward representation theory of classical propositional proofs. The associated rewrite system is ChurchRosser and strongly normalizing, and definitional equality of the type theory is consistent, compatible with cut, congruent and decidable. The attendant callbyvalue programming language ¯pcf v is obtained from ¯ v by augmenting it by basic arithmetic, conditionals and fixpoints. We study the behavioural properties of ¯pcf v and show that, though simple, it is a very general language for functional computation with control: it can express all the main control constructs such as exceptions and firstclass continuations. Prooftheoretically the dual ¯ v constructs of naming and ¯abstraction witness the introduction and elimination rules of absurdity respectively. Computationally they give succinct expression to a kind of generic (forward) "jump" operator, which may be regarded as a unif...
A semantic view of classical proofs  typetheoretic, categorical, and denotational characterizations (Extended Abstract)
 IN PROCEEDINGS OF LICS '96
, 1996
"... Classical logic is one of the best examples of a mathematical theory that is truly useful to computer science. Hardware and software engineers apply the theory routinely. Yet from a foundational standpoint, there are aspects of classical logic that are problematic. Unlike intuitionistic logic, class ..."
Abstract

Cited by 30 (2 self)
 Add to MetaCart
Classical logic is one of the best examples of a mathematical theory that is truly useful to computer science. Hardware and software engineers apply the theory routinely. Yet from a foundational standpoint, there are aspects of classical logic that are problematic. Unlike intuitionistic logic, classical logic is often held to be nonconstructive, and so, is said to admit no proof semantics. To draw an analogy in the proofsas programs paradigm, it is as if we understand well the theory of manipulation between equivalent specifications (which we do), but have comparatively little foundational insight of the process of transforming one program to another that implements the same specification. This extended abstract outlines a semantic theory of classical proofs based on a variant of Parigot's λµcalculus [24], but presented here as a type theory. After reviewing the conceptual problems in the area and the potential benefits of such a theory, we sketch the key steps of our approach in ...
Sound and Complete Axiomatisations of CallByValue Control Operators
 Math. Structures Comput. Sci
, 1994
"... ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by CApp : (x:C ø (k : ø * 0:k M )) = : (x:C ø ([[M ]])) = j oe*ø (x:C([[M ]])) which is the required expression since x:C oe ([[M ]]) is the abstraction of [[M ]] wrt. x in V. Application. Let \Gamma ` M : oe * ø ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
ion. Let \Gamma; x : oe ` M : ø . [[x : oe:M ]] = : (oe * ø ) * 0: (x : oe:M ) = by CApp : (x:C ø (k : ø * 0:k M )) = : (x:C ø ([[M ]])) = j oe*ø (x:C([[M ]])) which is the required expression since x:C oe ([[M ]]) is the abstraction of [[M ]] wrt. x in V. Application. Let \Gamma ` M : oe * ø and \Gamma ` N : oe. [[M N ]] = by definition of [[:]] : ø * 0: (M N ) = by App : ((m:m N ) M ) = by Conv :(m: (m N )) M = by BetaV :(k:k M ) (m: (m N )) = by Ass :(k:k M ) (m:(n:( (m n))) N ) = by BetaV :(k:k M ) (m:(l:l N ) (n:( (m n)))) = by definition of app. app([[M ]]; [[N ]]) Complete axiomatisations of control operators 17 A operator. Let \Gamma ` M : 0. [[A oe (M )]] = by definition : oe * 0: (A oe (M )) = by AAbs :A 0 (M ) = by A 0 Id :M = by Ident :(x : 0:x) M = by BetaV :(k:k M )(x : 0:x) = A oe ([[M ]]) C operator. If \Gamma ` M : (oe * 0) * 0 then [[C oe (M )]] = : oe * 0: C(M ) = by CNat :C 0 (k : 0 * 0:M (x : oe:k ( x))) = by 0Endo and Ident :C 0...
Arithmetical proofs of strong normalization results for symmetric λcalculi
"... symmetric λµcalculus ..."
A CPSTranslation of the λµCalculus
, 1994
"... We present a translation of Parigot's λµcalculus [10] into the usual λcalculus. This translation, which is based on the socalled continuation passing style, is correct with respect to equality and with respect to evaluation. At the type level, it induces a logical interpretation of classica ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
We present a translation of Parigot's λµcalculus [10] into the usual λcalculus. This translation, which is based on the socalled continuation passing style, is correct with respect to equality and with respect to evaluation. At the type level, it induces a logical interpretation of classical logic into intuitionistic one, akin to Kolmogorov's negative translation. As a byproduct, we get the normalization of second order typed λµcalculus.
A Constructive Formalization of the Catch and Throw Mechanism
 Conf. Rec. IEEE Symposium on Logic in Computer Science
, 1992
"... The catch/throw mechanism is a programming construct for nonlocal exit. In the practical programming, this mechanism plays an important role when programmers handle exceptional situations. In this paper we give a constructive formalization which captures the mechanism in the proofsasprograms noti ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
The catch/throw mechanism is a programming construct for nonlocal exit. In the practical programming, this mechanism plays an important role when programmers handle exceptional situations. In this paper we give a constructive formalization which captures the mechanism in the proofsasprograms notion. We introduce a modified version of LJ equipped with inference rules corresponding to the operations of catch and throw. Then we show that we can actually extract programs which make use of the catch/throw mechanism from proofs under a certain realizability interpretation. Although the catch/throw mechanism provides only a restricted access to the current continuation, the formulation remains constructive in contrast to the works due to Griffin and Murthy on more powerful facilities such as call/cc (callwithcurrentcontinuation) of Scheme.
The Formal Relationship Between Direct and ContinuationPassing Style Optimizing Compilers: A Synthesis of Two Paradigms
, 1994
"... Compilers for higherorder programming languages like Scheme, ML, and Lisp can be broadly characterized as either "direct compilers" or "continuationpassing style (CPS) compilers", depending on their main intermediate representation. Our central result is a precise correspondenc ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
Compilers for higherorder programming languages like Scheme, ML, and Lisp can be broadly characterized as either "direct compilers" or "continuationpassing style (CPS) compilers", depending on their main intermediate representation. Our central result is a precise correspondence between the two compilation strategies. Starting from
Three Steps for the CPS Transformation
, 1991
"... Transforming a #term into continuationpassing style (CPS) might seem mystical at first, but in fact it can be characterized by three separate aspects: . The values of all intermediate applications are given a name. . The evaluation of these applications is sequentialized based on a traversal o ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Transforming a #term into continuationpassing style (CPS) might seem mystical at first, but in fact it can be characterized by three separate aspects: . The values of all intermediate applications are given a name. . The evaluation of these applications is sequentialized based on a traversal of their syntax tree. This traversal mimics the reduction strategy. . The resulting term is equipped with a continuation  a #abstraction whose application to intermediate values yields the final result of the whole evaluation. The first point is fulfilled using the uniform naming mechanism of #abstraction (Church encoding), which explains why continuations are represented as functions. The second point justifies why CPS terms are evaluationorder independent  their evaluation order is determined by the syntax tree traversal of the CPS transformation. The third point captures the essence of the CPS transformation. We have staged Fischer and Plotkin's original CPS transformer accordin...
Reasoning About Functional Programs in Nuprl
 In Functional Programming, Concurrency, Simulation and Automated Reasoning
, 1993
"... . There are two ways of reasoning about functional programs in the constructive type theory of the Nuprl proof development system. Nuprl can be used in a conventional programverification mode, in which functional programs are written in a familiar style and then proven to be correct. It can als ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
. There are two ways of reasoning about functional programs in the constructive type theory of the Nuprl proof development system. Nuprl can be used in a conventional programverification mode, in which functional programs are written in a familiar style and then proven to be correct. It can also be used in an extraction mode, where programs are not written explicitly, but instead are extracted from mathematical proofs. Nuprl is the only constructive type theory to support both of these approaches. These approaches are illustrated by applying Nuprl to Boyer and Moore's "majority" algorithm. 1 Introduction A type system for a functional programming language can be syntactic or semantic. In a syntactically typed language, such as SML 1 [25], typing is a property of the syntax of expressions. Only certain combinations of language constructs are designated "welltyped", and only welltyped expressions are given a meaning. Each welltyped expression has a type which can be derive...