40 research outputs found
Constraint solving in non-permutative nominal abstract syntax
Nominal abstract syntax is a popular first-order technique for encoding, and
reasoning about, abstract syntax involving binders. Many of its applications
involve constraint solving. The most commonly used constraint solving algorithm
over nominal abstract syntax is the Urban-Pitts-Gabbay nominal unification
algorithm, which is well-behaved, has a well-developed theory and is applicable
in many cases. However, certain problems require a constraint solver which
respects the equivariance property of nominal logic, such as Cheney's
equivariant unification algorithm. This is more powerful but is more
complicated and computationally hard. In this paper we present a novel
algorithm for solving constraints over a simple variant of nominal abstract
syntax which we call non-permutative. This constraint problem has similar
complexity to equivariant unification but without many of the additional
complications of the equivariant unification term language. We prove our
algorithm correct, paying particular attention to issues of termination, and
present an explicit translation of name-name equivariant unification problems
into non-permutative constraints
On Nominal Syntax and Permutation Fixed Points
We propose a new axiomatisation of the alpha-equivalence relation for nominal
terms, based on a primitive notion of fixed-point constraint. We show that the
standard freshness relation between atoms and terms can be derived from the
more primitive notion of permutation fixed-point, and use this result to prove
the correctness of the new -equivalence axiomatisation. This gives rise
to a new notion of nominal unification, where solutions for unification
problems are pairs of a fixed-point context and a substitution. Although it may
seem less natural than the standard notion of nominal unifier based on
freshness constraints, the notion of unifier based on fixed-point constraints
behaves better when equational theories are considered: for example, nominal
unification remains finitary in the presence of commutativity, whereas it
becomes infinitary when unifiers are expressed using freshness contexts. We
provide a definition of -equivalence modulo equational theories that
take into account A, C and AC theories. Based on this notion of equivalence, we
show that C-unification is finitary and we provide a sound and complete
C-unification algorithm, as a first step towards the development of nominal
unification modulo AC and other equational theories with permutative
properties
Nominal commutative narrowing
Dissertação (mestrado) — Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Matemática, 2022.Modelagem e raciocínio equacional são onipresentes na Matemática e na Ciência da Computação. Técnicas de reescrita têm sido aplicadas com sucesso para formalizar e implementar
inferência automatizada em estruturas matemáticas dedutivas. Apresentar teorias equacionais
por meio da reescrita dá origem a um mecanismo para decidir a redução equacional da
teoria sempre que o sistema de reescrita for terminante e confluente, ou seja, sempre que for
convergente. Resolver problemas equacionais é um passo adiante que requer mais esforço
do que apenas usar reescrita. De fato, “estreitar” problemas equacionais é uma técnica
bem conhecida que adiciona à reescrita o poder necessário para buscar soluções; em outras
palavras, adiciona o poder de buscar instâncias das variáveis que ocorrem em um problema
equacional que “unifica” as equações.
Por sua vez, a lógica nominal foi desenvolvida para contornar as inconveniências apresentadas quando as variáveis são instanciadas. A abordagem nominal usa átomos nominais em
vez de variáveis para evitar a necessidade de renomeação de variáveis ao lidar com equações
na abordagem notacional padrão. A sintaxe nominal também inclui permutações de átomos
para distinguir algebricamente os átomos evitando colisões e capturas destes.
Neste trabalho, estudamos a reescrita nominal módulo comutatividade. Desenvolvemos o
método estreitamento nominal comutativo (nominal commutative narrowing) para lidar com
o problema de unificação nominal módulo teorias equacionais que incluem comutatividade,
o qual não é finitário dependendo da representação das soluções.Equational modelling and reasoning are ubiquitous in Mathematics and Computer Science.
Rewriting techniques have been applied successfully to formalize and implement automated
inference in mathematical deductive frameworks. Presenting equational theories by rewriting
gives rise to a mechanism to decide the equational reduct of the theory whenever the rewriting
system is terminating and confluent, i.e., whenever it is convergent. Solving equational
problems is a step further that requires more effort than just rewriting. Indeed, “narrowing”
equational problems is a well-known technique that adds to rewriting the required power
to search for solutions; in other words, it adds the power to search for instantiations of the
variables occurring in an equational problem that “unify” the equations.
On its side, the nominal logic has been developed to contour inconveniences presented
when variables are instantiated. The nominal approach uses nominal atoms instead of
variables to avoid the requirement of variable renaming when dealing with equations in
the standard notational approach. The nominal syntax also includes atom permutations to
algebraically distinguish atoms avoiding atom collisions and captures.
In this work, we study nominal rewriting modulo commutativity. We develop nominal
commutative narrowing to deal with the problem of nominal unification modulo equational
theories that include commutativity, which is not finitary depending on the representation of
solutions
Nominal disunification
Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Matemática, 2019.Propõe-se uma extensão para problemas de disunificação de primeira-ordem adicionando suporte a operadores de ligação de acordo com a abordagem nominal. Nesta abordagem, abstração é implementada usando átomos nominais ao invés de variáveis de ligação como na representação clássica de termos e renomeamento de átomos é implementado por permutações. Em lógica nominal problemas de unificação consistem de perguntas equacionais da forma s ≈α ? t (lê-se: s é α-equivalente a t?) consideradas sobre problemas de freshness da forma a# ? t (lê-se: a é fresco em t?) que restringem soluções proibindo ocorrências livres de átomos na instanciação de variáveis. Além dessas questões equacionais e freshness, problemas de disunificação nominal incluem restrições na forma de disequações s ̸≈α ? t (lê-se: s é αdiferente de t?) com soluções dadas por pares consistindo de uma substituição σ e um conjunto de restrições de freshness na forma a#X tal que sobre estas restrições a σ-instanciação de equações, disequações, e problemas de freshness são válidas. Mostra-se, reutilizando noções de unificação nominal, como decidir se dois termos nominais podem ser feitos diferentes módulo α-equivalência. Isso é feito extendendo resultados anteriores sobre disunificação de primeira ordem e definindo a noção de soluções com exceção na linguagem nominal. Uma discussão sobre a semântica de restrições em forma de disequações também é apresentada.Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).An extension of first-order disunification problems is proposed by taking into account binding operators according to the nominal approach. In this approach, bindings are implemented through nominal atoms used instead of binding variables and renaming of atoms are implemented by atom permutations. In the nominal setting, unification problems consist of equational questions of the form s ≈α ? t (read: is s α-equivalent to t?) considered under freshness problems a# ? t (read: is a fresh for t?) that restrict solutions by forbidding free occurrences of atoms in the instantiations of variables. In addition to equational and freshness problems, nominal disunification problems also include nominal disunification constraints in the form of disequations s ̸≈α ? t (read: is s α-different to t?) and their solutions consist of pairs of a substitution σ and a finite set of freshness constraints in the form of a#X such that under these restrictions the σ-instantiation of the equations, disequations, and freshness problems holds. By re-using nominal unification techniques, it is shown how to decide whether two nominal terms can be made different modulo α-equivalence. This is done by extending previous results on first-order disunification and by defining the notion of solutions with exceptions in the nominal syntax. A discussion on the semantics of disunification constraints is also given
Fixed-Point Constraints for Nominal Equational Unification
We propose a new axiomatisation of the alpha-equivalence relation for nominal terms, based on a primitive notion of fixed-point constraint. We show that the standard freshness relation between atoms and terms can be derived from the more primitive notion of permutation fixed-point, and use this result to prove the correctness of the new alpha-equivalence axiomatisation. This gives rise to a new notion of nominal unification, where solutions for unification problems are pairs of a fixed-point context and a substitution. Although it may seem less natural than the standard notion of nominal unifier based on freshness constraints, the notion of unifier based on fixed-point constraints behaves better when equational theories are considered: for example, nominal unification remains finitary in the presence of commutativity, whereas it becomes infinitary when unifiers are expressed using freshness contexts
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
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
Foundational, compositional (co)datatypes for higher-order logic: category theory applied to theorem proving
Interactive theorem provers based on higher-order logic (HOL) traditionally follow the definitional approach, reducing high-level 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 bounded natural functor—an enriched type constructor satisfying specific properties preserved by interesting categorical operations. Our ideas are implemented as a definitional package in Isabelle, addressing a frequent request from users