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
|
|
@ -112,7 +112,8 @@ namespace spot
|
|||
is.accepting_eword = false;
|
||||
break;
|
||||
case NegClosure:
|
||||
is.not_marked = false;
|
||||
case NegClosureMarked:
|
||||
is.not_marked = (op == NegClosure);
|
||||
is.boolean = false;
|
||||
is.ltl_formula = false;
|
||||
is.eltl_formula = false;
|
||||
|
|
@ -198,6 +199,8 @@ namespace spot
|
|||
return "Closure";
|
||||
case NegClosure:
|
||||
return "NegClosure";
|
||||
case NegClosureMarked:
|
||||
return "NegClosureMarked";
|
||||
}
|
||||
// Unreachable code.
|
||||
assert(0);
|
||||
|
|
@ -297,6 +300,7 @@ namespace spot
|
|||
break;
|
||||
|
||||
case NegClosure:
|
||||
case NegClosureMarked:
|
||||
// {1} = 0, {[*0]} = 0
|
||||
if (child == constant::true_instance()
|
||||
|| child == constant::empty_word_instance())
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace spot
|
|||
// ELTL
|
||||
Finish,
|
||||
// Closure
|
||||
Closure, NegClosure,
|
||||
Closure, NegClosure, NegClosureMarked
|
||||
};
|
||||
|
||||
/// \brief Build an unary operator with operation \a op and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue