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.
46 lines
1.4 KiB
Bash
Executable file
46 lines
1.4 KiB
Bash
Executable file
#! /bin/sh
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright (C) 2012, 2015 Laboratoire de Recherche et Développement
|
|
# de l'Epita (LRDE).
|
|
#
|
|
# This file is part of Spot, a model checking library.
|
|
#
|
|
# Spot is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
|
# License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
# Check for the unabbreviate_logic visitor
|
|
|
|
. ./defs || exit 1
|
|
|
|
set -e
|
|
|
|
ltlfilt=../../bin/ltlfilt
|
|
|
|
# Removing W,M in this formula caused a segfault at some point.
|
|
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
|
|
|
|
# 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
|