Results 1 - 10
of
13
On the unity of duality
- Special issue on “Classical Logic and Computation
, 2008
"... Most type systems are agnostic regarding the evaluation strategy for the underlying languages, with the value restriction for ML which is absent in Haskell as a notable exception. As type systems become more precise, however, detailed properties of the operational semantics may become visible becaus ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Most type systems are agnostic regarding the evaluation strategy for the underlying languages, with the value restriction for ML which is absent in Haskell as a notable exception. As type systems become more precise, however, detailed properties of the operational semantics may become visible because properties captured by the types may be sound under one strategy but not the other. For example, intersection types distinguish between call-by-name and call-by-value functions, because the subtyping law (A → B) ∩ (A → C) ≤ A → (B ∩ C) is unsound for the latter in the presence of effects. In this paper we develop a proof-theoretic framework for analyzing the interaction of types with evaluation order, based on the notion of polarity. Polarity was discovered through linear logic, but we propose a fresh origin in Dummett’s program of justifying the logical laws through alternative verificationist or pragmatist “meaning-theories”, which include a bias towards either introduction or elimination rules. We revisit Dummett’s analysis using the tools of Martin-Löf’s judgmental method, and then show how to extend it to a unified polarized logic, with Girard’s “shift ” connectives acting as intermediaries. This logic safely combines intuitionistic and dual intuitionistic reasoning principles, while simultaneously admitting a focusing interpretation for the classical sequent calculus. Then, by applying the Curry-Howard isomorphism to polarized logic, we obtain a single programming language in which evaluation order is reflected at the level of types. Different logical notions correspond directly to natural programming constructs, such as pattern-matching, explicit substitutions, values and call-by-value continuations. We give examples demonstrating the expressiveness of the language and type system, and prove a basic but modular type safety result. We conclude with a brief discussion of extensions to the language with additional effects and types, and sketch the sort of explanation this can provide for operationally-sensitive typing phenomena. 1
Program synthesis
- Automated Deduction - A Basis for Applications
, 1998
"... Since almost 30 years software production has to face two major problems: the cost of non-standard software, caused by long development times and the constant need for maintenance, and a lack of confidence in the reliability of software. Recent accidents like the crash of KAL’s 747 in August 1997 or ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
Since almost 30 years software production has to face two major problems: the cost of non-standard software, caused by long development times and the constant need for maintenance, and a lack of confidence in the reliability of software. Recent accidents like the crash of KAL’s 747 in August 1997 or the
Ordinals and Interactive Programs
, 2000
"... The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be
Reviewing the classical and the de Bruijn notation for λ-calculus and pure type systems
- Logic and Computation
, 2001
"... This article is a brief review of the type free λ-calculus and its basic rewriting notions, and of the pure type system framework which generalises many type systems. Both the type free λ-calculus and the pure type systems are presented using variable names and de Bruijn indices. Using the presentat ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This article is a brief review of the type free λ-calculus and its basic rewriting notions, and of the pure type system framework which generalises many type systems. Both the type free λ-calculus and the pure type systems are presented using variable names and de Bruijn indices. Using the presentation of the λ-calculus with de Bruijn indices, we illustrate how a calculus of explicit substitutions can be obtained. In addition, de Bruijn's notation for the λ-calculus is introduced and some of its advantages are outlined.
Propositional Functions and Families of Types
- In Workshop on Programming Logic
, 1989
"... Introduction In order to capture some of the programmers errors, several computer languages, like Pascal and ML, are equipped with a type system. Using the Curry-Howard interpretation of propositions as types [3, 8], or as we shall say here, propositions as sets, a type system can be made strong en ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Introduction In order to capture some of the programmers errors, several computer languages, like Pascal and ML, are equipped with a type system. Using the Curry-Howard interpretation of propositions as types [3, 8], or as we shall say here, propositions as sets, a type system can be made strong enough to be used to specify the task a program is supposed to do. This is one of the basis for Martin-Lof's suggestion in [11] to use his formulation of type theory for programming; his ideas are exploited in [14] and there are several computer implementations of type theory [4, 16]. Similar ideas are also behind Coquand and Huet's calculus of constructions [2]. The idea of propositions as sets is closely related to the intuitionistic explanations of the logical constants given by Heyting [7]. In Martin-Lof's type theory, the interpretation of propositions as sets is fundamental since the notions of proposition and set are identical. So a logical constant is definitionally equal to th
Implicit Programming and the Logic of Constructible Duality
"... ABSTRACT We present an investigation of duality in the traditional logical manner. We extend Nelson's symmetrization of intuitionistic logic, constructible falsity, to a self-dual logic-- constructible duality. We develop a self-dual model by considering an interval of worlds in an intuitionistic Kr ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
ABSTRACT We present an investigation of duality in the traditional logical manner. We extend Nelson's symmetrization of intuitionistic logic, constructible falsity, to a self-dual logic-- constructible duality. We develop a self-dual model by considering an interval of worlds in an intuitionistic Kripke model. The duality arises through how we judge truth and falsity. Truth is judged forward in the Kripke model, as in intuitionistic logic, while falsity is judged backwards. We develop a self-dual algebra such that every point in the algebra is representable by some formula in the logic. This algebra arises as an instantiation of a Heyting algebra into several categorical constructions. In particular, we show that this algebra is an instantiation of the Chu construction applied to a Heyting algebra, the second Dialectica construction applied to a Heyting algebra, and as an algebra for the study of recursion and corecursion. Thus the algebra provides a common base for these constructions, and suggests itself as an important part of any constructive logical treatment of duality. Implicit programming is suggested as a new paradigm for computing with constructible duality as its formal system. We show that all the operators that have computable least fixed points are definable explicitly and all operators with computable optimal fixed points are definable implicitly within constructible duality. Implicit programming adds a novel definitional mechanism that allows functions to be defined implicitly. This new programming feature is especially useful for programming with co-recursively defined data-types such as circular lists. iii DEDICATION To my cousin Jordan Lackey (1963-1995) whose courage with AIDS was an inspiration. iv
History of Constructivism in the 20th Century
"... notions, such as `constructive proof', `arbitrary number-theoretic function ' are rejected. Statements involving quantifiers are finitistically interpreted in terms of quantifier-free statements. Thus an existential statement 9xAx is regarded as a partial communication, to be supplemented by providi ..."
Abstract
- Add to MetaCart
notions, such as `constructive proof', `arbitrary number-theoretic function ' are rejected. Statements involving quantifiers are finitistically interpreted in terms of quantifier-free statements. Thus an existential statement 9xAx is regarded as a partial communication, to be supplemented by providing an x which satisfies A. Establishing :8xAx finitistically means: providing a particular x such that Ax is false. In this century, T. Skolem 4 was the first to contribute substantially to finitist 4 Thoralf Skolem 1887--1963 History of constructivism in the 20th century 3 mathematics; he showed that a fair part of arithmetic could be developed in a calculus without bound variables, and with induction over quantifier-free expressions only. Introduction of functions by primitive recursion is freely allowed (Skolem 1923). Skolem does not present his results in a formal context, nor does he try to delimit precisely the extent of finitist reasoning. Since the idea of finitist reasoning ...
DECORATING PROOFS
"... Dedicated to Grigori Mints on occasion of his 70th birthday Abstract. The programs synthesized from proofs are guaranteed to be correct, however at the cost of sometimes introducing irrelevant computations, as a consequence of the fact that the extracted code faithfully reflects the proof. In this p ..."
Abstract
- Add to MetaCart
Dedicated to Grigori Mints on occasion of his 70th birthday Abstract. The programs synthesized from proofs are guaranteed to be correct, however at the cost of sometimes introducing irrelevant computations, as a consequence of the fact that the extracted code faithfully reflects the proof. In this paper we extend the work of Ulrich Berger [2], which introduces the concept of “non-computational universal quantifiers”, and propose an algorithm by which we identify at the proof level the components- quantified variables, as well as premises of implications- that are computationally irrelevant and mark them as such. We illustrate the benefits of this (optimal) decorating algorithm in some case studies and present the results obtained with the proof assistant Minlog. We consider proofs in minimal logic, written in natural deduction style. The only rules are introduction and elimination for implication and the universal quantifier. The logical connectives ∃, ∧ are seen as special cases of inductively defined predicates, and hence are defined by the introduction and elimination schemes

