Fix translation of !{r}.
We need a marked version of !{r} to perform breakpoint unroling.
* src/ltlast/unop.cc, src/ltlast/unop.hh: Declare a NegClosureMarked
operator.
* src/ltlvisit/mark.hh, src/ltlvisit/mark.cc,
src/tgbaalgos/ltl2tgba_fm.cc: Adjust to deal with NegClosureMarked
and NegClosure as apropriate.
* src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc,
src/ltlvisit/tunabbrev.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
src/tgba/formula2bdd.cc: Deal with NegClosureMarked in the same way as
we deal with NegClosure.
* src/tgbatest/ltl2tgba.test: More tests.
* src/ltltest/kind.test: Adjust.
* doc/tl/tl.tex: Mention the marked negated closure.
This commit is contained in:
parent
14144f3b3b
commit
e2f70e72b8
16 changed files with 140 additions and 58 deletions
|
|
@ -508,6 +508,7 @@ namespace spot
|
|||
case unop::Finish:
|
||||
case unop::Closure:
|
||||
case unop::NegClosure:
|
||||
case unop::NegClosureMarked:
|
||||
assert(!"not a rational operator");
|
||||
return;
|
||||
case unop::Not:
|
||||
|
|
@ -1178,7 +1179,7 @@ namespace spot
|
|||
}
|
||||
case unop::Closure:
|
||||
{
|
||||
rat_seen_ = true;
|
||||
// rat_seen_ = true;
|
||||
const formula* f = node->child();
|
||||
if (f->accepts_eword())
|
||||
{
|
||||
|
|
@ -1217,18 +1218,23 @@ namespace spot
|
|||
}
|
||||
break;
|
||||
|
||||
case unop::NegClosureMarked:
|
||||
has_marked_ = true;
|
||||
case unop::NegClosure:
|
||||
rat_seen_ = true;
|
||||
{
|
||||
rat_seen_ = true;
|
||||
has_marked_ = true;
|
||||
|
||||
if (node->child()->accepts_eword())
|
||||
const formula* c = node->child();
|
||||
if (c->accepts_eword())
|
||||
{
|
||||
res_ = bddfalse;
|
||||
return;
|
||||
}
|
||||
|
||||
bdd f1 = translate_ratexp(node->child(), dict_);
|
||||
if (mark_all_)
|
||||
{
|
||||
op = unop::NegClosureMarked;
|
||||
has_marked_ = true;
|
||||
}
|
||||
bdd f1 = translate_ratexp(c, dict_);
|
||||
|
||||
// trace_ltl_bdd(dict_, f1);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue