Skip to content
SMACK Software Verifier and Verification Toolchain
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Updated Z3, Boogie, and Corral versions Oct 20, 2018
docs Added conditional verifiers paper Jul 23, 2018
examples Updated our running example Aug 17, 2016
include Fix rust entry point Nov 7, 2018
lib Minor fix to comments in Rust additions Nov 10, 2018
rise4fun
share/smack Last minute patch to fix an SVCOMP issue with several benchmarks Nov 28, 2018
svcomp Bumped version number to 1.9.3 Nov 28, 2018
test Add checking for left-shift overflow for C programs. Fixes #382. Nov 2, 2018
tools/llvm2bpl
.gitattributes
.gitignore
.travis.yml
CMakeLists.txt
CONTRIBUTING.md Unified contribution guidelines Dec 20, 2016
Doxyfile
LICENSE
README.md
Vagrantfile
astyle.conf Improved our code formatting style file a little bit to make it more … Jul 3, 2013

README.md

master Build Status develop Build Status

SMACK Logo

SMACK is both a modular software verification toolchain and a self-contained software verifier. It can be used to verify the assertions in its input programs. In its default mode, assertions are verified up to a given bound on loop iterations and recursion depth; it contains experimental support for unbounded verification as well. SMACK handles complicated feature of the C language, including dynamic memory allocation, pointer arithmetic, and bitwise operations.

Under the hood, SMACK is a translator from the LLVM compiler's popular intermediate representation (IR) into the Boogie intermediate verification language (IVL). Sourcing LLVM IR exploits an increasing number of compiler front-ends, optimizations, and analyses. Currently SMACK only supports the C language via the Clang compiler, though we are working on providing support for additional languages. Targeting Boogie exploits a canonical platform which simplifies the implementation of algorithms for verification, model checking, and abstract interpretation. Currently, SMACK leverages the Boogie and Corral verifiers.

See below for system requirements, installation, usage, and everything else.

We are very interested in your experience using SMACK. Please do contact Zvonimir or Michael with any possible feedback.

Support

Acknowledgements

SMACK project is partially supported by NSF award CCF 1346756 and Microsoft Research SEIF award. We also rely on University of Utah's Emulab infrastructure for extensive benchmarking of SMACK.

Table of Contents

  1. System Requirements and Installation
  2. Running SMACK
  3. Demos
  4. FAQ
  5. Inline Boogie Code
  6. Contribution Guidelines
  7. Projects
  8. Publications
  9. People
You can’t perform that action at this time.