* src/sanity/style.test: Check for missing Copyrights blurbs. * src/sanity/Makefile.am: Run style.test before includes.test. * iface/gspn/dcswave.test, iface/gspn/dcswaveeltl.test, iface/gspn/dcswavefm.test, iface/gspn/dcswaveltl.test, iface/gspn/simple.test, iface/gspn/udcsefm.test, iface/gspn/udcseltl.test, iface/gspn/udcsfm.test, iface/gspn/udcsltl.test, iface/nips/nipstest/dotty.test, iface/nips/nipstest/emptiness.test, src/eltltest/acc.test, src/eltltest/nfa.test, src/saba/sabacomplementtgba.cc, src/sabatest/sabacomplementtgba.cc, src/tgbatest/eltl2tgba.test, src/tgbatest/taatgba.test: Add missing Copyright blurb.
200 lines
3 KiB
Bash
Executable file
200 lines
3 KiB
Bash
Executable file
#!/bin/sh
|
|
# Copyright (C) 2009 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 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.
|
|
|
|
. ./defs || exit -1
|
|
set -e
|
|
|
|
# Check if the TGBA was corretly constructed.
|
|
check_construct()
|
|
{
|
|
run 0 ../ltl2tgba -F -le -b "$1" > output
|
|
}
|
|
|
|
# Check if the TGBA behaves correctly by doing an emptiness check on
|
|
# the product between the constructed TGBA and a given formula
|
|
# translated using FM.
|
|
check_true()
|
|
{
|
|
run 0 ../ltl2tgba -e -Poutput -f "$1"
|
|
}
|
|
check_false()
|
|
{
|
|
run 1 ../ltl2tgba -e -Poutput -f "$1"
|
|
}
|
|
|
|
# Create the prelude file.
|
|
cat >input1 <<EOF
|
|
X=(
|
|
0 1 true
|
|
1 2 \$0
|
|
accept 2
|
|
)
|
|
U=(
|
|
0 0 \$0
|
|
0 1 \$1
|
|
accept 1
|
|
)
|
|
G=(
|
|
0 0 \$0
|
|
)
|
|
F=U(true, \$0)
|
|
Strong=G(F(\$0))->G(F(\$1))
|
|
R=!U(!\$0, !\$1)
|
|
EOF
|
|
|
|
cat >input <<EOF
|
|
A=(
|
|
)
|
|
%
|
|
!0|1
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'Ga'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
a U b
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'a U b'
|
|
check_false '!(a U b)'
|
|
check_false 'G(a&!b)'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
!(a U b)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true '!(a U b)'
|
|
check_true 'G(a&!b)'
|
|
check_false 'a U b'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
X(a)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'Xa'
|
|
check_true 'G(a)'
|
|
check_false '!Xa'
|
|
check_false 'G(!a)'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
X(X(a))
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'XXa'
|
|
check_false '!XXa'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
G(a|b&!c)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'G (a|b&!c)'
|
|
check_false '!G (a|b&!c)'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
F(a)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'Fa'
|
|
check_false '!Fa'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
Strong(a,b)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'G(F(a))->G(F(b))'
|
|
check_false '!(G(F(a))->G(F(b)))'
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
%
|
|
a R b
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'a R b'
|
|
check_false '!(a R b)'
|
|
|
|
cat >input <<EOF
|
|
T=(
|
|
0 1 true
|
|
1 0 \$0
|
|
)
|
|
%
|
|
T(f)
|
|
EOF
|
|
|
|
check_construct input
|
|
|
|
cat >input <<EOF
|
|
include input1
|
|
Fusion=
|
|
(
|
|
0 1 \$0 & !finish(\$0)
|
|
1 1 !finish(\$0)
|
|
1 2 \$1 & finish(\$0)
|
|
0 2 \$0 & \$1 & finish(\$0)
|
|
accept 2
|
|
)
|
|
%
|
|
Fusion(F(a),b)
|
|
EOF
|
|
|
|
check_construct input
|
|
|
|
cat >input <<EOF
|
|
Concat=
|
|
(
|
|
0 1 \$0 & !finish(\$0)
|
|
1 1 !finish(\$0)
|
|
1 2 finish(\$0)
|
|
0 2 \$0 & finish(\$0)
|
|
2 3 \$1
|
|
accept 3
|
|
)
|
|
%
|
|
Concat(a,b)
|
|
EOF
|
|
|
|
check_construct input
|
|
check_true 'a&X(b)'
|
|
check_false '!(a&X(b))'
|