Speed-up translation of persistence formulas.
* src/tgbaalgos/ltl2tgba_fm.cc: Use a single acceptance for syntactic persistence formulas.
This commit is contained in:
parent
7c464246f2
commit
301ad1ebf0
1 changed files with 13 additions and 3 deletions
|
|
@ -137,14 +137,16 @@ namespace spot
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
translate_dict(bdd_dict* dict, ltl_simplifier* ls, bool exprop)
|
translate_dict(bdd_dict* dict, ltl_simplifier* ls, bool exprop,
|
||||||
|
bool single_acc)
|
||||||
: dict(dict),
|
: dict(dict),
|
||||||
ls(ls),
|
ls(ls),
|
||||||
a_set(bddtrue),
|
a_set(bddtrue),
|
||||||
var_set(bddtrue),
|
var_set(bddtrue),
|
||||||
next_set(bddtrue),
|
next_set(bddtrue),
|
||||||
transdfa(*this),
|
transdfa(*this),
|
||||||
exprop(exprop)
|
exprop(exprop),
|
||||||
|
single_acc(single_acc)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -177,6 +179,7 @@ namespace spot
|
||||||
|
|
||||||
ratexp_to_dfa transdfa;
|
ratexp_to_dfa transdfa;
|
||||||
bool exprop;
|
bool exprop;
|
||||||
|
bool single_acc;
|
||||||
|
|
||||||
enum translate_flags
|
enum translate_flags
|
||||||
{
|
{
|
||||||
|
|
@ -234,6 +237,13 @@ namespace spot
|
||||||
int
|
int
|
||||||
register_a_variable(const formula* f)
|
register_a_variable(const formula* f)
|
||||||
{
|
{
|
||||||
|
if (single_acc)
|
||||||
|
{
|
||||||
|
int num = dict->register_acceptance_variable
|
||||||
|
(ltl::constant::true_instance(), this);
|
||||||
|
a_set &= bdd_ithvar(num);
|
||||||
|
return num;
|
||||||
|
}
|
||||||
// A promise of 'x', noted P(x) is pretty much like the F(x)
|
// A promise of 'x', noted P(x) is pretty much like the F(x)
|
||||||
// LTL formula, it ensure that 'x' will be fulfilled (= not
|
// LTL formula, it ensure that 'x' will be fulfilled (= not
|
||||||
// promised anymore) eventually.
|
// promised anymore) eventually.
|
||||||
|
|
@ -2111,7 +2121,7 @@ namespace spot
|
||||||
|
|
||||||
assert(dict == s->get_dict());
|
assert(dict == s->get_dict());
|
||||||
|
|
||||||
translate_dict d(dict, s, exprop);
|
translate_dict d(dict, s, exprop, f->is_syntactic_persistence());
|
||||||
|
|
||||||
// Compute the set of all promises that can possibly occur
|
// Compute the set of all promises that can possibly occur
|
||||||
// inside the formula.
|
// inside the formula.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue