Results 1  10
of
19
Inductive datatypes in HOL  lessons learned in FormalLogic Engineering
 Theorem Proving in Higher Order Logics: TPHOLs ’99, LNCS 1690
, 1999
"... Isabelle/HOL has recently acquired new versions of definitional packages for inductive datatypes and primitive recursive functions. In contrast to its predecessors and most other implementations, Isabelle/HOL datatypes may be mutually and indirect recursive, even infinitely branching. We also su ..."
Abstract

Cited by 50 (7 self)
 Add to MetaCart
(Show Context)
Isabelle/HOL has recently acquired new versions of definitional packages for inductive datatypes and primitive recursive functions. In contrast to its predecessors and most other implementations, Isabelle/HOL datatypes may be mutually and indirect recursive, even infinitely branching. We also support inverted datatype definitions for characterizing existing types as being inductive ones later. All our constructions are fully definitional according to established HOL tradition. Stepping back from the logical details, we also see this work as a typical example of what could be called "FormalLogic Engineering". We observe that building realistic theorem proving environments involves further issues rather than pure logic only. 1
Mechanizing Coinduction and Corecursion in Higherorder Logic
 Journal of Logic and Computation
, 1997
"... A theory of recursive and corecursive definitions has been developed in higherorder logic (HOL) and mechanized using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express coinductive data types, such as lazy lists. Wellfounded recursion expresse ..."
Abstract

Cited by 48 (6 self)
 Add to MetaCart
(Show Context)
A theory of recursive and corecursive definitions has been developed in higherorder logic (HOL) and mechanized using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express coinductive data types, such as lazy lists. Wellfounded recursion expresses recursive functions over inductive data types; corecursion expresses functions that yield elements of coinductive data types. The theory rests on a traditional formalization of infinite trees. The theory is intended for use in specification and verification. It supports reasoning about a wide range of computable functions, but it does not formalize their operational semantics and can express noncomputable functions also. The theory is illustrated using finite and infinite lists. Corecursion expresses functions over infinite lists; coinduction reasons about such functions. Key words. Isabelle, higherorder logic, coinduction, corecursion Copyright c fl 1996 by Lawrence C. Paulson Content...
A Fixedpoint Approach to (Co)Inductive and (Co)Datatype Definitions
, 1997
"... This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as "strictly positive," the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of ..."
Abstract

Cited by 24 (3 self)
 Add to MetaCart
(Show Context)
This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as "strictly positive," the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of mutual recursion and iterated definitions. It also handles coinductive definitions: simply replace the least fixedpoint by a greatest fixedpoint. The method
Foundational, Compositional (Co)datatypes for HigherOrder Logic  Category Theory Applied to Theorem Proving
"... Higherorder logic (HOL) forms the basis of several popular interactive theorem provers. These follow the definitional approach, reducing highlevel specifications to logical primitives. This also applies to the support for datatype definitions. However, the internal datatype construction used in H ..."
Abstract

Cited by 19 (11 self)
 Add to MetaCart
(Show Context)
Higherorder logic (HOL) forms the basis of several popular interactive theorem provers. These follow the definitional approach, reducing highlevel specifications to logical primitives. This also applies to the support for datatype definitions. However, the internal datatype construction used in HOL4, HOL Light, and Isabelle/HOL is fundamentally noncompositional, limiting its efficiency and flexibility, and it does not cater for codatatypes. We present a fully modular framework for constructing (co)datatypes in HOL, with support for mixed mutual and nested (co)recursion. Mixed (co)recursion enables type definitions involving both datatypes and codatatypes, such as the type of finitely branching trees of possibly infinite depth. Our framework draws heavily from category theory. The key notion is that of a rich type constructor—a functor satisfying specific properties preserved by interesting categorical operations. Our ideas are formalized in Isabelle and implemented as a new definitional package, answering a longstanding user request.
Traytel, D.: Truly modular (co)datatypes for Isabelle/HOL
, 2014
"... Abstract. We extended Isabelle/HOL with a pair of definitional commands for datatypes and codatatypes. They support mutual and nested (co)recursion through wellbehaved type constructors, including mixed recursion–corecursion, and are complemented by syntaxes for introducing primitively (co)recursiv ..."
Abstract

Cited by 10 (8 self)
 Add to MetaCart
(Show Context)
Abstract. We extended Isabelle/HOL with a pair of definitional commands for datatypes and codatatypes. They support mutual and nested (co)recursion through wellbehaved type constructors, including mixed recursion–corecursion, and are complemented by syntaxes for introducing primitively (co)recursive functions and by a general proof method for reasoning coinductively. As a case study, we ported Isabelle’s Coinductive library to use the new commands, eliminating the need for tedious ad hoc constructions. 1
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
Witnessing (Co)datatypes
"... Abstract. Datatypes and codatatypes are very useful for specifying and reasoning about (possibly infinite) computational processes. The interactive theorem prover Isabelle/HOL has been extended with a definitional package that supports both. Here we describe a complete procedure for deriving nonempt ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
(Show Context)
Abstract. Datatypes and codatatypes are very useful for specifying and reasoning about (possibly infinite) computational processes. The interactive theorem prover Isabelle/HOL has been extended with a definitional package that supports both. Here we describe a complete procedure for deriving nonemptiness witnesses in the general mutually recursive, nested case—nonemptiness being a proviso for introducing new types in higherorder logic. The nonemptiness problem also provides an illuminating case study that shows the package in action, tracing its journey from abstract category theory to handson functionality. 1
Semantics of General References by a Hierarchy of Gödel Numberings
"... We demonstrate a semantic model of general references  that is, mutable memory cells that may contain values of any (staticallychecked) closed type, including other references. Our model is in terms of execution sequences on a von Neumann machine; thus, it can be used in a ProofCarrying Code sy ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We demonstrate a semantic model of general references  that is, mutable memory cells that may contain values of any (staticallychecked) closed type, including other references. Our model is in terms of execution sequences on a von Neumann machine; thus, it can be used in a ProofCarrying Code system where the skeptical consumer checks even the proofs of the typing rules. Our proof is machinechecked in the Twelf metalogic.
A Comparison of HOL and ALF Formalizations of a Categorical Coherence Theorem
 In Theorem Proving in Higher Order Logic (HOL'96). Springer LNCS
, 1996
"... . We compare formalizations of an example from elementary category theory in the systems HOL (an implementation of Church's classical simple type theory) and ALF (an implementation of MartinL of's intuitionistic type theory). The example is a proof of coherence for monoidal categories whic ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
. We compare formalizations of an example from elementary category theory in the systems HOL (an implementation of Church's classical simple type theory) and ALF (an implementation of MartinL of's intuitionistic type theory). The example is a proof of coherence for monoidal categories which was extracted from a proof of normalization for monoids. It makes essential use of the identification of proofs and programs which is fundamental to intuitionistic type theory. This aspect is naturally highlighted in the ALF formalization. However, it was possible to develop a similar formalization of the proof in HOL. The most interesting aspect of the developments concerned the implementation of diagram chasing. In particular, the HOL development was greatly facilitated by an implementation of tool support for equational reasoning in Standard ML. 1 Introduction We compare the two proof assistants ALF and HOL by using them for implementing a proof in elementary category theory 3 . This proof was...