Results 1 
5 of
5
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.
Nominal logic programming
, 2006
"... Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especial ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
Nominal logic is an extension of firstorder logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, αequivalence). This article investigates logic programming based on nominal logic. This technique is especially wellsuited for prototyping type systems, proof theories, operational semantics rules, and other formal systems in which bound names are present. In many cases, nominal logic programs are essentially literal translations of “paper” specifications. As such, nominal logic programming provides an executable specification language for prototyping, communicating, and experimenting with formal systems. We describe some typical nominal logic programs, and develop the modeltheoretic, prooftheoretic, and operational semantics of such programs. Besides being of interest for ensuring the correct behavior of implementations, these results provide a rigorous foundation for techniques for analysis and reasoning about nominal logic programs, as we illustrate via two examples.
POSSUM: An Animator for the SUM Specification Language
 IN PROCEEDINGS ASIAPACIFIC SOFTWARE ENGINEERING CONFERENCE AND INTERNATIONAL COMPUTER SCIENCE CONFERENCE
, 1997
"... This paper presents an overview of the Possum specification animation system, an addition to the Cogito Methodology and Toolset. Possum allows interpretation (or animation) of specifications written in Sum, which is the specification language used in Cogito. We give an account of the functionality o ..."
Abstract

Cited by 18 (6 self)
 Add to MetaCart
This paper presents an overview of the Possum specification animation system, an addition to the Cogito Methodology and Toolset. Possum allows interpretation (or animation) of specifications written in Sum, which is the specification language used in Cogito. We give an account of the functionality of Possum, illustrated by some simple examples, and describe the way in which Possum is used in a typical Cogito development. The current capabilities and limitations of Possum are reviewed from a technical perspective and an overview of other systems that support the animation of formal specification languages is presented.
The Ergo 5 Generic Proof Engine
, 1997
"... s and compressed postscript files are available via http://svrc.it.uq.edu.au The Ergo 5 Generic Proof Engine Mark Utting Abstract This paper describes the design principles and the architecture of the latest version of the Ergo proof engine, Ergo 5. Ergo 5 is a generic interactive theorem pro ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
s and compressed postscript files are available via http://svrc.it.uq.edu.au The Ergo 5 Generic Proof Engine Mark Utting Abstract This paper describes the design principles and the architecture of the latest version of the Ergo proof engine, Ergo 5. Ergo 5 is a generic interactive theorem prover, similar to Isabelle, but based on sequent calculus rather than natural deduction and with a quite different approach to handling variable scoping. An efficient implementation of Ergo 5, based on QuProlog, is also described, together with some benchmark results. 1 Motivation The Software Verification Research Centre, a special research centre of the Australian Research Council, is developing a suite of tools for reasoning about Z specifications and verifying refinement of specifications to code. There are several different projects investigating various aspects and approaches. To gain synergy, we want a common proof tool for all the projects, even though they have differing requi...
Towards MultiStrategy MultiLanguageClass Classification for Conceptual Graphs
 Supplementary proceedings of the 4th International Conference on Conceptual Structures ICCS96
, 1996
"... Our main goal is the integration of theorem proving techniques. Logical formulae may be ordered by logical implication. Program specifications are logical formulae and may be in various languages such as conceptual graphs. Languages form a hierarchy ordered by generality of their logical connectives ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Our main goal is the integration of theorem proving techniques. Logical formulae may be ordered by logical implication. Program specifications are logical formulae and may be in various languages such as conceptual graphs. Languages form a hierarchy ordered by generality of their logical connectives. Classifying formulae requires subsumption methods such as theorem provers. Theorem provers are sensitive to formulation of statements. An architecture that chooses subsumption methods according to the languages of the formulae to be compared would be useful. This requires an investigation into existing subsumption methods.