unabbreviate: enable removal of R
This implies learning alternative rules for G, and W as well, since those would use R. Fixes #103. Suggested by Joachim Klein. * src/ltlvisit/unabbrev.cc, src/ltlvisit/unabbrev.hh: Implement the new rules. * doc/tl/tl.tex: Document the rules. * src/tests/unabbrevwm.test: Test them. * src/bin/ltlfilt.cc, NEWS: Mention that --unabbreviate accepts R.
This commit is contained in:
parent
0b8c418c94
commit
308833788b
6 changed files with 110 additions and 22 deletions
|
|
@ -25,8 +25,10 @@
|
|||
|
||||
set -e
|
||||
|
||||
ltlfilt=../../bin/ltlfilt
|
||||
|
||||
# Removing W,M in this formula caused a segfault at some point.
|
||||
run 0 ../../bin/ltlfilt --remove-wm >out <<EOF
|
||||
run 0 $ltlfilt --remove-wm >out <<EOF
|
||||
(!((G(p0)) U ((F(p0)) M ((F(X(p1))) & ((p2) W (G(p2))))))) M (F(p0))
|
||||
(Fp0 U(Fp0&!(Gp0 U((FXp1 &(Gp2 R(p2|Gp2))) U(Fp0&FXp1&(Gp2 R(p2|Gp2)))))))
|
||||
EOF
|
||||
|
|
@ -34,3 +36,11 @@ EOF
|
|||
# The first formula will be simplified to the second, so after uniq
|
||||
# the output should have one line.
|
||||
test `uniq out | wc -l` = 1
|
||||
|
||||
for i in 'GFa' 'a R b' 'a W b' 'a M b'; do
|
||||
for fg in '' F G GF; do
|
||||
for rwm in '' R W M RW RM WM RWM; do
|
||||
$ltlfilt -f "$i" --unabbrev=$fg$rwm --equivalent-to "$i"
|
||||
done
|
||||
done
|
||||
done
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue