Results 1 
8 of
8
Nominal Unification
 Theoretical Computer Science
, 2003
"... We present a generalisation of firstorder unification to the practically important case of equations between terms involving binding operations. A substitution of terms for variables solves such an equation if it makes the equated terms #equivalent, i.e. equal up to renaming bound names. For the a ..."
Abstract

Cited by 52 (20 self)
 Add to MetaCart
We present a generalisation of firstorder unification to the practically important case of equations between terms involving binding operations. A substitution of terms for variables solves such an equation if it makes the equated terms #equivalent, i.e. equal up to renaming bound names. For the applications we have in mind, we must consider the simple, textual form of substitution in which names occurring in terms may be captured within the scope of binders upon substitution. We are able to take a `nominal' approach to binding in which bound entities are explicitly named (rather than using nameless, de Bruijnstyle representations) and yet get a version of this form of substitution that respects #equivalence and possesses good algorithmic properties. We achieve this by adapting an existing idea and introducing a key new idea. The existing idea is terms involving explicit substitutions of names for names, except that here we only use explicit permutations (bijective substitutions). The key new idea is that the unification algorithm should solve not only equational problems, but also problems about the freshness of names for terms. There is a simple generalisation of the classical firstorder unification algorithm to this setting which retains the latter's pleasant properties: unification problems involving #equivalence and freshness are decidable; and solvable problems possess most general solutions.
Binary decision diagrams for first order predicate logic
 JOURNAL OF LOGIC AND ALGEBRAIC PROGRAMMING 57:1–22
, 2003
"... We present an extension of Binary Decision Diagrams (BDDs) such that they can be used for predicate logic. We present a sound and complete proof search method which we apply to a number of examples. ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We present an extension of Binary Decision Diagrams (BDDs) such that they can be used for predicate logic. We present a sound and complete proof search method which we apply to a number of examples.
Effective Metaprogramming in Declarative Languages
, 1998
"... Declarative metaprogramming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Declarative metaprogramming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a logic that has a model theory. A metaprogram operates on a representation of an object...
The Logic in Computer Science Column
 In Bulletin of the European Association for Theoretical Computer Science
, 1988
"... The famous Herbrand's theorem of mathematical logic plays an important role in automated theorem proving. In the first part of this article, we recall the theorem and formulate a number of natural decision problems related to it. Somewhat surprisingly, these problems happen to be equivalent. One ..."
Abstract
 Add to MetaCart
The famous Herbrand's theorem of mathematical logic plays an important role in automated theorem proving. In the first part of this article, we recall the theorem and formulate a number of natural decision problems related to it. Somewhat surprisingly, these problems happen to be equivalent. One of these problems is the socalled simultaneous rigid Eunification problem. In the second part, we survey recent result on the simultaneous rigid problem.
Preface
, 1995
"... In this lecture we will present a tiny functional language and gradually enrich its type system. We shall cover the basic CurryHindley system and Wand's constraintbased algorithm for monomorphic type inference; brie y observe the CurryHoward isomorphism and notice that logical formalism may serve ..."
Abstract
 Add to MetaCart
In this lecture we will present a tiny functional language and gradually enrich its type system. We shall cover the basic CurryHindley system and Wand's constraintbased algorithm for monomorphic type inference; brie y observe the CurryHoward isomorphism and notice that logical formalism may serve as the inspiration for new type rules; present the polymorphic Milner system and the DamasMilner algorithm for polymorphic type inference; see the MilnerMycroft system for polymorphic recursion; and sketch the development of higher type systems. We will touch upon the relationship between types and logic and show how rules from logic may give inspiration for new type rules. En route we shall encounter the curious discovery that two algorithmic problems for type systems, which have been implemented in popular programming languages, have turned out to be respectively complete for exponential time and undecidable. 1 1