Results 11  20
of
20
Case Studies in MetaLevel Theorem Proving
 PROC. INTL. CONF. ON THEOREM PROVING IN HIGHER ORDER LOGICS (TPHOLS), LECTURE
, 1998
"... We describe an extension of the Pvs system that provides a reasonably efficient and practical notion of reflection and thus allows for soundly adding formalized and verified new proof procedures. These proof procedures work on representations of a part of the underlying logic and their correct ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
We describe an extension of the Pvs system that provides a reasonably efficient and practical notion of reflection and thus allows for soundly adding formalized and verified new proof procedures. These proof procedures work on representations of a part of the underlying logic and their correctness is expressed at the object level using a computational reflection function. The implementation of the Pvs system has been extended with an efficient evaluation mechanism, since the practicality of the approach heavily depends on careful engineering of the core system, including efficient normalization of functional expressions. We exemplify the process of applying metalevel proof procedures with a detailed description of the encoding of cancellation in commutative monoids and of the kernel of a BDD package.
Towards a formal theory of program construction
 REVUE D'INTELLIGENCE ARTIFICIELLE
, 1990
"... A unified framework for formal reasoning about programs and deductive mechanisms involved in programming is developed. Within it principal approaches to program synthesis are formally investigated. We will show that a high degree of abstraction opens a way to combine their strengths, simplifies form ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
A unified framework for formal reasoning about programs and deductive mechanisms involved in programming is developed. Within it principal approaches to program synthesis are formally investigated. We will show that a high degree of abstraction opens a way to combine their strengths, simplifies formal proofs, and leads to clearer insights into the metamathematics of program construction. All definitions and theorems are presented completely formal which allows to straightforwardly implement them with a proof system for the underlying calculus and derive verified implementations of programming methods from them.
Decidability Extracted: SYNTHESIZING “CORRECTBYCONSTRUCTION” DECISION PROCEDURES FROM CONSTRUCTIVE PROOFS
, 1998
"... The topic of this thesis is the extraction of efficient and readable programs from formal constructive proofs of decidability. The proof methods employed to generate the efficient code are new and result in clean and readable Nuprl extracts for two nontrivial programs. They are based on the use of ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
The topic of this thesis is the extraction of efficient and readable programs from formal constructive proofs of decidability. The proof methods employed to generate the efficient code are new and result in clean and readable Nuprl extracts for two nontrivial programs. They are based on the use of Nuprl’s set type and techniques for extracting efficient programs from induction principles. The constructive formal theories required to express the decidability theorems are of independent interest. They formally circumscribe the mathematical knowledge needed to understand the derived algorithms. The formal theories express concepts that are taught at the senior college level. The decidability proofs themselves, depending on this material, are of interest and are presented in some detail. The proof of decidability of classical propositional logic is relative to a semantics based on Kleene’s strong threevalued logic. The constructive proof of intuitionistic decidability presented here is the first machine formalization of this proof. Theexposition reveals aspects of the Nuprl tactic collection relevant to the creation of readable proofs; clear extracts and efficient code are illustrated in the discussion of the proofs.
Nuprl and its Use in Circuit Design
, 1992
"... Nuprl is an interactive theorem proving system in the LCF tradition. It has a higher order logic and a very expressive type theory; the type theory includes dependent function types (\Pi types), dependent product types (\Sigma types) and set types. Nuprl also has a well developed XWindows user inte ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Nuprl is an interactive theorem proving system in the LCF tradition. It has a higher order logic and a very expressive type theory; the type theory includes dependent function types (\Pi types), dependent product types (\Sigma types) and set types. Nuprl also has a well developed XWindows user interface and allows for the use of clear and concise notations, close to ones used in print. Proofs are objects which can be viewed, and serve as readable explanations of theorems. Tactics provide a highlevel extendible toolkit for proof development, while the soundness of the system relies only a fixed set of rules. We give an overview of the Nuprl system, focusing in particular on the advantages that the type theory brings to formal methods for circuit design. We also discuss ongoing projects in verifying floatingpoint circuits, verifying the correctness of hardware synthesis systems, and synthesizing circuits by exploiting the constructivity of Nuprl's logic. Keyword Codes: F.4.1; B.6.2; I...
Extracting Recursion Operators in Nuprl's Type Theory
 Eleventh International Workshop on Logic based Program Synthesis, LOPSTR02, volume 2372 of LNCS
