Fix computation of support_conditions in tgba_wdba_comp_proxy.
* src/tgba/wdbacomp.cc (tgba_wdba_comp_proxy::compute_support_conditions): Fix. * src/tgbatest/wdba2.test: Test a formula that used to be wrongly minimized if translated by LaCIM, because the product of a tgbabddconcrete automaton with another automaton (done during WDBA-minimization) use the support conditions to speed things up.
This commit is contained in:
parent
03b13891e3
commit
d7ff066513
2 changed files with 18 additions and 13 deletions
|
|
@ -1,5 +1,6 @@
|
|||
// Copyright (C) 2011 Laboratoire de Recherche et Développement de
|
||||
// l'Epita.
|
||||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement
|
||||
// de l'Epita.
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
//
|
||||
|
|
@ -248,18 +249,12 @@ namespace spot
|
|||
return !the_acceptance_cond_;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual bdd
|
||||
compute_support_conditions(const state* ostate) const
|
||||
protected:
|
||||
virtual bdd
|
||||
compute_support_conditions(const state*) const
|
||||
{
|
||||
const state_wdba_comp_proxy* s =
|
||||
down_cast<const state_wdba_comp_proxy*>(ostate);
|
||||
assert(s);
|
||||
const state* rs = s->real_state();
|
||||
if (rs)
|
||||
return a_->support_conditions(rs);
|
||||
else
|
||||
return bddtrue;
|
||||
// The automaton is complete, so we always support all variables.
|
||||
return bddtrue;
|
||||
}
|
||||
|
||||
virtual bdd compute_support_variables(const state* ostate) const
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2012 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
|
|
@ -36,3 +37,12 @@ run 0 ../ltl2tgba -Rm -kt 'Fa | XGd' > out2
|
|||
|
||||
cmp out expected
|
||||
cmp out2 expected
|
||||
|
||||
|
||||
# This non-obligation formula used to be minimized by mistake when
|
||||
# translated with lacim.
|
||||
x=`../ltl2tgba -l -Rm 'F(Fa R (Gb & !a))' |
|
||||
grep -v -- '->' |
|
||||
sed -n 's/.*label="\(..*\)".*/\1/p' |
|
||||
tr -d '0-9\n'`
|
||||
test -n "$x"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue