Fix handling of PSL operators in reductions rules.

We still don't have any PSL-specific reductions, but at least
the LTL reduction now appear to work on PSL formulas.

* src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Fix the
call to std::copy to handle Concat, Fusion, and AndNLM.
* src/ltlvisit/reduce.cc (reduce_visitor): Fix handling
of UConcat, EConcat, and EConcatMarked.
* src/tgbatest/randpsl.test: Activate reductions.
* src/ltltest/reducpsl.test: New file.
* src/ltltest/Makefile.am (TESTS): Add it.
This commit is contained in:
Alexandre Duret-Lutz 2011-02-15 14:34:57 +01:00
parent b8b4aa72c5
commit c8801935bf
5 changed files with 53 additions and 6 deletions

View file

@ -94,6 +94,7 @@ TESTS = \
kind.test \
syntimpl.test \
reduc.test \
reducpsl.test \
reduccmp.test
distclean-local:

42
src/ltltest/reducpsl.test Executable file
View file

@ -0,0 +1,42 @@
#! /bin/sh
# Copyright (C) 2011 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.
# Check for the reduc visitor.
. ./defs || exit 1
set -e
FILE=formulae
: > $FILE
for i in 10 12 14 16 18 20; do
run 0 ../randltl -P -u -s 0 -f $i a b c -F 100 >> $FILE
run 0 ../randltl -P -u -s 100 -f $i a b c d e f -F 100 >> $FILE
done
for opt in 0 1 2 3 7; do
run 0 ../reduc -f -h $opt "$FILE"
done
# Running the above through valgrind is quite slow already.
# Don't use valgrind for the next reductions (even slower).
for opt in 8 9; do
../reduc -f -h $opt "$FILE"
done