* lbtt/: Merge lbtt 1.0.3.
This commit is contained in:
parent
f4708a0179
commit
4741dc02bf
34 changed files with 817 additions and 1033 deletions
|
|
@ -1,3 +1,7 @@
|
||||||
|
2004-02-16 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
||||||
|
* lbtt/: Merge lbtt 1.0.3.
|
||||||
|
|
||||||
2004-02-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
2004-02-13 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
||||||
* src/tgbatest/ltl2baw.pl (END): Ensure LTL2TGBA is always
|
* src/tgbatest/ltl2baw.pl (END): Ensure LTL2TGBA is always
|
||||||
|
|
|
||||||
|
|
@ -10,23 +10,6 @@
|
||||||
|
|
||||||
* src/TestOperations.cc: Include sys/wait.h.
|
* src/TestOperations.cc: Include sys/wait.h.
|
||||||
|
|
||||||
* src/Alloc.h: Rename as ...
|
|
||||||
* src/ObstackAlloc.h: ... this. The problem is that alloc.h is a
|
|
||||||
system header in g++ < 3.0, and Darwin has a case-insensitive
|
|
||||||
filesystem. System headers that include alloc.h pick the local
|
|
||||||
Alloc.h version.
|
|
||||||
* BuchiAutomaton.h, Configuration.h, DispUtil.cc,
|
|
||||||
ExternalTranslator.h, FormulaRandomizer.h, Graph.h.in,
|
|
||||||
LtlFormula.h, Makefile.am, NeverClaimAutomaton.h, PathEvaluator.h,
|
|
||||||
ProductAutomaton.h, SccIterator.h, SharedTestData.h,
|
|
||||||
StatDisplay.h, StateSpace.h, StateSpaceRandomizer.cc,
|
|
||||||
StringUtil.h, TestOperations.h, TestRoundInfo.h, TestStatistics.h,
|
|
||||||
UserCommandReader.h, UserCommands.h, main.cc: Adjust includes.
|
|
||||||
|
|
||||||
2003-12-29 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
|
||||||
|
|
||||||
* doc/texinfo.tex: New upstream version.
|
|
||||||
|
|
||||||
2003-07-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
2003-07-29 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||||
|
|
||||||
* src/TestOperations.cc (generateBuchiAutomaton): Forward SIGINT
|
* src/TestOperations.cc (generateBuchiAutomaton): Forward SIGINT
|
||||||
|
|
@ -35,11 +18,6 @@
|
||||||
* src/main.cc (main): Do not intercept SIGINT in
|
* src/main.cc (main): Do not intercept SIGINT in
|
||||||
non-interactive runs.
|
non-interactive runs.
|
||||||
|
|
||||||
2003-07-13 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
|
||||||
|
|
||||||
* doc/lbtt.texi: Never use @-commands in @node names, recent Texinfo
|
|
||||||
versions are stricter on this.
|
|
||||||
|
|
||||||
2003-07-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
2003-07-10 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||||
|
|
||||||
Spot wants `^', not `xor'.
|
Spot wants `^', not `xor'.
|
||||||
|
|
@ -59,13 +37,74 @@
|
||||||
* src/Makefile.am (lbtt_translate_SOURCES): Add SpotWrapper.cc
|
* src/Makefile.am (lbtt_translate_SOURCES): Add SpotWrapper.cc
|
||||||
and SpotWrapper.h.
|
and SpotWrapper.h.
|
||||||
* src/translate.cc (main): Add the --spot option, and build
|
* src/translate.cc (main): Add the --spot option, and build
|
||||||
a SpotWrapper of required.
|
a SpotWrapper if required.
|
||||||
|
|
||||||
|
2004-02-13 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
||||||
|
|
||||||
|
* src/BitArray.{h,cc}, src/BuchiAutomaton.{h,cc},
|
||||||
|
src/Configuration.{h,cc}, src/DispUtil.{h,cc},
|
||||||
|
src/ExternalTranslator.{h,cc}, src/FormulaRandomizer.{h,cc},
|
||||||
|
src/LtlFormula.{h,cc}, src/NeverClaimAutomaton.{h,cc},
|
||||||
|
src/PathEvaluator.{h,cc}, src/PathIterator.{h,cc},
|
||||||
|
src/ProductAutomaton.{h,cc}, src/SpinWrapper.{h,cc},
|
||||||
|
src/StatDisplay.{h,cc}, src/StateSpace.{h,cc},
|
||||||
|
src/StateSpaceRandomizer.{h,cc}, src/StringUtil.{h,cc},
|
||||||
|
src/TestOperations.{h,cc}, src/TestStatistics.{h,cc},
|
||||||
|
src/translate.{h,cc}, src/UserCommandReader.{h,cc},
|
||||||
|
src/UserCommands.{h,cc}: Remove all #pragmas.
|
||||||
|
|
||||||
|
2004-02-12 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
||||||
|
|
||||||
|
* doc/texinfo.tex: New upstream version.
|
||||||
|
|
||||||
|
* doc/lbtt.texi: Update edition to 1.0.2.
|
||||||
|
Remove node names with commands to fix dvi file generation.
|
||||||
|
Move the node about the lbtt-translate utility to correct menu.
|
||||||
|
Reformat the automata file format section to avoid overfull lines
|
||||||
|
in dvi generation.
|
||||||
|
Fix description of the Algorithm block used with lbtt-translate.
|
||||||
|
|
||||||
|
* doc/testprocedure.txt, doc/intersectioncheck.txt: Add initial
|
||||||
|
newlines.
|
||||||
|
|
||||||
|
2004-02-11 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
||||||
|
|
||||||
|
* src/UserCommandReader.cc [HAVE_ISATTY]: Include the unistd.h
|
||||||
|
header.
|
||||||
|
(executeUserCommands) Stop waiting for new commands if an EOF is
|
||||||
|
detected. [HAVE_ISATTY]: If standard input is not connected to a
|
||||||
|
terminal, echo the input line.
|
||||||
|
|
||||||
|
2004-02-10 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
||||||
|
|
||||||
|
* configure.ac: Remove duplicate checks for headers.
|
||||||
|
(GLIBC_OBSTACK_WORKAROUND): New config.h macro for checking for a
|
||||||
|
version of the obstack.h header that requires a workaround to be
|
||||||
|
compiled with g++.
|
||||||
|
Add check for the `isatty' library function.
|
||||||
|
Include the stdio.h header when testing for readline libraries.
|
||||||
|
|
||||||
|
* src/Alloc.h: Rename to LbttAlloc.h to avoid a name conflict with
|
||||||
|
system header files on Darwin.
|
||||||
|
[GLIBC_OBSTACK_WORKAROUND] (__INT_TO_PTR): Redefine macro to
|
||||||
|
work around a C++ bug in the obstack.h header file in glibc 2.3.2.
|
||||||
|
Thanks to Alexandre Duret-Lutz for the original patch.
|
||||||
|
|
||||||
|
* src/BuchiAutomaton.h, src/Configuration.h, src/DispUtil.cc,
|
||||||
|
src/ExternalTranslator.h, src/FormulaRandomizer.h, src/Graph.h.in,
|
||||||
|
src/LtlFormula.h, src/main.cc, src/Makefile.am,
|
||||||
|
src/NeverClaimAutomaton.h, src/PathEvaluator.h,
|
||||||
|
src/ProductAutomaton.h, src/SccIterator.h, src/SharedTestData.h,
|
||||||
|
src/StatDisplay.h, src/StateSpace.h, src/StateSpaceRandomizer.cc,
|
||||||
|
src/StringUtil.h, src/TestOperations.h, src/TestRoundInfo.h,
|
||||||
|
src/TestStatistics.h, src/UserCommandReader.h,
|
||||||
|
src/UserCommands.h: Adjust includes.
|
||||||
|
|
||||||
|
* Update copyright information in source files.
|
||||||
|
|
||||||
2003-07-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
2003-07-04 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||||
|
|
||||||
* src/Config-parse.yy: Remove stray `,' in %token arguments.
|
* src/Config-parse.yy: Remove stray `,' in %token arguments.
|
||||||
* src/Alloc.h (__INT_TO_PTR): Redefine to work around glibc 2.3.
|
|
||||||
* doc/texinfo.tex: New upstream version.
|
|
||||||
|
|
||||||
2003-07-18 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
2003-07-18 Heikki Tauriainen <heikki.tauriainen@hut.fi>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
Makefile.in
|
Makefile.in
|
||||||
Makefile
|
Makefile
|
||||||
*.info*
|
*.info*
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
This file documents how to use the LTL-to-B@"uchi
|
This file documents how to use the LTL-to-B@"uchi
|
||||||
translator testbench @command{lbtt}.
|
translator testbench @command{lbtt}.
|
||||||
|
|
||||||
Copyright @copyright{} 2003 Heikki Tauriainen
|
Copyright @copyright{} 2004 Heikki Tauriainen
|
||||||
@ifinfo
|
@ifinfo
|
||||||
@email{heikki.tauriainen@@hut.fi}
|
@email{heikki.tauriainen@@hut.fi}
|
||||||
@end ifinfo
|
@end ifinfo
|
||||||
|
|
@ -68,7 +68,7 @@ under the above conditions for modified versions.
|
||||||
@author Heikki Tauriainen <@email{heikki.tauriainen@@hut.fi}>
|
@author Heikki Tauriainen <@email{heikki.tauriainen@@hut.fi}>
|
||||||
@page
|
@page
|
||||||
@vskip 0pt plus 1filll
|
@vskip 0pt plus 1filll
|
||||||
Copyright @copyright{} 2003 Heikki Tauriainen
|
Copyright @copyright{} 2004 Heikki Tauriainen
|
||||||
<@email{heikki.tauriainen@@hut.fi}>
|
<@email{heikki.tauriainen@@hut.fi}>
|
||||||
|
|
||||||
The latest version of this manual can be obtained from@*
|
The latest version of this manual can be obtained from@*
|
||||||
|
|
@ -96,14 +96,14 @@ under the above conditions for modified versions.
|
||||||
@end iftex
|
@end iftex
|
||||||
|
|
||||||
@ifnottex
|
@ifnottex
|
||||||
@node Top, Copying, (dir), (dir)
|
@node Top, Copying, , (dir)
|
||||||
@top @command{lbtt}
|
@top @command{lbtt}
|
||||||
|
|
||||||
@command{lbtt} is a tool for testing implementations of algorithms
|
@command{lbtt} is a tool for testing implementations of algorithms
|
||||||
for translating propositional linear temporal logic formulas into
|
for translating propositional linear temporal logic formulas into
|
||||||
B@"uchi automata.
|
B@"uchi automata.
|
||||||
|
|
||||||
This is edition 1.0.1 of the @command{lbtt} documentation. This edition
|
This is edition 1.0.2 of the @command{lbtt} documentation. This edition
|
||||||
applies to @command{lbtt} versions 1.0.x.
|
applies to @command{lbtt} versions 1.0.x.
|
||||||
|
|
||||||
@command{lbtt} is free software, you may change and redistribute it
|
@command{lbtt} is free software, you may change and redistribute it
|
||||||
|
|
@ -115,20 +115,21 @@ comes with NO WARRANTY. See @ref{Copying} for details.
|
||||||
|
|
||||||
* Overview:: A short introduction to @command{lbtt}.
|
* Overview:: A short introduction to @command{lbtt}.
|
||||||
* Test methods:: Description of the tests @command{lbtt}
|
* Test methods:: Description of the tests @command{lbtt}
|
||||||
performs.
|
performs.
|
||||||
|
|
||||||
* Invocation:: How to run the program.
|
* Invocation:: How to run the program.
|
||||||
* Interpreting the output:: Explanation of @command{lbtt}'s output messages.
|
* Interpreting the output:: Explanation of @command{lbtt}'s output messages.
|
||||||
* Analyzing test results:: Working with @command{lbtt}'s internal
|
* Analyzing test results:: Working with @command{lbtt}'s internal
|
||||||
commands.
|
commands.
|
||||||
|
|
||||||
* Interfacing with lbtt:: Interfacing LTL-to-B@"uchi translators
|
* Interfacing with lbtt:: Interfacing LTL-to-B@"uchi translators
|
||||||
with @command{lbtt}.
|
with @command{lbtt}.
|
||||||
|
|
||||||
* References:: List of references.
|
* References:: List of references.
|
||||||
|
|
||||||
* Definitions:: A reference of the formal definitions of
|
* Definitions:: A reference of the formal definitions of
|
||||||
the various objects that @command{lbtt}
|
the various objects that @command{lbtt}
|
||||||
manipulates.
|
manipulates.
|
||||||
|
|
||||||
* Configuration file option index::
|
* Configuration file option index::
|
||||||
* Command line option index::
|
* Command line option index::
|
||||||
|
|
@ -255,24 +256,24 @@ for more information.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Random input generation:: How @command{lbtt} generates input for the
|
* Random input generation:: How @command{lbtt} generates input for the
|
||||||
tests.
|
tests.
|
||||||
* Testing procedure:: Outline of @command{lbtt}'s testing
|
* Testing procedure:: Outline of @command{lbtt}'s testing
|
||||||
procedure.
|
procedure.
|
||||||
* Model checking result cross-comparison test::
|
* Model checking result cross-comparison test::
|
||||||
Model checking the same LTL formula in
|
Model checking the same LTL formula in
|
||||||
a fixed state space using different
|
a fixed state space using different
|
||||||
LTL-to-B@"uchi translators should
|
LTL-to-B@"uchi translators should
|
||||||
give the same model checking result.
|
give the same model checking result.
|
||||||
* Model checking result consistency check::
|
* Model checking result consistency check::
|
||||||
Model checking two complementary LTL
|
Model checking two complementary LTL
|
||||||
formulas in the same state space using
|
formulas in the same state space using
|
||||||
an LTL-to-B@"uchi translator should
|
an LTL-to-B@"uchi translator should
|
||||||
give consistent results.
|
give consistent results.
|
||||||
* Buchi automata intersection emptiness check::
|
* Automata intersection emptiness check::
|
||||||
The intersection of the languages
|
The intersection of the languages
|
||||||
accepted by two B@"uchi automata
|
accepted by two B@"uchi automata
|
||||||
constructed from two complementary
|
constructed from two complementary
|
||||||
LTL formulas should be empty.
|
LTL formulas should be empty.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -302,9 +303,9 @@ the input generation algorithms.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Random LTL formulas:: How @command{lbtt} generates random
|
* Random LTL formulas:: How @command{lbtt} generates random
|
||||||
LTL formulas.
|
LTL formulas.
|
||||||
* Random state spaces:: How @command{lbtt} generates random
|
* Random state spaces:: How @command{lbtt} generates random
|
||||||
state spaces.
|
state spaces.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -609,7 +610,7 @@ pseudocode description of the algorithm used for generating random LTL
|
||||||
formulas.
|
formulas.
|
||||||
@end ifnottex
|
@end ifnottex
|
||||||
|
|
||||||
@node The formula generation algorithm, , Random LTL formulas, Random LTL formulas
|
@node The formula generation algorithm, , Random LTL formulas, Random LTL formulas
|
||||||
|
|
||||||
@subsubsection The formula generation algorithm
|
@subsubsection The formula generation algorithm
|
||||||
@cindex random LTL formula, generation algorithm
|
@cindex random LTL formula, generation algorithm
|
||||||
|
|
@ -879,7 +880,7 @@ for more information.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Random state spaces, , Random LTL formulas, Random input generation
|
@node Random state spaces, , Random LTL formulas, Random input generation
|
||||||
@subsection Random state spaces
|
@subsection Random state spaces
|
||||||
|
|
||||||
@cindex state space
|
@cindex state space
|
||||||
|
|
@ -1016,7 +1017,7 @@ acceptable limits.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Algorithm for generating connected graphs, , Random state spaces, Random state spaces
|
@node Algorithm for generating connected graphs, , Random state spaces, Random state spaces
|
||||||
|
|
||||||
@subsubsection Algorithm for generating connected graphs
|
@subsubsection Algorithm for generating connected graphs
|
||||||
@cindex random connected graph, generation algorithm
|
@cindex random connected graph, generation algorithm
|
||||||
|
|
@ -1028,7 +1029,7 @@ graphs:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@r{1} function RandomGraph(@var{n} : Integer; @var{d} : Real in [0.0,1.0];
|
@r{1} function RandomGraph(@var{n} : Integer; @var{d} : Real in [0.0,1.0];
|
||||||
@var{t} : Real in [0.0,1.0]) : Graph;
|
@var{t} : Real in [0.0,1.0]) : Graph;
|
||||||
@r{2} @var{S} := @{s1, s2, ..., sn@};
|
@r{2} @var{S} := @{s1, s2, ..., sn@};
|
||||||
@r{3} @var{NodesToProcess} := @{s1@};
|
@r{3} @var{NodesToProcess} := @{s1@};
|
||||||
@r{4} @var{UnreachableNodes} := @{s2, s3, ..., sn@};
|
@r{4} @var{UnreachableNodes} := @{s2, s3, ..., sn@};
|
||||||
|
|
@ -1055,7 +1056,7 @@ graphs:
|
||||||
@r{25} end;
|
@r{25} end;
|
||||||
@r{26} end;
|
@r{26} end;
|
||||||
@r{27} if @r{there is no edge} (@var{state},@var{state'}) @r{in} @var{Edges}
|
@r{27} if @r{there is no edge} (@var{state},@var{state'}) @r{in} @var{Edges}
|
||||||
@r{for any} @var{state'} @r{in} @var{S} then
|
@r{for any} @var{state'} @r{in} @var{S} then
|
||||||
@r{28} @r{insert} (@var{state},@var{state}) @r{into} @var{Edges};
|
@r{28} @r{insert} (@var{state},@var{state}) @r{into} @var{Edges};
|
||||||
@r{29} end;
|
@r{29} end;
|
||||||
@r{30} return <@var{S}, @var{Edges}, s1, @var{Label}>;
|
@r{30} return <@var{S}, @var{Edges}, s1, @var{Label}>;
|
||||||
|
|
@ -1125,11 +1126,10 @@ and the model checking result consistency check
|
||||||
(@pxref{Model checking result consistency check})
|
(@pxref{Model checking result consistency check})
|
||||||
on the model checking results, and reports all detected failures.
|
on the model checking results, and reports all detected failures.
|
||||||
|
|
||||||
The B@"uchi automata intersection emptiness check (@pxref{Buchi
|
The B@"uchi automata intersection emptiness check
|
||||||
automata intersection emptiness check}) operates as follows (note that
|
(@pxref{Automata intersection emptiness check}) operates as follows (note that
|
||||||
the LTL-to-B@"uchi translation phase is repeated in this figure only
|
the LTL-to-B@"uchi translation phase is repeated in this figure only for
|
||||||
for completeness; in reality, @command{lbtt} performs this phase only
|
completeness; in reality, @command{lbtt} performs this phase only once):
|
||||||
once):
|
|
||||||
@ifhtml
|
@ifhtml
|
||||||
@*
|
@*
|
||||||
@end ifhtml
|
@end ifhtml
|
||||||
|
|
@ -1198,7 +1198,7 @@ providing an additional implementation to include in the tests.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Model checking result consistency check, Buchi automata intersection emptiness check, Model checking result cross-comparison test, Test methods
|
@node Model checking result consistency check, Automata intersection emptiness check, Model checking result cross-comparison test, Test methods
|
||||||
@section Model checking result consistency check
|
@section Model checking result consistency check
|
||||||
|
|
||||||
@cindex model checking result consistency check
|
@cindex model checking result consistency check
|
||||||
|
|
@ -1236,8 +1236,8 @@ section.
|
||||||
@end iftex
|
@end iftex
|
||||||
|
|
||||||
|
|
||||||
@node Buchi automata intersection emptiness check, , Model checking result consistency check, Test methods
|
@node Automata intersection emptiness check, , Model checking result consistency check, Test methods
|
||||||
@section Buchi automata intersection emptiness check
|
@section Automata intersection emptiness check
|
||||||
|
|
||||||
@cindex B@"uchi automata intersection emptiness check
|
@cindex B@"uchi automata intersection emptiness check
|
||||||
@cindex tests, B@"uchi automata intersection emptiness check
|
@cindex tests, B@"uchi automata intersection emptiness check
|
||||||
|
|
@ -1288,7 +1288,7 @@ how to use @command{lbtt}'s internal commands).
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Configuration file:: Description of the configuration file
|
* Configuration file:: Description of the configuration file
|
||||||
format.
|
format.
|
||||||
* Command line options:: List of command line options.
|
* Command line options:: List of command line options.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
@ -1351,17 +1351,17 @@ section specifying an LTL-to-B@"uchi translator. The other sections
|
||||||
are optional and can be used to override the default testing parameters.
|
are optional and can be used to override the default testing parameters.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Algorithm section:: Each LTL-to-B@"uchi translator to be
|
* Algorithm section:: Each LTL-to-B@"uchi translator to be
|
||||||
tested requires a separate
|
tested requires a separate
|
||||||
@samp{Algorithm} section in the
|
@samp{Algorithm} section in the
|
||||||
configuration file.
|
configuration file.
|
||||||
* GlobalOptions section:: Options for changing the general
|
* GlobalOptions section:: Options for changing the general
|
||||||
behavior of @command{lbtt}.
|
behavior of @command{lbtt}.
|
||||||
* FormulaOptions section:: Options controlling the way random
|
* FormulaOptions section:: Options controlling the way random
|
||||||
LTL formulas are generated.
|
LTL formulas are generated.
|
||||||
* StateSpaceOptions section:: Options controlling the way random
|
* StateSpaceOptions section:: Options controlling the way random
|
||||||
state spaces are generated.
|
state spaces are generated.
|
||||||
* Sample configuration file:: An example of a configuration file.
|
* Sample configuration file:: An example of a configuration file.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1477,9 +1477,9 @@ The default value for this option is @samp{Always}.
|
||||||
@cindex enabling and disabling tests
|
@cindex enabling and disabling tests
|
||||||
@findex IntersectionCheck @r{[}GlobalOptions@r{]}
|
@findex IntersectionCheck @r{[}GlobalOptions@r{]}
|
||||||
@findex IntersectionTest @r{[}GlobalOptions@r{]}
|
@findex IntersectionTest @r{[}GlobalOptions@r{]}
|
||||||
This option can be used to enable or disable the B@"uchi automata
|
This option can be used to enable or disable the B@"uchi automata intersection
|
||||||
intersection emptiness check (@pxref{Buchi automata intersection
|
emptiness check (@pxref{Automata intersection emptiness check}). The test is
|
||||||
emptiness check}). The test is enabled by default.
|
enabled by default.
|
||||||
|
|
||||||
@item ModelCheck = Local @r{|} Global
|
@item ModelCheck = Local @r{|} Global
|
||||||
@findex ModelCheck @r{[}GlobalOptions@r{]}
|
@findex ModelCheck @r{[}GlobalOptions@r{]}
|
||||||
|
|
@ -1669,16 +1669,16 @@ The following table illustrates the effects of the
|
||||||
@t{
|
@t{
|
||||||
@r{LTL formula} @r{Can} f @r{be} OutputMode@r{'s effect on the}
|
@r{LTL formula} @r{Can} f @r{be} OutputMode@r{'s effect on the}
|
||||||
f @r{generated if} @r{formula passed to the}
|
f @r{generated if} @r{formula passed to the}
|
||||||
GenerateMode @r{LTL-to-B@"uchi translators}
|
GenerateMode @r{LTL-to-B@"uchi translators}
|
||||||
=NNF @r{?}
|
=NNF @r{?}
|
||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
(p1 V ! p0) @r{Yes} Normal@r{/}NNF@r{:} (p1 V ! p0)
|
(p1 V ! p0) @r{Yes} Normal@r{/}NNF@r{:} (p1 V ! p0)
|
||||||
|
|
||||||
[] p0 -> <> p1 @r{Yes*} Nor@r{:} [] p0 -> <> p1
|
[] p0 -> <> p1 @r{Yes*} Nor@r{:} [] p0 -> <> p1
|
||||||
NNF@r{:} (true U ! p0) \/ (true U p1)
|
NNF@r{:} (true U ! p0) \/ (true U p1)
|
||||||
|
|
||||||
! <> p0 @r{No} Nor@r{:} ! <> p0
|
! <> p0 @r{No} Nor@r{:} ! <> p0
|
||||||
NNF@r{:} (false V ! p0)
|
NNF@r{:} (false V ! p0)
|
||||||
|
|
||||||
@r{* only if} AbbreviatedOperators=Yes
|
@r{* only if} AbbreviatedOperators=Yes
|
||||||
}
|
}
|
||||||
|
|
@ -1851,12 +1851,7 @@ the generated state spaces. The default value is 5.
|
||||||
|
|
||||||
Usually this should probably be the same as the maximum number of
|
Usually this should probably be the same as the maximum number of
|
||||||
different atomic propositions in the generated formulas
|
different atomic propositions in the generated formulas
|
||||||
@ifnottex
|
|
||||||
(@pxref{FormulaOptions section}).
|
(@pxref{FormulaOptions section}).
|
||||||
@end ifnottex
|
|
||||||
@iftex
|
|
||||||
(see the previous section).
|
|
||||||
@end iftex
|
|
||||||
If the number of propositions attached to each state of
|
If the number of propositions attached to each state of
|
||||||
the state spaces is less than the maximum number of different propositions that
|
the state spaces is less than the maximum number of different propositions that
|
||||||
may occur in the generated formulas, all ``extra'' propositions in the formulas
|
may occur in the generated formulas, all ``extra'' propositions in the formulas
|
||||||
|
|
@ -1900,7 +1895,7 @@ in any state of the state space. Note: This option has no effect if
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
@node Sample configuration file, , StateSpaceOptions section, Configuration file
|
@node Sample configuration file, , StateSpaceOptions section, Configuration file
|
||||||
@subsection Sample configuration file
|
@subsection Sample configuration file
|
||||||
|
|
||||||
@cindex configuration file, example
|
@cindex configuration file, example
|
||||||
|
|
@ -1915,7 +1910,7 @@ Algorithm
|
||||||
@{
|
@{
|
||||||
Name = "Translator 1"
|
Name = "Translator 1"
|
||||||
Path = "~/lbtt/bin/t-1" # location of the translator
|
Path = "~/lbtt/bin/t-1" # location of the translator
|
||||||
# executable
|
# executable
|
||||||
Enabled = Yes
|
Enabled = Yes
|
||||||
@}
|
@}
|
||||||
|
|
||||||
|
|
@ -1924,7 +1919,7 @@ Algorithm
|
||||||
Name = "Translator 2"
|
Name = "Translator 2"
|
||||||
Path = "~/lbtt/bin/t-2"
|
Path = "~/lbtt/bin/t-2"
|
||||||
Parameters = "-x -y 3 -v 0" # parameters to be passed to the
|
Parameters = "-x -y 3 -v 0" # parameters to be passed to the
|
||||||
# `~/lbtt/bin/t-2' executable
|
# `~/lbtt/bin/t-2' executable
|
||||||
Enabled = Yes
|
Enabled = Yes
|
||||||
@}
|
@}
|
||||||
|
|
||||||
|
|
@ -1941,8 +1936,8 @@ GlobalOptions
|
||||||
IntersectionTest = No # emptiness test
|
IntersectionTest = No # emptiness test
|
||||||
|
|
||||||
ModelCheck = Local # perform the tests only in a
|
ModelCheck = Local # perform the tests only in a
|
||||||
# single state of each state
|
# single state of each state
|
||||||
# space
|
# space
|
||||||
@}
|
@}
|
||||||
|
|
||||||
FormulaOptions
|
FormulaOptions
|
||||||
|
|
@ -1952,15 +1947,15 @@ FormulaOptions
|
||||||
OutputMode = Normal
|
OutputMode = Normal
|
||||||
|
|
||||||
ChangeInterval = 1 # new formula after each test
|
ChangeInterval = 1 # new formula after each test
|
||||||
# round
|
# round
|
||||||
|
|
||||||
RandomSeed = 4632912 # random seed
|
RandomSeed = 4632912 # random seed
|
||||||
|
|
||||||
Size = 5...15 # 5 to 15 nodes in the parse
|
Size = 5...15 # 5 to 15 nodes in the parse
|
||||||
# tree of each formula
|
# tree of each formula
|
||||||
|
|
||||||
Propositions = 3 # max. 3 different propositions
|
Propositions = 3 # max. 3 different propositions
|
||||||
# in each LTL formula
|
# in each LTL formula
|
||||||
|
|
||||||
PropositionPriority = 50 # priorities for propositional
|
PropositionPriority = 50 # priorities for propositional
|
||||||
TruePriority = 1 # symbols
|
TruePriority = 1 # symbols
|
||||||
|
|
@ -1975,38 +1970,38 @@ FormulaOptions
|
||||||
ReleasePriority = 5
|
ReleasePriority = 5
|
||||||
|
|
||||||
DefaultOperatorPriority = 0 # disable all the remaining
|
DefaultOperatorPriority = 0 # disable all the remaining
|
||||||
# operators
|
# operators
|
||||||
@}
|
@}
|
||||||
|
|
||||||
StatespaceOptions
|
StatespaceOptions
|
||||||
@{
|
@{
|
||||||
GenerateMode = RandomGraph # generate random (not
|
GenerateMode = RandomGraph # generate random (not
|
||||||
# necessarily connected) graphs
|
# necessarily connected) graphs
|
||||||
# as state spaces
|
# as state spaces
|
||||||
|
|
||||||
ChangeInterval = 10 # new state space after every
|
ChangeInterval = 10 # new state space after every
|
||||||
# 10th test round
|
# 10th test round
|
||||||
|
|
||||||
RandomSeed = 37620 # random seed
|
RandomSeed = 37620 # random seed
|
||||||
|
|
||||||
Size = 50 # 50 states in each state space
|
Size = 50 # 50 states in each state space
|
||||||
|
|
||||||
Propositions = 3 # 3 propositions in each state
|
Propositions = 3 # 3 propositions in each state
|
||||||
# of each state space
|
# of each state space
|
||||||
|
|
||||||
EdgeProbability = 0.1 # approximate probability of
|
EdgeProbability = 0.1 # approximate probability of
|
||||||
# having a transition between
|
# having a transition between
|
||||||
# any two states
|
# any two states
|
||||||
|
|
||||||
TruthProbability = 0.5 # probability with which any
|
TruthProbability = 0.5 # probability with which any
|
||||||
# atomic proposition is true in
|
# atomic proposition is true in
|
||||||
# a state
|
# a state
|
||||||
@}
|
@}
|
||||||
|
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
|
||||||
@node Command line options, , Configuration file, Invocation
|
@node Command line options, , Configuration file, Invocation
|
||||||
@section Command line options
|
@section Command line options
|
||||||
|
|
||||||
This section lists the command line options that may be used when
|
This section lists the command line options that may be used when
|
||||||
|
|
@ -2017,16 +2012,16 @@ there is no direct equivalent in the configuration file options.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Special options:: Options available only as command line
|
* Special options:: Options available only as command line
|
||||||
parameters.
|
parameters.
|
||||||
* Global options:: Options corresponding to the
|
* Global options:: Options corresponding to the
|
||||||
@samp{GlobalOptions} section of the
|
@samp{GlobalOptions} section of the
|
||||||
configuration file.
|
configuration file.
|
||||||
* LTL formula options:: Options corresponding to the
|
* LTL formula options:: Options corresponding to the
|
||||||
@samp{FormulaOptions} section of the
|
@samp{FormulaOptions} section of the
|
||||||
configuration file.
|
configuration file.
|
||||||
* State space options:: Options corresponding to the
|
* State space options:: Options corresponding to the
|
||||||
@samp{StateSpaceOptions} section of the
|
@samp{StateSpaceOptions} section of the
|
||||||
configuration file.
|
configuration file.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2194,8 +2189,8 @@ between test rounds to wait for user input.
|
||||||
@cindex enabling and disabling tests
|
@cindex enabling and disabling tests
|
||||||
@vindex --intersectiontest
|
@vindex --intersectiontest
|
||||||
@vindex --nointersectiontest
|
@vindex --nointersectiontest
|
||||||
These options enable or disable the B@"uchi automata intersection
|
These options enable or disable the B@"uchi automata intersection emptiness
|
||||||
emptiness check (@pxref{Buchi automata intersection emptiness check}).
|
check (@pxref{Automata intersection emptiness check}).
|
||||||
|
|
||||||
@item --localmodelcheck
|
@item --localmodelcheck
|
||||||
@vindex --localmodelcheck
|
@vindex --localmodelcheck
|
||||||
|
|
@ -2441,7 +2436,7 @@ them randomly.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node State space options, , LTL formula options, Command line options
|
@node State space options, , LTL formula options, Command line options
|
||||||
@subsection State space options
|
@subsection State space options
|
||||||
|
|
||||||
The following command line options affect the way in which @command{lbtt}
|
The following command line options affect the way in which @command{lbtt}
|
||||||
|
|
@ -2523,7 +2518,7 @@ This option can be used to change the size of the generated state spaces.
|
||||||
@vindex --truthprobability
|
@vindex --truthprobability
|
||||||
This option sets the probability that @command{lbtt} uses for choosing the
|
This option sets the probability that @command{lbtt} uses for choosing the
|
||||||
valuation for each atomic proposition in each state of the randomly generated
|
valuation for each atomic proposition in each state of the randomly generated
|
||||||
state spaces. (This option has no effect is using enumerated paths as state
|
state spaces. (This option has no effect if using enumerated paths as state
|
||||||
spaces.)
|
spaces.)
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
@ -2541,9 +2536,9 @@ messages will be suppressed; higher verbosity modes show information about
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Configuration information:: The current configuration is shown
|
* Configuration information:: The current configuration is shown
|
||||||
before starting tests.
|
before starting tests.
|
||||||
* Test round messages:: Conventions for reporting test
|
* Test round messages:: Conventions for reporting test
|
||||||
results and test failures.
|
results and test failures.
|
||||||
* Test statistics:: Shown at the end of testing.
|
* Test statistics:: Shown at the end of testing.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
@ -2727,11 +2722,11 @@ of the formulas into a B@"uchi automaton correctly.
|
||||||
|
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
||||||
The output of phases 4---8 will be repeated for each implementation
|
The output of phases 4---8 will be repeated for each implementation included in
|
||||||
included in the tests. After this @command{lbtt} proceeds to the model
|
the tests. After this @command{lbtt} proceeds to the model checking result
|
||||||
checking result cross-comparison test (@pxref{Model checking result
|
cross-comparison test (@pxref{Model checking result cross-comparison test}) and
|
||||||
cross-comparison test}) and the B@"uchi automata intersection
|
the B@"uchi automata intersection emptiness test
|
||||||
emptiness test (@pxref{Buchi automata intersection emptiness check}).
|
(@pxref{Automata intersection emptiness check}).
|
||||||
|
|
||||||
The model checking result cross-comparison test might result in the following
|
The model checking result cross-comparison test might result in the following
|
||||||
output:
|
output:
|
||||||
|
|
@ -2788,7 +2783,7 @@ format specified above.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Test statistics, , Test round messages, Interpreting the output
|
@node Test statistics, , Test round messages, Interpreting the output
|
||||||
@section Test statistics
|
@section Test statistics
|
||||||
|
|
||||||
@cindex tests, statistics
|
@cindex tests, statistics
|
||||||
|
|
@ -2858,9 +2853,9 @@ a single fixed state of each generated state space (called the ``initial''
|
||||||
state of the state space).
|
state of the state space).
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Number of failures in the B@"uchi automata intersection emptiness
|
Number of failures in the B@"uchi automata intersection emptiness check
|
||||||
check (@pxref{Buchi automata intersection emptiness check}) for each
|
(@pxref{Automata intersection emptiness check}) for each pair of
|
||||||
pair of implementations.
|
implementations.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Note that the pairwise inconsistency results form a symmetric matrix (although
|
Note that the pairwise inconsistency results form a symmetric matrix (although
|
||||||
|
|
@ -2895,13 +2890,13 @@ showing a prompt of the form
|
||||||
@menu
|
@menu
|
||||||
* Command conventions:: Conventions for entering commands.
|
* Command conventions:: Conventions for entering commands.
|
||||||
* Getting help:: Use the @samp{help} command to access
|
* Getting help:: Use the @samp{help} command to access
|
||||||
on-line help.
|
on-line help.
|
||||||
* Test control commands:: Commands for continuing testing,
|
* Test control commands:: Commands for continuing testing,
|
||||||
skipping tests or enabling or disabling
|
skipping tests or enabling or disabling
|
||||||
implementations.
|
implementations.
|
||||||
* Data display commands:: Commands for displaying information
|
* Data display commands:: Commands for displaying information
|
||||||
about B@"uchi automata, state spaces,
|
about B@"uchi automata, state spaces,
|
||||||
and LTL formulas.
|
and LTL formulas.
|
||||||
* Failure analysis commands:: Commands for analyzing test failures.
|
* Failure analysis commands:: Commands for analyzing test failures.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
@ -3167,7 +3162,7 @@ the output that is displayed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Failure analysis commands, , Data display commands, Analyzing test results
|
@node Failure analysis commands, , Data display commands, Analyzing test results
|
||||||
@section Failure analysis commands
|
@section Failure analysis commands
|
||||||
|
|
||||||
The first part of this section introduces the commands available for
|
The first part of this section introduces the commands available for
|
||||||
|
|
@ -3185,7 +3180,7 @@ automata correctness tests. The second part describes the conventions that
|
||||||
@cindex failure analysis, B@"uchi automata intersection check
|
@cindex failure analysis, B@"uchi automata intersection check
|
||||||
@cindex analyzing test failures, B@"uchi automata intersection emptiness check
|
@cindex analyzing test failures, B@"uchi automata intersection emptiness check
|
||||||
Analyze a failure in the B@"uchi automata intersection emptiness check
|
Analyze a failure in the B@"uchi automata intersection emptiness check
|
||||||
(@pxref{Buchi automata intersection emptiness check}).
|
(@pxref{Automata intersection emptiness check}).
|
||||||
The two implementation identifiers select the B@"uchi automata for which
|
The two implementation identifiers select the B@"uchi automata for which
|
||||||
to perform the analysis. The B@"uchi automata intersection emptiness
|
to perform the analysis. The B@"uchi automata intersection emptiness
|
||||||
check always involves automata constructed from the positive and the negative
|
check always involves automata constructed from the positive and the negative
|
||||||
|
|
@ -3288,10 +3283,10 @@ itself indefinitely. The witness might look as follows:
|
||||||
@smallexample
|
@smallexample
|
||||||
Execution M:
|
Execution M:
|
||||||
prefix: < s0 @{p0, p4@},
|
prefix: < s0 @{p0, p4@},
|
||||||
s2 @{p1, p2, p3, p4@} >
|
s2 @{p1, p2, p3, p4@} >
|
||||||
cycle: < s34 @{p0, p1, p2, p3, p4@},
|
cycle: < s34 @{p0, p1, p2, p3, p4@},
|
||||||
s42 @{p4@},
|
s42 @{p4@},
|
||||||
s44 @{p1, p4@} >
|
s44 @{p1, p4@} >
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
|
@ -3321,7 +3316,7 @@ $S = \{s_0, s_2, s_{34}, s_{42}, s_{44}\}$,
|
||||||
@iftex
|
@iftex
|
||||||
@tex
|
@tex
|
||||||
$\rho = \{(s_0, s_2), (s_2, s_{34}), (s_{34}, s_{42}), (s_{42}, s_{44}),
|
$\rho = \{(s_0, s_2), (s_2, s_{34}), (s_{34}, s_{42}), (s_{42}, s_{44}),
|
||||||
(s_{44}, s_{34})\}$,
|
(s_{44}, s_{34})\}$,
|
||||||
@end tex
|
@end tex
|
||||||
@end iftex
|
@end iftex
|
||||||
@ifnottex
|
@ifnottex
|
||||||
|
|
@ -3360,17 +3355,17 @@ LTL and might look as follows:
|
||||||
+-> M,<s0, ...> |== (p1 U p4) :
|
+-> M,<s0, ...> |== (p1 U p4) :
|
||||||
| +-> M,<s0, ...> |== p4
|
| +-> M,<s0, ...> |== p4
|
||||||
+-> M,<s0, ...> |== (! p1 -> [] p4) :
|
+-> M,<s0, ...> |== (! p1 -> [] p4) :
|
||||||
+-> M,<s0, ...> |== [] p4 :
|
+-> M,<s0, ...> |== [] p4 :
|
||||||
+-> M,<s0, ...> |== p4
|
+-> M,<s0, ...> |== p4
|
||||||
+-> s0 --> s2
|
+-> s0 --> s2
|
||||||
+-> M,<s2, ...> |== p4
|
+-> M,<s2, ...> |== p4
|
||||||
+-> s2 --> s34
|
+-> s2 --> s34
|
||||||
+-> M,<s34, ...> |== p4
|
+-> M,<s34, ...> |== p4
|
||||||
+-> s34 --> s42
|
+-> s34 --> s42
|
||||||
+-> M,<s42, ...> |== p4
|
+-> M,<s42, ...> |== p4
|
||||||
+-> s42 --> s44
|
+-> s42 --> s44
|
||||||
+-> M,<s44, ...> |== p4
|
+-> M,<s44, ...> |== p4
|
||||||
+-> s44 --> s34
|
+-> s44 --> s34
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
|
@ -3435,24 +3430,19 @@ which can be seen from the proof.
|
||||||
This chapter gives the details on how to use @command{lbtt} for
|
This chapter gives the details on how to use @command{lbtt} for
|
||||||
testing LTL-to-B@"uchi translation algorithm implementations that are not
|
testing LTL-to-B@"uchi translation algorithm implementations that are not
|
||||||
supported by the basic distribution. (See
|
supported by the basic distribution. (See
|
||||||
@ifnottex
|
|
||||||
@ref{The lbtt-translate utility}
|
@ref{The lbtt-translate utility}
|
||||||
@end ifnottex
|
|
||||||
@iftex
|
|
||||||
the next chapter
|
|
||||||
@end iftex
|
|
||||||
for information on how to connect several publicly available
|
for information on how to connect several publicly available
|
||||||
LTL-to-B@"uchi translator implementations to @command{lbtt}.)
|
LTL-to-B@"uchi translator implementations to @command{lbtt}.)
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Translator interface:: @command{lbtt}'s requirements for an
|
* Translator interface:: @command{lbtt}'s requirements for an
|
||||||
LTL-to-B@"uchi translator.
|
LTL-to-B@"uchi translator.
|
||||||
* Format for LTL formulas:: How @command{lbtt} passes LTL formulas
|
* Format for LTL formulas:: How @command{lbtt} passes LTL formulas
|
||||||
to the translators.
|
to the translators.
|
||||||
* Buchi automata:: How @command{lbtt} expects the translators
|
* Format for automata:: How @command{lbtt} expects the translators
|
||||||
to present their output.
|
to present their output.
|
||||||
* The lbtt-translate utility:: An interface for two LTL-to-B@"uchi
|
* The lbtt-translate utility:: An interface for two LTL-to-B@"uchi
|
||||||
translators.
|
translators.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -3479,7 +3469,7 @@ The translator executable should read its input (an LTL formula) from
|
||||||
@var{input-file} and write its output (a B@"uchi automaton) into
|
@var{input-file} and write its output (a B@"uchi automaton) into
|
||||||
@var{output-file} (without removing the input file); see
|
@var{output-file} (without removing the input file); see
|
||||||
@ifnottex
|
@ifnottex
|
||||||
@ref{Format for LTL formulas} and @ref{Buchi automata}
|
@ref{Format for LTL formulas} and @ref{Format for automata}
|
||||||
@end ifnottex
|
@end ifnottex
|
||||||
@iftex
|
@iftex
|
||||||
the following two sections
|
the following two sections
|
||||||
|
|
@ -3507,7 +3497,7 @@ Algorithm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Format for LTL formulas, Buchi automata, Translator interface, Interfacing with lbtt
|
@node Format for LTL formulas, Format for automata, Translator interface, Interfacing with lbtt
|
||||||
@section Input file format for LTL formulas
|
@section Input file format for LTL formulas
|
||||||
|
|
||||||
@cindex LTL-to-B@"uchi translators, LTL formula input file format
|
@cindex LTL-to-B@"uchi translators, LTL formula input file format
|
||||||
|
|
@ -3520,41 +3510,41 @@ notation) is as follows:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@var{formula} @r{::=} `t'
|
@var{formula} @r{::=} `t'
|
||||||
@r{// ``true''}
|
@r{// ``true''}
|
||||||
@r{|} `f'
|
@r{|} `f'
|
||||||
@r{// ``false''}
|
@r{// ``false''}
|
||||||
@r{|} `p'@r{[}0@r{---}9@r{]+}
|
@r{|} `p'@r{[}0@r{---}9@r{]+}
|
||||||
@r{// atomic proposition with}
|
@r{// atomic proposition with}
|
||||||
@r{// a nonnegative integer}
|
@r{// a nonnegative integer}
|
||||||
@r{// identifier}
|
@r{// identifier}
|
||||||
@r{|} `!' @var{sp} @var{formula}
|
@r{|} `!' @var{sp} @var{formula}
|
||||||
@r{// negation}
|
@r{// negation}
|
||||||
@r{|} `X' @var{sp} @var{formula}
|
@r{|} `X' @var{sp} @var{formula}
|
||||||
@r{// ``next time''}
|
@r{// ``next time''}
|
||||||
@r{|} `F' @var{sp} @var{formula}
|
@r{|} `F' @var{sp} @var{formula}
|
||||||
@r{// ``finally''}
|
@r{// ``finally''}
|
||||||
@r{|} `G' @var{sp} @var{formula}
|
@r{|} `G' @var{sp} @var{formula}
|
||||||
@r{// ``globally''}
|
@r{// ``globally''}
|
||||||
@r{|} `&' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `&' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// conjunction}
|
@r{// conjunction}
|
||||||
@r{|} `|' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `|' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// disjunction}
|
@r{// disjunction}
|
||||||
@r{|} `i' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `i' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// implication}
|
@r{// implication}
|
||||||
@r{|} `e' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `e' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// equivalence}
|
@r{// equivalence}
|
||||||
@r{|} `^' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `^' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// exclusive or}
|
@r{// exclusive or}
|
||||||
@r{|} `U' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `U' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// ``(strong) until''}
|
@r{// ``(strong) until''}
|
||||||
@r{|} `V' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `V' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// ``(weak) release''}
|
@r{// ``(weak) release''}
|
||||||
@r{|} `W' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `W' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// ``weak until''}
|
@r{// ``weak until''}
|
||||||
@r{|} `M' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `M' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// ``strong release''}
|
@r{// ``strong release''}
|
||||||
@r{|} `B' @var{sp} @var{formula} @var{sp} @var{formula}
|
@r{|} `B' @var{sp} @var{formula} @var{sp} @var{formula}
|
||||||
@r{// ``before''}
|
@r{// ``before''}
|
||||||
|
|
||||||
@end smallexample
|
@end smallexample
|
||||||
@noindent
|
@noindent
|
||||||
|
|
@ -3591,8 +3581,8 @@ line options (@pxref{Command line options}) to prevent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Buchi automata, The lbtt-translate utility, Format for LTL formulas, Interfacing with lbtt
|
@node Format for automata, The lbtt-translate utility, Format for LTL formulas, Interfacing with lbtt
|
||||||
@section Output file format for B@"uchi automata
|
@section Output file format for automata
|
||||||
|
|
||||||
@cindex file formats, LTL-to-B@"uchi translator output file
|
@cindex file formats, LTL-to-B@"uchi translator output file
|
||||||
@cindex LTL-to-B@"uchi translators, automaton output file format
|
@cindex LTL-to-B@"uchi translators, automaton output file format
|
||||||
|
|
@ -3609,49 +3599,49 @@ The output file generated by the translator should contain an @var{automaton}
|
||||||
described using the following grammar:
|
described using the following grammar:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
@var{automaton} @r{::=} @var{number-of-states} @var{sp} @var{number-of-acceptance-conditions} @var{states}
|
@var{automaton} @r{::=} @var{num-states} @var{sp} @var{num-conds} @var{states}
|
||||||
|
|
||||||
@var{number-of-states} @r{::=} @r{[}0@r{---}9@r{]+}
|
@var{num-states} @r{::=} @r{[}0@r{---}9@r{]+}
|
||||||
|
|
||||||
@var{number-of-acceptance-conditions} @r{::=} @r{[}0@r{---}9@r{]+}
|
@var{num-conds} @r{::=} @r{[}0@r{---}9@r{]+}
|
||||||
|
|
||||||
@var{states} @r{::=} @var{states} @var{sp} @var{state}
|
@var{states} @r{::=} @var{states} @var{sp} @var{state}
|
||||||
@r{|} @r{// empty}
|
@r{|} @r{// empty}
|
||||||
|
|
||||||
@var{state} @r{::=} @var{state-id} @var{sp} @var{initial?} @var{acceptance-conditions} @var{sp} `-1' @var{transitions} @var{sp} `-1'
|
@var{state} @r{::=} @var{state-id} @var{sp} @var{initial?} @var{conds} @var{sp} `-1' @var{transitions} @var{sp} `-1'
|
||||||
|
|
||||||
@var{state-id} @r{::=} @r{[}0@r{---}9@r{]+}
|
@var{state-id} @r{::=} @r{[}0@r{---}9@r{]+}
|
||||||
|
|
||||||
@var{initial?} @r{::=} `0' @r{|} `1'
|
@var{initial?} @r{::=} `0' @r{|} `1'
|
||||||
|
|
||||||
@var{acceptance-conditions} @r{::=} @var{acceptance-conditions} @var{sp} @var{acceptance-set-id}
|
@var{conds} @r{::=} @var{conds} @var{sp} @var{acceptance-set-id}
|
||||||
@r{|} @r{// empty}
|
@r{|} @r{// empty}
|
||||||
|
|
||||||
@var{acceptance-set-id} @r{::=} @r{[}0@r{---}9@r{]+}
|
@var{acceptance-set-id} @r{::=} @r{[}0@r{---}9@r{]+}
|
||||||
|
|
||||||
@var{transitions} @r{::=} @var{transitions} @var{sp} @var{transition}
|
@var{transitions} @r{::=} @var{transitions} @var{sp} @var{transition}
|
||||||
@r{|} @r{// empty}
|
@r{|} @r{// empty}
|
||||||
|
|
||||||
@var{transition} @r{::=} @var{state-id} @var{sp} @var{guard-formula}
|
@var{transition} @r{::=} @var{state-id} @var{sp} @var{guard-formula}
|
||||||
|
|
||||||
@var{guard-formula} @r{::=} `t'
|
@var{guard-formula} @r{::=} `t'
|
||||||
@r{// ``true''}
|
@r{// ``true''}
|
||||||
@r{|} `f'
|
@r{|} `f'
|
||||||
@r{// ``false''}
|
@r{// ``false''}
|
||||||
@r{|} `p'@r{[}0@r{---}9@r{]+}
|
@r{|} `p'@r{[}0@r{---}9@r{]+}
|
||||||
@r{// atomic proposition}
|
@r{// atomic proposition}
|
||||||
@r{|} `!' @var{sp} @var{guard-formula}
|
@r{|} `!' @var{sp} @var{guard-formula}
|
||||||
@r{// negation}
|
@r{// negation}
|
||||||
@r{|} `&' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
@r{|} `&' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
||||||
@r{// conjunction}
|
@r{// conjunction}
|
||||||
@r{|} `|' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
@r{|} `|' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
||||||
@r{// disjunction}
|
@r{// disjunction}
|
||||||
@r{|} `i' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
@r{|} `i' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
||||||
@r{// implication}
|
@r{// implication}
|
||||||
@r{|} `e' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
@r{|} `e' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
||||||
@r{// equivalence}
|
@r{// equivalence}
|
||||||
@r{|} `^' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
@r{|} `^' @var{sp} @var{guard-formula} @var{sp} @var{guard-formula}
|
||||||
@r{// exclusive or}
|
@r{// exclusive or}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
@noindent
|
@noindent
|
||||||
(The quoted characters denote the characters themselves; @var{sp} denotes any
|
(The quoted characters denote the characters themselves; @var{sp} denotes any
|
||||||
|
|
@ -3679,7 +3669,7 @@ The state and acceptance condition identifiers need not be successive, and the
|
||||||
states or acceptance conditions can be listed in any order. The only
|
states or acceptance conditions can be listed in any order. The only
|
||||||
restrictions are that the identifiers of different states and acceptance
|
restrictions are that the identifiers of different states and acceptance
|
||||||
conditions should be unique and that the total number of different identifiers
|
conditions should be unique and that the total number of different identifiers
|
||||||
should equal @var{number-of-states} or @var{number-of-acceptance-conditions},
|
should equal @var{num-states} or @var{num-conds},
|
||||||
respectively. (The same identifiers can be shared between states and acceptance
|
respectively. (The same identifiers can be shared between states and acceptance
|
||||||
conditions, however.)
|
conditions, however.)
|
||||||
|
|
||||||
|
|
@ -3743,7 +3733,7 @@ The following example illustrates the file format.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node The lbtt-translate utility, , Buchi automata, Interfacing with lbtt
|
@node The lbtt-translate utility, , Format for automata, Interfacing with lbtt
|
||||||
@section The @command{lbtt-translate} utility
|
@section The @command{lbtt-translate} utility
|
||||||
|
|
||||||
@cindex @command{lbtt-translate} (executable file)
|
@cindex @command{lbtt-translate} (executable file)
|
||||||
|
|
@ -3812,17 +3802,18 @@ installation instructions. Then add the following @samp{Algorithm} section in
|
||||||
@smallexample
|
@smallexample
|
||||||
Algorithm
|
Algorithm
|
||||||
@{
|
@{
|
||||||
Name = "@var{name for the implementation}"
|
Name = "@r{[@var{name for the implementation}]}"
|
||||||
Path = "@var{path-to-@command{lbtt-translate}} @var{implementation-selector} @var{path-to-executable}"
|
Path = "@r{[@var{path-to-@command{lbtt-translate}}]}"
|
||||||
|
Parameters = "@r{[@var{implementation selector}]} @r{[@var{path to executable}]}"
|
||||||
Enabled = Yes
|
Enabled = Yes
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
where @var{path-to-@command{lbtt-translate}} contains the complete path and
|
where [@var{path-to-@command{lbtt-translate}}] contains the complete path and
|
||||||
file name of the @command{lbtt-translate} tool executable,
|
file name of the @command{lbtt-translate} tool executable,
|
||||||
@var{implementation-selector} is either of the options @samp{--lbt} or
|
[@var{implementation selector}] is either of the options @samp{--lbt} or
|
||||||
@samp{--spin}, and @var{path-to-executable} is the full path
|
@samp{--spin}, and [@var{path to executable}] is the full path
|
||||||
of the tool executable. The names of these executables are usually (assuming
|
of the tool executable. The names of these executables are usually (assuming
|
||||||
a normal installation) @command{lbt} and @command{spin}, respectively.
|
a normal installation) @command{lbt} and @command{spin}, respectively.
|
||||||
|
|
||||||
|
|
@ -3849,7 +3840,7 @@ E.@: Clarke Jr., O.@: Grumberg and D.@: Peled. Model checking. The MIT Press,
|
||||||
1999.
|
1999.
|
||||||
|
|
||||||
@item @anchor{[Cou99]} [Cou99]
|
@item @anchor{[Cou99]} [Cou99]
|
||||||
J-M. Couvreur. On-the-fly verification of linear temporal logic. In
|
J.-M. Couvreur. On-the-fly verification of linear temporal logic. In
|
||||||
@i{Proceedings of the World Congress on Formal Methods in the Development of
|
@i{Proceedings of the World Congress on Formal Methods in the Development of
|
||||||
Computing Systems (FM'99), volume I}, volume 1708 of
|
Computing Systems (FM'99), volume I}, volume 1708 of
|
||||||
@i{Lecture Notes in Computer Science}, pages 253---271. Springer-Verlag, 1999.
|
@i{Lecture Notes in Computer Science}, pages 253---271. Springer-Verlag, 1999.
|
||||||
|
|
@ -3964,18 +3955,18 @@ manipulates.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* LTL formulas:: @command{lbtt} uses traditional semantics
|
* LTL formulas:: @command{lbtt} uses traditional semantics
|
||||||
for propositional linear temporal
|
for propositional linear temporal
|
||||||
logic.
|
logic.
|
||||||
* Generalized Buchi automata:: The B@"uchi automata used by @command{lbtt}
|
* Generalized automata:: The B@"uchi automata used by @command{lbtt}
|
||||||
have one initial state, labels on
|
have one initial state, labels on
|
||||||
transitions and zero or more
|
transitions and zero or more
|
||||||
acceptance conditions.
|
acceptance conditions.
|
||||||
* State spaces:: State spaces are Kripke structures
|
* State spaces:: State spaces are Kripke structures
|
||||||
with a total transition relation.
|
with a total transition relation.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
@node LTL formulas, Generalized Buchi automata, Definitions, Definitions
|
@node LTL formulas, Generalized automata, Definitions, Definitions
|
||||||
@appendixsec LTL formulas
|
@appendixsec LTL formulas
|
||||||
|
|
||||||
@command{lbtt} uses the traditional definition for propositional linear
|
@command{lbtt} uses the traditional definition for propositional linear
|
||||||
|
|
@ -4355,8 +4346,8 @@ $(\varphi\;{\bf B}\;\psi) \equiv_{\rm def} \neg(\neg\varphi\;\bf{U}\;\psi)$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Generalized Buchi automata, State spaces, LTL formulas, Definitions
|
@node Generalized automata, State spaces, LTL formulas, Definitions
|
||||||
@appendixsec Generalized B@"uchi automata
|
@appendixsec Generalized automata
|
||||||
|
|
||||||
@cindex B@"uchi automata, formal definition
|
@cindex B@"uchi automata, formal definition
|
||||||
@cindex generalized B@"uchi automata, formal definition
|
@cindex generalized B@"uchi automata, formal definition
|
||||||
|
|
@ -4375,7 +4366,7 @@ $2^{AP}$
|
||||||
with one initial state, labels on transitions and zero or more acceptance
|
with one initial state, labels on transitions and zero or more acceptance
|
||||||
conditions.
|
conditions.
|
||||||
|
|
||||||
@appendixsubsec Formal definition of generalized B@"uchi automata
|
@appendixsubsec Formal definition of generalized automata
|
||||||
|
|
||||||
Formally, a generalized B@"uchi automaton can be represented as a tuple
|
Formally, a generalized B@"uchi automaton can be represented as a tuple
|
||||||
@iftex
|
@iftex
|
||||||
|
|
@ -4664,7 +4655,7 @@ of some states and then adjusting the transition labels appropriately.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node State spaces, , Generalized Buchi automata, Definitions
|
@node State spaces, , Generalized automata, Definitions
|
||||||
@appendixsec State spaces
|
@appendixsec State spaces
|
||||||
|
|
||||||
@cindex state space, formal definition
|
@cindex state space, formal definition
|
||||||
|
|
@ -4743,7 +4734,7 @@ propositions that hold in the state.
|
||||||
@printindex ky
|
@printindex ky
|
||||||
|
|
||||||
|
|
||||||
@node Concept index, , User command index, Top
|
@node Concept index, , User command index, Top
|
||||||
@unnumbered Concept index
|
@unnumbered Concept index
|
||||||
|
|
||||||
@printindex cp
|
@printindex cp
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,15 +20,11 @@
|
||||||
#ifndef BUCHIAUTOMATON_H
|
#ifndef BUCHIAUTOMATON_H
|
||||||
#define BUCHIAUTOMATON_H
|
#define BUCHIAUTOMATON_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "EdgeContainer.h"
|
#include "EdgeContainer.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,10 +20,6 @@
|
||||||
#ifndef CONFIGURATION_H
|
#ifndef CONFIGURATION_H
|
||||||
#define CONFIGURATION_H
|
#define CONFIGURATION_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
@ -31,7 +27,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "FormulaRandomizer.h"
|
#include "FormulaRandomizer.h"
|
||||||
#include "StateSpaceRandomizer.h"
|
#include "StateSpaceRandomizer.h"
|
||||||
|
|
@ -55,22 +51,22 @@ public:
|
||||||
~Configuration(); /* Destructor. */
|
~Configuration(); /* Destructor. */
|
||||||
|
|
||||||
void read(int argc, char* argv[]); /* Reads the program
|
void read(int argc, char* argv[]); /* Reads the program
|
||||||
* configuration.
|
* configuration.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void print /* Writes the current */
|
void print /* Writes the current */
|
||||||
(ostream& stream = cout, int indent = 0) const; /* configuration (in a
|
(ostream& stream = cout, int indent = 0) const; /* configuration (in a
|
||||||
* textual form) to a
|
* textual form) to a
|
||||||
* stream.
|
* stream.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct AlgorithmInformation; /* See below. */
|
struct AlgorithmInformation; /* See below. */
|
||||||
|
|
||||||
string algorithmString /* Formats the the id */
|
string algorithmString /* Formats the the id */
|
||||||
(vector<AlgorithmInformation, /* of an algorithm and */
|
(vector<AlgorithmInformation, /* of an algorithm and */
|
||||||
ALLOC(AlgorithmInformation) >::size_type/* the name of the */
|
ALLOC(AlgorithmInformation) >::size_type/* the name of the */
|
||||||
algorithm_id) const; /* algorithm into a
|
algorithm_id) const; /* algorithm into a
|
||||||
* string.
|
* string.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static void showCommandLineHelp /* Prints the list of */
|
static void showCommandLineHelp /* Prints the list of */
|
||||||
|
|
@ -79,52 +75,52 @@ public:
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
enum InteractionMode {NEVER, ALWAYS, ONERROR}; /* Enumeration constants
|
enum InteractionMode {NEVER, ALWAYS, ONERROR}; /* Enumeration constants
|
||||||
* affecting the behaviour
|
* affecting the behaviour
|
||||||
* of the program as
|
* of the program as
|
||||||
* regards user control.
|
* regards user control.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum FormulaMode {NORMAL, NNF}; /* Enumeration constants
|
enum FormulaMode {NORMAL, NNF}; /* Enumeration constants
|
||||||
* affecting the generation
|
* affecting the generation
|
||||||
* and output of random
|
* and output of random
|
||||||
* formulae.
|
* formulae.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum StateSpaceMode {RANDOMGRAPH = 1, /* Enumeration constants */
|
enum StateSpaceMode {RANDOMGRAPH = 1, /* Enumeration constants */
|
||||||
RANDOMCONNECTEDGRAPH = 2, /* affecting the */
|
RANDOMCONNECTEDGRAPH = 2, /* affecting the */
|
||||||
GRAPH = 3, /* generation of random */
|
GRAPH = 3, /* generation of random */
|
||||||
RANDOMPATH = 4, /* state spaces. */
|
RANDOMPATH = 4, /* state spaces. */
|
||||||
ENUMERATEDPATH = 8,
|
ENUMERATEDPATH = 8,
|
||||||
PATH = 12};
|
PATH = 12};
|
||||||
|
|
||||||
enum ProductMode {LOCAL, GLOBAL}; /* Enumeration constants
|
enum ProductMode {LOCAL, GLOBAL}; /* Enumeration constants
|
||||||
* for controlling the
|
* for controlling the
|
||||||
* scope of synchronous
|
* scope of synchronous
|
||||||
* products.
|
* products.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
struct AlgorithmInformation /* A structure for storing
|
struct AlgorithmInformation /* A structure for storing
|
||||||
* information about a
|
* information about a
|
||||||
* particular algorithm
|
* particular algorithm
|
||||||
* (name, path to
|
* (name, path to
|
||||||
* executable, command-line
|
* executable, command-line
|
||||||
* parameters).
|
* parameters).
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
string* name; /* Name of the algorithm.
|
string* name; /* Name of the algorithm.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
string* path_to_program; /* Path to the executable
|
string* path_to_program; /* Path to the executable
|
||||||
* required for running
|
* required for running
|
||||||
* the algorithm.
|
* the algorithm.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
string* extra_parameters; /* Additional command-line
|
string* extra_parameters; /* Additional command-line
|
||||||
* parameters required for
|
* parameters required for
|
||||||
* running the executable.
|
* running the executable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool enabled; /* Determines whether the
|
bool enabled; /* Determines whether the
|
||||||
* algorithm is enabled
|
* algorithm is enabled
|
||||||
|
|
@ -136,42 +132,42 @@ public:
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
struct GlobalConfiguration /* A structure for storing
|
struct GlobalConfiguration /* A structure for storing
|
||||||
* all the information
|
* all the information
|
||||||
* affecting the general
|
* affecting the general
|
||||||
* behaviour of the
|
* behaviour of the
|
||||||
* program.
|
* program.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int verbosity; /* Determines the verbosity
|
int verbosity; /* Determines the verbosity
|
||||||
* of program output (0-5,
|
* of program output (0-5,
|
||||||
* the bigger the value,
|
* the bigger the value,
|
||||||
* the more information
|
* the more information
|
||||||
* will be shown).
|
* will be shown).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
InteractionMode interactive; /* Controls the behaviour
|
InteractionMode interactive; /* Controls the behaviour
|
||||||
* of the program as
|
* of the program as
|
||||||
* regards the ability of
|
* regards the ability of
|
||||||
* the user to enter
|
* the user to enter
|
||||||
* commands between test
|
* commands between test
|
||||||
* rounds. Possible values
|
* rounds. Possible values
|
||||||
* and their meanings are:
|
* and their meanings are:
|
||||||
*
|
*
|
||||||
* NEVER:
|
* NEVER:
|
||||||
* Run all tests without
|
* Run all tests without
|
||||||
* interruption.
|
* interruption.
|
||||||
* ALWAYS:
|
* ALWAYS:
|
||||||
* Pause after each test
|
* Pause after each test
|
||||||
* round to wait for
|
* round to wait for
|
||||||
* user commands.
|
* user commands.
|
||||||
* ONERROR:
|
* ONERROR:
|
||||||
* Try to run the tests
|
* Try to run the tests
|
||||||
* without interruption.
|
* without interruption.
|
||||||
* However, in case of
|
* However, in case of
|
||||||
* an error, pause and
|
* an error, pause and
|
||||||
* wait for user
|
* wait for user
|
||||||
* commands.
|
* commands.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned long int number_of_rounds; /* Number of test rounds.
|
unsigned long int number_of_rounds; /* Number of test rounds.
|
||||||
*/
|
*/
|
||||||
|
|
@ -181,22 +177,22 @@ public:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned long int statespace_change_interval; /* Determines the frequency
|
unsigned long int statespace_change_interval; /* Determines the frequency
|
||||||
* (in rounds) of how often
|
* (in rounds) of how often
|
||||||
* a new state space is
|
* a new state space is
|
||||||
* generated.
|
* generated.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
StateSpaceMode statespace_generation_mode; /* Random state space
|
StateSpaceMode statespace_generation_mode; /* Random state space
|
||||||
* generation mode.
|
* generation mode.
|
||||||
* Available options are:
|
* Available options are:
|
||||||
*
|
*
|
||||||
* RANDOMGRAPH:
|
* RANDOMGRAPH:
|
||||||
* Generate random
|
* Generate random
|
||||||
* connected graphs as
|
* connected graphs as
|
||||||
* state spaces.
|
* state spaces.
|
||||||
* RANDOMPATH:
|
* RANDOMPATH:
|
||||||
* Generate paths as
|
* Generate paths as
|
||||||
* state spaces, choose
|
* state spaces, choose
|
||||||
* the loop and the
|
* the loop and the
|
||||||
* truth assignments for
|
* truth assignments for
|
||||||
* atomic propositions
|
* atomic propositions
|
||||||
|
|
@ -207,47 +203,47 @@ public:
|
||||||
* enumerating all
|
* enumerating all
|
||||||
* possible paths of a
|
* possible paths of a
|
||||||
* given length.
|
* given length.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned long int formula_change_interval; /* Determines the frequency
|
unsigned long int formula_change_interval; /* Determines the frequency
|
||||||
* (in rounds) of how often
|
* (in rounds) of how often
|
||||||
* a new formula is
|
* a new formula is
|
||||||
* generated.
|
* generated.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ProductMode product_mode; /* Determines the scope of
|
ProductMode product_mode; /* Determines the scope of
|
||||||
* the synchronous products
|
* the synchronous products
|
||||||
* computed by the program.
|
* computed by the program.
|
||||||
* Possible values and
|
* Possible values and
|
||||||
* their meanings are:
|
* their meanings are:
|
||||||
*
|
*
|
||||||
* LOCAL:
|
* LOCAL:
|
||||||
* The synchronous
|
* The synchronous
|
||||||
* products are computed
|
* products are computed
|
||||||
* only with respect to
|
* only with respect to
|
||||||
* the initial state of
|
* the initial state of
|
||||||
* the system. This will
|
* the system. This will
|
||||||
* save memory but makes
|
* save memory but makes
|
||||||
* the algorithm cross-
|
* the algorithm cross-
|
||||||
* comparisons less
|
* comparisons less
|
||||||
* powerful, possibly
|
* powerful, possibly
|
||||||
* at the cost of
|
* at the cost of
|
||||||
* chances for finding
|
* chances for finding
|
||||||
* inconsistencies in the
|
* inconsistencies in the
|
||||||
* results.
|
* results.
|
||||||
* GLOBAL:
|
* GLOBAL:
|
||||||
* The synchronous
|
* The synchronous
|
||||||
* products are computed
|
* products are computed
|
||||||
* with respect to each
|
* with respect to each
|
||||||
* system state (i.e.
|
* system state (i.e.
|
||||||
* the formula is model
|
* the formula is model
|
||||||
* checked in each system
|
* checked in each system
|
||||||
* state separately).
|
* state separately).
|
||||||
* This will usually
|
* This will usually
|
||||||
* require more memory
|
* require more memory
|
||||||
* than the other
|
* than the other
|
||||||
* alternative.
|
* alternative.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
string cfg_filename; /* Name for the
|
string cfg_filename; /* Name for the
|
||||||
* configuration file.
|
* configuration file.
|
||||||
|
|
@ -269,7 +265,7 @@ public:
|
||||||
|
|
||||||
bool do_cons_test; /* Is the model checking
|
bool do_cons_test; /* Is the model checking
|
||||||
* result consistency check
|
* result consistency check
|
||||||
* enabled?
|
* enabled?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool do_intr_test; /* Is the automata
|
bool do_intr_test; /* Is the automata
|
||||||
|
|
@ -285,9 +281,9 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FormulaConfiguration /* A structure for storing
|
struct FormulaConfiguration /* A structure for storing
|
||||||
* specific information
|
* specific information
|
||||||
* affecting the generation
|
* affecting the generation
|
||||||
* of random formulae.
|
* of random formulae.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int default_operator_priority; /* Default priority for all
|
int default_operator_priority; /* Default priority for all
|
||||||
|
|
@ -304,79 +300,79 @@ public:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool allow_abbreviated_operators; /* Determines whether the
|
bool allow_abbreviated_operators; /* Determines whether the
|
||||||
* operators ->, <->, xor,
|
* operators ->, <->, xor,
|
||||||
* <>, [], W and M should
|
* <>, [], W and M should
|
||||||
* be allowed when
|
* be allowed when
|
||||||
* generating random
|
* generating random
|
||||||
* formulae (these are
|
* formulae (these are
|
||||||
* `abbreviated' operators
|
* `abbreviated' operators
|
||||||
* since they could be
|
* since they could be
|
||||||
* written in an equivalent
|
* written in an equivalent
|
||||||
* form by using another
|
* form by using another
|
||||||
* operators).
|
* operators).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Configuration::FormulaMode output_mode; /* Determines whether the
|
Configuration::FormulaMode output_mode; /* Determines whether the
|
||||||
* generated formulae are
|
* generated formulae are
|
||||||
* to be converted to
|
* to be converted to
|
||||||
* negation normal form
|
* negation normal form
|
||||||
* before passing them to
|
* before passing them to
|
||||||
* the different
|
* the different
|
||||||
* algorithms. Possible
|
* algorithms. Possible
|
||||||
* values are:
|
* values are:
|
||||||
*
|
*
|
||||||
* NORMAL:
|
* NORMAL:
|
||||||
* No conversion.
|
* No conversion.
|
||||||
* NNF:
|
* NNF:
|
||||||
* Do the conversion
|
* Do the conversion
|
||||||
* (this may affect the
|
* (this may affect the
|
||||||
* size of the formulae!)
|
* size of the formulae!)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Configuration::FormulaMode generate_mode; /* Determines whether the
|
Configuration::FormulaMode generate_mode; /* Determines whether the
|
||||||
* formulae are to be
|
* formulae are to be
|
||||||
* generated in negation
|
* generated in negation
|
||||||
* normal form (strict
|
* normal form (strict
|
||||||
* size requirement for
|
* size requirement for
|
||||||
* formulae). Possible
|
* formulae). Possible
|
||||||
* values are:
|
* values are:
|
||||||
*
|
*
|
||||||
* NORMAL:
|
* NORMAL:
|
||||||
* Allow more flexibility
|
* Allow more flexibility
|
||||||
* in the generation of
|
* in the generation of
|
||||||
* formulae.
|
* formulae.
|
||||||
* NNF:
|
* NNF:
|
||||||
* Force generation into
|
* Force generation into
|
||||||
* negation normal form.
|
* negation normal form.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
::Ltl::FormulaRandomizer formula_generator; /* Interface to the random
|
::Ltl::FormulaRandomizer formula_generator; /* Interface to the random
|
||||||
* LTL formula generation
|
* LTL formula generation
|
||||||
* algorithm.
|
* algorithm.
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
vector<AlgorithmInformation, /* A vector containing */
|
vector<AlgorithmInformation, /* A vector containing */
|
||||||
ALLOC(AlgorithmInformation) > algorithms; /* information about the
|
ALLOC(AlgorithmInformation) > algorithms; /* information about the
|
||||||
* algorithms used in
|
* algorithms used in
|
||||||
* the tests.
|
* the tests.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
GlobalConfiguration global_options; /* General configuration
|
GlobalConfiguration global_options; /* General configuration
|
||||||
* information.
|
* information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FormulaConfiguration formula_options; /* Configuration
|
FormulaConfiguration formula_options; /* Configuration
|
||||||
* information for
|
* information for
|
||||||
* generating random
|
* generating random
|
||||||
* formulae.
|
* formulae.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Graph::StateSpaceRandomizer /* Interface to the */
|
Graph::StateSpaceRandomizer /* Interface to the */
|
||||||
statespace_generator; /* random state space
|
statespace_generator; /* random state space
|
||||||
* generation
|
* generation
|
||||||
* algorithms.
|
* algorithms.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -392,10 +388,10 @@ public:
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
class ConfigurationException : public Exception /* A class for reporting
|
class ConfigurationException : public Exception /* A class for reporting
|
||||||
* errors when reading
|
* errors when reading
|
||||||
* the configuration file.
|
* the configuration file.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ConfigurationException /* Constructors. */
|
ConfigurationException /* Constructors. */
|
||||||
(const string& info = "",
|
(const string& info = "",
|
||||||
|
|
@ -458,7 +454,7 @@ private:
|
||||||
OPT_CONSISTENCYTEST, OPT_DISABLE, OPT_ENABLE,
|
OPT_CONSISTENCYTEST, OPT_DISABLE, OPT_ENABLE,
|
||||||
OPT_FORMULACHANGEINTERVAL, OPT_FORMULAFILE,
|
OPT_FORMULACHANGEINTERVAL, OPT_FORMULAFILE,
|
||||||
OPT_FORMULARANDOMSEED, OPT_HELP = 'h',
|
OPT_FORMULARANDOMSEED, OPT_HELP = 'h',
|
||||||
OPT_GLOBALPRODUCT = 20000, OPT_INTERACTIVE,
|
OPT_GLOBALPRODUCT = 20000, OPT_INTERACTIVE,
|
||||||
OPT_INTERSECTIONTEST, OPT_LOGFILE,
|
OPT_INTERSECTIONTEST, OPT_LOGFILE,
|
||||||
OPT_MODELCHECK, OPT_NOCOMPARISONTEST,
|
OPT_MODELCHECK, OPT_NOCOMPARISONTEST,
|
||||||
OPT_NOCONSISTENCYTEST, OPT_NOINTERSECTIONTEST,
|
OPT_NOCONSISTENCYTEST, OPT_NOINTERSECTIONTEST,
|
||||||
|
|
@ -497,12 +493,12 @@ private:
|
||||||
OPT_STATESPACESIZE, OPT_TRUTHPROBABILITY};
|
OPT_STATESPACESIZE, OPT_TRUTHPROBABILITY};
|
||||||
|
|
||||||
typedef map<pair<int, int>, double, /* Type definitions for */
|
typedef map<pair<int, int>, double, /* Type definitions for */
|
||||||
less<pair<int, int> >, /* the result cache used */
|
less<pair<int, int> >, /* the result cache used */
|
||||||
ALLOC(double) > /* for computing the */
|
ALLOC(double) > /* for computing the */
|
||||||
ProbabilityMapElement; /* probability */
|
ProbabilityMapElement; /* probability */
|
||||||
typedef map<int, ProbabilityMapElement, /* distribution of LTL */
|
typedef map<int, ProbabilityMapElement, /* distribution of LTL */
|
||||||
less<int>, /* formula operators. */
|
less<int>, /* formula operators. */
|
||||||
ALLOC(ProbabilityMapElement) >
|
ALLOC(ProbabilityMapElement) >
|
||||||
ProbabilityMap;
|
ProbabilityMap;
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
@ -514,8 +510,8 @@ private:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void reset(); /* Initializes the
|
void reset(); /* Initializes the
|
||||||
* configuration data
|
* configuration data
|
||||||
* to default values.
|
* to default values.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
long int parseCommandLineInteger /* Converts an integer */
|
long int parseCommandLineInteger /* Converts an integer */
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -17,14 +17,10 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma implementation
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "DispUtil.h"
|
#include "DispUtil.h"
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -74,7 +74,7 @@ public:
|
||||||
virtual ~UserBreakException() throw(); /* Destructor. */
|
virtual ~UserBreakException() throw(); /* Destructor. */
|
||||||
|
|
||||||
UserBreakException& /* Assignment operator. */
|
UserBreakException& /* Assignment operator. */
|
||||||
operator=(const UserBreakException& e);
|
operator=(const UserBreakException& e);
|
||||||
|
|
||||||
/* `what' inherited from class Exception */
|
/* `what' inherited from class Exception */
|
||||||
|
|
||||||
|
|
@ -289,13 +289,13 @@ public:
|
||||||
Exceptional_istream /* Constructor. */
|
Exceptional_istream /* Constructor. */
|
||||||
(istream *istr,
|
(istream *istr,
|
||||||
ios::iostate mask = ios::goodbit);
|
ios::iostate mask = ios::goodbit);
|
||||||
|
|
||||||
/* default copy constructor */
|
/* default copy constructor */
|
||||||
|
|
||||||
~Exceptional_istream(); /* Destructor. */
|
~Exceptional_istream(); /* Destructor. */
|
||||||
|
|
||||||
/* default assignment operator */
|
/* default assignment operator */
|
||||||
|
|
||||||
template<class T> /* Operator for reading */
|
template<class T> /* Operator for reading */
|
||||||
Exceptional_istream &operator>>(T &t); /* from the stream. */
|
Exceptional_istream &operator>>(T &t); /* from the stream. */
|
||||||
|
|
||||||
|
|
@ -337,9 +337,9 @@ public:
|
||||||
Exceptional_ostream /* Constructor. */
|
Exceptional_ostream /* Constructor. */
|
||||||
(ostream* ostr,
|
(ostream* ostr,
|
||||||
ios::iostate mask = ios::goodbit);
|
ios::iostate mask = ios::goodbit);
|
||||||
|
|
||||||
/* default copy constructor */
|
/* default copy constructor */
|
||||||
|
|
||||||
~Exceptional_ostream(); /* Destructor. */
|
~Exceptional_ostream(); /* Destructor. */
|
||||||
|
|
||||||
/* default assignment operator */
|
/* default assignment operator */
|
||||||
|
|
@ -353,7 +353,7 @@ public:
|
||||||
* aware output stream into
|
* aware output stream into
|
||||||
* a regular output stream.
|
* a regular output stream.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ostream* stream; /* A pointer to the
|
ostream* stream; /* A pointer to the
|
||||||
* `regular' output stream
|
* `regular' output stream
|
||||||
|
|
@ -482,7 +482,7 @@ inline UserBreakException& UserBreakException::operator=
|
||||||
(const UserBreakException& e)
|
(const UserBreakException& e)
|
||||||
/* ----------------------------------------------------------------------------
|
/* ----------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Descrption: Assignment operator for class UserBreakException. Assigns the
|
* Descrption: Assignment operator for class UserBreakException. Assigns the
|
||||||
* value of another UserBreakException to `this' one.
|
* value of another UserBreakException to `this' one.
|
||||||
*
|
*
|
||||||
* Argument: e -- A reference to a constant UserBreakException.
|
* Argument: e -- A reference to a constant UserBreakException.
|
||||||
|
|
@ -808,7 +808,7 @@ inline FileWriteException::FileWriteException() :
|
||||||
inline FileWriteException::FileWriteException
|
inline FileWriteException::FileWriteException
|
||||||
(const string& filename, const string& details) :
|
(const string& filename, const string& details) :
|
||||||
IOException("error writing to " + filename
|
IOException("error writing to " + filename
|
||||||
+ string(details.empty() ? "" : " " + details))
|
+ string(details.empty() ? "" : " " + details))
|
||||||
/* ----------------------------------------------------------------------------
|
/* ----------------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
* Description: Constructor for class FileWriteException. This constructor
|
* Description: Constructor for class FileWriteException. This constructor
|
||||||
|
|
@ -954,7 +954,7 @@ inline Exceptional_istream::Exceptional_istream
|
||||||
*
|
*
|
||||||
* Arguments: istr -- A pointer to an object of type istream.
|
* Arguments: istr -- A pointer to an object of type istream.
|
||||||
* mask -- A bit mask determining when the Exceptional_istream
|
* mask -- A bit mask determining when the Exceptional_istream
|
||||||
* should throw exceptions. The most useful constants
|
* should throw exceptions. The most useful constants
|
||||||
* for the bit mask are
|
* for the bit mask are
|
||||||
* ios::badbit Throw an exception if the input
|
* ios::badbit Throw an exception if the input
|
||||||
* stream (after performing an input
|
* stream (after performing an input
|
||||||
|
|
@ -1060,7 +1060,7 @@ inline Exceptional_ostream::Exceptional_ostream
|
||||||
*
|
*
|
||||||
* Arguments: ostr -- A pointer to an object of type ostream.
|
* Arguments: ostr -- A pointer to an object of type ostream.
|
||||||
* mask -- A bit mask determining when the Exceptional_ostream
|
* mask -- A bit mask determining when the Exceptional_ostream
|
||||||
* should throw exceptions. The most useful constants
|
* should throw exceptions. The most useful constants
|
||||||
* for the bit mask are
|
* for the bit mask are
|
||||||
* ios::badbit Throw an exception if the output
|
* ios::badbit Throw an exception if the output
|
||||||
* stream (after performing an output
|
* stream (after performing an output
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,6 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma implementation
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <csignal>
|
#include <csignal>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,10 +20,6 @@
|
||||||
#ifndef EXTERNALTRANSLATOR_H
|
#ifndef EXTERNALTRANSLATOR_H
|
||||||
#define EXTERNALTRANSLATOR_H
|
#define EXTERNALTRANSLATOR_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
|
|
@ -33,7 +29,7 @@
|
||||||
#else
|
#else
|
||||||
#include <strstream>
|
#include <strstream>
|
||||||
#endif /* HAVE_SSTREAM */
|
#endif /* HAVE_SSTREAM */
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "LtlFormula.h"
|
#include "LtlFormula.h"
|
||||||
#include "translate.h"
|
#include "translate.h"
|
||||||
|
|
@ -210,8 +206,8 @@ private:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
stack<TempFileObject*, /* Stack for storing */
|
stack<TempFileObject*, /* Stack for storing */
|
||||||
deque<TempFileObject*, /* temporary file */
|
deque<TempFileObject*, /* temporary file */
|
||||||
ALLOC(TempFileObject*) > > /* information. */
|
ALLOC(TempFileObject*) > > /* information. */
|
||||||
temporary_file_objects;
|
temporary_file_objects;
|
||||||
|
|
||||||
friend class KecWrapper; /* Friend declarations. */
|
friend class KecWrapper; /* Friend declarations. */
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,14 +20,10 @@
|
||||||
#ifndef FORMULARANDOMIZER_H
|
#ifndef FORMULARANDOMIZER_H
|
||||||
#define FORMULARANDOMIZER_H
|
#define FORMULARANDOMIZER_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "LtlFormula.h"
|
#include "LtlFormula.h"
|
||||||
|
|
||||||
namespace Ltl
|
namespace Ltl
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -34,7 +34,7 @@ using SLIST_NAMESPACE::slist;
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,17 +20,13 @@
|
||||||
#ifndef LTLFORMULA_H
|
#ifndef LTLFORMULA_H
|
||||||
#define LTLFORMULA_H
|
#define LTLFORMULA_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,10 @@ lbtt_SOURCES = \
|
||||||
FormulaRandomizer.cc \
|
FormulaRandomizer.cc \
|
||||||
FormulaRandomizer.h \
|
FormulaRandomizer.h \
|
||||||
FormulaWriter.h \
|
FormulaWriter.h \
|
||||||
|
LbttAlloc.h \
|
||||||
LtlFormula.cc \
|
LtlFormula.cc \
|
||||||
LtlFormula.h \
|
LtlFormula.h \
|
||||||
main.cc \
|
main.cc \
|
||||||
ObstackAlloc.h \
|
|
||||||
PathEvaluator.cc \
|
PathEvaluator.cc \
|
||||||
PathEvaluator.h \
|
PathEvaluator.h \
|
||||||
PathIterator.cc \
|
PathIterator.cc \
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,16 +20,12 @@
|
||||||
#ifndef NEVERCLAIMAUTOMATON_H
|
#ifndef NEVERCLAIMAUTOMATON_H
|
||||||
#define NEVERCLAIMAUTOMATON_H
|
#define NEVERCLAIMAUTOMATON_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
||||||
|
|
@ -1,166 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
|
||||||
*
|
|
||||||
* This program 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.
|
|
||||||
*
|
|
||||||
* This program 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 this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef ALLOC_H
|
|
||||||
#define ALLOC_H
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_SINGLE_CLIENT_ALLOC
|
|
||||||
#define ALLOC(typename) single_client_alloc
|
|
||||||
#else
|
|
||||||
#define ALLOC(typename) allocator<typename>
|
|
||||||
#endif /* HAVE_SINGLE_CLIENT_ALLOC */
|
|
||||||
|
|
||||||
#ifdef HAVE_OBSTACK_H
|
|
||||||
|
|
||||||
/* GNU libc 2.3's copy of obstack.h uses a definition of __INT_TO_PTR
|
|
||||||
which does not compile in C++. Fortunately it will not override
|
|
||||||
an existing definition. */
|
|
||||||
#if __GLIBC__ == 2 && __GLIBC_MINOR__ == 3
|
|
||||||
# define __INT_TO_PTR(P) ((P) + (char *) 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <obstack.h>
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <new>
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* A wrapper class for allocating memory through an obstack.
|
|
||||||
*
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
class ObstackAllocator
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ObstackAllocator(); /* Constructor. */
|
|
||||||
|
|
||||||
~ObstackAllocator(); /* Destructor. */
|
|
||||||
|
|
||||||
void* alloc(int size); /* Allocates memory. */
|
|
||||||
|
|
||||||
void free(void* obj); /* Deallocates memory. */
|
|
||||||
|
|
||||||
static void failure(); /* Callback function for
|
|
||||||
* reporting a memory
|
|
||||||
* allocation failure.
|
|
||||||
*/
|
|
||||||
private:
|
|
||||||
ObstackAllocator(const ObstackAllocator&); /* Prevent copying and */
|
|
||||||
ObstackAllocator& operator= /* assignment of */
|
|
||||||
(const ObstackAllocator&); /* ObstackAllocator
|
|
||||||
* objects.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct obstack store; /* The obstack. */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define obstack_chunk_alloc std::malloc
|
|
||||||
#define obstack_chunk_free std::free
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* Inline function definitions for class ObstackAllocator.
|
|
||||||
*
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
/* ========================================================================= */
|
|
||||||
inline ObstackAllocator::ObstackAllocator()
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Description: Constructor for class ObstackAllocator.
|
|
||||||
*
|
|
||||||
* Arguments: None.
|
|
||||||
*
|
|
||||||
* Returns: Nothing.
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------------- */
|
|
||||||
{
|
|
||||||
obstack_init(&store);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================================================= */
|
|
||||||
inline ObstackAllocator::~ObstackAllocator()
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Description: Destructor for class ObstackAllocator.
|
|
||||||
*
|
|
||||||
* Arguments: None.
|
|
||||||
*
|
|
||||||
* Returns: Nothing.
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------------- */
|
|
||||||
{
|
|
||||||
obstack_free(&store, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================================================= */
|
|
||||||
inline void* ObstackAllocator::alloc(int size)
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Description: Interface to the memory allocator.
|
|
||||||
*
|
|
||||||
* Argument: size -- Number of bytes to allocate.
|
|
||||||
*
|
|
||||||
* Returns: A pointer to the beginning of the newly allocated memory.
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------------- */
|
|
||||||
{
|
|
||||||
return obstack_alloc(&store, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================================================= */
|
|
||||||
inline void ObstackAllocator::free(void* obj)
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Description: Interface to the memory deallocation function.
|
|
||||||
*
|
|
||||||
* Argument: obj -- A pointer to the object to deallocate. (Because the
|
|
||||||
* underlying memory allocator is an obstack, freeing
|
|
||||||
* an object also releases all objects allocated after
|
|
||||||
* the given object.)
|
|
||||||
*
|
|
||||||
* Returns: Nothing.
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------------- */
|
|
||||||
{
|
|
||||||
obstack_free(&store, obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ========================================================================= */
|
|
||||||
inline void ObstackAllocator::failure()
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
*
|
|
||||||
* Description: Callback function for reporting memory allocation failures.
|
|
||||||
*
|
|
||||||
* Arguments: None.
|
|
||||||
*
|
|
||||||
* Returns: Nothing.
|
|
||||||
*
|
|
||||||
* ------------------------------------------------------------------------- */
|
|
||||||
{
|
|
||||||
throw std::bad_alloc();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_OBSTACK_H */
|
|
||||||
|
|
||||||
#endif /* !ALLOC_H */
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,13 +20,9 @@
|
||||||
#ifndef PATHEVALUATOR_H
|
#ifndef PATHEVALUATOR_H
|
||||||
#define PATHEVALUATOR_H
|
#define PATHEVALUATOR_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "LtlFormula.h"
|
#include "LtlFormula.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,15 +20,11 @@
|
||||||
#ifndef PRODUCTAUTOMATON_H
|
#ifndef PRODUCTAUTOMATON_H
|
||||||
#define PRODUCTAUTOMATON_H
|
#define PRODUCTAUTOMATON_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "BuchiAutomaton.h"
|
#include "BuchiAutomaton.h"
|
||||||
#include "EdgeContainer.h"
|
#include "EdgeContainer.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Graph.h"
|
#include "Graph.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
#define SHAREDTESTDATA_H
|
#define SHAREDTESTDATA_H
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "TestRoundInfo.h"
|
#include "TestRoundInfo.h"
|
||||||
#include "TestStatistics.h"
|
#include "TestStatistics.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,14 +20,10 @@
|
||||||
#ifndef STATDISPLAY_H
|
#ifndef STATDISPLAY_H
|
||||||
#define STATDISPLAY_H
|
#define STATDISPLAY_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "TestStatistics.h"
|
#include "TestStatistics.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,12 +20,8 @@
|
||||||
#ifndef STATESPACE_H
|
#ifndef STATESPACE_H
|
||||||
#define STATESPACE_H
|
#define STATESPACE_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "EdgeContainer.h"
|
#include "EdgeContainer.h"
|
||||||
#include "Graph.h"
|
#include "Graph.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -17,14 +17,10 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma implementation
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BitArray.h"
|
#include "BitArray.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "StateSpaceRandomizer.h"
|
#include "StateSpaceRandomizer.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,10 +20,6 @@
|
||||||
#ifndef STRINGUTIL_H
|
#ifndef STRINGUTIL_H
|
||||||
#define STRINGUTIL_H
|
#define STRINGUTIL_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
@ -33,7 +29,7 @@
|
||||||
#include <strstream>
|
#include <strstream>
|
||||||
#endif /* HAVE_SSTREAM */
|
#endif /* HAVE_SSTREAM */
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,6 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma implementation
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <csignal>
|
#include <csignal>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,16 +20,12 @@
|
||||||
#ifndef TESTOPERATIONS_H
|
#ifndef TESTOPERATIONS_H
|
||||||
#define TESTOPERATIONS_H
|
#define TESTOPERATIONS_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "StateSpace.h"
|
#include "StateSpace.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "LtlFormula.h"
|
#include "LtlFormula.h"
|
||||||
#include "ProductAutomaton.h"
|
#include "ProductAutomaton.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,14 +20,10 @@
|
||||||
#ifndef TESTSTATISTICS_H
|
#ifndef TESTSTATISTICS_H
|
||||||
#define TESTSTATISTICS_H
|
#define TESTSTATISTICS_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BuchiAutomaton.h"
|
#include "BuchiAutomaton.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "ProductAutomaton.h"
|
#include "ProductAutomaton.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,15 +20,11 @@
|
||||||
#ifndef USERCOMMANDREADER_H
|
#ifndef USERCOMMANDREADER_H
|
||||||
#define USERCOMMANDREADER_H
|
#define USERCOMMANDREADER_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -20,17 +20,13 @@
|
||||||
#ifndef USERCOMMANDS_H
|
#ifndef USERCOMMANDS_H
|
||||||
#define USERCOMMANDS_H
|
#define USERCOMMANDS_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma interface
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "BuchiAutomaton.h"
|
#include "BuchiAutomaton.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "ProductAutomaton.h"
|
#include "ProductAutomaton.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
#include <readline/readline.h>
|
#include <readline/readline.h>
|
||||||
#include <readline/history.h>
|
#include <readline/history.h>
|
||||||
#endif /* HAVE_READLINE */
|
#endif /* HAVE_READLINE */
|
||||||
#include "ObstackAlloc.h"
|
#include "LbttAlloc.h"
|
||||||
#include "Configuration.h"
|
#include "Configuration.h"
|
||||||
#include "DispUtil.h"
|
#include "DispUtil.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999, 2000, 2001, 2002, 2003
|
* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
|
||||||
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
* Heikki Tauriainen <Heikki.Tauriainen@hut.fi>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
|
@ -17,10 +17,6 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma implementation
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <csignal>
|
#include <csignal>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue