Results 1 
8 of
8
NuPRL’s class theory and its applications
 Foundations of Secure Computation, NATO ASI Series, Series F: Computer & System Sciences
, 2000
"... This article presents a theory of classes and inheritance built on top of constructive type theory. Classes are defined using dependent and very dependent function types that are found in the Nuprl constructive type theory. Inheritance is defined in terms of a general subtyping relation over the und ..."
Abstract

Cited by 15 (7 self)
 Add to MetaCart
This article presents a theory of classes and inheritance built on top of constructive type theory. Classes are defined using dependent and very dependent function types that are found in the Nuprl constructive type theory. Inheritance is defined in terms of a general subtyping relation over the underlying types. Among the basic types is the intersection type which plays a critical role in the applications because it provides a method of composing program components. The class theory is applied to defining algebraic structures such as monoids, groups, rings, etc. and relating them. It is also used to define communications protocols as infinite state automata. The article illustrates the role of these formal automata in defining the services of a distributed group communications system. In both applications the inheritance mechanisms allow reuse of proofs and the statement of general properties of system composition. 1
Verified Lexical Analysis
 Theorem Proving in Higher Order Logics
, 1998
"... . This paper presents the development and verification of a (very simple) lexical analyzer generator that takes a regular expression and yields a functional lexical analyzer. The emphasis is on simplicity and executability. The work was carried out with the help of the theorem prover Isabelle/HO ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
. This paper presents the development and verification of a (very simple) lexical analyzer generator that takes a regular expression and yields a functional lexical analyzer. The emphasis is on simplicity and executability. The work was carried out with the help of the theorem prover Isabelle/HOL. 1 Introduction Admittedly, lexical analysis is not exactly safety critical. But if the dream of a verified compiler is to be taken seriously, it must include the front end as well. Practical applications aside, lexical analysis is an excellent example of computational discrete mathematics, and as such an ideal test case for any aspiring theorem prover. We formalize and verify the process of taking a regular expression and turning it into a lexical analyzer (also called scanner ). The design goals are simplicity and executability. The result is an almost executable functional program, except for one place, where simplicity has prevailed over executability. The overall structure of both ...
Naïve computational type theory
 Proof and SystemReliability, Proceedings of International Summer School Marktoberdorf, July 24 to August 5, 2001, volume 62 of NATO Science Series III
