FM: Translate X(a&b) as if it were X(a)&X(b).

This helps reducing (p&XF!p)|(!p&XFp)|X(Fp&F!p) to (p&XF!p)|(!p&XFp).

* src/tgbaalgos/ltl2tgba_fm.cc: Adjust rewriting rules of X.
* src/tgbatest/ltl2tgba.test: Add a test case.
This commit is contained in:
Alexandre Duret-Lutz 2012-06-18 18:25:07 +02:00
parent d7ff066513
commit 9460e0761e
2 changed files with 51 additions and 2 deletions

View file

@ -201,3 +201,8 @@ run 0 ../ltl2tgba -XN -kt out.never > count.never
run 0 ../ltl2tgba -R1q -R1t -DS -b 'FGa|FGb' > out.spot
run 0 ../ltl2tgba -X -kt out.spot > count.spot
cmp count.never count.spot
# The following automaton should have only 4 states.
run 0 ../ltl2tgba -R3 -ks -f '(p&XF!p)|(!p&XFp)|X(Fp&F!p)' >stdout
grep 'transitions: 7$' stdout
grep 'states: 4$' stdout