Results 1 
3 of
3
Automatic Synthesis of Recursive Programs: The ProofPlanning Paradigm
, 1997
"... We describe a proof plan that characterises a family of proofs corresponding to the synthesis of recursive functional programs. This plan provides a significant degree of automation in the construction of recursive programs from specifications, together with correctness proofs. This plan makes use o ..."
Abstract

Cited by 21 (2 self)
 Add to MetaCart
We describe a proof plan that characterises a family of proofs corresponding to the synthesis of recursive functional programs. This plan provides a significant degree of automation in the construction of recursive programs from specifications, together with correctness proofs. This plan makes use of metavariables to allow successive refinement of the identity of unknowns, and so allows the program and the proof to be developed hand in hand. We illustrate the plan with parts of a substantial example  the synthesis of a unification algorithm.
Verifying the Unification Algorithm in LCF
 Science of Computer Programming
, 1985
"... Manna and Waldinger's theory of substitutions and unification has been verified using the Cambridge LCF theorem prover. A proof of the monotonicity of substitution is presented in detail, as an example of interaction with LCF. Translating the theory into LCF's domaintheoretic logic is ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
Manna and Waldinger's theory of substitutions and unification has been verified using the Cambridge LCF theorem prover. A proof of the monotonicity of substitution is presented in detail, as an example of interaction with LCF. Translating the theory into LCF's domaintheoretic logic is largely straightforward. Wellfounded induction on a complex ordering is translated into nested structural inductions. Correctness of unification is expressed using predicates for such properties as idempotence and mostgenerality. The verification is presented as a series of lemmas. The LCF proofs are compared with the original ones, and with other approaches. It appears di#cult to find a logic that is both simple and flexible, especially for proving termination.
Unification
"... In this note we present the basic theory of substitutions and a unification algorithm expressed in an applicative sideeffect free programming language. 1 INTRODUCTION 1 1 Introduction Unification was first introduced in theorem proving by Robinson [9], and the problem is well known in the literat ..."
Abstract
 Add to MetaCart
In this note we present the basic theory of substitutions and a unification algorithm expressed in an applicative sideeffect free programming language. 1 INTRODUCTION 1 1 Introduction Unification was first introduced in theorem proving by Robinson [9], and the problem is well known in the literature (see for example Siekmann [10]). Unification is ubiquitous in Computer Science; several applications are presented in [2]. The theory of unification is well established and it is briefly recalled here. Specifically, we introduce the representation of expressions, the theory of substitution and then the definition of most general unifier. Finally, we present a unification algorithm expressed in an applicative sideeffect free programming language. Such a formulation has been formally synthesized by a logical specification using the deductive tableau method [7]. 2 Basic theories and conventions Before introducing the basic theories, a few remarks about the notation. We use lower case let...