Results 11 -
13 of
13
Decidability Extracted: Synthesizing ``Correct-by-Construction'' 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 non-trivial programs. They are based on the use of ..."
Abstract
-
Cited by 2 (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 non-trivial 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 three-valued logic. The constructive proof of intuitionistic decidability presented here is the first machine formalization of this proof. The exposition 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.
A data type of partial recursive functions in Martin-Löf Type Theory. 35pp, submitted
, 2007
"... In this article we investigate how to represent partial-recursive functions in Martin-Löf’s type theory. Our representation will be based on the approach by Bove and Capretta, which makes use of indexed inductive-recursive definitions (IIRD). We will show how to restrict the IIRD used so that we obt ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In this article we investigate how to represent partial-recursive functions in Martin-Löf’s type theory. Our representation will be based on the approach by Bove and Capretta, which makes use of indexed inductive-recursive definitions (IIRD). We will show how to restrict the IIRD used so that we obtain directly executable partial recursive functions, Then we introduce a data type of partial recursive functions. We show how to evaluate elements of this data type inside Martin-Löf’s type theory, and that therefore the functions defined by this data type are in fact partial-recursive. The data type formulates a very general schema for defining functions recursively in dependent type theory. The initial version of this data type, for which we introduce an induction principle, needs to be expanded, in order to obtain closure under composition. We will obtain two versions of this expanded data type, and prove that they define the same set of partial-recursive functions. Both versions will be large types. Next we prove a Kleene-style normal form theorem. Using it we will show how to obtain a data type of partial recursive functions which is a small set. Finally, we show how to define self-evaluation as a partial recursive function. We obtain a correct version of this evaluation function, which not only computes recursively a result, but as well a proof that the result is correct. Keywords: Martin-Löf type theory, computability theory, recursion theory, Kleene index, Kleene brackets, Kleene’s normal form theorem, partial recursive functions, inductive-recursive definitions, indexed induction-recursion, self-evaluation. 1
Formal Structures for Computation and Deduction
, 1986
"... Machine [10], and documented in [2]. Other interesting related languages are the "lazy" implementations of normal-order evaluating ML dialects [17] and of Miranda[29], and the closely related Amber language, which possesses hierarchical types and remanent data values [8]. Research on ML -like langua ..."
Abstract
- Add to MetaCart
Machine [10], and documented in [2]. Other interesting related languages are the "lazy" implementations of normal-order evaluating ML dialects [17] and of Miranda[29], and the closely related Amber language, which possesses hierarchical types and remanent data values [8]. Research on ML -like languages is regularly announced in the Polymorphism Newsletter, edited by Dave MacQueen at Bell Laboratories. 1.2. A FEW CAML EXAMPLES 6 1.2 A few CAML examples From now on, we assume that the meta-language of the course is CAML Version 2.2 implemented at INRIA, and documented in [2], to which we refer the reader for precise definitions. 1.2.1 Recursion Here is the standard definition of the factorial function: let rec fact n = if n=0 then 1 else n*fact(n-1);; It is also possible to program factorial iteratively, using the while construct: let fact n = let count=ref n and result=ref 1 in while !count?0 do count,result:=!count-1,!count*!result done; !result;; Here is another recursive ex...

