7 research outputs found
Closed nominal rewriting and efficiently computable nominal algebra equality
We analyse the relationship between nominal algebra and nominal rewriting,
giving a new and concise presentation of equational deduction in nominal
theories. With some new results, we characterise a subclass of equational
theories for which nominal rewriting provides a complete procedure to check
nominal algebra equality. This subclass includes specifications of the
lambda-calculus and first-order logic.Comment: In Proceedings LFMTP 2010, arXiv:1009.218
Nominal Unification with Atom and Context Variables
Automated deduction in higher-order program calculi, where properties of transformation rules are demanded, or confluence or other equational properties are requested, can often be done by syntactically computing overlaps (critical pairs) of reduction rules and transformation rules. Since higher-order calculi have alpha-equivalence as fundamental equivalence, the reasoning procedure must deal with it. We define ASD1-unification problems, which are higher-order equational unification problems employing variables for atoms, expressions and contexts, with additional distinct-variable constraints, and which have to be solved w.r.t. alpha-equivalence. Our proposal is to extend nominal unification to solve these unification problems. We succeeded in constructing the nominal unification algorithm NomUnifyASD. We show that NomUnifyASD is sound and complete for this problem class, and outputs a set of unifiers with constraints in nondeterministic polynomial time if the final constraints are satisfiable. We also show that solvability of the output constraints can be decided in NEXPTIME, and for a fixed number of context-variables in NP time. For terms without context-variables and atom-variables, NomUnifyASD runs in polynomial time, is unitary, and extends the classical problem by permitting distinct-variable constraints
Nominal Logic Programming
Nominal logic is an extension of first-order logic which provides a simple
foundation for formalizing and reasoning about abstract syntax modulo
consistent renaming of bound names (that is, alpha-equivalence). This article
investigates logic programming based on nominal logic. We describe some typical
nominal logic programs, and develop the model-theoretic, proof-theoretic, 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 examples.Comment: 46 pages; 19 page appendix; 13 figures. Revised journal submission as
of July 23, 200
Extensions of nominal terms
This thesis studies two major extensions of nominal terms. In particular, we
study an extension with -abstraction over nominal unknowns and atoms, and an
extension with an arguably better theory of freshness and -equivalence.
Nominal terms possess two levels of variable: atoms a represent variable symbols,
and unknowns X are `real' variables. As a syntax, they are designed to facilitate
metaprogramming; unknowns are used to program on syntax with variable symbols.
Originally, the role of nominal terms was interpreted narrowly. That is, they
were seen solely as a syntax for representing partially-speci ed abstract syntax with
binding.
The main motivation of this thesis is to extend nominal terms so that they can
be used for metaprogramming on proofs, programs, etc. and not just for metaprogramming
on abstract syntax with binding. We therefore extend nominal terms
in two signi cant ways: adding -abstraction over nominal unknowns and atoms|
facilitating functional programing|and improving the theory of -equivalence that
nominal terms possesses.
Neither of the two extensions considered are trivial. The capturing substitution
action of nominal unknowns implies that our notions of scope, intuited from working
with syntax possessing a non-capturing substitution, such as the -calculus, is no
longer applicable. As a result, notions of -abstraction and -equivalence must be
carefully reconsidered.
In particular, the rst research contribution of this thesis is the two-level -
calculus, intuitively an intertwined pair of -calculi. As the name suggests, the
two-level -calculus has two level of variable, modelled by nominal atoms and unknowns,
respectively. Both levels of variable can be -abstracted, and requisite
notions of -reduction are provided. The result is an expressive context-calculus.
The traditional problems of handling -equivalence and the failure of commutation
between instantiation and -reduction in context-calculi are handled through the
use of two distinct levels of variable, swappings, and freshness side-conditions on
unknowns, i.e. `nominal technology'.
The second research contribution of this thesis is permissive nominal terms,
an alternative form of nominal term. They retain the `nominal' rst-order
avour
of nominal terms (in fact, their grammars are almost identical) but forego the use
of explicit freshness contexts. Instead, permissive nominal terms label unknowns
with a permission sort, where permission sorts are in nite and coin nite sets of
atoms. This in nite-coin nite nature means that permissive nominal terms recover
two properties|we call them the `always-fresh' and `always-rename' properties
that nominal terms lack. We argue that these two properties bring the theory of
-equivalence on permissive nominal terms closer to `informal practice'.
The reader may consider -abstraction and -equivalence so familiar as to be
`solved problems'. The work embodied in this thesis stands testament to the fact
that this isn't the case. Considering -abstraction and -equivalence in the context
of two levels of variable poses some new and interesting problems and throws light
on some deep questions related to scope and binding