, 2002
"... The basic concepts of type theory are fundamental to computer science, logic and mathematics. Indeed, the language of type theory connects these regions of science. It plays a role in computing and information science akin to that of set theory in pure mathematics. There are many excellent accounts ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
The basic concepts of type theory are fundamental to computer science, logic and mathematics. Indeed, the language of type theory connects these regions of science. It plays a role in computing and information science akin to that of set theory in pure mathematics. There are many excellent accounts of the basic ideas of type theory, especially at the interface of computer science and logic — specifically, in the literature of programming languages, semantics, formal methods and automated reasoning. Most of these are very technical, dense with formulas, inference rules, and computation rules. Here we follow the example of the mathematician Paul Halmos, who in 1960 wrote a 104page book called Naïve Set Theory intended to make the subject accessible to practicing mathematicians. His book served many generations well. This article follows the spirit of Halmos ’ book and introduces type theory without recourse to precise axioms and inference rules, and with a minimum of formalism. I start by paraphrasing the preface to Halmos ’ book. The sections of this article follow his chapters closely. Every computer scientist agrees that every computer scientist must know some type theory; the disagreement begins in trying to decide how much is some. This article contains my partial answer to that question. The purpose of the article is to tell the beginning student of advanced computer science the basic type theoretic facts of life, and to do so with a minimum of philosophical discourse and logical formalism. The point throughout is that of a prospective computer scientist eager to study programming languages, or database systems, or computational complexity theory, or distributed systems or information discovery. In type theory, “naïve ” and “formal ” are contrasting words. The present treatment might best be described as informal type theory from a naïve point of view. The concepts are very general and very abstract; therefore they may
Formalizing Automata II: Decidable Properties
"... Is it possible to create formal proofs of interesting mathematical theorems which are mechanically checked in every detail and yet are readable and even faithful to the best expositions of those results in the literature? This paper answers that question positively for theorems about decidable prope ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Is it possible to create formal proofs of interesting mathematical theorems which are mechanically checked in every detail and yet are readable and even faithful to the best expositions of those results in the literature? This paper answers that question positively for theorems about decidable properties of nite automata. The exposition is from Hopcroft and Ullman's classic 1969 textbook Formal Languages and Their Relation to Automata. This paper describes a successful formalization which is faithful to that book. The requirement of being faithful to the book has unexpected consequences, namely that the underlying formal theory must include primitive notions of computability. This requirement makes a constructive formalization especially suitable. It also opens the possibility ofusingthe formal proofs to decide properties of automata. The paper shows how to do this. 1
Improving the Efficiency of Nuprl Proofs
, 1997
"... In order to use Nuprl system as a programming language with builtin verification one has to improve the efficiency of the programs extracted from the Nuprl proofs. In the current paper we consider proofs from the Nuprl automata library. In some of these proofs (pigeonhole principle, decidability of ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In order to use Nuprl system as a programming language with builtin verification one has to improve the efficiency of the programs extracted from the Nuprl proofs. In the current paper we consider proofs from the Nuprl automata library. In some of these proofs (pigeonhole principle, decidability of the state reachability, decidability of the equivalence relation on words induced by the automata language) sources of exponentialtime complexity have been detected and replaced by new complexity cautious proofs. The new proofs now lead to polynomialtime algorithms extracted by the same Nuprl extractor, thus eliminating all known unnecessary exponentials from the Nuprl automata library. General principles of efficient programming on Nuprl are also discussed. Key Words and Phrases: automata, constructivity, MyhillNerode theorem, Nuprl, program extraction, program verification, state minimization.
Logical Aspects of Digital Mathematics Libraries
, 2001
"... this article are based on the formalization of particular fragments of computational mathematics, but the results are general. In this paper we focus on capabilities of digital mathematics libraries that are enabled by formalism. Specifically we report results on these topics ..."
Abstract
 Add to MetaCart
this article are based on the formalization of particular fragments of computational mathematics, but the results are general. In this paper we focus on capabilities of digital mathematics libraries that are enabled by formalism. Specifically we report results on these topics
Naïve Type Theory
, 2002
"... This article follows the spirit of Halmos' book and introduces type theory without recourse to precise axioms and inference rules, and with a minimum of formalism. I start by paraphrasing the preface to Halmos' book. The sections of this article follow his chapters closely. Every computer scientist ..."
Abstract
 Add to MetaCart
This article follows the spirit of Halmos' book and introduces type theory without recourse to precise axioms and inference rules, and with a minimum of formalism. I start by paraphrasing the preface to Halmos' book. The sections of this article follow his chapters closely. Every computer scientist agrees that every computer scientist must know some type theory; the disagreement begins in trying to decide how much is some. This article contains my partial answer to that question. The purpose of the article is to tell the beginning student of advanced computer science the basic type theoretic facts of life, and to do so with a minimum of philosophical discourse and logical formalism. The point throughout is that of a prospective computer scientist eager to study programming languages, or database systems, or computational complexity theory, or distributed systems or information discovery
Using Web Access to Formal Mathematics to Support Instruction in Computational Discrete Mathematics
, 2002
"... We have begun a project to produce interactive formallygrounded courseware for teaching mathematics and computing. 1 The courseware is created by a modern proof development system, Nuprl, based on its growing em reference library of formal computational mathematics. The project is supported by NSF ..."
Abstract
 Add to MetaCart
We have begun a project to produce interactive formallygrounded courseware for teaching mathematics and computing. 1 The courseware is created by a modern proof development system, Nuprl, based on its growing em reference library of formal computational mathematics. The project is supported by NSF and some results of the past eighteen months of work are available on the World Wide Web. 2 This proposal requests an increment of funding to supplement the continuing investment of Cornell resources. We are asking for funds to improve the educational value of the resources we have created. First, we want to add more targeted lessons as entry points to the large corpus of formal material. Second, we want to gather feedback on the existing lessons from a wider range of students and instructors. Third, we want to prepare for using the full Nuprl interactive capability when it becomes available on the Web in 1998 and then deploy it in 1999. This proposal reviews the technical and pedagogical case for the project, reports on current progress and future plans and explains our ideas for improving the educational value of the