fair_loop_approx. * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Implement the fair_loop_approx optimization. (ltl_promise_visitor, ltl_possible_fair_loop_visitor, possible_fair_loop_checker): New classes. * src/tgbatest/ltl2tgba.cc: Add the -L option. * src/tgbatest/spotlbtt.test: Exercise fair_loop_approx. * wrap/python/cgi/ltl2tgba.in: Make it an option.
328 lines
6.7 KiB
Bash
Executable file
328 lines
6.7 KiB
Bash
Executable file
#!/bin/sh
|
|
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
|
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
|
# et Marie Curie.
|
|
#
|
|
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
|
|
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
# 02111-1307, USA.
|
|
|
|
|
|
echo 'This test can take as long as 15 minutes on a 2GHz Pentium 4.'
|
|
|
|
. ./defs
|
|
|
|
set -e
|
|
|
|
cat > config <<EOF
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- LaCIM)"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- LaCIM), degeneralized"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -t -D'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- LaCIM), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM)"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), without symb_merge"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -y -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), degeneralized"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -t -D'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), degeneralized, via never claim"
|
|
Path = "${LBTT_TRANSLATE} --spin './ltl2tgba -F -f -N'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), without symb_merge, fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -y -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM), fake, LTL simplifications by ltl2ba"
|
|
Path = "${LBTT_TRANSLATE} --spot '${srcdir}/ltl2baw.pl --spot=\"-f -T\" -F'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop)"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop), without symb_merge"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -y -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop), degeneralized"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -t -D'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM post_branch + exprop)"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -p -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM post_branch + exprop + flapprox)"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -p -L -t'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM post_branch + exprop), degeneralized"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -p -x -t -D'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM post_branch + exprop + flapprox), degeneralized"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -p -x -t -L -D'"
|
|
Enabled = yes
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop + post_branch), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -p -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop + flapprox), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -L -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop + post_branch + flapprox), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -p -L -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop), fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop), without symb_merge, fake"
|
|
Path = "${LBTT_TRANSLATE} --spot './ltl2tgba -F -f -x -y -T'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spot (Couvreur -- FM exprop), fake, LTL simplifications by ltl2ba"
|
|
Path = "${LBTT_TRANSLATE} --spot '${srcdir}/ltl2baw.pl --spot=\"-f -x -T\" -F'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Spin"
|
|
Path = "${LBTT_TRANSLATE} --spin spin"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "LBT"
|
|
Path = "${LBTT_TRANSLATE} --lbt lbt"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "LTL2BA"
|
|
Path = "${LBTT_TRANSLATE} --spin ltl2ba"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "LTL2BA, generalized fake"
|
|
Path = "${LBTT_TRANSLATE} --spot '${srcdir}/ltl2baw.pl -F'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "LTL2BA without LTL and SCC simplifications"
|
|
Path = "${LBTT_TRANSLATE} --spin 'ltl2ba -l -c'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "LTL2BA without LTL and SCC simplifications, generalized fake"
|
|
Path = "${LBTT_TRANSLATE} --spot '${srcdir}/ltl2baw.pl -l -c -F'"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (GPVW)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --0"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (GPVW+)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --1"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (LTL2AUT)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --2"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (Wring RewRule)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --3"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (Wring RewRule+BoolOpt)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --4"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (Wring RewRule+BoolOpt+AutSempl)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --5"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (Wring BoolOpt)"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt --6"
|
|
Enabled = no
|
|
}
|
|
|
|
Algorithm
|
|
{
|
|
Name = "Wring (Wring RewRule+BoolOpt), degeneralized"
|
|
Path = "cd ~/src/wring2lbtt && ./wring2lbtt -d --4"
|
|
Enabled = no
|
|
}
|
|
|
|
|
|
GlobalOptions
|
|
{
|
|
Rounds = 100
|
|
Interactive = Never
|
|
# Verbosity = 5
|
|
# ComparisonCheck = no
|
|
# ConsistencyCheck = no
|
|
# IntersectionCheck = no
|
|
}
|
|
|
|
FormulaOptions
|
|
{
|
|
Size = 1...13
|
|
Propositions = 6
|
|
|
|
AbbreviatedOperators = Yes
|
|
GenerateMode = Normal
|
|
OutputMode = Normal
|
|
PropositionPriority = 50
|
|
|
|
TruePriority = 1
|
|
FalsePriority = 1
|
|
|
|
AndPriority = 10
|
|
OrPriority = 10
|
|
XorPriority = 0
|
|
# EquivalencePriority = 0
|
|
|
|
BeforePriority = 0
|
|
StrongReleasePriority = 0
|
|
WeakUntilPriority = 0
|
|
|
|
DefaultOperatorPriority = 5
|
|
}
|
|
EOF
|
|
|
|
${LBTT}
|
|
rm config
|