scispace - formally typeset
Search or ask a question
Journal ArticleDOI

A judgmental reconstruction of modal logic

01 Aug 2001-Mathematical Structures in Computer Science (Cambridge University Press)-Vol. 11, Iss: 4, pp 511-540
TL;DR: This work reconsiders the foundations of modal logic, following Martin-Löf's methodology of distinguishing judgments from propositions, and gives a new presentation of lax logic, finding that the lax modality is already expressible using possibility and necessity.
Abstract: We reconsider the foundations of modal logic, following Martin-Lof's methodology of distinguishing judgments from propositions. We give constructive meaning explanations for necessity and possibility, which yields a simple and uniform system of natural deduction for intuitionistic modal logic that does not exhibit anomalies found in other proposals. We also give a new presentation of lax logic and find that the lax modality is already expressible using possibility and necessity. Through a computational interpretation of proofs in modal logic we further obtain a new formulation of Moggi's monadic metalanguage.
Citations
More filters
Book
01 Dec 2004
TL;DR: Topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference.
Abstract: The study of type systems for programming languages now touches many areas of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. This book offers accessible introductions to key ideas in the field, with contributions by experts on each topic. The topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference. Advanced Topics in Types and Programming Languages builds on Benjamin Pierce's Types and Programming Languages (MIT Press, 2002); most of the chapters should be accessible to readers familiar with basic notations and techniques of operational semantics and type systems -- the material covered in the first half of the earlier book. Advanced Topics in Types and Programming Languages can be used in the classroom and as a resource for professionals. Most chapters include exercises, ranging in difficulty from quick comprehension checks to challenging extensions, many with solutions.

295 citations

Journal ArticleDOI
TL;DR: It is shown that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed λ-calculi and functional languages.
Abstract: We show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed λ-calculi and functional languages. We directly demonstrate the sense in which our λe→□-calculus captures staging, and also give a conservative embeddng of Nielson and Nielson's two-level functional language in our functional language Mini-ML□, thus proving that binding-time correctness is equivalent to modal correctness on this fragment. In addition, Mini-ML□ can also express immediate evaluation and sharing of code across multiple stages, thus supporting run-time code generation as well as partial evaluation.

270 citations


Additional excerpts

  • ...The methodolgy we followed is based on that of Martin-L¨ of [Martin-L¨ of 1996], and is described in more detail in [ Pfenning and Davies 2000 ]....

    [...]

  • ...In other work [ Pfenning and Davies 2000 ] we have been able to explain computational types cleanly in our framework via a combination of the intuitionistic possibility operator and necessity....

    [...]

  • ...In separate work reported in [ Pfenning and Davies 2000 ] we show how our calculus and associated natural deduction system can be carefully constructed following the methodology of Martin-L¨ of [Martin-L¨ of 1996] and also show how to account for modal possibility using two forms of conclusion....

    [...]

  • ...It can be characterized directly by introduction and elimination rules which are locally sound and complete, but only if we introduce a new judgment \A is possibly true", as we demonstrate in [ Pfenning and Davies 2000 ]....

    [...]

  • ...We refer the reader to some of our recent work [Pfenning and Davies 2001] for a more basic discussion of these concepts for and to Chellas [1980] for an introduction to modal logic....

    [...]

Journal ArticleDOI
TL;DR: The consequences of relativizing contextual modal logic and its type-theoretic analogue to explicitly specified contexts are investigated.
Abstract: The intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this article we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its type-theoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutions. We sketch some applications in functional programming and logical frameworks.

267 citations

Book
01 Dec 2012
TL;DR: Professor Harper's presentation is simultaneously rigorous and intuitive, relying on only elementary mathematics, and the framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation.
Abstract: Types are the central organizing principle of the theory of programming languages. In this innovative book, Professor Robert Harper offers a fresh perspective on the fundamentals of these languages through the use of type theory. Whereas most textbooks on the subject emphasize taxonomy, Harper instead emphasizes genetics, examining the building blocks from which all programming languages are constructed. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design - the absence of ill-defined programs - follows naturally. Professor Harper's presentation is simultaneously rigorous and intuitive, relying on only elementary mathematics. The framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation. The result is a lucid introduction to programming theory that is both accessible and practical.

