Abstract
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, α-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.
Supplemental Material
Available for Download
Online appendix to designing mediation for context-aware applications. The appendix supports the information on article 26.
- Abadi, M., Cardelli, L., Curien, P.-L., and Lévy, J.-J. 1991. Explicit substitutions. J. Funct. Prog. 4, 375--416.Google Scholar
Cross Ref
- Aydemir, B. E., Bohannon, A., Fairbairn, M., Foster, J. N., Pierce, B. C., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., and Zdancewic, S. 2005. Mechanized metatheory for the masses: The PoplMark Challenge. In Proceedings of the 18th International Conference on Theorem Proving in Higher Order Logics (TPHOLs'05), J. Hurd and T. F. Melham, Eds. Lecture Notes in Computer Science, vol. 3603. Springer, 50--65. Google Scholar
Digital Library
- Barendregt, H. P. 1984. The Lambda Calculus. North-Holland.Google Scholar
- Cervesato, I. 1998. Proof-theoretic foundation of compilation in logic programming. In Proceedings of the International Joint Conference and Symposium on Logic Programming. 115--129. Google Scholar
Digital Library
- Cervesato, I. and Pfenning, F. 2002. A linear logical framework. Inform. Comput. 179, 19--75. Google Scholar
Digital Library
- Cheney, J. 2004a. The complexity of equivariant unification. In Proceedings of the 31st International Colloquium on Automata, Languages and Programming (ICALP'04). Lecture Notes in Computer Science, vol. 3142. Springer-Verlag, 332--344.Google Scholar
- Cheney, J. 2004b. Nominal logic programming. Ph.D. thesis, Cornell University, Ithaca, NY. Google Scholar
Digital Library
- Cheney, J. 2005a. Equivariant unification. In Proceedings of the Conference on Rewriting Techniques and Applications (RTA'05). Lecture Notes in Computer Science, vol. 3467, Springer-Verlag, 74--89. Google Scholar
Digital Library
- Cheney, J. 2005b. Relating nominal and higher-order pattern unification. In Proceedings of the 19th International Workshop on Unification (UNIF'05). 104--119.Google Scholar
- Cheney, J. 2005c. Scrap your nameplate (functional pearl). In Proceedings of the 10th International Conference on Functional Programming (ICFP'05), B. Pierce, Ed. ACM, 180--191. Google Scholar
Digital Library
- Cheney, J. 2005d. A simpler proof theory for nominal logic. In Proceedings of the 8th International Conference on the Foundations of Software Science and Computational Structures (FOSSACS'05). Lecture Notes in Computer Science, vol. 3441, Springer-Verlag, 379--394. Google Scholar
Digital Library
- Cheney, J. 2006a. Completeness and Herbrand theorems for nominal logic. J. Symb. Logic 71, 1, 299--320.Google Scholar
Cross Ref
- Cheney, J. 2006b. The semantics of nominal logic programs. In Proceedings of the International Conference on Logic Programing. Lecture Notes in Computer Science, vol. 4079. 361--375. Google Scholar
Digital Library
- Cheney, J. and Urban, C. 2004. Alpha-Prolog: A logic programming language with names, binding and alpha-equivalence. In Proceedings of the 20th International Conference on Logic Programming (ICLP'04). Lecture Notes in Computer Science, vol. 3132, Springer-Verlag, 269--283.Google Scholar
- Cheng, A. S. K., Robinson, P. J., and Staples, J. 1991. Higher level meta programming in Qu-Prolog 3.0. In Proceedings of the International Conference on Logic Programming. 285--298.Google Scholar
- Church, A. 1940. A formulation of the simple theory of types. J. Symb. Logic 5, 56--68.Google Scholar
Cross Ref
- Clark, K. L., Robinson, P. J., and Hagen, R. 2001. Multi-threading and message communication in Qu-Prolog. Theory Pract. Logic Program. 1, 3, 283--301. Google Scholar
Digital Library
- Clocksin, W. F. and Mellish, C. S. 2003. Programming in Prolog, 5th ed. Springer-Verlag. Google Scholar
Digital Library
- Darlington, J. and Guo, Y. 1994. Constraint logic programming in the sequent calculus. In Proceedings of the Conference on Logic Programming and Automated Reasoning (LPAR'94). Lecture Notes in Computer Science, vol. 822. Springer-Verlag, 200--214. Google Scholar
Digital Library
- Davey, B. A. and Priestley, H. A. 2002. Introduction to Lattices and Order. Cambridge University Press.Google Scholar
- Felty, A. 1993. Implementing tactics and tacticals in a higher-order logic programming language. J. Automa. Reason. 11, 1, 41--81.Google Scholar
Cross Ref
- Fiore, M. P., Plotkin, G. D., and Turi, D. 1999. Abstract syntax and variable binding. In Proceedings of the Annual IEEE Symposium on Logic in Computer Science. IEEE Press, 193--202. Google Scholar
Digital Library
- Gabbay, M. J. and Cheney, J. 2004. A sequent calculus for nominal logic. In Proceedings of the Annual IEEE Symposium on Logic in Computer Science. IEEE, 139--148. Google Scholar
Digital Library
- Gabbay, M. J. and Pitts, A. M. 2002. A new approach to abstract syntax with variable binding. Formal Aspects Comput. 13, 341--363.Google Scholar
Digital Library
- Girard, J.-Y. 1987. Linear logic. Theor. Comput. Sci. 50, 1, 1--101. Google Scholar
Digital Library
- Hamana, M. 2001. A logic programming language based on binding algebras. In Proceedings of the Theoretical Aspects of Computer Science (TACS'01). Lecture Notes in Computer Science, vol. 2215, Springer-Verlag, 243--262. Google Scholar
Digital Library
- Hannan, J. and Miller, D. 1988. Uses of higher-order unification for implementing program transformers. In Proceedings of the 5th International Conference and Symposium on Logic Programming, Volume 2, R. A. Kowalski and K. A. Bowen, Eds. MIT Press, Cambridge, MA, 942--959.Google Scholar
- Hanus, M. 1991. Horn clause programs with polymorphic types: Semantics and resolution. Theor. Comput. Sci. 89, 63--106. Google Scholar
Digital Library
- Hanus, M. 1994. The integration of functions into logic programming: From theory to practice. J. Logic Program. 19--20, 583--628.Google Scholar
- Harel, D., Kozen, D., and Tiuryn, J. 2000. Dynamic Logic. MIT Press. Google Scholar
Digital Library
- Harper, R., Honsell, F., and Plotkin, G. 1993. A framework for defining logics. J. ACM 40, 1, 143--184. Google Scholar
Digital Library
- Hofmann, M. 1999. Semantical analysis of higher-order abstract syntax. In Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, G. Longo, Ed. IEEE Press, 204--213. Google Scholar
Digital Library
- Jaffar, J., Maher, M. J., Marriott, K., and Stuckey, P. J. 1998. The semantics of constraint logic programs. J. Logic Program. 37, 1--3, 1--46.Google Scholar
Cross Ref
- Leach, J., Nieva, S., and Rodríguez-Artalejo, M. 2001. Constraint logic programming with hereditary Harrop formulas. Theory Prac. Logic Program. 1, 4, 409--445. Google Scholar
Digital Library
- Lloyd, J. W. 1987. Foundations of Logic Programming. Springer-Verlag. Google Scholar
Digital Library
- Mason, I. A. 1987. Hoare's logic in the LF. Tech. rep. ECS-LFCS-87-32, University of Edinburgh.Google Scholar
- Miller, D. 1989. A logical analysis of modules in logic programming. J. Logic Program. 6, 1--2, 79--108. Google Scholar
Digital Library
- Miller, D. 1990. An extension to ML to handle bound variables in data structures. In Proceedings of the 1st ESPRIT BRA Workshop on Logical Frameworks. 323--335.Google Scholar
- Miller, D. 1991. A logic programming language with lambda-abstraction, function variables, and simple unification. J. Logic Computat. 1, 4, 497--536.Google Scholar
Cross Ref
- Miller, D. 1993. A proposal for modules in Lambda-Prolog. In Extensions of Logic Programming, R. Dyckhoff, Ed. Lecture Notes in Computer Science, vol. 798. Springer, 206--221. Google Scholar
Digital Library
- Miller, D. and Nadathur, G. 1987. A logic programming approach to manipulating formulas and programs. In Proceedings of the Symposium on Logic Programming. 379--388.Google Scholar
- Miller, D., Nadathur, G., Pfenning, F., and Scedrov, A. 1991. Uniform proofs as a foundation for logic programming. Annals Pure Appl. Logic 51, 125--157.Google Scholar
Cross Ref
- Miller, D. and Tiu, A. 2005. A proof theory for generic judgments., ACM Trans. Comput. Logic 6, 4, 749--783. Google Scholar
Digital Library
- Milner, R. 1978. A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 3, 348--375.Google Scholar
Cross Ref
- Milner, R., Parrow, J., and Walker, D. 1992. A calculus of mobile processes, I. Inform. Computat. 100, 1, 1--40. Google Scholar
Digital Library
- Mitchell, J. C. 2003. Concepts in Programming Languages. Cambridge University Press. Google Scholar
Digital Library
- Mycroft, A. and O'Keefe, R. A. 1984. A polymorphic type system for Prolog. AI 23, 295--307. Google Scholar
Digital Library
- Nadathur, G. and Miller, D. 1998. Higher-order logic programming. In Handbook of Logic in Artificial Intelligence and Logic Programming, D. M. Gabbay, C. J. Hogger, and J. A. Robinson, Eds. Vol. 5. Oxford University Press, Chapter 8, 499--590.Google Scholar
- Nadathur, G. and Mitchell, D. J. 1999. System description: Teyjus—a compiler and abstract machine based implementation of Lambda-Prolog. In Proceedings of the International Conference on Automated Deduction, H. Ganzinger, Ed. Lecture Notes in Computer Science, vol. 1632. Springer, 287--291. Google Scholar
Digital Library
- Nadathur, G. and Qi, X. 2005. Optimizing the runtime processing of types in polymorphic logic programming languages. In Proceedings of the International Conference on Logic Programming, Artificial Intelligence, and Reasoning, G. Sutcliffe and A. Voronkov, Eds. Lecture Notes in Computer Science, vol. 3835. Springer, 110--124. Google Scholar
Digital Library
- Nickolas, P. and Robinson, P. J. 1996. The Qu-Prolog unification algorithm: formalisation and correctness. Theor. Comput. Sci. 169, 81--112. Google Scholar
Digital Library
- O'Hearn, P. and Pym, D. J. 1999. The logic of bunched implications. Bull. Sym. Logic 5, 2, 215--244.Google Scholar
Cross Ref
- Pasalic, E., Sheard, T., and Taha, W. 2000. DALI: An untyped CBV operational semantics and equational theory of datatypes with binders (technical development). Tech. rep. CSE-00-007, Oregon Graduate Institute. Google Scholar
Digital Library
- Pfenning, F. 1991. Logic programming in the LF logical framework. In Logical Frameworks, G. Huet and G. Plotkin, Eds. Cambridge University Press, 149--181. Google Scholar
Digital Library
- Pfenning, F. 2001. Logical frameworks. In Handbook of Automated Reasoning, A. Robinson and A. Voronkov, Eds. Vol. II. Elsevier Science, Chapter 17, 1063--1147. Google Scholar
Digital Library
- Pfenning, F. and Elliott, C. 1989. Higher-order abstract syntax. In Proceedings of the 1989 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '89). ACM Press, 199--208. Google Scholar
Digital Library
- Pfenning, F. and Schürmann, C. 1999. System description: Twelf—A meta-logical framework for deductive systems. In Proceedings of the 16th International Conference on Automated Deduction (CADE16), H. Ganzinger, Ed. Lecture Notes in Artificial Intelligence, vol. 1632, Springer-Verlag, 202--206. Google Scholar
Digital Library
- Pierce, B. C. 2002. Types and Programming Languages. MIT Press. Google Scholar
Digital Library
- Pitts, A. M. 2003. Nominal logic, a first order theory of names and binding. Inform. Comput. 183, 165--193. Google Scholar
Digital Library
- Pitts, A. M. 2006. Alpha-structural recursion and induction. J. ACM 53, 3, 459--506. Google Scholar
Digital Library
- Pitts, A. M. and Gabbay, M. J. 2000. A metalanguage for programming with bound names modulo renaming. Lecture Notes in Computer Science, vol. 1837, Springer-Verlag, 230--255. Google Scholar
Digital Library
- Pitts, A. M. and Shinwell, M. 2007. Generative unbinding of names. In Proceedings of the 34th ACM SIGPLAN-SIGACT Synposium on Principles of Programming Languages (POPL'07), ACM Press, 85--95. Google Scholar
Digital Library
- Pottier, F. 2005. An overview of Cαml. In Proceedings of the ACM SIGPLAN Workshop on ML (ML'05). ACM, 27--52.Google Scholar
- Pottier, F. 2007. Static name control for FreshML. In Proceedings of the 22nd Annual IEEE Symposium on Logic In Computer Science (LICS'07). Wroclaw, Poland, 356--365. Google Scholar
Digital Library
- Reynolds, J. C. 2002. Separation Logic: A Logic for Shared Mutable Data Structures. In Proceedings of the IEEE Symposium on Logic in Computer Science. IEEE Computer Society, Los Alamitos, CA, 55--74. Google Scholar
Digital Library
- Sangiorgi, D. and Walker, D. 2001. The pi-Calculus: A Theory of Mobile Processes. Cambridge University Press. Google Scholar
Digital Library
- Schöpp, U. 2007. Modelling generic judgements. Electron. Notes Theor. Comput. Sci. 174, 5, 19--35. Google Scholar
Digital Library
- Shinwell, M. R. and Pitts, A. M. 2005. On a monadic semantics for freshness. Theor. Comput. Sci. 342, 28--55. Google Scholar
Digital Library
- Shinwell, M. R., Pitts, A. M., and Gabbay, M. J. 2003. FreshML: Programmming with binders made simple. In Proceedings of the 8th ACM SIGPLAN International Conference on Functional Programming (ICFP'03). ACM Press, 263--274. Google Scholar
Digital Library
- Staples, J., Robinson, P. J., Paterson, R. A., Hagen, R. A., Craddock, A. J., and Wallis, P. C. 1989. Qu-Prolog: An extended Prolog for meta level programming. In Meta-Programming in Logic Programming, H. Abramson and M. H. Rogers, Eds. MIT Press, Chapter 23, 435--452. Google Scholar
Digital Library
- Sterling, L. and Shapiro, E. 1994. The Art of Prolog: Advanced Programming Techniques. MIT Press. Google Scholar
Digital Library
- Tiu, A. 2007. A logic for reasoning about generic judgments. Electron. Notes Theor. Comput. Sci. 174, 5, 3--18. Google Scholar
Digital Library
- Urban, C. and Cheney, J. 2005. Avoiding equivariace in Alpha-Prolog. In Proceedings of the 2005 Conference on Typed Lambda Calculus and Applications (TLCA 2005). Lecture Notes in Computer Science, vol. 3461, Springer-Verlag, 74--89. Google Scholar
Digital Library
- Urban, C., Pitts, A. M., and Gabbay, M. J. 2004. Nominal unification. Theor. Comput. Sci. 323, 1--3, 473--497. Google Scholar
Digital Library
- Urban, C. and Tasson, C. 2005. Nominal techniques in Isabelle/HOL. In Proceedings of the 20th International Conference on Automated Deduction. Lecture Notes in Computer Science, vol. 3632. 38--53. Google Scholar
Digital Library
- van Emden, M. H. and Kowalski, R. A. 1976. The semantics of predicate logic as a programming language. J. ACM 23, 4, 293--322. Google Scholar
Digital Library
- Watkins, K., Cervesato, I., Pfenning, F., and Walker, D. 2003. A concurrent logical framework: The propositional fragment. In Proceedings of TYPES. 355--377.Google Scholar
Index Terms
Nominal logic programming
Recommendations
Three-Valued Constructive Logic and Logic Programs
ISMVL '95: Proceedings of the 25th International Symposium on Multiple-Valued LogicAbstract: We propose three valued constructive logic with strong negation 3N by describing both proof and model theory. We relate the proposed three valued system to J. Lukasiewicz's (1920) three valued logic. We demonstrate that 3N is very useful to ...
High-Level Petri Net Model of Logic Program with Negation
The formalism of nonmonotonic reasoning has been integrated into logic programming to define semantics for logic program with negation. Because a Petri net provides a uniform model for both the logic of knowledge and the control of inference, the class ...
Nominal Lambda Calculus: An Internal Language for FM-Cartesian Closed Categories
Reasoning about atoms (names) is difficult. The last decade has seen the development of numerous novel techniques. For equational reasoning, Clouston and Pitts introduced Nominal Equational Logic (NEL), which provides judgements of equality and ...






Comments