140 research outputs found
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
Semantics out of context: nominal absolute denotations for first-order logic and computation
Call a semantics for a language with variables absolute when variables map to
fixed entities in the denotation. That is, a semantics is absolute when the
denotation of a variable a is a copy of itself in the denotation. We give a
trio of lattice-based, sets-based, and algebraic absolute semantics to
first-order logic. Possibly open predicates are directly interpreted as lattice
elements / sets / algebra elements, subject to suitable interpretations of the
connectives and quantifiers. In particular, universal quantification "forall
a.phi" is interpreted using a new notion of "fresh-finite" limit and using a
novel dual to substitution.
The interest of this semantics is partly in the non-trivial and beautiful
technical details, which also offer certain advantages over existing
semantics---but also the fact that such semantics exist at all suggests a new
way of looking at variables and the foundations of logic and computation, which
may be well-suited to the demands of modern computer science
Finite and infinite support in nominal algebra and logic: nominal completeness theorems for free
By operations on models we show how to relate completeness with respect to
permissive-nominal models to completeness with respect to nominal models with
finite support. Models with finite support are a special case of
permissive-nominal models, so the construction hinges on generating from an
instance of the latter, some instance of the former in which sufficiently many
inequalities are preserved between elements. We do this using an infinite
generalisation of nominal atoms-abstraction.
The results are of interest in their own right, but also, we factor the
mathematics so as to maximise the chances that it could be used off-the-shelf
for other nominal reasoning systems too. Models with infinite support can be
easier to work with, so it is useful to have a semi-automatic theorem to
transfer results from classes of infinitely-supported nominal models to the
more restricted class of models with finite support.
In conclusion, we consider different permissive-nominal syntaxes and nominal
models and discuss how they relate to the results proved here
A simple sequent calculus for nominal logic
Nominal logic is a variant of first-order logic that provides support for
reasoning about bound names in abstract syntax. A key feature of nominal logic
is the new-quantifier, which quantifies over fresh names (names not appearing
in any values considered so far). Previous attempts have been made to develop
convenient rules for reasoning with the new-quantifier, but we argue that none
of these attempts is completely satisfactory.
In this article we develop a new sequent calculus for nominal logic in which
the rules for the new- quantifier are much simpler than in previous attempts.
We also prove several structural and metatheoretic properties, including
cut-elimination, consistency, and equivalence to Pitts' axiomatization of
nominal logic
From nominal sets binding to functions and lambda-abstraction: connecting the logic of permutation models with the logic of functions
Permissive-Nominal Logic (PNL) extends first-order predicate logic with
term-formers that can bind names in their arguments. It takes a semantics in
(permissive-)nominal sets. In PNL, the forall-quantifier or lambda-binder are
just term-formers satisfying axioms, and their denotation is functions on
nominal atoms-abstraction.
Then we have higher-order logic (HOL) and its models in ordinary (i.e.
Zermelo-Fraenkel) sets; the denotation of forall or lambda is functions on full
or partial function spaces.
This raises the following question: how are these two models of binding
connected? What translation is possible between PNL and HOL, and between
nominal sets and functions?
We exhibit a translation of PNL into HOL, and from models of PNL to certain
models of HOL. It is natural, but also partial: we translate a restricted
subsystem of full PNL to HOL. The extra part which does not translate is the
symmetry properties of nominal sets with respect to permutations. To use a
little nominal jargon: we can translate names and binding, but not their
nominal equivariance properties. This seems reasonable since HOL---and ordinary
sets---are not equivariant.
Thus viewed through this translation, PNL and HOL and their models do
different things, but they enjoy non-trivial and rich subsystems which are
isomorphic
A resolution principle for clauses with constraints
We introduce a general scheme for handling clauses whose variables are constrained by an underlying constraint theory. In general, constraints can be seen as quantifier restrictions as they filter out the values that can be assigned to the variables of a clause (or an arbitrary formulae with restricted universal or existential quantifier) in any of the models of the constraint theory. We present a resolution principle for clauses with constraints, where unification is replaced by testing constraints for satisfiability over the constraint theory. We show that this constrained resolution is sound and complete in that a set of clauses with constraints is unsatisfiable over the constraint theory if we can deduce a constrained empty clause for each model of the constraint theory, such that the empty clauses constraint is satisfiable in that model. We show also that we cannot require a better result in general, but we discuss certain tractable cases, where we need at most finitely many such empty clauses or even better only one of them as it is known in classical resolution, sorted resolution or resolution with theory unification
A Logical Foundation for Environment Classifiers
Taha and Nielsen have developed a multi-stage calculus {\lambda}{\alpha} with
a sound type system using the notion of environment classifiers. They are
special identifiers, with which code fragments and variable declarations are
annotated, and their scoping mechanism is used to ensure statically that
certain code fragments are closed and safely runnable. In this paper, we
investigate the Curry-Howard isomorphism for environment classifiers by
developing a typed {\lambda}-calculus {\lambda}|>. It corresponds to
multi-modal logic that allows quantification by transition variables---a
counterpart of classifiers---which range over (possibly empty) sequences of
labeled transitions between possible worlds. This interpretation will reduce
the "run" construct---which has a special typing rule in
{\lambda}{\alpha}---and embedding of closed code into other code fragments of
different stages---which would be only realized by the cross-stage persistence
operator in {\lambda}{\alpha}---to merely a special case of classifier
application. {\lambda}|> enjoys not only basic properties including subject
reduction, confluence, and strong normalization but also an important property
as a multi-stage calculus: time-ordered normalization of full reduction. Then,
we develop a big-step evaluation semantics for an ML-like language based on
{\lambda}|> with its type system and prove that the evaluation of a well-typed
{\lambda}|> program is properly staged. We also identify a fragment of the
language, where erasure evaluation is possible. Finally, we show that the proof
system augmented with a classical axiom is sound and complete with respect to a
Kripke semantics of the logic
- …