Finding and Fixing Faults

We present a method for combined fault localization and correction for sequential systems. We assume that the specification is given in linear-time temporal logic and state the localization and correction problem as a game that is won if there is a correction that is valid for all possible inputs. For invariants, our method guarantees that a correction is found if one exists. The set of fault models we consider is very general: components can be replaced by arbitrary new functions. We compare our approach to model based diagnosis and show that it is more precise. We present experimental data that supports the applicability of our approach, obtained from a symbolic implementation of the algorithm in the Vis model checker.

[1]  Randall Davis,et al.  Diagnosing Circuits With State: An Inherently Underconstrained Problem , 1984, AAAI.

[2]  Rajeev Alur,et al.  Deterministic generators and games for LTL fragments , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[3]  Steven P. Reiss,et al.  Fault localization with nearest neighbor queries , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[4]  Randy Goebel,et al.  Theorist: A Logical Reasoning System for Defaults and Diagnosis , 1987 .

[5]  Alex Groce,et al.  SPECIAL S ECTION O N T OOLS A ND A LGORITHMS F OR THE C ONSTRUCTION A ND A NALYSIS O F S YSTEMS , 2005 .

[6]  Edmund M. Clarke,et al.  Efficient generation of counterexamples and witnesses in symbolic model checking , 1995, DAC '95.

[7]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2006, Haifa Verification Conference.

[8]  Stefan Leue,et al.  Trail-directed model checking , 2001, Workshop on Software Model Checking @ CAV.

[9]  Roderick Bloem,et al.  Program Repair as a Game , 2005, CAV.

[10]  Igor L. Markov,et al.  Fixing Design Errors with Counterexamples and Resynthesis , 2007 .

[11]  Pierre Wolper,et al.  Reasoning about infinite computation paths , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[12]  Wolfgang Thomas,et al.  On the Synthesis of Strategies in Infinite Games , 1995, STACS.

[13]  Fabio Somenzi,et al.  Efficient Büchi Automata from LTL Formulae , 2000, CAV.

[14]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[15]  Roderick Bloem,et al.  Repair of Boolean Programs with an Application to C , 2006, CAV.

[16]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[17]  M. Maidi The common fragment of CTL and LTL , 2000, Proceedings 41st Annual Symposium on Foundations of Computer Science.

[18]  Pierre Wolper,et al.  Simple on-the-fly automatic verification of linear temporal logic , 1995, PSTV.

[19]  Liaw Heh-Tyan,et al.  Efficient automatic diagnosis of digital circuits , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[20]  Tiziano Villa,et al.  VIS: A System for Verification and Synthesis , 1996, CAV.

[21]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

[22]  Paul Anderson,et al.  Software Inspection Using CodeSurfer , 2001 .

[23]  Kavita Ravi,et al.  A Comparative Study of Symbolic Algorithms for the Computation of Fair Cycles , 2000, FMCAD.

[24]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[25]  Brian C. Williams,et al.  Diagnosing Multiple Faults , 1987, Artif. Intell..

[26]  Alex Groce,et al.  What Went Wrong: Explaining Counterexamples , 2003, SPIN.

[27]  John E. Hopcroft,et al.  The Directed Subgraph Homeomorphism Problem , 1978, Theor. Comput. Sci..

[28]  Roberto Sebastiani,et al.  "More Deterministic" vs. "Smaller" Büchi Automata for Efficient LTL Model Checking , 2003, CHARME.

[29]  Georg Gottlob,et al.  Enhancing Model Checking in Verification by AI Techniques , 1999, Artif. Intell..

[30]  Mayur Naik,et al.  From symptom to cause: localizing errors in counterexample traces , 2003, POPL '03.

[31]  Markus Stumptner,et al.  A model-based approach to software debugging , 1996 .

[32]  Pietro Torasso,et al.  A spectrum of logical definitions of model‐based diagnosis 1 , 1991, Comput. Intell..

[33]  Kavita Ravi,et al.  Minimal Assignments for Bounded Model Checking , 2004, TACAS.

[34]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[35]  Franz Wotawa,et al.  A Value-Based Diagnosis Model for Java Programs , 2000 .

[36]  Ali Ebnenasir,et al.  Revising UNITY Programs: Possibilities and Limitations , 2005, OPODIS.

[37]  Daniele Theseider Dupré,et al.  Model-Based Diagnosis Meets Error Diagnosis in Logic Programs , 1993, IJCAI.

[38]  Alex Groce,et al.  Error explanation with distance metrics , 2004, International Journal on Software Tools for Technology Transfer.

[39]  Chin-Laung Lei,et al.  Efficient Model Checking in Fragments of the Propositional Mu-Calculus (Extended Abstract) , 1986, LICS.

[40]  Ibrahim N. Hajj,et al.  Logic design error diagnosis and correction , 1994, IEEE Trans. Very Large Scale Integr. Syst..

[41]  Moshe Y. Vardi An Automata-Theoretic Approach to Fair Realizability and Synthesis , 1995, CAV.

[42]  Rolf Drechsler,et al.  Debugging sequential circuits using Boolean satisfiability , 2004, ICCAD 2004.

[43]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[44]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[45]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[46]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[47]  Dominique Borrione,et al.  Design error diagnosis in sequential circuits , 1995, CHARME.

[48]  Rajeev Alur,et al.  Deterministic generators and games for Ltl fragments , 2004, TOCL.

[49]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[50]  Markus Stumptner,et al.  Debugging Functional Programs , 1999, IJCAI.

[51]  Amir Pnueli,et al.  Automatic Hardware Synthesis from Specifications: A Case Study , 2007 .

[52]  Alan J. Hu,et al.  Reducing BDD Size by Exploiting Functional Dependencies , 1993, 30th ACM/IEEE Design Automation Conference.

[53]  Fabio Somenzi,et al.  Logic synthesis and verification algorithms , 1996 .

[54]  Roderick Bloem,et al.  Optimizations for LTL Synthesis , 2006, 2006 Formal Methods in Computer Aided Design.

[55]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[56]  Kavita Ravi,et al.  Fate and free will in error traces , 2004, International Journal on Software Tools for Technology Transfer.

[57]  Walter Murray Wonham,et al.  On observability of discrete-event systems , 1988, Inf. Sci..

[58]  Fabio Somenzi,et al.  An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps , 2006, Formal Methods Syst. Des..

[59]  Andreas Zeller,et al.  Isolating cause-effect chains from computer programs , 2002, SIGSOFT FSE.

[60]  Orna Kupferman,et al.  Church's Problem Revisited , 1999, Bulletin of Symbolic Logic.

[61]  Kotaro Hirano,et al.  Rectification of Multiple Logic Design Errors in Multiple Output Circuits , 1994, 31st Design Automation Conference.

[62]  W. M. Wonham,et al.  The control of discrete event systems , 1989 .

[63]  Olivier Coudert,et al.  Automating the diagnosis and the rectification of design errors with PRIAM , 1989, ICCAD 1989.

[64]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[65]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[66]  Franz Wotawa,et al.  Automated source-level error localization in hardware designs , 2006, IEEE Design & Test of Computers.

[67]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[68]  Markus Stumptner,et al.  Model-Based Diagnosis of Hardware Designs , 1999, Artif. Intell..