, 2001
"... In this paper we describe the extraction of efficient recursion schemes from proofs of wellfounded induction principles. This is part of a larger methodology ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
In this paper we describe the extraction of efficient recursion schemes from proofs of wellfounded induction principles. This is part of a larger methodology
Formalising mathematics in UTT: fundamentals and case studies
, 1994
"... We give a detailed account of the use of type theory as a foundational language to formalise mathematics. We develop in the type system UTT a coherent approach to naive set theory and elementary mathematical notions. In the second part of the paper, we present a fullychecked example based on our re ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
We give a detailed account of the use of type theory as a foundational language to formalise mathematics. We develop in the type system UTT a coherent approach to naive set theory and elementary mathematical notions. In the second part of the paper, we present a fullychecked example based on our representation of naive set theory. Contents 1 Introduction 1 2 Fundamentals 3 2.1 Naive set theory . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Discrete sets . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3 Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.4 The category of sets . . . . . . . . . . . . . . . . . . . . . 5 2.1.5 Multivariate maps . . . . . . . . . . . . . . . . . . . . . . 6 2.1.6 Predicates and relations . . . . . . . . . . . . . . . . . . . 7 2.1.7 Subsets and powerset . . . . . . . . . . . . . . . . . . . . 7 2.1.8 Quotients . . . . . . . . . . . . . . . ...
Formalization and Reasoning in a Reflective Architecture
, 1995
"... This paper is concerned with developing a reflective architecture for formalizing and reasoning about entities that occur in the process of software development, such as specifications, theorems, programs, and proofs. The starting point is a syntactic extension of the type theory ECC. An encoding of ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper is concerned with developing a reflective architecture for formalizing and reasoning about entities that occur in the process of software development, such as specifications, theorems, programs, and proofs. The starting point is a syntactic extension of the type theory ECC. An encoding of this object calculus within itself comprises the metalevel, and reflection principles are provided for switching between di#erent levels. These reflection principles are used to mix object and metalevel reasoning, to generate "standard" units by executing metaoperators, and to apply formal tactics that allow for abstraction from the base logic.
Formalization and Reasoning in a Reflective Architecture
"... Abstract This paper is concerned with developing a reflective architecture for formalizing and reasoning about entities that occur in the process of software development, such as specifications, theorems, programs, and proofs. The starting point is a syntactic extension of the type theory ECC. An en ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract This paper is concerned with developing a reflective architecture for formalizing and reasoning about entities that occur in the process of software development, such as specifications, theorems, programs, and proofs. The starting point is a syntactic extension of the type theory ECC. An encoding of this object calculus within itself comprises the metalevel, and reflection principles are provided for switching between different levels. These reflection principles are used to mix object and metalevel reasoning, to generate &quot;standard &quot; units by executing metaoperators, and to apply formal tactics that allow for abstraction from the basic inference rules. 1 Introduction Formalizing artifacts of software development and software engineering activities that produce these artifacts is, according to [2], a central issue of knowledgebased software engineering. Here we propose a reflective architecture based on a typetheoretic calculus that is capable of expressing most units of the software development process like theorems, specifications, proofs, programs, and relative implementations between specifications in order to formalize schematic developments as operators on the metalevel. These metaoperators are applied to specific problems by means of reflection principles that connect object and metalevel. Formalizing software development steps as executable (meta) operators supports several aspects of the by now almost universally accepted goal of reusability, which involves not only reuse of program fragments but also of designs and developments, and, in the context of fully formal approaches, proofs.
Generalized Rewriting in Type Theory
"... While type theories such as Nuprl are expressive logics for theorem proving, they present difficulties for designers of term rewriting systems. The two most serious difficulties are: 1) They do not provide a global equality. Instead users rewrite over arbitrary userdefined relations. 2) Each rewrit ..."
Abstract
 Add to MetaCart
(Show Context)
While type theories such as Nuprl are expressive logics for theorem proving, they present difficulties for designers of term rewriting systems. The two most serious difficulties are: 1) They do not provide a global equality. Instead users rewrite over arbitrary userdefined relations. 2) Each rewrite step must be proved valid. In general, these proofs cannot be recursively generated. We have overcome these difficulties and designed a package for the Nuprl system that works well in practice. Our solution is an extensible set of functions for directing and validating relational inferences. The heart of our package is a set of operators that use a usersupplied lemma database to create new rewrites from old ones. These routines place no restrictions on relations; a rewrite's success depends on the strength of the database. Overall, the package allows rewrites to be pieced together in numerous ways, providing the user with a tool to construct sophisticated rewrite strategies. 1 Introductio...