234 citations


Cites background from "A judgmental reconstruction of moda..."

  • ...The modal separation in MA is adapted directly from Pfenning and Davies (2001), which stresses the connection to lax modal logic....

    [...]

ReportDOI
01 May 2003
TL;DR: The present report, the first of two technical reports describing CLF, presents the frame- work itself and its metatheory, and a novel, algorithmic formulation of the underlying type theory concentrating on canonical forms leads to a simple notion of definitional equality for concurrent computations in which the order of independent steps cannot be distinguished.
Abstract: : The Concurrent Logical Framework, or CLF, is a new logical framework in which concurrent computations can be represented as monadic objects, for which there is an intrinsic notion of concurrency. It is designed as a conservative extension of the linear logical framework LLF with the synchronous connectives (circle multiply, 1, !, and there exists) of intuitionistic linear logic, encapsulated in a monad. LLF is itself a conservative extension of LF with the asynchronous connectives (logical negation, & and T). The present report, the first of two technical reports describing CLF, presents the frame- work itself and its metatheory. A novel, algorithmic formulation of the underlying type theory concentrating on canonical forms leads to a simple notion of definitional equality for concurrent computations in which the order of independent steps cannot be distinguished. The new formulation of the framework constitutes an original contribution even for the LF fragment. For many additional examples illustrating the use of the framework to specify and reason about object systems of interest, the reader is referred to the companion technical report on applications CPWW02.

163 citations

References
More filters
Journal ArticleDOI
TL;DR: In this paper, a process for sizing cellulose fibers or cellulose fiber containing materials and a composition for carrying out the process are described, and a method for sizing according to the general formula of R1 is presented.
Abstract: The present invention relates to a process for sizing cellulose fibers or cellulose fiber containing materials and to a composition for carrying out the process. More particularly the invention relates to a process for sizing according to which cellulose fibers or cellulose fiber containing materials in a manner known per se are brought into contact with compounds having the general formula WHEREIN R1 is an organic, hydrophobic group having 8 to 40 carbon atoms and R2 is an alkyl group having 1 to 7 carbon atoms or has the same meaning as R1.

1,915 citations

Journal ArticleDOI
TL;DR: Calculi are introduced, based on a categorical semantics for computations, that provide a correct basis for proving equivalence of programs for a wide range of notions of computation.
Abstract: The λ-calculus is considered a useful mathematical tool in the study of programming languages, since programs can be identified with λ-terms. However, if one goes further and uses βη-conversion to prove equivalence of programs, then a gross simplification is introduced (programs are identified with total functions from values to values ) that may jeopardise the applicability of theoretical results. In this paper we introduce calculi, based on a categorical semantics for computations , that provide a correct basis for proving equivalence of programs for a wide range of notions of computation .

1,825 citations

Proceedings ArticleDOI
05 Jun 1989
TL;DR: The author gives a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model.
Abstract: The lambda -calculus is considered a useful mathematical tool in the study of programming languages. However, if one uses beta eta -conversion to prove equivalence of programs, then a gross simplification is introduced. The author gives a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model. >

957 citations

Book
01 Jan 1969

899 citations

Book ChapterDOI
TL;DR: This chapter discusses that relating constructive mathematics to computer programming seems to be beneficial, and that it may well be possible to turn what is now regarded as a high level programming language into machine code by the invention of new hardware.
Abstract: Publisher Summary This chapter discusses that relating constructive mathematics to computer programming seems to be beneficial. Among the benefits to be derived by constructive mathematics from its association with computer programming, one is that you see immediately why you cannot rely upon the law of excluded middle: its uninhibited use would lead to programs that one did not know how to execute. By choosing to program in a formal language for constructive mathematics, like the theory of types, one gets access to the conceptual apparatus of pure mathematics, neglecting those parts that depend critically on the law of excluded middle, whereas even the best high level programming languages so far designed are wholly inadequate as mathematical languages. The virtue of a machine code is that a program written in it can be directly read and executed by the machine. The distinction between low and high level programming languages is of course relative to the available hardware. It may well be possible to turn what is now regarded as a high level programming language into machine code by the invention of new hardware.

618 citations