Research : Projects
STORM is a tool for detection of concurrency errors in system software written in C. More information and source code are available on STORM’s webpage (still under construction).
SMACK (Static Modular Assertion ChecKer) is a tool for checking properties of system software written in C. It is similar in spirit to HAVOC. However, as opposed to HAVOC which is based on Microsoft’s proprietary infrastructure, SMACK is open-source and uses the open-source LLVM compiler infrastructure. Therefore, SMACK can check a diﬀerent spectrum of programs: a large number of gcc-based, mainly open-source applications that are readily available. It should also be relatively easy to implement and try out different extensions on top of SMACK.
SMACK is hosted on GitHub: http://smackers.github.io/smack
During my ﬁrst internship at Microsoft Research back in 2006, I was involved in creating the foundations of HAVOC. HAVOC is a veriﬁer for C programs built on top of Microsoft’s Visual C compiler (cl.exe), and therefore is targeting Windows programs. It transforms a C program into a BoogiePL program, which is the input of the well-known Boogie veriﬁcation-condition (VC) generator. Generated VCs are handed over to the Z3 theorem prover. Based on the VC’s validity, the veriﬁcation either succeeds or the tool returns an error trace.
STRACLOS is a fast decision procedure for our Simple TRAnsitive CLOSure logic. The logic is suitable for reasoning about linked data structures, and contains convenient constructs for expressing unbounded reachability in such structures. Therefore, it can be used for verification of heap-manipulating programs that operate on linked lists. We successfully used STRACLOS to verify a number of heap-manipulating programs using predicate abstraction. Source code and Linux binary distribution are available for download:
STRACLOS has also been integrated into an available SMT solver MathSAT (big thanks to Roberto Bruttomesso and Alessandro Cimatti for helping out!). The version of MathSAT extended with STRACLOS (i.e. the theory of unbounded reachability) can be downloaded from the MathSAT homepage. Here are benchmarks from this work:
STRACLOS is joint work with Jesse Bingham.