Debugging by diagnosing assumptions

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

2 Citations (Scopus)


We present a novel and uniform technique for normal logic program declarative error diagnosis. We lay down the foundations on a general approach to diagnosis using logic programming, and bring out the close relationship between debugging and fault-finding. Diagnostic debugging can be enacted by contradiction removal methods. It relies on a simple program transformation to provide a contradiction removal approach to debugging, based on revising the assumptions about predicates’ correctness and completeness. The contradiction removal method is justified in turn in terms of wellfounded semantics. The loop detection properties of well-founded semantics will allow in the future for a declarative treatment of otherwise endless derivations. The debugging of programs under well-founded semantics with explict negation is also foreseen. Here, we apply our techniques to finite SLDNF derivations, whose meaning coincides with the well-founded model, for which our contradiction removal method and algorithm is sound and complete. Several examples illustrate the algorithm at work.

Original languageEnglish
Title of host publicationAutomated and Algorithmic Debugging - 1st International Workshop, AADEBUG 1993, Proceedings
EditorsPeter A. Fritzson
Place of PublicationBerlin, Heidelberg
Number of pages16
ISBN (Electronic)978-3-540-48141-6
ISBN (Print)978-3-540-57417-0
Publication statusPublished - 1993
Event1st International Workshop on Automated and Algorithmic Debugging, AADEBUG 1993 - Linkoping, Sweden
Duration: 3 May 19935 May 1993

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume749 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Conference1st International Workshop on Automated and Algorithmic Debugging, AADEBUG 1993


Dive into the research topics of 'Debugging by diagnosing assumptions'. Together they form a unique fingerprint.

Cite this