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.
This commit is contained in:
Alexandre Duret-Lutz 2011-03-05 17:56:48 +01:00
parent 5a76a7bb05
commit 8136bd412d
4 changed files with 278 additions and 13 deletions

View file

@ -22,10 +22,15 @@
# define SPOT_IFACE_DVE2_DVE2_HH
#include "kripke/kripke.hh"
#include "ltlvisit/apcollect.hh"
namespace spot
{
kripke* load_dve2(const std::string& file, bdd_dict* dict,
kripke* load_dve2(const std::string& file,
bdd_dict* dict,
ltl::atomic_prop_set* to_observe,
bool verbose = true);
}