Results 1 
6 of
6
Proving Termination of Normalization Functions for Conditional Expressions
 JOURNAL OF AUTOMATED REASONING
, 1986
"... ..."
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.
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.
Typechecking is Undecidable When 'Type' is a Type
, 1989
"... A function has a dependent type when the type of its result depends upon the value of its argument. The type o all types is the type of every type, including itself. In a typed Acalculus, these two features synergize in a conceptually clean and uniform way to yield enormous expressive power at very ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
A function has a dependent type when the type of its result depends upon the value of its argument. The type o all types is the type of every type, including itself. In a typed Acalculus, these two features synergize in a conceptually clean and uniform way to yield enormous expressive power at very little apparent cost. By reconstructing and analyzing a paradox due to Girard, we argue that there is no effective typechecking algorithm for such a language.
HOLCF ’11: A Definitional Domain Theory for Verifying Functional Programs
, 2012
"... HOLCF is an interactive theorem proving system that uses the mathematics of domain theory to reason about programs written in functional programming languages. This thesis introduces HOLCF ’11, a thoroughly revised and extended version of HOLCF that advances the state of the art in program verificat ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
HOLCF is an interactive theorem proving system that uses the mathematics of domain theory to reason about programs written in functional programming languages. This thesis introduces HOLCF ’11, a thoroughly revised and extended version of HOLCF that advances the state of the art in program verification: HOLCF ’11 can reason about many program definitions that are beyond the scope of other formal proof tools, while providing a high degree of proof automation. The soundness of the system is ensured by adhering to a definitional approach: New constants and types are defined in terms of previous concepts, without introducing new axioms. Major features of HOLCF ’11 include two highlevel definition packages: the Fixrec package for defining recursive functions, and the Domain package for defining recursive datatypes. Each of these uses the domaintheoretic concept of least fixed points to translate usersupplied recursive specifications into safe lowlevel definitions. Together, these tools make it easy for users to translate a wide variety of functional programs into the formalism of HOLCF. Theorems generated by the tools also make it easy for users to reason about their programs, with a very high level of confidence in the soundness of the results. As a case study, we present a fully mechanized verification of a model of concurrency based on powerdomains. The formalization depends on many features unique to HOLCF ’11, and is the first verification of such a model in a formal proof tool. ii ACKNOWLEDGMENTS I would like to thank my advisor, John Matthews, for having continued to devote so much time to working with me, even as a parttime professor; and for motivating me to keep studying domain theory (and enjoying it!) these past years. iii