Results 1 -
5 of
5
Program Development in Constructive Type Theory
- Theoretical Computer Science
, 1992
"... We present the program development concept in a logical framework including constructive type theory and then show how to use such theories to derive programs from proofs of formal specifications. We are interested in two important facts that are the mechanization of the proof construction and the p ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
We present the program development concept in a logical framework including constructive type theory and then show how to use such theories to derive programs from proofs of formal specifications. We are interested in two important facts that are the mechanization of the proof construction and the possibility to express in the theory significiant concepts for programming (like inductively deøned types and general recursion). We give here a survey on some results and problems appearing in logical frameworks devoted to the programming with proofs approach.
Information Loss in the Programming Logic TK
- Programming Concepts and Methods
, 1990
"... this paper we investigate the topic of information loss in the constructive and intensional theory for programming development TK. The term information loss arose during the investigation of Martin-Lf's Type Theory [Mar 82] (MLTT) as a programming logic and it refers to techniques for removing compu ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
this paper we investigate the topic of information loss in the constructive and intensional theory for programming development TK. The term information loss arose during the investigation of Martin-Lf's Type Theory [Mar 82] (MLTT) as a programming logic and it refers to techniques for removing computationally redundant data from programs which are obtained by formal derivation from specifications. Earlier papers [Hen 89a] [Hen 89b] contain details of the theory TK and [HeT 88] presents a theory of which TK is a restriction. We have taken the opportunity in this paper of describing TK in its entirety and this appears as an appendix. We will devote the rest of this introduction to a motivation for the current work and explain how it is related to similar research which has used MLTT as a basis for a programming logic [Abb 87] [Con 86] [Kha 86] [Bac 89]. The reasons for investigating and using systems like TK and MLTT are, by now, quite well known: program specifications are assertions (in MLTT qua type) and it is possible to prove them within the system. Such proofs show that they are, in principle, satisfiable specifications and it is possible to extract programs that meet them from such proofs. Thus the enterprises of program derivation and specification are unified and one inherits a basic methodology for program derivation from the logical structure governing programs and types. Like MLTT, TK is a constructive theory of sets (sets in TK are types or kinds) but it differs from it in a number of respects, the most important of which, for the purposes of this paper, is that the language of TK separates the assertions or formulae from the types. MLTT, in contrast, makes use of the propositions as types identification [How 80] and so does not make this separation. We have ...
Implementation of Intuitionistic Type Theory and Realizability Theory
, 1995
"... Writing correct programming code is necessary in computer system development, where complete testing is not possible. Intuitionistic type theory leads to a mechanical generation of correct code by using specifications. The idea is that the specification of a program is its type, and the specificatio ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Writing correct programming code is necessary in computer system development, where complete testing is not possible. Intuitionistic type theory leads to a mechanical generation of correct code by using specifications. The idea is that the specification of a program is its type, and the specification can be expressed by logical statements called well-formed formulas (wffs) and therefore proved by using mathematical axioms and inference rules of logic. Then, using the correspondences propositions are types are specifications and proofs are programs are values [16], a proof can be translated into a correct programming code. The fundamental idea of realizability theory is that a proof can be translated into not only correct, but also minimal programming code, which contains only computational values. Based on these theories, a realizability algorithm developed by John Hatcliff defines how the translation can be done. We analyzed Hatcliff's algorithm and implemented it in a system. System ...
ProgrmaYerification in a l~gical Theory of Constructions
"... Abstract: The logical theory of constructions is a simple theory which combines functional programs and intuitionistic predicate calculus. Here we propose that it is a practical alternative to other constructive programming logics, such as Martin-LSf's type theory. Its main advantage is that it admi ..."
Abstract
- Add to MetaCart
Abstract: The logical theory of constructions is a simple theory which combines functional programs and intuitionistic predicate calculus. Here we propose that it is a practical alternative to other constructive programming logics, such as Martin-LSf's type theory. Its main advantage is that it admits reasoning directly about general recursion, while maintaining that all typed programs terminate. We illustrate the use of this theory by verifying the general recursive subtractive division program. I.

