Results 1  10
of
39
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 102 (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, compatib ..."
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...
Program extraction from classical proofs
 Annals of Pure and Applied Logic
, 1994
"... 1 Introduction It is well known that it is undecidable in general whether a given program meets its specification. In contrast, it can be checked easily by a machine whether a formal proof is correct, and from a constructive proof one can automatically extract a corresponding program, which by its v ..."
Abstract

Cited by 54 (9 self)
 Add to MetaCart
1 Introduction It is well known that it is undecidable in general whether a given program meets its specification. In contrast, it can be checked easily by a machine whether a formal proof is correct, and from a constructive proof one can automatically extract a corresponding program, which by its very construction is correct as well. This at least in principle opens a way to produce correct software, e.g. for safetycritical applications. Moreover, programs obtained from proofs are "commented " in a rather extreme sense. Therefore it is easy to maintain them, and also to adapt them to particular situations. We will concentrate on the question of classical versus constructive proofs. It is known that any classical proof of a specification of the form 8x9yB with B quantifierfree can be transformed into a constructive proof of the same formula. However, when it comes to extraction of a program from a proof obtained in this way, one easily ends up with a mess. Therefore, some refinements of the standard transformation are necessary.
Typed lambdacalculus in classical ZermeloFraenkel set theory
 ARCHIVE OF MATHEMATICAL LOGIC
, 2001
"... In this paper, we develop a system of typed lambdacalculus for the ZermeloFraenkel set theory, in the framework of classical logic. The first, and the simplest system of typed lambdacalculus is the system of simple types, which uses the intuitionistic propositional calculus, with the only connect ..."
Abstract

Cited by 34 (9 self)
 Add to MetaCart
In this paper, we develop a system of typed lambdacalculus for the ZermeloFraenkel set theory, in the framework of classical logic. The first, and the simplest system of typed lambdacalculus is the system of simple types, which uses the intuitionistic propositional calculus, with the only connective #. It is very important, because the well known CurryHoward correspondence between proofs and programs was originally discovered with it, and because it enjoys the normalization property : every typed term is strongly normalizable. It was extended to second order intuitionistic logic, in 1970, by J.Y. Girard[4], under the name of system F, still with the normalization property. More recently, in 1990, the CurryHoward correspondence was extended to classical logic, following Felleisen and Griffin [6] who discovered that the law of Peirce corresponds to control instructions in functional programming
The impact of higherorder state and control effects on local relational reasoning
, 2010
"... Reasoning about program equivalence is one of the oldest problems in semantics. In recent years, useful techniques have been developed, based on bisimulations and logical relations, for reasoning about equivalence in the setting of increasingly realistic languages—languages nearly as complex as ML o ..."
Abstract

Cited by 32 (14 self)
 Add to MetaCart
Reasoning about program equivalence is one of the oldest problems in semantics. In recent years, useful techniques have been developed, based on bisimulations and logical relations, for reasoning about equivalence in the setting of increasingly realistic languages—languages nearly as complex as ML or Haskell. Much of the recent work in this direction has considered the interesting representation independence principles enabled by the use of local state, but it is also important to understand the principles that powerful features like higherorder state and control effects disable. This latter topic has been broached extensively within the framework of game semantics, resulting in what Abramsky dubbed the “semantic cube”: fully abstract gamesemantic characterizations of various axes in the design space of MLlike languages. But when it comes to reasoning about many actual examples, game semantics does not yet supply a useful technique for proving equivalences. In this paper, we marry the aspirations of the semantic cube to the powerful proof method of stepindexed Kripke logical relations. Building on recent work of Ahmed, Dreyer, and Rossberg, we define the first fully abstract logical relation for an MLlike language with recursive types, abstract types, general references and call/cc. We then show how, under orthogonal restrictions to the expressive power of our language—namely, the restriction to firstorder state and/or the removal of call/cc—we can enhance the proving power of our possibleworlds model in correspondingly orthogonal ways, and we demonstrate this proving power on a range of interesting examples. Central to our story is the use of state transition systems to model the way in which properties of local state evolve over time.
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 ...
Biorthogonality, StepIndexing and Compiler Correctness
, 2009
"... We define logical relations between the denotational semantics of a simply typed functional language with recursion and the operational behaviour of lowlevel programs in a variant SECD machine. The relations, which are defined using biorthogonality and stepindexing, capture what it means for a piec ..."
Abstract

Cited by 24 (10 self)
 Add to MetaCart
We define logical relations between the denotational semantics of a simply typed functional language with recursion and the operational behaviour of lowlevel programs in a variant SECD machine. The relations, which are defined using biorthogonality and stepindexing, capture what it means for a piece of lowlevel code to implement a mathematical, domaintheoretic function and are used to prove correctness of a simple compiler. The results have been formalized in the Coq proof assistant.
A formulaeastypes interpretation of subtractive logic
 Journal of Logic and Computation
, 2004
"... We present a formulaeastypes interpretation of Subtractive Logic (i.e. biintuitionistic logic). This presentation is twofold: we first define a very natural restriction of the λµcalculus which is closed under reduction and whose type system is a constructive restriction of the Classical Natural ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
We present a formulaeastypes interpretation of Subtractive Logic (i.e. biintuitionistic logic). This presentation is twofold: we first define a very natural restriction of the λµcalculus which is closed under reduction and whose type system is a constructive restriction of the Classical Natural Deduction. Then we extend this deduction system conservatively to Subtractive Logic. From a computational standpoint, the resulting calculus provides a type system for firstclass coroutines (a restricted form of firstclass continuations). Keywords: CurryHoward isomorphism, Subtractive Logic, control operators, coroutines. 1
A General Storage Theorem for Integers in CallByName
"... The notion of storage operator introduced in [5, 6] appears to be an important tool in the study of data types in second order #calculus. These operators are #terms which simulate callbyvalue in the callbyname strategy, and they can be used in order to modelize assignment instructions. The mai ..."
Abstract

Cited by 16 (4 self)
 Add to MetaCart
The notion of storage operator introduced in [5, 6] appears to be an important tool in the study of data types in second order #calculus. These operators are #terms which simulate callbyvalue in the callbyname strategy, and they can be used in order to modelize assignment instructions. The main result about storage operators is that there is a very simple second order type for them, using Godel's "notnot translation" of classical into intuitionistic logic. We give here a new and simpler proof of a strengthened version of this theorem, which contains all previous results in intuitionistic and in classical logic ([6, 7]), and gives rise to new "storage theorems". Moreover, this result has a simple and intuitive meaning, in terms of realizability.
Computation with classical sequents
 MATHEMATICAL STRUCTURES OF COMPUTER SCIENCE
, 2008
"... X is an untyped continuationstyle formal language with a typed subset which provides a CurryHoward isomorphism for a sequent calculus for implicative classical logic. X can also be viewed as a language for describing nets by composition of basic components connected by wires. These features make X ..."
Abstract

Cited by 16 (16 self)
 Add to MetaCart
X is an untyped continuationstyle formal language with a typed subset which provides a CurryHoward isomorphism for a sequent calculus for implicative classical logic. X can also be viewed as a language for describing nets by composition of basic components connected by wires. These features make X an expressive platform on which algebraic objects and many different (applicative) programming paradigms can be mapped. In this paper we will present the syntax and reduction rules for X and in order to demonstrate the expressive power of X, we will show how elaborate calculi can be embedded, like the λcalculus, Bloo and Rose’s calculus of explicit substitutions λx, Parigot’s λµ and Curien and Herbelin’s λµ ˜µ.