Results 1 - 10
of
17
The Nuprl Open Logical Environment
, 2000
"... The Nuprl system is a framework for reasoning about mathematics and programming. Over the years its design has been substantially improved to meet the demands of large-scale applications. Nuprl LPE, the newest release, features an open, distributed architecture centered around a flexible knowled ..."
Abstract
-
Cited by 42 (15 self)
- Add to MetaCart
The Nuprl system is a framework for reasoning about mathematics and programming. Over the years its design has been substantially improved to meet the demands of large-scale applications. Nuprl LPE, the newest release, features an open, distributed architecture centered around a flexible knowledge base and supports the cooperation of independent formal tools. This paper gives a brief overview of the system and the objectives that are addressed by its new architecture.
Type-Theoretic Methodology For Practical Programming Languages
- DEPARTMENT OF COMPUTER SCIENCE, CORNELL UNIVERSITY
, 1998
"... The significance of type theory to the theory of programming languages has long been recognized. Advances in programming languages have often derived from understanding that stems from type theory. However, these applications of type theory to practical programming languages have been indirect; the ..."
Abstract
-
Cited by 22 (3 self)
- Add to MetaCart
The significance of type theory to the theory of programming languages has long been recognized. Advances in programming languages have often derived from understanding that stems from type theory. However, these applications of type theory to practical programming languages have been indirect; the differences between practical languages and type theory have prevented direct connections between the two. This dissertation presents systematic techniques directly relating practical programming languages to type theory. These techniques allow programming languages to be interpreted in the rich mathematical domain of type theory. Such interpretations lead to semantics that are at once denotational and operational, combining the advantages of each, and they also lay the foundation for formal verification of computer programs in type theory. Previous type theories either have not provided adequate expressiveness to interpret practical languages, or have provided such expressiveness at the expense of essential features of the type theory. In particular, no previous type theory has supported a notion of partial functions (needed to interpret recursion in practical languages), and a notion of total functions and objects (needed to reason about data values), and an intrinsic notion of equality (needed for most interesting results). This dissertation presents the first type theory incorporating all three, and discusses issues arising in the design of that type theory. This type theory is used as the target of a typetheoretic semantics for a expressive programming calculus. This calculus may serve as an internal language for a variety of functional programming languages. The semantics is stated as a syntaxdirected embedding of the programming calculus into type theory. A critical point arising in both the type theory and the typetheoretic semantics is the issue of admissibility. Admissibility governs what types it is legal to form recursive functions over. To build a useful type theory for partial functions it is necessary to have a wide class of admissible types. In particular, it is necessary for all the types arising in the typetheoretic semantics to be admissible. In this dissertation I present a class of admissible types that is considerably wider than any previously known class.
A Multi-Level Approach to program Synthesis
, 1998
"... We present an approach to a coherent program synthesis system which integrates a variety of interactively controlled and automated techniques from theorem proving and algorithm design at different levels of abstraction. Besides providing an overall view we summarize the individual research results ..."
Abstract
-
Cited by 13 (9 self)
- Add to MetaCart
We present an approach to a coherent program synthesis system which integrates a variety of interactively controlled and automated techniques from theorem proving and algorithm design at different levels of abstraction. Besides providing an overall view we summarize the individual research results achieved in the course of this development.
Formal reasoning about communication systems I: Embedding ML into type theory
, 1997
"... Abstract. We present a semantically correct embedding of a subset of the Ocaml programming language into the type theory of NuPRL. The subset is that needed to build the Ensemble group communication system. We describe the essential methodologies for representing language constructs by type-theoreti ..."
Abstract
-
Cited by 12 (9 self)
- Add to MetaCart
Abstract. We present a semantically correct embedding of a subset of the Ocaml programming language into the type theory of NuPRL. The subset is that needed to build the Ensemble group communication system. We describe the essential methodologies for representing language constructs by type-theoretical expressions. Tactics representing derived inference rules and a programming logic for these constructs will be discussed as well as algorithms for translating an Ocaml-program into NuPRL-objects and vice versa. The formal representations and the translation algorithms will serve as the foundation for the development of automated reasoning tools for the
The Implicit Calculus of Constructions - Extending Pure Type Systems with an Intersection Type Binder and Subtyping
- Proc. of 5th Int. Conf. on Typed Lambda Calculi and Applications, TLCA'01, Krakow
, 2001
"... In this paper, we introduce a new type system, the Implicit Calculus of Constructions, which is a Curry-style variant of the Calculus of Constructions that we extend by adding an intersection type binder| called the implicit dependent product. Unlike the usual approach of Type Assignment Systems ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
In this paper, we introduce a new type system, the Implicit Calculus of Constructions, which is a Curry-style variant of the Calculus of Constructions that we extend by adding an intersection type binder| called the implicit dependent product. Unlike the usual approach of Type Assignment Systems, the implicit product can be used at every place in the universe hierarchy. We study syntactical properties of this calculus such as the -subject reduction property, and we show that the implicit product induces a rich subtyping relation over the type system in a natural way. We also illustrate the specicities of this calculus by revisitting the impredicative encodings of the Calculus of Constructions, and we show that their translation into the implicit calculus helps to reect the computational meaning of the underlying terms in a more accurate way.
Complete integer decision procedures as derived rules in HOL
- Theorem Proving in Higher Order Logics, TPHOLs 2003, volume 2758 of Lect. Notes in Comp. Sci
, 2003
"... Abstract. I describe the implementation of two complete decision procedures for integer Presburger arithmetic in the HOL theorem-proving system. The first procedure is Cooper’s algorithm, the second, the Omega Test. Between them, the algorithms illustrate three different implementation techniques in ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Abstract. I describe the implementation of two complete decision procedures for integer Presburger arithmetic in the HOL theorem-proving system. The first procedure is Cooper’s algorithm, the second, the Omega Test. Between them, the algorithms illustrate three different implementation techniques in a fully expansive system. 1
The Synthesis of a Java Card Tokenisation Algorithm
- In Proc. of 16th Int. Conf. on Automated Software Engineering (ASE 2001
, 2001
"... We describe the development of a Java bytecode optimisation algorithm by the methodology of program extraction. We develop the algorithm as a collection of proofs and definitions in the Coq proof assistant, and then use Coq's extraction mechanism to automatically generate a program in OCaml. The ext ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
We describe the development of a Java bytecode optimisation algorithm by the methodology of program extraction. We develop the algorithm as a collection of proofs and definitions in the Coq proof assistant, and then use Coq's extraction mechanism to automatically generate a program in OCaml. The extraction methodology guarantees that this program is correct. We discuss the feasibility of the methodology and suggest some improvements that could be made.
From dy/dx to [ ]P: A matter of notation
- In Proceedings of the Conference on User Interfaces for Theorem Provers
, 1998
"... An analysis is given of the conventional dy notation for derivatives that explains it dx as a notational abbreviation for expressions using the simpler binding structure standard in modern formalizations. The Nuprl display system was used to implement examples of such notation. It turns out that the ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
An analysis is given of the conventional dy notation for derivatives that explains it dx as a notational abbreviation for expressions using the simpler binding structure standard in modern formalizations. The Nuprl display system was used to implement examples of such notation. It turns out that the same methods can be used to explain conventional modal logic notations. We construe necessity as a first-order quantifier, in a well known way, then explain standard modal notation as a way simply to display these formulas of a non-modal logic. We contrast the method with the interpretation of necessity as a sentential operator, and also with higher-order interpretations that have been used to interpret temporal logic in HOL. The methods are then applied to a simple first-order temporal logic. The intention is that the user can work in this notation interactively, not just produce it for printing. The methods to be discussed here for formalizing a few mathematical and logical concepts are already well known, or are small variations on well known methods, and are not the true subject of this paper. This paper is about notational enhancements for exploiting those methods, and may also serve as an explanation for some notations that are conventional, but do not obviously conform to the simpler syntax and semantics of current-day computerized formal mathematics. We apply a particular combination of notational devices to a few examples, revealing their notational similarity. We start with Leibniz’s notation for derivatives, dy dx, and end with firstorder temporal logic for programs. These notational methods have been made precise, and implemented in the Nuprl proof development system, 1 where they are meant for use as working notation. These examples were developed within it, although almost none of the mathematics for which these notations were implemented has been carried out in Nuprl. The basic idea: How dy dx works. Suppose Deriv(x. e(x) ; a) is a binding operator used to stand for the derivative, at a, of the function denoted by e(x) in variable x. 2 So, for example,
Proof Representations in Theorem Provers
, 1998
"... s and compressed postscript files are available via http://svrc.it.uq.edu.au Proof Representations in Theorem Provers Geoffrey Norman Watson Abstract This is a survey of some of the proof representations used by current theorem provers. The aim of the survey is to ascertain the range of mechani ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
s and compressed postscript files are available via http://svrc.it.uq.edu.au Proof Representations in Theorem Provers Geoffrey Norman Watson Abstract This is a survey of some of the proof representations used by current theorem provers. The aim of the survey is to ascertain the range of mechanisms used to represent proofs and the purposes to which these representations are put. This is done within a simple framework. It examines both internal and external representations, although the focus is on representations that could be exported to an external proof checker. A number of examples from various provers are given in a series of appendices. 1 Contents 1 Introduction 3 2 Aim of the Survey 3 2.1 Why Construct Proofs . . . . . . . . . 3 2.2 Levels of Representation . . . . . . . . 4 3 Scope of the Survey 5 3.1 Ergo . . . . . . . . . . . . . . . . . . . 5 3.2 HOL . . . . . . . . . . . . . . . . . . 6 3.3 Isabelle . . . . . . . . . . . . . . . . . 7 3.4 Nuprl . . . . . . . . . . . ...
A Correspondence between Martin-Löf Type Theory, the Ramified Theory of Types and Pure Type Systems
- Journal of Logic, Language and Information
, 2001
"... In Russell's Ramified Theory of Types rtt, two hierarchical concepts dominate: orders and types. The use of orders has as a consequence that the logic part of rtt is predicative. The concept of order however, is almost dead since Ramsey eliminated it from rtt. This is why we find Church's simple the ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
In Russell's Ramified Theory of Types rtt, two hierarchical concepts dominate: orders and types. The use of orders has as a consequence that the logic part of rtt is predicative. The concept of order however, is almost dead since Ramsey eliminated it from rtt. This is why we find Church's simple theory of types (which uses the type concept without the order one) at the bottom of the Barendregt Cube rather than rtt. Despite the disappearance of orders which have a strong correlation with predicativity, predicative logic still plays an influential role in Computer Science. An important example is the proof checker Nuprl, which is based on Martin-Löf's Type Theory which uses type universes. Those type universes, and also degrees of expressions in Automath, are closely related to orders. In this paper, we show that orders have not disappeared from modern logic and computer science, rather, orders play a crucial role in understanding the hierarchy of modern systems. In order to achieve our goal, we concentrate on a subsystem of Nuprl. The novelty of our paper lies in: 1) a modest revival of Russell's orders, 1 2) the placing of the historical system rtt underlying the famous Principia Mathematica in a context with a modern system of computer mathematics (Nuprl) and modern type theories (Martin-Löf's type theory and PTSs), and 3) the presentation of a complex type system (Nuprl) as a simple and compact PTS.

