Formal Aspects of Computing

, Volume 29, Issue 3, pp 453–474 | Cite as

Operational semantics of resolution and productivity in Horn clause logic

Open Access
Original Article


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 System H. We identify conditions under which structural resolution is operationally equivalent to SLD-resolution. We show correspondence between term-matching resolution for Horn clause programs without existential variables and term rewriting.


Logic programming Typed lambda calculus Reduction systems Structural resolution Termination Productivity 


  1. AG00.
    Arts T, Giesl J (2000) Termination of term rewriting using dependency pairs. Theor Comput Sci 236(12): 133–178MathSciNetCrossRefMATHGoogle Scholar
  2. Bar92.
    BarendregtHP (1992) Lambda calculiwith types. In:Abramsky S,GabbayD, Maibaum S (eds) Handbook of logic in computer science (vol. 2): background: computational structures. Oxford University Press, Inc., New York, pp 117–309Google Scholar
  3. BN98.
    Baader F, Nipkow T (1998) Term rewriting and all that. Cambridge University Press, New YorkCrossRefMATHGoogle Scholar
  4. FKSP16.
    Fu P, Komendantskaya E, Schrijvers T, Pond A (2016) Proof relevant corecursive resolution. In: Functional and logic programming - 13th international symposium, FLOPS 2016, Kochi, Japan, 4–6 March 2016, proceedings, pp 126–143Google Scholar
  5. GBM+07.
    Gupta G, Bansal A, Min R, Simon L, Mallya A (2007) Coinductive logic programming and its applications. In: Logic programming, Springer, New York, pp 27–44Google Scholar
  6. GTL89.
    Girard JY, Taylor P, Lafont Y (1989) Proofs and types. Cambridge University Press, New YorkMATHGoogle Scholar
  7. HL07.
    Harper R, Licata DR (2007) Mechanizing metatheory in a logical framework. J Funct Program 17(4–5): 613–673MathSciNetCrossRefMATHGoogle Scholar
  8. How80.
    Howard W (1980) The formulae-as-types notion of construction. In: Seldin J, Hindley J (eds), To H. B. Curry: essays on combinatory logic, lambda calculus and formalism, Academic Press, New York, pp 479–490Google Scholar
  9. JJM97.
    Jones SP, Jones M, Meijer E (1997) Type classes: an exploration of the design space. In: Haskell WorkshopGoogle Scholar
  10. JKK15.
    Johann P, Komendantskaya E, Komendantskiy V (2015) Structural resolution for logic programming. In Technical Communications, ICLPGoogle Scholar
  11. KJ15.
    Komendantskaya E, Johann P (2015) Structural resolution: a framework for coinductive proof search and proof construction in horn clause logic. In: ACM Transactions on Computational Logic, submittedGoogle Scholar
  12. KJM16.
    Komendantskaya E, Johann P, Schmidt M (2016) A productivity checker for logic programming. On-line Pre-Proceedings of LOPSTR’16 “26th International Symposium on Logic-Based Program Synthesis and Transformation”, Edinburgh, UK.
  13. Kle52.
    Kleene SC (1980) Introduction to metamathematics, 8th edn. North-Holland Publishing Company, 1952. Co-publisher, Wolters–NoordhoffGoogle Scholar
  14. KP11.
    Komendantskaya E, Power J (2011) Coalgebraic derivations in logic programming. In: CSL, pp 352–366Google Scholar
  15. KPS16.
    Komendantskaya E, Power J, SchmidtM(2016) Coalgebraic logic programming: from semantics to implementation. J Logic Comput 26(2):745–783Google Scholar
  16. Llo87.
    Lloyd JW (1987) Foundations of logic programming. Springer, New YorkCrossRefMATHGoogle Scholar
  17. LPJ05.
    Lämmel R, Peyton-Jones S (2005) Scrap your boilerplate with class: Extensible generic functions. In: Proceedings of 10th ACM SIGPLAN international conference on functional programming, ICFP ’05, pp 204–215, New York, NY, USA, ACMGoogle Scholar
  18. MNPS91.
    Miller D, Nadathur G, Pfenning F, Scedrov A (1991) Uniform proofs as a foundation for logic programming. Ann Pure Appl Logic 51(1–2):125–157Google Scholar
  19. NM90.
    Nilsson U, Małuszyński J (1990) Logic, programming and prolog. Wiley, ChichesterGoogle Scholar
  20. PS99.
    Pfenning F, Schürmann C (1999) System description: Twelfa meta-logical framework for deductive systems. In: Automated deduction CADE-16, pp 202–206, Springer, New YorkGoogle Scholar
  21. SBMG07.
    Simon L, Bansal A, Mallya A, Gupta G (2007) Co-logic programming: extending logic programming with coinduction. In: Automata, languages and programming, Springer, New York, pp 472–483Google Scholar
  22. Ter03.
    Terese H (2003) Term rewriting systems. Cambridge University Press, CambridgeGoogle Scholar
  23. ZF13.
    Zhou N-F, Fruhman J (2013) A user guide to Picat. Available from Accessed 15 Nov 2016
  24. ZKF15.
    Zhou N-F, Kjellerstrand H, Fruhman J (2015) Constraint solving and planning with picat. Springer, New YorkCrossRefGoogle Scholar

Copyright information

© The Author(s) 2016

Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Authors and Affiliations

  1. 1.Heriot-Watt UniversityEdinburghUK

Personalised recommendations