* src/tgba/bdddict.cc, src/tgba/bdddict.cc (register_clone_acc):
New function. * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Use it to distinguish acceptance conditions that are identical in both operands. * src/tgbatest/explpro4.test: New file. * src/tgbatest/explpro2.test, src/tgbatest/Makefile.am: Adjust.
This commit is contained in:
parent
cb9549e4d4
commit
c412cd4cc3
7 changed files with 129 additions and 21 deletions
|
|
@ -54,6 +54,10 @@ namespace spot
|
|||
fv_map acc_map; ///< Maps acceptance conditions to BDD variables
|
||||
vf_map acc_formula_map; ///< Maps BDD variables to acceptance conditions
|
||||
|
||||
/// Clone counts.
|
||||
typedef std::map<int, int> cc_map;
|
||||
cc_map clone_counts;
|
||||
|
||||
/// \brief Map Next variables to Now variables.
|
||||
///
|
||||
/// Use with BuDDy's bdd_replace() function.
|
||||
|
|
@ -109,6 +113,13 @@ namespace spot
|
|||
/// to convert this to a BDD.
|
||||
int register_acceptance_variable(const ltl::formula* f, const void* for_me);
|
||||
|
||||
/// \brief Clone an acceptance variable VAR for FOR_ME.
|
||||
///
|
||||
/// This is used in products TGBAs when both operands share the
|
||||
/// same acceptance variables but they need to be distinguished in
|
||||
/// the result.
|
||||
int register_clone_acc(int var, const void* for_me);
|
||||
|
||||
/// \brief Register BDD variables as acceptance variables.
|
||||
///
|
||||
/// Register all variables occurring in \a f as acceptance variables
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue