Commit graph

10 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
bf8becccea DVE2: Optionally use the new compression.
* iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc:
Add a -Z option and pass it through.
2011-05-02 14:46:19 +02:00
Alexandre Duret-Lutz
c938e652e4 DVE2: preliminary implementation of compressed states.
* iface/dve2/dve2.cc (dve2_compressed_state): New class.
(callback_context): Deal with general state*s, not dve2_state*s.
(transition_callback_compress): New function.
(dve2_kripke): Take a compress option.
(get_init_state, compute_state_condition, succ_iter,
format_state, state_condition): Handle compressed states.
(get_vars, compute_state_condition_aux): New helper methods.
* iface/dve2/dve2.hh (load_dve2): Add a compress option.
* iface/dve2/dve2check.cc: Add a -z option.
* iface/dve2/finite.test, iface/dve2/dve2check.test: Add more
tests.
2011-04-09 17:34:04 +02:00
Alexandre Duret-Lutz
0368d653ca * iface/dve2/dve2check.cc (main): Catch out-of-memory errors
during emptiness check or counterexample generation.
2011-04-06 09:38:16 +02:00
Alexandre Duret-Lutz
33732493fe * iface/dve2/dve2check.cc: Remove stray debug output. 2011-03-30 15:43:28 +02:00
Alexandre Duret-Lutz
cb83e855a4 Add support for finite behaviors in the DVE interface.
* iface/dve2/dve2.hh (load_dve2): Take a "dead" argument.
* iface/dve2/dve2.cc (callback_context): Add a destructor
to simplify...
(dve2_succ_iterator::~dve2_succ_iterator) ... this one.
(convert_aps): Skip the dead proposition.
(dve2_kripke::dve2_kripke): Take a dead argument, and
setup alive_prop and dead_prop.
(compute_state_condition, get_succ): Use a cache for the
conditions and successor of the last state, to share
some work between these two function.  Add loops on dead
states.
(load_dve2): Pass dead to dve2_kripke and convert_aps.
* iface/dve2/dve2check.cc: Add a -dDEAD option.
* iface/dve2/finite.test, iface/dve2/finite.dve: New file.
* iface/dve2/Makefile.am: Declare them.
2011-03-10 22:37:44 +01:00
Alexandre Duret-Lutz
0584d278d1 Clear the timer map to help valgrind.
* src/misc/timer.hh (reset_all): New method.
* iface/dve2/dve2check.cc: Use it to help valgrind.
2011-03-07 11:09:53 +01:00
Alexandre Duret-Lutz
76cfd57973 * iface/dve2/dve2.cc, iface/dve2/dve2check.cc: Cosmetic changes
to please sanity checks.
2011-03-07 11:09:53 +01:00
Alexandre Duret-Lutz
8ce39e09b2 Augment dve2check to perform LTL model checking.
* iface/dve2/dve2check.cc: Add many option to perform
emptiness check and other debugging tasks.
2011-03-07 11:09:53 +01:00
Alexandre Duret-Lutz
8136bd412d Teach the DVE2 interface about atomic propositions such as "a <=
10" or "b != 3".  This only work for integer variables presently.

* iface/dve2/dve2.hh (load_dve2): Take an atomic_prop_set
argument to indicate the AP to observe.
* iface/dve2/dve2.cc (convert_aps): New function.  Parse the
atomic propositions in format them in a prop_set structure that
will allow fast generation of the state condition.
(load_dve2): Call convert_aps, and pass the resulting prop_set
structure to the kripke object.
(dve2_kripke::dve2_kripke): Store the prop_set structure.
(dve2_kripke::~dve2_kripke): Release the prop_set, and unregister
the bdd_variable associated to it.
(compute_state_condition): New method that uses the prop_set.
(succ_iter, state_condition): Call compute_state_condition().
* iface/dve2/dve2check.cc: Adjust the call to load_dve2 to
pass it atomic propositions read from the command line.
2011-03-06 19:17:30 +01:00
Alexandre Duret-Lutz
16b4c28859 We can now explore a divine2 compiled model, but the atomic
properties are still missing.

* iface/dve2/dve2.cc, iface/dve2/dve2.hh: Add
classes for presenting the DiVinE2 model as a kripke object.
(load_dve2): Load the *.dve2C file using libltdl.
* iface/dve2/Makefile.am: Add a dve2check program.
* iface/dve2/dve2check.cc: New file.  Currently it just
outputs the reachability graph using dotty.
2011-03-06 10:51:03 +01:00