Using counterexample analysis to minimize the number of predicates for predicate abstraction

  • Authors:
  • Thanyapat Sakunkonchak;Satoshi Komatsu;Masahiro Fujita

  • Affiliations:
  • VLSI Design and Education Center, The University of Tokyo, Tokyo, Japan;VLSI Design and Education Center, The University of Tokyo, Tokyo, Japan;VLSI Design and Education Center, The University of Tokyo, Tokyo, Japan

  • Venue:
  • ATVA'07 Proceedings of the 5th international conference on Automated technology for verification and analysis
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Due to the success of the model checking technique in the hardware domain, over the last few years, model checking methods have been applied to the software domain which poses its own challenges, as software tends to be less structured than hardware. Predicate abstraction is widely applied to reduce the state-space by mapping an infinite state-space pxrogram to an abstract program of Boolean type. The cost for computation of abstraction and model checking depends on the number of state variables in the abstract model. In this paper, we propose a simple, yet efficient method to minimize the number of predicates for predicate abstraction. Given a spurious counterexample, at least one predicate is assigned at each program location during the refinement process. The computational cost depends proportionally to the number of assigned predicates. In this paper, instead, we search the counter example to find the conflict predicates that caused this counter example to be spurious. Then, we assign the necessary predicates to the abstract model. We compare the performance of our technique with the interpolation-based predicate abstraction tool like BLAST. The proposed method presents significantly better experimental results on some examples with large set of predicates.