Results 1 
9 of
9
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.
Type Inference Verified: Algorithm W in Isabelle/HOL
, 1997
"... This paper presents the first machinechecked verification of Milner's type inference algorithm W for computing the most general type of an untyped term enriched with letexpressions. This term language is the core of most typed functional programming languages and is also known as MiniML ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
This paper presents the first machinechecked verification of Milner's type inference algorithm W for computing the most general type of an untyped term enriched with letexpressions. This term language is the core of most typed functional programming languages and is also known as MiniML. We show how to model all the concepts involved, in particular types and type schemes, substitutions, and the thorny issue of "new" variables. Only a few key proofs are discussed in detail. The theories and proofs are developed in Isabelle/HOL, the HOL instantiation of the generic theorem prover Isabelle.
LCF Examples in HOL
 The Computer Journal
, 1994
"... The LCF system provides a logic of fixed point theory and is useful to reason about nontermination, recursive definitions and infinitevalued types such as lazy lists. Because of continual presence of bottom elements, it is clumsy for reasoning about finitevalued types and strict functions. The ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
The LCF system provides a logic of fixed point theory and is useful to reason about nontermination, recursive definitions and infinitevalued types such as lazy lists. Because of continual presence of bottom elements, it is clumsy for reasoning about finitevalued types and strict functions. The HOL system provides set theory and supports reasoning about finitevalued types and total functions well. In this paper a number of examples are used to demonstrate that an extension of HOL with domain theory combines the benefits of both systems. The examples illustrate reasoning about infinite values and nonterminating functions and show how domain and set theoretic reasoning can be mixed to advantage. An example presents a proof of correctness of a recursive unification algorithm using wellfounded induction.
Induction Proofs with Partial Functions
 Journal of Automated Reasoning
, 1998
"... In this paper we present a method for automated induction proofs about partial functions. We show that most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these te ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
In this paper we present a method for automated induction proofs about partial functions. We show that most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible to develop a calculus for automated induction proofs with partial functions. In particular, under certain conditions one may even generate induction schemes from the recursions of nonterminating algorithms. The need for such induction schemes and the power of our calculus have been demonstrated on a large collection of nontrivial theorems (including Knuth and Bendix' critical pair lemma). In this way, existing induction theorem provers can be directly extended to partial functions without major changes of their logical framework.
Partial functions in induction theorem proving
 THE PROCEEDINGS OF CADE15 WORKSHOP ON MECHANISATION OF PARTIAL FUNCTIONS
, 1998
"... We present an approach for automated induction proofs with partial functions. Most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible t ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We present an approach for automated induction proofs with partial functions. Most wellknown techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible to develop a calculus for automated induction proofs with partial functions. In particular, under certain conditions one may even generate induction schemes from the recursions of nonterminating algorithms. The need for such induction schemes and the power of our approach have been demonstrated on a large collection of nontrivial theorems (including Knuth and Bendix' critical pair lemma). In this way, existing induction theorem provers can be directly extended to partial functions without changing their logical framework.
A Machine Checked Model of Idempotent MGU Axioms For a List of Equational Constraints
"... Machine checked proofs of type inference algorithms often axiomatize MGU behavior as a set of axioms. Idempotent MGUs for a list of equational constraints are needed to reason about the correctness of Wand’s type inference algorithm and our extension of it. To characterize the behavior of idempotent ..."
Abstract
 Add to MetaCart
Machine checked proofs of type inference algorithms often axiomatize MGU behavior as a set of axioms. Idempotent MGUs for a list of equational constraints are needed to reason about the correctness of Wand’s type inference algorithm and our extension of it. To characterize the behavior of idempotent MGUs, we propose a set of seven axioms; four of which have been proven in our earlier paper, where we formally verify that the first order unification is a model for the axioms. This paper shows that the first order unification is a model for the remaining three idempotent MGU axioms. Coq’s method of functional induction is the main proof technique used in proving the axioms. 1
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...