Abstract Diagnosis

Diagnosis Marco Comini a, Giorgio Levi a, Maria Chiara Meo b and Giuliana Vitiello c aDipartimento di Informatica, Università di Pisa, Corso Italia 40, 56125 Pisa, Italy. bDipartimento di Matematica Pura ed Applicata, Università di L’Aquila, via Vetoio, località Coppito, 67010 L’Aquila, Italy. cDipartimento di Informatica ed Applicazioni, Università di Salerno, Baronissi (Salerno), Italy. Abstract We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed and correct answers, and of abstract properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) leads to elegant bottom-up and top-down verification methods, which do not require to determine the symptoms in advance, and which are effective in the case of abstract properties described by finite domains.We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed and correct answers, and of abstract properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) leads to elegant bottom-up and top-down verification methods, which do not require to determine the symptoms in advance, and which are effective in the case of abstract properties described by finite domains.

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

[2]  Gérard Ferrand Error Diagnosis in Logic Programming, an Adaption of E. Y. Shapiro's Method , 1987, J. Log. Program..

[3]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[4]  Giorgio Levi,et al.  Declarative Diagnosis Revisited , 1995, ILPS.

[5]  Simin Nadjm-Tehrani,et al.  Algorithmic Debugging with Assertions , 1989, META.

[6]  Giorgio Levi,et al.  A Reconstruction of Veriication Techniques by Abstract Interpretation , 1997 .

[7]  Kim Marriott,et al.  Precise and efficient groundness analysis for logic programs , 1993, LOPL.

[8]  Giorgio Levi,et al.  Compositionality in SLD-Derivations and their Abstractions , 1995, ILPS.

[9]  Maurizio Gabbrielli,et al.  A Compositional Semantics for Logic Programs , 1994, Theor. Comput. Sci..

[10]  Giorgio Levi,et al.  An Algebraic Theory of Observables , 1994, ILPS.

[11]  Roberto Giacobazzi,et al.  Compositional analysis of modular logic programs , 1993, POPL '93.

[12]  Dino Pedreschi,et al.  Reasoning about Termination of Pure Prolog Programs , 1993, Inf. Comput..

[13]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[14]  Ehud Shapiro,et al.  Abstract Algorithmic Debugging , 1988, ICLP/SLP.

[15]  Giorgio Levi,et al.  Efficient Detection of Incompleteness Errors in the Abstract Debugging of Logic Programs , 1995, AADEBUG.

[16]  Annalisa Bossi,et al.  Verifying Correctness of Logic Programs , 1989, TAPSOFT, Vol.2.

[17]  Hisao Tamaki,et al.  Enumeration of Success Patterns in Logic Programs , 1983, Theor. Comput. Sci..

[18]  Maurizio Gabbrielli,et al.  The s-Semantics Approach: Theory and Applications , 1994, J. Log. Program..

[19]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[20]  Keith L. Clark Predicate logic as a computational formalism , 1979 .

[21]  Jean-Marie Jacquet,et al.  Introduction to Logic Programming , 1993, ICLP Workshop on Construction of Logic Programs.

[22]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[23]  Giorgio Levi,et al.  A Theory of Observables for Logic Programs , 2001, Inf. Comput..

[24]  Wlodzimierz Drabent,et al.  Inductive Assertion Method for Logic Programs , 1987, Theoretical Computer Science.

[25]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[26]  Marco Comini,et al.  Compositionality Properties of SLD-Derivations , 1999, Theor. Comput. Sci..

[27]  Paolo Mancarella,et al.  An Algebra of Logic Programs , 1988, ICLP/SLP.

[28]  Roberto Giacobazzi,et al.  Intuitionistic Implication in Abstract Interpretation , 1997, PLILP.

[29]  Giorgio Levi,et al.  Proving Properties of Logic Programs by Abstract Diagnosis , 1996, LOMAPS.

[30]  A. Cortesi,et al.  Prop revisited: propositional formula as abstract domain for groundness analysis , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[31]  Kim Marriott,et al.  Boolean Functions for Dependency Analysis: Algebraic Properties and Efficient Representation , 1994, SAS.

[32]  Gérard Ferrand The Notions of Symptom and Error in Declarative Diagnosis of Logic Programs , 1993, AADEBUG.

[33]  Norman Y. Foo,et al.  A denotational semantics for Prolog , 1989, ACM Trans. Program. Lang. Syst..

[34]  Michael J. Maher,et al.  Unification Revisited , 1988, Foundations of Deductive Databases and Logic Programming..

[35]  Luís Moniz Pereira Rational Debugging in Logic Programming , 1986, ICLP.

[36]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .