Program analysis based on weighted pushdown model checking

The increasing complexity of software and hardware systems nowadays makes their validation more challenging. Current practiced methods for system validation are mostly based on simulation and testing. The fundamental problem for these methods is that they cannot cover all possible scenarios of system runs. A promising alternative to system validation is formal verification, of which popular approaches are theorem proving, model checking, etc. Theorem proving is a deductive approach, and the use of it usually need expertise and enough experience. In contrast, model checking, the so-called “push-button technique”, is a fully automatic algorithmic technique for verification on temporal safety of reactive and concurrent systems. In particular, if model checking once fails, counterexamples are provided as evidences for the failure and clues for fixing the problem. This research aims at applying formal verification methods, model checking in particular, to automatic system validation.

[1]  Zohar Manna,et al.  Axiomatic approach to total correctness of programs , 1973, Acta Informatica.

[2]  Somesh Jha,et al.  On generalized authorization problems , 2003, 16th IEEE Computer Security Foundations Workshop, 2003. Proceedings..

[3]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

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

[5]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[6]  Bernhard Steffen,et al.  Data Flow Analysis as Model Checking , 1990, TACS.

[7]  David A. Schmidt Data flow analysis is model checking of abstract interpretations , 1998, POPL '98.

[8]  Javier Esparza,et al.  Efficient Algorithms for Model Checking Pushdown Systems , 2000, CAV.