* src/tgbaalgos/magic.hh: Fix a comment and remove se05 interface.
* src/tgbaalgos/magic.cc: Fix a comment. * src/tgbaalgos/se05.hh: New file. * src/tgbaalgos/se05.cc: Fix a comment. * src/tgbaalgos/tau03.hh: New file. * src/tgbaalgos/tau03.cc: New file. * src/tgbaalgos/Makefile.am: Add it. * src/tgbatest/ltl2tgba.cc: Add tau03 new emptiness check. * src/tgbatest/randtgba.cc: Add tau03 new emptiness check. * src/tgbatest/emptchkr: Fix a comment. * src/tgbatest/tba_samples_from_spin/explicit1_1.tba, src/tgbatest/tba_samples_from_spin/explicit1_2.tba, src/tgbatest/tba_samples_from_spin/explicit1_3.tba, src/tgbatest/tba_samples_from_spin/explicit1_4.tba, src/tgbatest/tba_samples_from_spin/explicit1_5.tba, src/tgbatest/tba_samples_from_spin/explicit1_6.tba, src/tgbatest/tba_samples_from_spin/explicit1_7.tba, src/tgbatest/tba_samples_from_spin/explicit1_8.tba, src/tgbatest/tba_samples_from_spin/explicit1_9.tba, src/tgbatest/tba_samples_from_spin/explicit2_1.tba, src/tgbatest/tba_samples_from_spin/explicit2_2.tba, src/tgbatest/tba_samples_from_spin/explicit2_3.tba, src/tgbatest/tba_samples_from_spin/explicit2_4.tba, src/tgbatest/tba_samples_from_spin/explicit2_5.tba, src/tgbatest/tba_samples_from_spin/explicit2_6.tba, src/tgbatest/tba_samples_from_spin/explicit2_7.tba, src/tgbatest/tba_samples_from_spin/explicit2_8.tba, src/tgbatest/tba_samples_from_spin/explicit2_9.tba: New files * src/tgbatest/tba_samples_from_spin.test : New test. * src/tgbatest/Makefile.am: Add it.
This commit is contained in:
parent
c3e399c837
commit
9bea364e40
31 changed files with 836079 additions and 133 deletions
|
|
@ -84,6 +84,7 @@ TESTS = \
|
|||
emptchke.test \
|
||||
dfs.test \
|
||||
emptchkr.test \
|
||||
tba_samples_from_spin.test \
|
||||
spotlbtt.test
|
||||
|
||||
EXTRA_DIST = $(TESTS) ltl2baw.pl
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ run 0 ./randtgba -e 100 -s 50 -r -a 1 0.1 -d 0.02
|
|||
run 0 ./randtgba -e 100 -s 100 -r -a 1 0.1 -d 0.04
|
||||
run 0 ./randtgba -e 100 -s 150 -r -a 1 0.1 -d 0.08
|
||||
|
||||
# Two acceptance conditions
|
||||
# Four acceptance conditions
|
||||
run 0 ./randtgba -e 100 -s 200 -r -a 4 0.1 -d 0.01
|
||||
run 0 ./randtgba -e 100 -s 250 -r -a 4 0.1 -d 0.02
|
||||
run 0 ./randtgba -e 100 -s 300 -r -a 4 0.1 -d 0.04
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@
|
|||
#include "tgbaalgos/lbtt.hh"
|
||||
#include "tgba/tgbatba.hh"
|
||||
#include "tgbaalgos/magic.hh"
|
||||
#include "tgbaalgos/se05.hh"
|
||||
#include "tgbaalgos/tau03.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
#include "tgbaalgos/gtec/ce.hh"
|
||||
#include "tgbaparse/public.hh"
|
||||
|
|
@ -125,7 +127,8 @@ syntax(char* prog)
|
|||
<< " bsh_se05_search[(heap size in MB - 10MB by default)]"
|
||||
<< std::endl
|
||||
<< " bsh_se05_search_repeated[(heap size in MB - 10MB"
|
||||
<< " by default)]" << std::endl;
|
||||
<< " by default)]" << std::endl
|
||||
<< " tau03_search" << std::endl;
|
||||
exit(2);
|
||||
}
|
||||
|
||||
|
|
@ -144,9 +147,10 @@ main(int argc, char** argv)
|
|||
int output = 0;
|
||||
int formula_index = 0;
|
||||
std::string echeck_algo;
|
||||
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search } echeck = None;
|
||||
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search, Tau03Search }
|
||||
echeck = None;
|
||||
enum { NoneDup, BFS, DFS } dupexp = NoneDup;
|
||||
bool magic_many = false;
|
||||
bool search_many = false;
|
||||
bool bit_state_hashing = false;
|
||||
int heap_size = 10*1024*1024;
|
||||
bool expect_counter_example = false;
|
||||
|
|
@ -368,7 +372,7 @@ main(int argc, char** argv)
|
|||
{
|
||||
echeck = MagicSearch;
|
||||
degeneralize_maybe = true;
|
||||
magic_many = true;
|
||||
search_many = true;
|
||||
}
|
||||
else if (echeck_algo == "bsh_magic_search")
|
||||
{
|
||||
|
|
@ -381,7 +385,7 @@ main(int argc, char** argv)
|
|||
echeck = MagicSearch;
|
||||
degeneralize_maybe = true;
|
||||
bit_state_hashing = true;
|
||||
magic_many = true;
|
||||
search_many = true;
|
||||
}
|
||||
else if (echeck_algo == "se05_search")
|
||||
{
|
||||
|
|
@ -392,7 +396,7 @@ main(int argc, char** argv)
|
|||
{
|
||||
echeck = Se05Search;
|
||||
degeneralize_maybe = true;
|
||||
magic_many = true;
|
||||
search_many = true;
|
||||
}
|
||||
else if (echeck_algo == "bsh_se05_search")
|
||||
{
|
||||
|
|
@ -405,7 +409,11 @@ main(int argc, char** argv)
|
|||
echeck = Se05Search;
|
||||
degeneralize_maybe = true;
|
||||
bit_state_hashing = true;
|
||||
magic_many = true;
|
||||
search_many = true;
|
||||
}
|
||||
else if (echeck_algo == "tau03_search")
|
||||
{
|
||||
echeck = Tau03Search;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -649,6 +657,19 @@ main(int argc, char** argv)
|
|||
else
|
||||
ec = spot::explicit_se05_search(a);
|
||||
break;
|
||||
|
||||
case Tau03Search:
|
||||
if (a->number_of_acceptance_conditions() == 0)
|
||||
{
|
||||
std::cout << "To apply tau03_search, the automaton must have at "
|
||||
<< "least on accepting condition. Try with another "
|
||||
<< "algorithm." << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
ec = spot::explicit_tau03_search(a);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (ec)
|
||||
|
|
@ -702,7 +723,7 @@ main(int argc, char** argv)
|
|||
}
|
||||
delete res;
|
||||
}
|
||||
while (magic_many);
|
||||
while (search_many);
|
||||
delete ec;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
#include "tgbaalgos/emptiness.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
#include "tgbaalgos/magic.hh"
|
||||
#include "tgbaalgos/se05.hh"
|
||||
#include "tgbaalgos/tau03.hh"
|
||||
#include "tgbaalgos/replayrun.hh"
|
||||
|
||||
void
|
||||
|
|
@ -42,7 +44,7 @@ syntax(char* prog)
|
|||
std::cerr << "Usage: "<< prog << " [OPTIONS...] PROPS..." << std::endl
|
||||
<< std::endl
|
||||
<< "Options:" << std::endl
|
||||
<< " -a N F number of accepence conditions a propability that"
|
||||
<< " -a N F number of acceptance conditions and probability that"
|
||||
<< " one is true [0 0.0]" << std::endl
|
||||
<< " -d F density of the graph [0.2]" << std::endl
|
||||
<< " -e N compare result of all "
|
||||
|
|
@ -205,6 +207,13 @@ main(int argc, char** argv)
|
|||
ec_name.push_back("couvreur99_shy");
|
||||
ec_safe.push_back(true);
|
||||
|
||||
if (opt_n_acc >= 1)
|
||||
{
|
||||
ec_obj.push_back(spot::explicit_tau03_search(a));
|
||||
ec_name.push_back("explicit_tau03_search");
|
||||
ec_safe.push_back(true);
|
||||
}
|
||||
|
||||
if (opt_n_acc <= 1)
|
||||
{
|
||||
ec_obj.push_back(spot::explicit_magic_search(a));
|
||||
|
|
|
|||
76
src/tgbatest/tba_samples_from_spin.test
Executable file
76
src/tgbatest/tba_samples_from_spin.test
Executable file
|
|
@ -0,0 +1,76 @@
|
|||
#!/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.
|
||||
|
||||
. ./defs
|
||||
|
||||
light_run()
|
||||
{
|
||||
expected_exitcode=$1
|
||||
shift
|
||||
exitcode=0
|
||||
"$@" || exitcode=$?
|
||||
test $exitcode = $expected_exitcode || exit 1
|
||||
}
|
||||
|
||||
set -e
|
||||
|
||||
expect_ce()
|
||||
{
|
||||
light_run 0 ./ltl2tgba -X -e "$1"
|
||||
light_run 0 ./ltl2tgba -X -ecouvreur99_shy "$1"
|
||||
light_run 0 ./ltl2tgba -X -emagic_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -ebsh_magic_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -ese05_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -ebsh_se05_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -etau03_search "$1"
|
||||
}
|
||||
|
||||
expect_no()
|
||||
{
|
||||
light_run 0 ./ltl2tgba -X -E "$1"
|
||||
light_run 0 ./ltl2tgba -X -Ecouvreur99_shy "$1"
|
||||
light_run 0 ./ltl2tgba -X -Emagic_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -Ebsh_magic_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -Ese05_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -Ebsh_se05_search "$1"
|
||||
light_run 0 ./ltl2tgba -X -Etau03_search "$1"
|
||||
}
|
||||
|
||||
expect_no tba_samples_from_spin/explicit1_1.tba
|
||||
expect_ce tba_samples_from_spin/explicit1_2.tba
|
||||
expect_no tba_samples_from_spin/explicit1_3.tba
|
||||
expect_no tba_samples_from_spin/explicit1_4.tba
|
||||
expect_ce tba_samples_from_spin/explicit1_5.tba
|
||||
expect_no tba_samples_from_spin/explicit1_6.tba
|
||||
expect_no tba_samples_from_spin/explicit1_7.tba
|
||||
expect_ce tba_samples_from_spin/explicit1_8.tba
|
||||
expect_ce tba_samples_from_spin/explicit1_9.tba
|
||||
|
||||
expect_ce tba_samples_from_spin/explicit2_1.tba
|
||||
expect_ce tba_samples_from_spin/explicit2_2.tba
|
||||
expect_no tba_samples_from_spin/explicit2_3.tba
|
||||
expect_no tba_samples_from_spin/explicit2_4.tba
|
||||
expect_ce tba_samples_from_spin/explicit2_5.tba
|
||||
expect_no tba_samples_from_spin/explicit2_6.tba
|
||||
expect_ce tba_samples_from_spin/explicit2_7.tba
|
||||
expect_ce tba_samples_from_spin/explicit2_8.tba
|
||||
expect_no tba_samples_from_spin/explicit2_9.tba
|
||||
21014
src/tgbatest/tba_samples_from_spin/explicit1_1.tba
Normal file
21014
src/tgbatest/tba_samples_from_spin/explicit1_1.tba
Normal file
File diff suppressed because it is too large
Load diff
31584
src/tgbatest/tba_samples_from_spin/explicit1_2.tba
Normal file
31584
src/tgbatest/tba_samples_from_spin/explicit1_2.tba
Normal file
File diff suppressed because it is too large
Load diff
4705
src/tgbatest/tba_samples_from_spin/explicit1_3.tba
Normal file
4705
src/tgbatest/tba_samples_from_spin/explicit1_3.tba
Normal file
File diff suppressed because it is too large
Load diff
16097
src/tgbatest/tba_samples_from_spin/explicit1_4.tba
Normal file
16097
src/tgbatest/tba_samples_from_spin/explicit1_4.tba
Normal file
File diff suppressed because it is too large
Load diff
6139
src/tgbatest/tba_samples_from_spin/explicit1_5.tba
Normal file
6139
src/tgbatest/tba_samples_from_spin/explicit1_5.tba
Normal file
File diff suppressed because it is too large
Load diff
16097
src/tgbatest/tba_samples_from_spin/explicit1_6.tba
Normal file
16097
src/tgbatest/tba_samples_from_spin/explicit1_6.tba
Normal file
File diff suppressed because it is too large
Load diff
6139
src/tgbatest/tba_samples_from_spin/explicit1_7.tba
Normal file
6139
src/tgbatest/tba_samples_from_spin/explicit1_7.tba
Normal file
File diff suppressed because it is too large
Load diff
46420
src/tgbatest/tba_samples_from_spin/explicit1_8.tba
Normal file
46420
src/tgbatest/tba_samples_from_spin/explicit1_8.tba
Normal file
File diff suppressed because it is too large
Load diff
46420
src/tgbatest/tba_samples_from_spin/explicit1_9.tba
Normal file
46420
src/tgbatest/tba_samples_from_spin/explicit1_9.tba
Normal file
File diff suppressed because it is too large
Load diff
78192
src/tgbatest/tba_samples_from_spin/explicit2_1.tba
Normal file
78192
src/tgbatest/tba_samples_from_spin/explicit2_1.tba
Normal file
File diff suppressed because it is too large
Load diff
95500
src/tgbatest/tba_samples_from_spin/explicit2_2.tba
Normal file
95500
src/tgbatest/tba_samples_from_spin/explicit2_2.tba
Normal file
File diff suppressed because it is too large
Load diff
4705
src/tgbatest/tba_samples_from_spin/explicit2_3.tba
Normal file
4705
src/tgbatest/tba_samples_from_spin/explicit2_3.tba
Normal file
File diff suppressed because it is too large
Load diff
50693
src/tgbatest/tba_samples_from_spin/explicit2_4.tba
Normal file
50693
src/tgbatest/tba_samples_from_spin/explicit2_4.tba
Normal file
File diff suppressed because it is too large
Load diff
17910
src/tgbatest/tba_samples_from_spin/explicit2_5.tba
Normal file
17910
src/tgbatest/tba_samples_from_spin/explicit2_5.tba
Normal file
File diff suppressed because it is too large
Load diff
48683
src/tgbatest/tba_samples_from_spin/explicit2_6.tba
Normal file
48683
src/tgbatest/tba_samples_from_spin/explicit2_6.tba
Normal file
File diff suppressed because it is too large
Load diff
37675
src/tgbatest/tba_samples_from_spin/explicit2_7.tba
Normal file
37675
src/tgbatest/tba_samples_from_spin/explicit2_7.tba
Normal file
File diff suppressed because it is too large
Load diff
182680
src/tgbatest/tba_samples_from_spin/explicit2_8.tba
Normal file
182680
src/tgbatest/tba_samples_from_spin/explicit2_8.tba
Normal file
File diff suppressed because it is too large
Load diff
124551
src/tgbatest/tba_samples_from_spin/explicit2_9.tba
Normal file
124551
src/tgbatest/tba_samples_from_spin/explicit2_9.tba
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue