Results 1 
2 of
2
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 largely st ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
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.