PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
A calculus of mobile processes, I
Information and Computation
Handbook of logic in computer science (vol. 2)
The Qu-Prolog unification algorithm: formalisation and correctness
Theoretical Computer Science - Special issue on theoretical computer science in Australia and New Zealand
Term rewriting and all that
On the algebraic models of Lambda calculus
Theoretical Computer Science - Modern algebra and its applications
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theoretical Computer Science
The Definition of Standard ML
A Spatial Logic for Concurrency (Part II)
CONCUR '02 Proceedings of the 13th International Conference on Concurrency Theory
A Logic Programming Language Based on Binding Algebras
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Higher-order unification and matching
Handbook of automated reasoning
Higher-order Unification via Explicit Substitutions
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
Abstract Syntax and Variable Binding
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
FreshML: programming with binders made simple
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Nominal logic, a first order theory of names and binding
Information and Computation - TACS 2001
Manipulating trees with hidden labels
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Scrap your nameplate: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Toward a general theory of names: binding and scope
Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
ACM SIGACT News
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Alpha-structural recursion and induction
Journal of the ACM (JACM)
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Information and Computation
Implementing Nominal Unification
Electronic Notes in Theoretical Computer Science (ENTCS)
Hierarchical Nominal Terms and Their Theory of Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
Mechanized metatheory model-checking
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Hm(x) type inference is clp(x) solving
Journal of Functional Programming
Nominal Techniques in Isabelle/HOL
Journal of Automated Reasoning
ACM Transactions on Programming Languages and Systems (TOPLAS)
A polynomial nominal unification algorithm
Theoretical Computer Science
Nominal Matching and Alpha-Equivalence
WoLLIC '08 Proceedings of the 15th international workshop on Logic, Language, Information and Computation
One-and-a-Halfth Order Terms: Curry-Howard and Incomplete Derivations
WoLLIC '08 Proceedings of the 15th international workshop on Logic, Language, Information and Computation
Nominal Unification from a Higher-Order Perspective
RTA '08 Proceedings of the 19th international conference on Rewriting Techniques and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
α lean TAP: A Declarative Theorem Prover for First-Order Classical Logic
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
A study of substitution, using nominal techniques and Fraenkel-Mostowksi sets
Theoretical Computer Science
From natural semantics to c: A formal derivation of two stg machines
Journal of Functional Programming
Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice
Electronic Notes in Theoretical Computer Science (ENTCS)
ν -Types for Effects and Freshness Analysis
ICTAC '09 Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing
The lambda-context calculus (extended version)
Information and Computation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Curry-Howard for incomplete first-order logic derivations using one-and-a-half level terms
Information and Computation
Formalising the π-calculus using nominal logic
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
A formal calculus for informal equality with binding
WoLLIC'07 Proceedings of the 14th international conference on Logic, language, information and computation
Curry-style types for nominal terms
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Matching and alpha-equivalence check for nominal terms
Journal of Computer and System Sciences
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Relating nominal and higher-order abstract syntax specifications
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Journal of Automated Reasoning
An effective methodology for defining consistent semantics of complex systems
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Principal types for nominal theories
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
The semantics of nominal logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Capture-avoiding substitution as a nominal algebra
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
Alpha-structural recursion and induction
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Nominal techniques in Isabelle/HOL
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
A simpler proof theory for nominal logic
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
Avoiding equivariance in alpha-prolog
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Nominal Unification from a Higher-Order Perspective
ACM Transactions on Computational Logic (TOCL)
A new foundation for nominal isabelle
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
(Nominal) unification by recursive descent with triangular substitutions
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Theoretical Computer Science
Permissive-nominal logic: First-order logic over nominal terms and sets
ACM Transactions on Computational Logic (TOCL)
PNL to HOL: From the logic of nominal sets to the logic of higher-order functions
Theoretical Computer Science
Encoding Abstract Syntax Without Fresh Names
Journal of Automated Reasoning
Nominal completion for rewrite systems with binders
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 5.23 |
We present a generalisation of first-order 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 Bruijn-style representations) and yet get a version of this form of substitution that respects α-equivalence and possesses good algorithmic properties. We achieve this by adapting two existing ideas. The first one is terms involving explicit substitutions of names for names, except that here we only use explicit permutations (bijective substitutions). The second one 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 classical first-order unification problems 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.