Abstract
Justifying the truth value of a goal resulting from query evaluation of a logic program corresponds to providing evidence, in terms of a proof, for this truth. In an earlier work we introduced the notion of justification [8] and gave an algorithm for justifying tabled logic programs by post-processing the memo tables created during evaluation. A conservatve justifier such as the one described in that work proceeds in two separate stages: evaluate the truth of literals (that can possibly contribute to the evidence) in the first stage and construct the justification in the next stage. Justifications built in this fashion seldom fail. Whereas for tabled predicates evaluation amounts to a simple table look-up during justification, for non-tabled predicates this amounts to Prolog-style re-execution. In a conservative justifier a non-tabled literal can be re-executed causing unacceptable performance overheads for programs with significant nontabled components: justification time for a single non-tabled literal can become quadratic in its evaluation time!
In this paper we introduce the concept of a speculative justifier. In such a justifier we evaluate the truths of literals in tandem with justification. Specifically, we select literals that can possibly provide evidence for the goal’s truth, assume that their truth values correspond to the goal’s and proceed to build a justification for each of them. Since these truths are not computed before hand, justfications produced in this fashion may fail often. On the other hand non-tabled literals are re-executed less often than conservative justifiers. We discuss the subtle efficiency issues that arise in the construction of speculative justifiers. We show how to judiciously balance the different efficiency concerns and engineer a speculative justifier that addresses the performance problem associated with conservative justifiers. We provide experimental evidence of its efficiency and scalability in justifying the results of our XMC model checker.
Research partially supported by NSF awards EIA-9705998, CCR-9876242, IIS- 0072927, and EIA-9901602.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
C.R Ramakrishnan, I.V. Ramakrishnan, S.A. Smolka, Y. Dong, X. Du, A. Roychoudhury, and V.N. Venkatakrishnan. Xmc: A logic programming based verification toolset. In Computer Aided Verification, 2000.
G.J. Holzmann. The model checker SPIN. In IEEE Transactions on Software Engineering, 23(5):279–295, 1997.
S. Dawson, C.R. Ramkrishnan, I.V. Ramakrishnan and T. Swift. Optimizing Clause Resolution: Beyond Uni.cation Factoring. In International Logic Programming Symposium, 1995.
J.W. Lloyd. Declarative error diagnosis. In New Generation Computing, 5(2):133–154, 1987.
S. Mallet and M. Ducasse. Generating deductive database explanations. Proceedings of ICLP, 154–168, 1999
L. Naish, P.W. Dart, and J. Zobel. The NU-prolog debugging environment. In ICLP, pages 521–536, 1989.
G. Puebla, F. Bueno, and M. Hermenegildo. A framework for assertion-based debugging in constraint logic programming. In Pre-proceedings of LOPSTR, 1999.
Abhik Roychoudhury, C. R. Ramakrishnan, and I. V. Ramakrishnan. Justifying proofs using memo tables. In PPDP 2000, pages 178–189.
Y.S. Ramakrishna, C.R. Ramakrishnan, I.V. Ramakrishnan, S.A. Smolka, T. Swift, and D.S. Warren. Efficient model checking using tabled resolution. In CAV, LNCS 1254, 1997.
Ehud Y. Shapiro. Algorithmic program diagnosis. In POPL, 1982.
Prasad Rao, C.R. Ramakrishnan, and I.V. Ramakrishnan. A Thread in Time Saves Tabling Time. In IICSLP, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Guo, HF., Ramakrishnan, C.R., Ramakrishnan, I.V. (2001). Speculative Beats Conservative Justification. In: Codognet, P. (eds) Logic Programming. ICLP 2001. Lecture Notes in Computer Science, vol 2237. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45635-X_18
Download citation
DOI: https://doi.org/10.1007/3-540-45635-X_18
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42935-7
Online ISBN: 978-3-540-45635-3
eBook Packages: Springer Book Archive