Results 1  10
of
10
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 7 (5 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
Contributions to the Theory of Syntax with Bindings and to Process Algebra
, 2010
"... We develop a theory of syntax with bindings, focusing on: methodological issues concerning the convenient representation of syntax; techniques for recursive definitions and inductive reasoning. Our approach consists of a combination of FOAS (FirstOrder Abstract Syntax) and HOAS (HigherOrder Abst ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
(Show Context)
We develop a theory of syntax with bindings, focusing on: methodological issues concerning the convenient representation of syntax; techniques for recursive definitions and inductive reasoning. Our approach consists of a combination of FOAS (FirstOrder Abstract Syntax) and HOAS (HigherOrder Abstract Syntax) and tries to take advantage of the best of both worlds. The connection between FOAS and HOAS follows some general patterns and is presented as a (formally certified) statement of adequacy. We also develop a general technique for proving bisimilarity in process algebra Our technique, presented as a formal proof system, is applicable to a wide range of process algebras. The proof system is incremental, in that it allows building incrementally an a priori unknown bisimulation, and patternbased, in that it works on equalities of process patterns (i.e., universally quantified equations of process terms containing process variables), thus taking advantage of equational reasoning in a “circular ” manner, inside coinductive proof loops. All the work presented here has been formalized in the Isabelle theorem prover. The formalization is performed in a general setting: arbitrary manysorted syntax with bindings and arbitrary SOSspecified process algebra in de Simone format. The usefulness of our techniques is illustrated by several formalized case studies: a development of callbyname and callbyvalue λcalculus with constants, including ChurchRosser theorems, connection with de Bruijn representation, connection with other Isabelle formalizations, HOAS representation, and contituationpassingstyle (CPS) transformation; a proof in HOAS of strong normalization for the polymorphic secondorder λcalculus (a.k.a. System F). We also indicate the outline and some details of the formal development. ii to Leili R. Marleene iii
Formalising finfuns — generating code for functions as data from Isabelle/HOL
 of Lecture Notes in Computer Science
, 2009
"... Abstract. FinFuns are total functions that are constant except for a finite set of points, i.e. a generalisation of finite maps. We formalise them in Isabelle/HOL and present how to safely set up Isabelle’s code generator such that operations like equality testing and quantification on FinFuns be ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Abstract. FinFuns are total functions that are constant except for a finite set of points, i.e. a generalisation of finite maps. We formalise them in Isabelle/HOL and present how to safely set up Isabelle’s code generator such that operations like equality testing and quantification on FinFuns become executable. On the code output level, FinFuns are explicitly represented by constant functions and pointwise updates, similarly to associative lists. Inside the logic, they behave like ordinary functions with extensionality. Via the update/constant pattern, a recursion combinator and an induction rule for FinFuns allow for defining and reasoning about operators on FinFuns that directly become executable. We apply the approach to an executable formalisation of sets and use it for the semantics for a subset of concurrent Java. 1
Formal SOSProofs in the LambdaCalculus
 SOS 2007
, 2007
"... We describe in this paper formalisations for the properties of weakening, typesubstitutivity, subjectreduction and terminationof the usual bigstep evaluation relation. Our language is the lambdacalculus whose simplicity allows us to give theoremprover code for the formal proofs. The formalisati ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
We describe in this paper formalisations for the properties of weakening, typesubstitutivity, subjectreduction and terminationof the usual bigstep evaluation relation. Our language is the lambdacalculus whose simplicity allows us to give theoremprover code for the formal proofs. The formalisations are done in the theorem prover Isabelle/HOL using the nominal datatypepackage. The point of these formalisations is to be as close as possible to the "pencilandpaper" proofs for these properties, but of course be completely rigorous. We describe where the nominal datatype package is of great help with such formalisationsand where one has to invest additional effort in order to obtain formal proofs.
A.: Nonfree datatypes in Isabelle/HOL: Animating a manysorted metatheory
 CPP 2013. LNCS
, 2013
"... Abstract. Datatypes freely generated by their constructors are well supported in mainstream proof assistants. Algebraic specification languages offer more expressive datatypes on axiomatic means: nonfree datatypes generated from constructors modulo equations. We have implemented an Isabelle/HOL pa ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract. Datatypes freely generated by their constructors are well supported in mainstream proof assistants. Algebraic specification languages offer more expressive datatypes on axiomatic means: nonfree datatypes generated from constructors modulo equations. We have implemented an Isabelle/HOL package for nonfree datatypes, without compromising foundations. The use of the package, and its nonfree iterator in particular, is illustrated with examples: bags, polynomials and λterms modulo αequivalence. The manysorted metatheory of nonfree datatypes is formalized as an ordinary Isabelle theory and is animated by the package into userspecified instances. HOL lacks a type of types, so we employ an ad hoc construction of a universe embedding the relevant parameter types. 1
A Mechanised Proof of Gödel’s Incompleteness Theorems using Nominal Isabelle
"... Abstract A Isabelle/HOL formalisation of Gödel’s two incompleteness theorems is presented. Aspects of the development are described in detail, including two separate treatments of variable binding: the nominal package [25] and de Bruijn indices [3]. The work follows ´ Swierczkowski’s a detailed proo ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
Abstract A Isabelle/HOL formalisation of Gödel’s two incompleteness theorems is presented. Aspects of the development are described in detail, including two separate treatments of variable binding: the nominal package [25] and de Bruijn indices [3]. The work follows ´ Swierczkowski’s a detailed proof, using hereditarily finite set theory [23]. 1
Nominal Verification of Algorithm W
, 2008
"... The MilnerDamas typing algorithm W is one of the classic algorithms in Computer Science. In this paper we describe a formalised soundness and completeness proof for this algorithm. Our formalisation is based on names for both term and type variables, and is carried out in Isabelle/HOL using the Nom ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
The MilnerDamas typing algorithm W is one of the classic algorithms in Computer Science. In this paper we describe a formalised soundness and completeness proof for this algorithm. Our formalisation is based on names for both term and type variables, and is carried out in Isabelle/HOL using the Nominal Datatype Package. It turns out that in our formalisation we have to deal with a number of issues that are often overlooked in informal presentations of W. 1
A functional hitchhiker’s guide to hereditarily finite sets, Ackermann encodings and pairing functions
 Computing Research Repository
"... The paper is organized as a selfcontained literate Haskell program that implements elements of an executable finite set theory with focus on combinatorial generation and arithmetic encodings. The code, tested under GHC 6.6.1, is available at ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
The paper is organized as a selfcontained literate Haskell program that implements elements of an executable finite set theory with focus on combinatorial generation and arithmetic encodings. The code, tested under GHC 6.6.1, is available at
Huffman, Brian Charles, "HOLCF '11: A Definitional Domain Theory for Verifying Functional Programs " (2011). Dissertations and Theses. Paper 113. HOLCF ’11: A Definitional Domain Theory for Verifying Functional Programs
"... Let us know how access to this document benefits you. Follow this and additional works at: ..."
Abstract
 Add to MetaCart
(Show Context)
Let us know how access to this document benefits you. Follow this and additional works at: