40 research outputs found

    Constraint solving in non-permutative nominal abstract syntax

    Full text link
    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

    Full text link
    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. We provide a definition of α\alpha-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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore