model_check [-b] [-c] [-d <dbg_level>] [-f <dbg_file>] [-g <hints_file>] [-h] [-i] [-m] [-r] [-t <time_out_period>][-v <verbosity_level>] [-D <dc_level>] [-F] [-S <schedule>] [-V] [-B] [-I] [-C] <ctl_file>
Performs fair CTL model checking on a flattened
network. Before calling this command, the user should have
initialized the design by calling the command init_verify.
Regardless of the options, no 'false positives' or 'false negatives'
will occur: the result is correct for the given circuit.
Properties to be verified should be provided as CTL formulas in the
file ctl_file. Note that the support of any wire
referred to in a formula should consist only of latches. For the
precise syntax of CTL formulas, see the VIS CTL and LTL syntax manual.
Properties of the form AG f, where f is a formula not
involving path quantifiers are referred to as invariants; for such properties
it may be substantially faster to use the
check_invariant command.
A fairness constraint can be specified by invoking the
read_fairness command;
if none is specified, all paths are taken to be fair.
If some initial states
do not lie on a fair path, the model checker prints a message to this effect.
A formula passes iff it is true for all initial states of the system. Therefore, in the presence of multiple initial states, if a formula fails, the negation of the formula may also fail.
If a formula does not pass, a (potentially partial) proof of failure
(referred to as a debug trace) is demonstrated. Fair paths are
represented by a finite sequence of states (the stem) leading to a
fair cycle, i.e. a cycle on which there is a state from each
fairness condition. The level of detail of the proof can be
specified (see option -d).
Both backward (future tense CTL formulas) and forward (past tense CTL formulas) model checking can be performed. Forward model checking is based on Iwashita's ICCAD96 paper. Future tense CTL formulas are automatically converted to past tense ones as much as possible in forward model checking.
Command options:
<dbg_level>
dbg_level must be one of the following:
0: No debugging performed.
dbg_level=0 is the default.
1: Debugging with minimal output: generate counter-examples
for universal formulas (formulas of the form AX|AF|AU|AG) and
witnesses for existential formulas (formulas of the form
EX|EF|EU|EG). States on a path are not further analyzed.
2: Same as dbg_level=1, but more
verbose. (The subformulas are printed, too.)
3: Maximal automatic debugging: as for level 1,
except that states occurring on paths will be recursively analyzed.
4: Manual debugging: at each state, the user is queried if
more feedback is desired.
dbg_file>
dbg_file.
This option is incompatible with -F.
Notes: when you use -d4 (interactive mode), -f is not recommended, since you
can't see the output of vis on stdout.hints_file> hints_file contains a series of hints. A hint is a formula that
does not contain any temporal operators, so hints_file has the
same syntax as a file of invariants used for check_invariant. The hints are
used in the order given to change the transition relation. In the case of
least fixpoints (EF, EU), the transition relation is conjoined with the hint,
whereas for greatest fixpoints the transition relation is disjoined with the
negation of the hint. If the hints are cleverly chosen, this may speed up
the computation considerably, because a search with the changed transition
relation may be much simpler than one with the original transition relation,
and results obtained can be reused, so that we may never have to do a
complicated search with the original relation. Note: hints in terms of
primary inputs are not useful for greatest fixpoints. See also: Ravi and
Somenzi, Hints to accelerate symbolic traversal. CHARME'99; Bloem, Ravi, and
Somenzi, Efficient Decision Procedures for Model Checking of Linear Time
Logic Properties, CAV'99; Bloem, Ravi, and Somenzi, Symbolic Guided Search
for CTL Model Checking, DAC'00.
For formulae that contain both least and greatest fixpoints, the
behavior depends on the flag guided_search_hint_type.
If it is set to local (default) then every subformula is evaluated
to completion, using all hints in order, before the next subformula
is started. For pure ACTL or pure ECTL formulae, we can also set
guided_search_hint_type to global, in which case the entire formula
is evaluated for one hint before moving on to the next hint, using
underapproximations. The description of the options for guided
search can be found in the help page for
print_guided_search_options.
model_check will call reachability without any guided search, even if -g is used. If you want to perform reachability with guided search, call rch directly.
Incompatible with -F.
flatten_hierarchy).
These parts are effectively removed when this option is invoked; this may
result in more efficient model checking.
<timeOutPeriod>
<verbosity_level>
verbosity_level must be one of the following:
0: No feedback provided. This is the default.
1: Feedback on code location.
2: Feedback on code location and CPU usage.
<dc_level>
dc_level must be one of the following:
0 : No don't cares are used.
1 : Use unreachable states as don't cares. This is the
default.
2 : Use unreachable states as don't cares and in the EU
computation, use 'frontiers' for image computation.
3 : First compute an overapproximation of the reachable states
(ARDC), and use that as the cares set. Use `frontiers' for image
computation. For help on controlling options for ARDC, look up help on the
command: print_ardc_options. Refer
to Moon, Jang, Somenzi, Pixley, Yuan, "Approximate Reachability Don't Cares
for {CTL} Model Checking", ICCAD98, and to two papers by Cho et al, IEEE TCAD
December 1996: one is for State Space Decomposition and the other is for
Approximate FSM Traversal.
<schedule>
<schedule> must be one of the following:
EL : EU and EX operators strictly alternate. This
is the default.
EL1 : EX is applied once for every application of all EUs.
EL2 : EX is applied repeatedly after each application of
all EUs.
budget : a hybrid of EL and EL2.
random : enabled operators are applied in
(pseudo-)random order.
off : GSH is disabled, and the old algorithm is
used instead. The old algorithm uses the EL schedule, but
the termination checks are less sophisticated than in GSH.
node_file>
This option invoked the algorithm to generate an error trace divided
into fated and free segements. Fate represents the inevitability and
free is asserted when there is no inevitability. This can be formulated
as a two-player concurrent reachability game. The two players are
the environment and the system. The node_file is given To specify the
variables the are controlled by the system.
<ctl_file>