1 Verification Approach
-
basic uses instrumentation without any pointer analysis,
-
ePTA uses extended pointer analysis (i.e. it is a fixed version of the instrumentation in Symbiotic 4),
-
staged uses extended pointer analysis and staged instrumentation.
__VERIFIER_nondet*
calls. More precisely, we provide return values of calls in main
and such that they are called just once in the run. The witnesses are now more often confirmed by witness checkers.2 Software Architecture
__VERIFIER_error
calls) are implemented as llvm passes. All the components that transform bitcode take a bitcode as an input and give a valid bitcode as an output. This makes Symbiotic highly modular: any part (module) can be easily replaced or used as a stand-alone tool.3 Strengths and Weaknesses
4 Tool Setup and Configuration
-
Installation: Unpack the archive.
-
Participation Statement: Symbiotic 5 participates in all categories.
-
Execution: Run \(\texttt {bin/symbiotic\;OPTS\;{<}source{>}}\), where available
OPTS
include:-
–prp=file
, which sets the property specification file to use, -
–witness=file
, which sets the output file for the witness, -
–32
, which sets the 32-bit environment, -
–help
, which shows the full list of possible options.
-