Results 1  10
of
10
Five axioms of alphaconversion
 Ninth international Conference on Theorem Proving in Higher Order Logics TPHOL
, 1996
"... Abstract. We present five axioms of namecarrying lambdaterms identified up to alphaconversion—that is, up to renaming of bound variables. We assume constructors for constants, variables, application and lambdaabstraction. Other constants represent a function Fv that returns the set of free variab ..."
Abstract

Cited by 51 (0 self)
 Add to MetaCart
Abstract. We present five axioms of namecarrying lambdaterms identified up to alphaconversion—that is, up to renaming of bound variables. We assume constructors for constants, variables, application and lambdaabstraction. Other constants represent a function Fv that returns the set of free variables in a term and a function that substitutes a term for a variable free in another term. Our axioms are (1) equations relating Fv and each constructor, (2) equations relating substitution and each constructor, (3) alphaconversion itself, (4) unique existence of functions on lambdaterms defined by structural iteration, and (5) construction of lambdaabstractions given certain functions from variables to terms. By building a model from de Bruijn’s nameless lambdaterms, we show that our five axioms are a conservative extension of HOL. Theorems provable from the axioms include distinctness, injectivity and an exhaustion principle for the constructors, principles of structural induction and primitive recursion on lambdaterms, Hindley and Seldin’s substitution lemmas and
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 42 (6 self)
 Add to MetaCart
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
A Definitional TwoLevel Approach to Reasoning with HigherOrder Abstract Syntax
 Journal of Automated Reasoning
, 2010
"... Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
Abstract. Combining higherorder abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work [ACM02] described the implementation of a tool called Hybrid, within Isabelle HOL, syntax, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. The idea is to have a de Bruijn representation of syntax, while offering tools for reasoning about them at the higher level. In this paper we describe how to use it in a multilevel reasoning fashion, similar in spirit to other metalogics such as Linc and Twelf. By explicitly referencing provability in a middle layer called a specification logic, we solve the problem of reasoning by (co)induction in the presence of nonstratifiable hypothetical judgments, which allow very elegant and succinct specifications of object logic inference rules. We first demonstrate the method on a simple example, formally proving type soundness (subject reduction) for a fragment of a pure functional language, using a minimal intuitionistic logic as the specification logic. We then prove an analogous result for a continuationmachine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that serves as the specification layer. This example demonstrates the ease with which we can incorporate new specification logics, and also illustrates a significantly
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 8 (4 self)
 Add to MetaCart
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.
A Functional Approach for Formalizing Regular Hardware Structures
"... An approach for formalizing hardware behaviour is presented which is based on a small functional programming language called primitive ML (PML). Since the basic constructs of PML are simply typed terms, PML lends itself both to simulation and verification. The semantics of PML is formally embe ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
An approach for formalizing hardware behaviour is presented which is based on a small functional programming language called primitive ML (PML). Since the basic constructs of PML are simply typed terms, PML lends itself both to simulation and verification. The semantics of PML is formally embedded in higherorder logic. The formalization
On the Representation of Datatypes in Isabelle/HOL
 First Isabelle Users Workshop
, 1995
"... Representation of datatypes is a necessary prerequisite if one wants to proverather than postulate the characteristic theorems of datatypes. This paper introduces two notions of representation functions for types and shows how representations of composed types can be calculated from representations ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Representation of datatypes is a necessary prerequisite if one wants to proverather than postulate the characteristic theorems of datatypes. This paper introduces two notions of representation functions for types and shows how representations of composed types can be calculated from representations of their constituents. Together with a representation of basic types due to Paulson [6], this provides a basis for the mechanization of datatypes in Isabelle/HOL. 0
Reasoning with Hypothetical Judgments and Open Terms in Hybrid
"... Hybrid is a system developed to specify and reason about logics, programming languages, and other formal systems expressed in higherorder abstract syntax (HOAS). An important goal of Hybrid is to exploit the advantages of HOAS within the wellunderstood setting of higherorder logic as implemented ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Hybrid is a system developed to specify and reason about logics, programming languages, and other formal systems expressed in higherorder abstract syntax (HOAS). An important goal of Hybrid is to exploit the advantages of HOAS within the wellunderstood setting of higherorder logic as implemented by systems such as Isabelle and Coq. In this paper, we add new capabilities for reasoning by induction on encodings of objectlevel inference rules. Elegant and succinct specifications of such inference rules can often be given using hypothetical and parametric judgments, which are represented by embedded implication and universal quantification. Induction over such judgments is wellknown to be problematic. In previous work, we showed how to express this kind of judgment using a twolevel approach, but reasoning by induction on such judgments was restricted to closed terms. The new capabilities we add include techniques for adding arbitrary “new ” variables to contexts and inductively reasoning about open terms. Very little overhead is required, namely a small library of definitions and lemmas, yet the reasoning power of the system and the class of properties that can be proved is significantly increased. We illustrate the approach using PCF, a simple programming language that serves as the core of a variety of functional languages. We encode the typing judgment, and prove by induction on this judgment that welltyped PCF terms have unique types.
Inductive data types with negative occurrences in HOL
, 2002
"... We identify that a useful inductive data type ty with negative occurrences like ty!bool in the arguments of its constructors can have a settheoretic interpretation when the negative occurrence models only fnite sets. Subsequently, we show how such data types can be manually added to higher order lo ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We identify that a useful inductive data type ty with negative occurrences like ty!bool in the arguments of its constructors can have a settheoretic interpretation when the negative occurrence models only fnite sets. Subsequently, we show how such data types can be manually added to higher order logic using equivalence sets.
Isabelle HOL  The Tutorial
, 1999
"... Contents 1 Basic Concepts 1 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Theories, proofs and interaction . . . . . . . . . . . . . . . . . 1 1.3 Types, terms and formulae . . . . . . . . . . . . . . . . . . . 2 1.4 Variables . . . . . . . . . . . . . . . . . . . . ..."
Abstract
 Add to MetaCart
Contents 1 Basic Concepts 1 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Theories, proofs and interaction . . . . . . . . . . . . . . . . . 1 1.3 Types, terms and formulae . . . . . . . . . . . . . . . . . . . 2 1.4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Functional Programming in HOL 6 2.1 An introductory theory . . . . . . . . . . . . . . . . . . . . . 6 2.2 An introductory proof . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Some helpful commands . . . . . . . . . . . . . . . . . . . . . 11 2.4 Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.1 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.2 The general format . . . . . . . . . . . . . . . . . . . . 13 2.4.3 Primitive recursion . . . . . . . . . . . . . . . . . . . . 13 2.4.4 caseexpressions . .
Witnessing (Co)datatypes
"... Datatypes and codatatypes are useful for specifying and reasoning about (possibly infinite) computational processes. The interactive theorem prover Isabelle/HOL has recently been extended with a definitional package that supports both. Here we describe a complete procedure for deriving nonemptiness ..."
Abstract
 Add to MetaCart
Datatypes and codatatypes are useful for specifying and reasoning about (possibly infinite) computational processes. The interactive theorem prover Isabelle/HOL has recently 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.