Results 11  20
of
22
A Computational Induction Principle
, 1991
"... It is critical to have an induction method for reasoning about recursive programs expressed as fixed points, for otherwise our reasoning ability is severely impaired. The fixed point induction rule developed by deBakker and Scott is one such well known principle. Here we propose a new induction meth ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
It is critical to have an induction method for reasoning about recursive programs expressed as fixed points, for otherwise our reasoning ability is severely impaired. The fixed point induction rule developed by deBakker and Scott is one such well known principle. Here we propose a new induction method, computational induction, which is an induction on the computation process. Computational induction is founded on different principles than the fixed point induction principleit can only be defined in deterministic settings, and it cannot be modeled denotationally. Fixed point induction and computational induction prove many of the same facts; the relation between the two is examined in detail. 1 Introduction In a theory for reasoning about programs, in particular recursive functions defined via fixed points, there must exist induction principles if interesting results are to be proven. A number of different induction principles have been developed; for a review, see [Man74]. Author'...
CC+: An extension of the Calculus of Constructions with fixpoints
, 1993
"... We follow an original idea suggested by Constable and Smith [6, 7] providing a way for reasoning about non terminating computations in a typed framework. A former study has been worked out within NuPrl by Smith [21]. We investigate how these ideas can be developed within the Calculus of Construct ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We follow an original idea suggested by Constable and Smith [6, 7] providing a way for reasoning about non terminating computations in a typed framework. A former study has been worked out within NuPrl by Smith [21]. We investigate how these ideas can be developed within the Calculus of Constructions (CC). The adaptation provides an conservative extension, denoted CC+. Strong normalisation for fireductions is preserved. We recover the alternate "recursive" coding for integers introduced in AF2 by Parigot [12, 13]. Thus, the computational behaviour for terms coding integers is improved. Moreover, as expected, all partial recursive functions are now definable. Relationships with primitive coding through "Church" integers within the pure Calculus is studied, giving some insights into logical expressiveness issue. All these results easily generalize to all the usual data structures.
Church’s Thesis and Functional Programming
 JOURNAL OF UNIVERSAL COMPUTER SCIENCE
, 2004
"... The earliest statement of Church’s Thesis, from Church (1936) p356 is
We now define the notion, already discussed, of an effectively calculable function of positive integers by identifying it with the notion of a recursive function of positive integers (or of a lambda definable function of positiv ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The earliest statement of Church’s Thesis, from Church (1936) p356 is
We now define the notion, already discussed, of an effectively calculable function of positive integers by identifying it with the notion of a recursive function of positive integers (or of a lambda definable function of positive integers).
The phrase in parentheses refers to the apparatus which Church had developed to investigate this and other problems in the foundations of mathematics: the calculus of lambda conversion. Both the Thesis and the lambda calculus have been of seminal influence on the development of Computing Science. The main subject of this article is the lambda calculus but I will begin with a brief sketch of the emergence of the Thesis.
Abstract FINAL PREPRINT
"... This paper develops machinery necessary to mechanically import arbitrary functional programs into Coq’s type theory, manually strengthen their specifications with additional proofs, and then mechanicaly reextract the newlycertified program in a form which is as efficient as the original program. I ..."
Abstract
 Add to MetaCart
This paper develops machinery necessary to mechanically import arbitrary functional programs into Coq’s type theory, manually strengthen their specifications with additional proofs, and then mechanicaly reextract the newlycertified program in a form which is as efficient as the original program. In order to facilitate this goal, the coinductive technique of [Cap05] is modified to form a monad whose operators are the constructors of a coinductive type rather than functions defined over the type. The inductive invariant technique of [KM03] is extended to allow optional “after the fact ” termination proofs. These proofs inhabit members of Prop, and therefore do not affect extracted code. Compared to [Cap05], the new monad makes it possible to directly represent unrestricted recursion without violating productivity requirements [Gim95], and it produces efficient code via Coq’s extraction mechanism. The disadvantages of this technique include reliance on the JMeq axiom [McB00] and a significantly more complex notion of equality. The resulting technique is packaged as a Coq library, and is suitable for formalizing programs written in any sideeffectfree functional language with callbyvalue semantics.
A Foundation for Verified Software Development Systems
"... We describe a formalization of the metamathematics of programming in a higherorder calculus as a means to create verifiably correct implementations of program synthesis tools. Formal definitions and lemmata are used to raise the level of abstraction in formal reasoning to one comprehensible for pr ..."
Abstract
 Add to MetaCart
We describe a formalization of the metamathematics of programming in a higherorder calculus as a means to create verifiably correct implementations of program synthesis tools. Formal definitions and lemmata are used to raise the level of abstraction in formal reasoning to one comprehensible for programmers. Formal metatheorems make explicit the semantic knowledge contained in program derivation methods and serve as kernel of derived inference rules implementing these methods. By an example formalization of a strategy deriving global search algorithms we demonstrate the advantages of combining formal mathematics with an interactive theorem proving environment to develop powerful, flexible, and reliable systems for knowledgebased software development.
Formalizing the Halting Problem in a Constructive Type Theory
"... Abstract. We present a formalization of the halting problem in Agda, a language based on MartinLöf’s intuitionistic type theory. The key features are: – We give a constructive proof of the halting problem. The “constructive halting problem ” is a natural reformulation of the classic variant. – A ne ..."
Abstract
 Add to MetaCart
Abstract. We present a formalization of the halting problem in Agda, a language based on MartinLöf’s intuitionistic type theory. The key features are: – We give a constructive proof of the halting problem. The “constructive halting problem ” is a natural reformulation of the classic variant. – A new abstract model of computation is introduced, in type theory. – The undecidability of the halting problem is proved via a theorem similar to Rice’s theorem. The central idea of the formalization is to abstract from the details of specific models of computation. This is accomplished by formulating a number of axioms which describe an abstract model of computation, and proving that the halting problem is undecidable in any model described by these axioms. 1