The Semantics of Nominal Logic Programs
Nominal logic programming is a form of logic programming with “concrete” names and binding, based on nominal logic, a theory of α-equivalence founded on swapping and freshness constraints. Previous papers have employed diverse characterizations of the semantics of nominal logic programs, including operational, denotational, and proof-theoretic characterizations; however, the formal properties and relationships among them have not been fully investigated. In this paper we give a uniform and improved presentation of these characterizations and prove appropriate soundness and completeness results. We also give some applications of these results.
Unable to display preview. Download preview PDF.
- 1.Cheney, J., Urban, C.: Alpha-Prolog: A logic programming language with names, binding and a-equivalence. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 269–283. Springer, Heidelberg (2004)Google Scholar
- 5.Cheney, J.R.: Nominal Logic Programming. PhD thesis, Cornell University, Ithaca, NY (August 2004)Google Scholar
- 6.Darlington, J., Guo, Y.: Constraint logic programming in the sequent calculus. In: Pfenning, F. (ed.) LPAR 1994. LNCS, vol. 822, pp. 200–214. Springer, Heidelberg (1994)Google Scholar
- 12.Michaylov, S., Pfenning, F.: Higher-order logic programming as constraint logic programming. In: Position Papers for the First Workshop on Principles and Practice of Constraint Programming, Newport, Rhode Island, pp. 221–229 (April 1993)Google Scholar