• DocumentCode
    64587
  • Title

    Making CEGAR More Efficient in Software Model Checking

  • Author

    Cong Tian ; Zhenhua Duan ; Zhao Duan

  • Author_Institution
    ICTT & ISN Lab., Xidian Univ., Xi´an, China
  • Volume
    40
  • Issue
    12
  • fYear
    2014
  • fDate
    Dec. 1 2014
  • Firstpage
    1206
  • Lastpage
    1223
  • Abstract
    Counter-example guided abstraction refinement (CEGAR) is widely used in software model checking. With an abstract model, the state space is largely reduced, however, a counterexample found in such a model that does not satisfy the desired property may not exist in the concrete model. Therefore, how to check whether a reported counterexample is spurious is a key problem in the abstraction-refinement loop. Next, in the case that a spurious counterexample is found, the abstract model needs to be further refined where an NP-hard state separation problem is often involved. Thus, how to refine the abstract model efficiently has attracted a great attention in the past years. In this paper, by re-analyzing spurious counterexamples, a new formal definition of spurious paths is given. Based on it, efficient algorithms for detecting spurious counterexamples are presented. By the new algorithms, when dealing with infinite counterexamples, the finite prefix to be analyzed will be polynomially shorter than the one dealt with by the existing algorithms. Moreover, in practical terms, the new algorithms can naturally be parallelized that enables multi-core processors contributes more in spurious counterexample checking. In addition, a novel refining approach by adding extra Boolean variables to the abstract model is presented. With this approach, not only the NP-hard state separation problem can be avoided, but also a smaller refined abstract model can be obtained. Experimental results show that the new algorithms perform well in practice.
  • Keywords
    multiprocessing systems; parallel algorithms; program verification; Boolean variables; CEGAR; NP-hard state separation problem; abstract model; abstraction-refinement loop; counter-example guided abstraction refinement; infinite counterexamples; multicore processors; parallelized algorithms; polynomially-shorter finite prefix; software model checking; spurious counterexample checking; spurious counterexample detection; spurious counterexample reanalysis; spurious paths; state space reduction; Benchmark testing; Computational modeling; Model checking; Software design; CEGAR; Model checking; abstraction; formal verification; refinement;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2014.2357442
  • Filename
    6895263