# set the verbose level of
set verbose_level 1

# read in a model
read_model -i gigamax.smv

# instantiate the model
flatten_hierarchy

# build the BDD variables reading the ordering of variables from file
# gigamax.ord 
build_variables -i gigamax.ord

# build the transition relation using default method (Monolithic).
build_model 

# build the transition relation using Conjunctive method, and set the
# default partitioning method to Conjunctive.
build_model -f -m Conjunctive

# build the transition relation using IWLS95CP method, and set the
# default partitioning method to Iwls95CP.
build_model -f -m Iwls95CP

# compute the fairness constraints using the Iwls95CP method.
compute_fairness

set partition_method Conjunctive

# compute the set of reachable states using the Conjunctive method.
compute_reachable

set partition_method Iwls95CP

# check the specification contained in the read file
check_spec

set partition_method Monolithic

# check the specification 
check_spec AG (p0.writable & p1.writable)

# navigate the counterexample
goto_state 1.1

step -v

# Interactive modification of the transition relation
dump_model
add_trans next(m.busy) = m.busy
add_init m.busy = 0
restore_model

# printing of statistical information
print_bdd_stats
print_usage

# resetting the whole system
reset

# read in a model to test the disjunctive partitioning 
set input_file dme4.smv
set input_order_file dme4.ord
set partition_method Monolithic

go

# computing the set of reachable states using the monolithic
# transition relation
compute_reachable

# building the disjunctive transition relation
build_model -f -m Disjunctive

# checking the specifications using the Disjunctive transition
# relation
check_spec

# activating the dynamic variable ordering
print_usage
dynamic_var_ordering -f sift
write_order -f dme4.sift.ord
print_usage
dynamic_var_ordering -f window2
write_order -f dme4.win2.ord
print_usage
dynamic_var_ordering -f exact
write_order -f dme4.exact.ord
print_usage

# printing of statistical information
print_bdd_stats
print_usage

# resetting the whole system
reset

# read in a model to test the disjunctive partitioning 
set input_file periodic.smv
set partition_method Monolithic
go

# checking of the specification of the model
check_spec

# computation of quantitative characteristic of the described model
compute

# reset the whole system
reset

# set the verbose level of
set verbose_level 1

# read in a model
read_model -i gigamax_ltl.smv

# completing the model construction.
go

# check LTL specifications
check_ltlspec

quit
