CMC: Integrating CEGAR Model Checking into a C Verification Framework |
CMC is a tool that allows for CEGAR model checking within the
Frama-C framework for analysis and verification of C programs. CMC
is implemented as a Frama-C plugin (GUI version only) and allows
for the verification of statement contracts. It is intended to be
used together with other Frama-C plugins especially including
those for abstract interpretation (value analysis) and deductive
verification (wp).
It is currently in alpha. Please report any bugs/comments to
Subash Shankar (subash.shankar12@hu34nter.cuny.edu with the digits
removed). We would also love to hear of any applications you may
be using the tool on.
These instructions include the versions of the tools that CMC has
been tested/developed with, though It will probably also work with
other versions except as otherwise stated. You may skip step 2 or
3 if you wish to use only 1 back-end CEGAR tool, though it is
recommended that you install both since they won't generally work
on the same programs.
To test that everything has been installed properly type:
CMC allows for the verification of statement contracts expressed
using a subset of ACSL constructs.The options are:
Option |
|
-cmc |
enable cmc plugin |
-cmc-help |
this list |
-cmc-checker {cpa,satabs} |
CEGAR model checker backend |
-cmc-output <filename> |
Name of intermediate file (will be
overwritten) |
-cmc-context |
Use value analysis to assume initial values
for variables in statement (ignored if -val flag is not
used) |
-cmc-maxcontext <n> |
The number of values to enumerate in the
context. If it is unable to determine a context that has
fewer than n values, an interval is used. Note that large
values of n may adversely affect CEGAR performance since it
can also be used to generate more predicates for abstraction |
-cmc-numiter <n> |
The number of CEGAR iterations (not supported
with cpa checker) |
-cpa-timelimit <n> |
Timeout (in seconds) for CEGAR checker (not
supported with satabs checker) |