• DocumentCode
    555298
  • Title

    Verifying multi-threaded software using smt-based context-bounded model checking

  • Author

    Cordeiro, Lucas ; Fischer, Bernd

  • Author_Institution
    Univ. of Southampton, Southampton, UK
  • fYear
    2011
  • fDate
    21-28 May 2011
  • Firstpage
    331
  • Lastpage
    340
  • Abstract
    We describe and evaluate three approaches to model check multi-threaded software with shared variables and locks using bounded model checking based on Satisfiability Modulo Theories (SMT) and our modelling of the synchronization primitives of the Pthread library. In the lazy approach, we generate all possible interleavings and call the SMT solver on each of them individually, until we either find a bug, or have systematically explored all interleavings. In the schedule recording approach, we encode all possible interleavings into one single formula and then exploit the high speed of the SMT solvers. In the underapproximation and widening approach, we reduce the state space by abstracting the number of interleavings from the proofs of unsatisfiability generated by the SMT solvers. In all three approaches, we bound the number of context switches allowed among threads in order to reduce the number of interleavings explored. We implemented these approaches in ESBMC, our SMT-based bounded model checker for ANSI-C programs. Our experiments show that ESBMC can analyze larger problems and substantially reduce the verification time compared to state-of-the-art techniques that use iterative context-bounding algorithms or counter-example guided abstraction refinement.
  • Keywords
    computability; formal verification; multi-threading; ANSI-C programs; SMT solver; SMT-based bounded model checker; SMT-based context-bounded model checking; Satisfiability Modulo Theories; counter-example guided abstraction refinement; iterative context-bounding algorithm; multithreaded software; state space; Context; Context modeling; Instruction sets; Reactive power; Schedules; Software algorithms; formal software verification; multi-threaded systems; sat modulo theories; symbolic and explicit model checking;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2011 33rd International Conference on
  • Conference_Location
    Honolulu, HI
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4503-0445-0
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1145/1985793.1985839
  • Filename
    6032472