* src/ltltest/inf.cc, src/ltltest/inf.test: Rename as ...
* src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test: ... these. * src/ltltest/Makefile.am: Adjust. * src/ltlvisit/forminf.cc: Rename as... * src/ltlvisit/syntimpl.cc: ... this. * src/ltlvisit/syntimpl.hh: New file with definitions extracted from ... * src/ltlvisit/reducform.hh: ... this one. * src/ltlvisit/Makefile.am, src/ltlvisit/reducform.cc: Adjust.
This commit is contained in:
parent
121a55c48f
commit
6e3fd873ba
10 changed files with 149 additions and 116 deletions
|
|
@ -30,18 +30,17 @@ check_SCRIPTS = defs
|
|||
# Keep this sorted alphabetically.
|
||||
check_PROGRAMS = \
|
||||
equals \
|
||||
inf \
|
||||
ltl2dot \
|
||||
ltl2text \
|
||||
lunabbrev \
|
||||
nenoform \
|
||||
reduc \
|
||||
syntimpl \
|
||||
tostring \
|
||||
tunabbrev \
|
||||
tunenoform
|
||||
|
||||
equals_SOURCES = equals.cc
|
||||
inf_SOURCES = inf.cc
|
||||
ltl2dot_SOURCES = readltl.cc
|
||||
ltl2dot_CPPFLAGS = $(AM_CPPFLAGS) -DDOTTY
|
||||
ltl2text_SOURCES = readltl.cc
|
||||
|
|
@ -50,6 +49,7 @@ lunabbrev_CPPFLAGS = $(AM_CPPFLAGS) -DLUNABBREV
|
|||
nenoform_SOURCES = equals.cc
|
||||
nenoform_CPPFLAGS = $(AM_CPPFLAGS) -DNENOFORM
|
||||
reduc_SOURCES = reduc.cc
|
||||
syntimpl_SOURCES = syntimpl.cc
|
||||
tostring_SOURCES = tostring.cc
|
||||
tunabbrev_SOURCES = equals.cc
|
||||
tunabbrev_CPPFLAGS = $(AM_CPPFLAGS) -DTUNABBREV
|
||||
|
|
@ -69,7 +69,7 @@ TESTS = \
|
|||
tunabbrev.test \
|
||||
nenoform.test \
|
||||
tunenoform.test \
|
||||
inf.test \
|
||||
syntimpl.test \
|
||||
reduc.test
|
||||
|
||||
CLEANFILES = stdout expect parse.dot result.data
|
||||
|
|
|
|||
|
|
@ -1,98 +0,0 @@
|
|||
#! /bin/sh
|
||||
# Copyright (C) 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.
|
||||
|
||||
|
||||
# Check for the reduc visitor
|
||||
|
||||
. ./defs || exit 1
|
||||
|
||||
#
|
||||
run 1 ./inf 0 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 0 'XXa' 'XX(b U a)'
|
||||
|
||||
run 1 ./inf 0 '(e R f)' '(g U f)'
|
||||
run 1 ./inf 0 '( X(a + b))' '( X((a + b)+(c)+(d)))'
|
||||
run 1 ./inf 0 '( X(a + b)) U (e R f)' '( X((a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./inf 0 'Xa' 'XX(b U a)'
|
||||
run 0 ./inf 0 'XXa' 'X(b U a)'
|
||||
|
||||
run 0 ./inf 0 '( X(a + b))' '( X(X(a + b)+(c)+(d)))'
|
||||
run 0 ./inf 0 '( X(a + b)) U (e R f)' '( X(X(a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./inf 0 'a' 'b'
|
||||
run 0 ./inf 0 'a' 'b + c'
|
||||
run 0 ./inf 0 'a + b' 'a'
|
||||
run 0 ./inf 0 'a' 'a * c'
|
||||
run 0 ./inf 0 'a * b' 'c'
|
||||
run 0 ./inf 0 'a' 'a U b'
|
||||
run 0 ./inf 0 'a' 'a R b'
|
||||
run 0 ./inf 0 'a R b' 'a'
|
||||
|
||||
run 1 ./inf 0 '1' '1'
|
||||
run 1 ./inf 0 '0' '0'
|
||||
|
||||
run 1 ./inf 0 'a' '1'
|
||||
run 1 ./inf 0 'a' 'a'
|
||||
|
||||
run 1 ./inf 0 'a' 'a * 1'
|
||||
|
||||
run 1 ./inf 0 'a * b' 'b'
|
||||
run 1 ./inf 0 'a * b' 'a'
|
||||
|
||||
run 1 ./inf 0 'a' 'a + b'
|
||||
run 1 ./inf 0 'b' 'a + b'
|
||||
|
||||
run 1 ./inf 0 'a + b' '1'
|
||||
|
||||
run 1 ./inf 0 'a' 'b U a'
|
||||
run 1 ./inf 0 'a' 'b U 1'
|
||||
run 1 ./inf 0 'a U b' '1'
|
||||
|
||||
run 1 ./inf 0 'a' '1 R a'
|
||||
run 1 ./inf 0 'a' 'a R 1'
|
||||
run 1 ./inf 0 'a R b' 'b'
|
||||
run 1 ./inf 0 'a R b' '1'
|
||||
|
||||
run 1 ./inf 0 'Xa' 'X(b U a)'
|
||||
run 1 ./inf 0 'X(a R b)' 'Xb'
|
||||
|
||||
run 1 ./inf 0 'a U b' '1 U b'
|
||||
run 1 ./inf 0 'a R b' '1 R b'
|
||||
|
||||
run 1 ./inf 0 'b * (a U b)' 'a U b'
|
||||
run 1 ./inf 0 'a U b' 'c + (a U b)'
|
||||
|
||||
exit 0
|
||||
#
|
||||
|
||||
#run 1 ./inf 0 '(a U b) U ((a U b) U (a U b))' 'a U b'
|
||||
#run 1 ./inf 0 '(a U b) && (a U b)' 'a U b'
|
||||
|
||||
'X1' '1'
|
||||
'a U 0' '0'
|
||||
'a R 1' '1'
|
||||
'Xa * Xb' 'X(a * b)'
|
||||
'F(a * GFb)' 'Fa * GFb'
|
||||
'G(a + GFb)' 'Ga + GFb'
|
||||
'X(a * GFb)' 'Xa * GFb'
|
||||
'X(a + GFb)' 'Xa + GFb'
|
||||
|
|
@ -25,10 +25,9 @@
|
|||
#include "ltlvisit/lunabbrev.hh"
|
||||
#include "ltlvisit/tunabbrev.hh"
|
||||
#include "ltlvisit/dump.hh"
|
||||
#include "ltlvisit/nenoform.hh"
|
||||
#include "ltlvisit/destroy.hh"
|
||||
#include "ltlvisit/tostring.hh"
|
||||
#include "ltlvisit/reducform.hh"
|
||||
#include "ltlvisit/syntimpl.hh"
|
||||
#include "ltlast/allnodes.hh"
|
||||
|
||||
void
|
||||
83
src/ltltest/syntimpl.test
Executable file
83
src/ltltest/syntimpl.test
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#! /bin/sh
|
||||
# Copyright (C) 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.
|
||||
|
||||
|
||||
# Check syntactic implication.
|
||||
|
||||
. ./defs || exit 1
|
||||
|
||||
#
|
||||
run 1 ./syntimpl 0 'Xa' 'X(b U a)'
|
||||
run 1 ./syntimpl 0 'XXa' 'XX(b U a)'
|
||||
|
||||
run 1 ./syntimpl 0 '(e R f)' '(g U f)'
|
||||
run 1 ./syntimpl 0 '( X(a + b))' '( X((a + b)+(c)+(d)))'
|
||||
run 1 ./syntimpl 0 '( X(a + b)) U (e R f)' '( X((a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./syntimpl 0 'Xa' 'XX(b U a)'
|
||||
run 0 ./syntimpl 0 'XXa' 'X(b U a)'
|
||||
|
||||
run 0 ./syntimpl 0 '( X(a + b))' '( X(X(a + b)+(c)+(d)))'
|
||||
run 0 ./syntimpl 0 '( X(a + b)) U (e R f)' '( X(X(a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ./syntimpl 0 'a' 'b'
|
||||
run 0 ./syntimpl 0 'a' 'b + c'
|
||||
run 0 ./syntimpl 0 'a + b' 'a'
|
||||
run 0 ./syntimpl 0 'a' 'a * c'
|
||||
run 0 ./syntimpl 0 'a * b' 'c'
|
||||
run 0 ./syntimpl 0 'a' 'a U b'
|
||||
run 0 ./syntimpl 0 'a' 'a R b'
|
||||
run 0 ./syntimpl 0 'a R b' 'a'
|
||||
|
||||
run 1 ./syntimpl 0 '1' '1'
|
||||
run 1 ./syntimpl 0 '0' '0'
|
||||
|
||||
run 1 ./syntimpl 0 'a' '1'
|
||||
run 1 ./syntimpl 0 'a' 'a'
|
||||
|
||||
run 1 ./syntimpl 0 'a' 'a * 1'
|
||||
|
||||
run 1 ./syntimpl 0 'a * b' 'b'
|
||||
run 1 ./syntimpl 0 'a * b' 'a'
|
||||
|
||||
run 1 ./syntimpl 0 'a' 'a + b'
|
||||
run 1 ./syntimpl 0 'b' 'a + b'
|
||||
|
||||
run 1 ./syntimpl 0 'a + b' '1'
|
||||
|
||||
run 1 ./syntimpl 0 'a' 'b U a'
|
||||
run 1 ./syntimpl 0 'a' 'b U 1'
|
||||
run 1 ./syntimpl 0 'a U b' '1'
|
||||
|
||||
run 1 ./syntimpl 0 'a' '1 R a'
|
||||
run 1 ./syntimpl 0 'a' 'a R 1'
|
||||
run 1 ./syntimpl 0 'a R b' 'b'
|
||||
run 1 ./syntimpl 0 'a R b' '1'
|
||||
|
||||
run 1 ./syntimpl 0 'Xa' 'X(b U a)'
|
||||
run 1 ./syntimpl 0 'X(a R b)' 'Xb'
|
||||
|
||||
run 1 ./syntimpl 0 'a U b' '1 U b'
|
||||
run 1 ./syntimpl 0 'a R b' '1 R b'
|
||||
|
||||
run 1 ./syntimpl 0 'b * (a U b)' 'a U b'
|
||||
run 1 ./syntimpl 0 'a U b' 'c + (a U b)'
|
||||
|
|
@ -34,6 +34,7 @@ ltlvisit_HEADERS = \
|
|||
nenoform.hh \
|
||||
postfix.hh \
|
||||
reducform.hh \
|
||||
syntimpl.hh \
|
||||
tostring.hh \
|
||||
tunabbrev.hh
|
||||
|
||||
|
|
@ -44,11 +45,11 @@ libltlvisit_la_SOURCES = \
|
|||
destroy.cc \
|
||||
dotty.cc \
|
||||
dump.cc \
|
||||
forminf.cc \
|
||||
length.cc \
|
||||
lunabbrev.cc \
|
||||
nenoform.cc \
|
||||
postfix.cc \
|
||||
reducform.cc \
|
||||
syntimpl.cc \
|
||||
tostring.cc \
|
||||
tunabbrev.cc
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
// 02111-1307, USA.
|
||||
|
||||
#include "reducform.hh"
|
||||
#include "syntimpl.hh"
|
||||
#include "ltlast/allnodes.hh"
|
||||
#include <cassert>
|
||||
|
||||
|
|
|
|||
|
|
@ -56,16 +56,6 @@ namespace spot
|
|||
/// Basic rewritings.
|
||||
formula* basic_reduce(const formula* f);
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
bool syntactic_implication(const formula* f1, const formula* f2);
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
///
|
||||
/// If right==false, true if !f1 < f2, false otherwise.
|
||||
/// If right==true, true if f1 < !f2, false otherwise.
|
||||
bool syntactic_implication_neg(const formula* f1, const formula* f2,
|
||||
bool right);
|
||||
|
||||
/// \brief Check whether a formula is eventual.
|
||||
///
|
||||
/// FIXME: Describe what eventual formulae are. Cite paper.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
// 02111-1307, USA.
|
||||
|
||||
#include "reducform.hh"
|
||||
#include "syntimpl.hh"
|
||||
#include "ltlast/allnodes.hh"
|
||||
#include <cassert>
|
||||
|
||||
45
src/ltlvisit/syntimpl.hh
Normal file
45
src/ltlvisit/syntimpl.hh
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
// Copyright (C) 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.
|
||||
|
||||
#ifndef SPOT_LTLVISIT_SYNTIMPL_HH
|
||||
# define SPOT_LTLVISIT_SYNTIMPL_HH
|
||||
|
||||
#include "ltlast/formula.hh"
|
||||
|
||||
namespace spot
|
||||
{
|
||||
namespace ltl
|
||||
{
|
||||
// FIXME: Cite paper.
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
bool syntactic_implication(const formula* f1, const formula* f2);
|
||||
|
||||
/// \brief Syntactic implication.
|
||||
///
|
||||
/// If right==false, true if !f1 < f2, false otherwise.
|
||||
/// If right==true, true if f1 < !f2, false otherwise.
|
||||
bool syntactic_implication_neg(const formula* f1, const formula* f2,
|
||||
bool right);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // SPOT_LTLVISIT_SYNTIMPL_HH
|
||||
Loading…
Add table
Add a link
Reference in a new issue