Operational Semantics of Resolution in Horn Clause Logic

This paper presents a study of operational and type-theoretic properties of different resolution strategies in Horn clause logic. We distinguish four different kinds of resolution: resolution by unification (SLD-resolution), resolution by term-matching, the recently introduced structural resolution, and partial (or lazy) resolution. We express them all uniformly as abstract reduction systems, which allows us to undertake a thorough comparative analysis of their properties. To match this small-step semantics, we propose to take Howard's system H as a type-theoretic semantic counterpart. Using system H, we interpret Horn formulas as types, and a derivation for a given formula as the proof term inhabiting the type given by the formula. We prove soundness of these abstract reduction systems relative to system H, and we show completeness of SLD-resolution and structural resolution relative to the system H. We identify conditions under which structural resolution is operationally equivalent to SLD-resolution. We show a one-to-one correspondence between term rewriting and term-matching resolution for Horn clause programs without existential variables.

[1]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[2]  J. Girard,et al.  Proofs and types , 1989 .

[3]  Patricia Johann,et al.  Structural Resolution for Logic Programming , 2015, ICLP.

[4]  Simon Peyton Jones,et al.  Type classes: an exploration of the design space , 1997 .

[5]  Martin Schmidt,et al.  Coalgebraic logic programming: from Semantics to Implementation , 2013, J. Log. Comput..

[6]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[7]  Mark P. Jones Qualified Types: Theory and Practice , 1994 .

[8]  Tom Schrijvers,et al.  Proof Relevant Corecursive Resolution , 2016, FLOPS.

[9]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[10]  Simon L. Peyton Jones,et al.  Scrap your boilerplate with class: extensible generic functions , 2005, ICFP '05.

[11]  Ekaterina Komendantskaya,et al.  Coalgebraic Derivations in Logic Programming , 2011, CSL.

[12]  William A. Howard,et al.  The formulae-as-types notion of construction , 1969 .

[13]  Gopal Gupta,et al.  Coinductive Logic Programming and Its Applications , 2007, ICLP.

[14]  Gopal Gupta,et al.  Co-Logic Programming: Extending Logic Programming with Coinduction , 2007, ICALP.

[15]  Ulf Nilsson,et al.  Logic, programming and Prolog , 1990 .

[16]  Enno Ohlebusch,et al.  Term Rewriting Systems , 2002 .

[17]  Robert Harper,et al.  Mechanizing metatheory in a logical framework , 2007, Journal of Functional Programming.

[18]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[19]  Samson Abramsky,et al.  Handbook of logic in computer science. , 1992 .

[20]  Patricia Johann,et al.  Structural Resolution: a Framework for Coinductive Proof Search and Proof Construction in Horn Clause Logic , 2015, ArXiv.

[21]  B. Jacobs,et al.  A tutorial on (co)algebras and (co)induction , 1997 .

[22]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[23]  Neng-Fa Zhou,et al.  Constraint Solving and Planning with Picat , 2015, SpringerBriefs in Intelligent Systems.

[24]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .