Commit graph

850 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
36aadba740 * src/ltlast/atomic_prop.hh, src/ltlast/binop.hh,
src/ltlast/constant.hh, src/ltlast/formula.hh,
src/ltlast/multop.hh, src/ltlast/refformula.hh,
src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh,
src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
src/ltlvisit/dump.hh, src/ltlvisit/length.hh,
src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen
groups for LTL algorithms and types.
* doc/Makefile.am (fast-doc): New target.
2004-11-17 16:23:40 +00:00
Alexandre Duret-Lutz
8c6dff00b6 * src/misc/hashfunc.hh: Include cstddef to define size_t, and guard
the file for multiple inclusions.
2004-11-17 00:56:26 +00:00
Alexandre Duret-Lutz
2cd298e4b0 * src/tgba/bdddict.hh, src/tgba/state.hh, src/tgba/statebdd.hh,
src/tgba/succiter.hh, src/tgba/succiterconcrete.hh,
src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbaexplicit.hh,
src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh,
src/tgba/tgbatba.hh, src/tgbaalgos/emptiness.hh,
src/tgbaalgos/magic.hh, src/tgbaalgos/replayrun.hh,
src/tgbaalgos/gtec/gtec.hh, iface/gspn/ssp.hh: Introduce Doxygen
groups in the documentation.  Presently this only covers the
tgba/ directory, and the emptiness-check algorithms.
* doc/Doxyfile.in (EXCLUDE_PATTERNS): Skip Bison-generated files
in src/evtgbaparse/.
2004-11-16 23:47:50 +00:00
Alexandre Duret-Lutz
cac85dbcca * src/tgba/tgbatba.hh (tgba_sba_proxy): New class, with the
functionality of the old tgba_tba_proxy.
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator,
tgba_tba_proxy): Rewrite to produce TBA with at most N copies of
each state, skipping the `bddtrue' stage now used only in
tgba_sba_proxy.  Doing so removes approximately 6% of states in
the degeneralized tests of spotlbtt.test.
(tgba_sba_proxy): Implement it.
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: Adjust
to take a tgba_sba_proxy.
* src/tgbatest/ltl2tgba.cc: Add option -DS and adjust call to
never_claim_reachable().
2004-11-16 18:38:19 +00:00
Alexandre Duret-Lutz
ee5462105b * src/tgba/tgbatba.cc (state_tba_proxy::hash): Use wang32_hash.
* src/tgba/tgbaproduct.cc (state_product::hash): Likewise.
2004-11-16 15:38:22 +00:00
Alexandre Duret-Lutz
dfb832cf20 * src/misc/hashfunc.hh (wang32_hash): New file and function,
extracted from...
* src/evtgba/product.cc (evtgba_product_state::hash): ... here.
* src/misc/Makefile.am (misc_HEADERS): Add hashfunc.hh.
2004-11-16 14:59:49 +00:00
Alexandre Duret-Lutz
49b871f924 * src/tgbatest/ltl2tgba.cc (main): For non-generalized emptiness
check, degeneralize the automaton only if it has too much
acceptance conditions.  This makes it easier to reproduce runs
of randtgba.
* src/tgbatest/emptchk.test: Adjust.
2004-11-16 00:35:18 +00:00
Denis Poitrenaud
dd4d8dea01 * src/tgbaalgos/magic.cc: Fix a stupid bug.
* src/tgbaalgos/se05.cc: Fix the same bug.
* src/tgbatest/Makefile.am: Signify that emptchkr.test pass.
2004-11-15 18:15:42 +00:00
Alexandre Duret-Lutz
5d16bb63b4 * tgbatest/randtgba.cc: Add options -e and -r.
* tgbatest/emptchkr.test: New file.
* src/tgbatest/Makefile.am (TESTS, XFAIL_TESTS): Add emptchkr.test.
2004-11-15 16:51:12 +00:00
Alexandre Duret-Lutz
ea9af1f1b0 * src/tgbaalgos/replayrun.cc (replay_tgba_run): Fix a memory leak
if debug==false.
2004-11-15 15:07:21 +00:00
Alexandre Duret-Lutz
78be35142d * src/tgbaalgos/randomgraph.cc (random_graph): Do declare all the
acceptance conditions in the produced automaton, in case they are
not actually used.
2004-11-15 13:29:04 +00:00
Alexandre Duret-Lutz
d6f865ac13 * src/tgbaalgos/replayrun.cc (replay_tgba_run): Write to the
supplied stream, not std::cout.
2004-11-15 13:27:55 +00:00
Denis Poitrenaud
3ea9771942 * src/tgbaalgos/magic.cc: Add a bit state hashing version.
* src/tgbaalgos/se05.cc: Add a bit state hashing version.
* src/tgbaalgos/magic.hh: Make them public.
* src/tgbatest/ltl2tgba.cc: Add the two new emptiness checks.
* src/tgbatest/emptchk.test: Incorporate tests of src/tgbatest/dfs.test.
* src/tgbatest/dfs.test: Introduce new characteristic explicit tests.
2004-11-15 12:16:59 +00:00
Alexandre Duret-Lutz
ca6084160e * wrap/python/cgi/ltl2tgba.in: Add options to check the produced
automata for emptiness, using the existing algorithms.
* wrap/python/spot.i: Declare spot::explicit_magic_search,
and spot::explicit_se05_search as allocating their output.
2004-11-14 23:10:56 +00:00
Alexandre Duret-Lutz
4a7486bbff * configure.ac: Check for srand48 and drand48.
* src/misc/random.cc (srand, drand): Use srand48 and drand48 if
available.
2004-11-12 18:27:09 +00:00
Alexandre Duret-Lutz
5bcb6091fd * src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh: New files.
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS)
(libtgbaalgos_la_SOURCES): Add them.
* src/tgba/tgbaexplicit.hh (tgba_explicit::add_state): Make it public.
* src/tgbatest/randtgba.cc: New file.
* src/tgbatest/Makefile.am (noinst_PROGRAMS, readsave_SOURCES): Add it.
* src/tgbatest/readsave.test: Check a random graph.
2004-11-12 17:24:46 +00:00
Alexandre Duret-Lutz
e54ddd46ed * misc/random.cc, misc/random.hh: New files.
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
2004-11-12 16:27:39 +00:00
Alexandre Duret-Lutz
67e133ae51 * src/evtgbaparse/public.hh (evtgba_parse): Fix doxygen comments.
* src/tgbaalgos/projrun.hh (project_tgba_run): Likewise.
2004-11-10 14:14:05 +00:00
Alexandre Duret-Lutz
57792ca541 * src/tgbaalgos/emptiness.hh (print_tgba_run): Document it. 2004-11-10 14:09:37 +00:00
Alexandre Duret-Lutz
21e0e9bc18 * src/tgbaalgos/replayrun.hh,
src/tgbaalgos/replayrun.cc (replay_tgba_run): Take a `debug'
option to decide whether the output should look like that of
print_tgba_run() or a complete debug trace.
* src/tgbatest/ltl2tgba.cc (main): Call replay_tgba_run() with
debug=true.
2004-11-10 13:56:42 +00:00
Alexandre Duret-Lutz
a67e2d0b23 * iface/gspn/ltlgspn.cc (main): Adjust to recent changes to
src/tgbaalgos/magic.cc, call explicit_magic_search() instead of
building a spot::magic_search.
* iface/gspn/udcseltl.test: Adjust to new output of print_tgba_run().
2004-11-10 12:28:47 +00:00
Alexandre Duret-Lutz
9b4edbc387 * src/tgbatest/Makefile.am (TESTS): Remove non-existing magic.test
and se05.test.
2004-11-09 18:13:27 +00:00
Alexandre Duret-Lutz
dc634800bf * src/tgbatest/ltl2tgba.cc (syntax): Fix old typos and reword
some help strings.
2004-11-09 18:08:42 +00:00
Denis Poitrenaud
f52082bcfb * src/tgbaalgos/magic.cc: rewrite to externalize the heap and
prepare it to a bit state hashing version.
* src/tgbaalgos/magic.hh: adapt to the new interface of
magic_search and se05_search.
* src/tgbaalgos/se05.cc: new file.
* src/tgbaalgos/Makefile.am: Add it.
* src/tgbatest/ltl2tgba.cc: Add new emptiness check.
* src/tgbatest/emptchk.test: more tests.
* src/tgbatest/dfs.test: new file.
* src/tgbatest/Makefile.am: Add it.
2004-11-09 17:22:58 +00:00
Alexandre Duret-Lutz
908b6129f4 * src/tgbaalgos/emptiness.cc (print_tgba_run): Output the
labels as formulae rather than bdd sets.
2004-11-09 10:41:25 +00:00
Alexandre Duret-Lutz
9d0bcae806 * src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_path):
Rewrite as ...
(couvreur99_check_result::accepting_cycle): ... this less complex
implementation.
(couvreur99_check_result::complete_cycle): Delete.
* src/tgbatest/emptchke.test: More explicit examples.
2004-11-08 17:39:48 +00:00
Alexandre Duret-Lutz
263afcd22a * src/tgbaalgos/replayrun.cc (replay_tgba_run): Do not leak
the initial state when no valid outgoing transition is found.
2004-11-08 15:39:52 +00:00
Alexandre Duret-Lutz
7afd10420a * src/tgbaparse/tgbaparse.yy: Add `%destructor's so the parser
does not leak on errors.
* src/tgbatest/ltl2tgba.cc: Free the automata if it could not be
fully parsed.
2004-11-08 14:43:10 +00:00
Alexandre Duret-Lutz
86ff462fa4 * src/tgbaalgos/gtec/ce.cc (couvreur99_check_result::accepting_run):
Remove spurious FIXME.
2004-11-08 10:32:34 +00:00
Alexandre Duret-Lutz
a31ab32b9b * src/evtgbaalgos/save.cc (save_bfs::output_acc_set): Sort
acceptance conditions in the output.
* src/evtgbatest/readsave.test, src/evtgbatest/product.test: Adjust.
2004-11-05 17:26:33 +00:00
Alexandre Duret-Lutz
6c1152d819 * src/tgbaalgos/rundotdec.cc (tgba_run_dotty_decorator::link_decl):
Typo.
2004-11-05 06:46:47 +00:00
Alexandre Duret-Lutz
9444d84a17 * src/tgbaalgos/neverclaim.cc (never_claim_bfs::process_link):
Adjust prototype.
2004-11-04 12:57:04 +00:00
Alexandre Duret-Lutz
d60025dcd1 * src/tgba/tgba.hh, src/tgba/tgba.cc
(tgba::number_of_acceptance_conditions): New method.
* src/tgbaalgos/lbtt.cc (lbtt_bfs::lbtt_bfs): Use it.
2004-11-04 12:55:03 +00:00
Alexandre Duret-Lutz
1d3100607a * wrap/python/spot.i: Generate bindings for tgbaalgos/dottydec.hh,
tgbaalgos/emptiness.hh, tgbaalgos/gtec/gtec.hh, and
tgbaalgos/rundotdec.hh.
2004-11-04 08:03:59 +00:00
Alexandre Duret-Lutz
c3d50ed019 * src/tgbaalgos/lbtt.cc (lbtt_bfs::process_link): Adjust prototype. 2004-11-04 06:59:47 +00:00
Alexandre Duret-Lutz
7688431451 * src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh: New files.
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
libtgbaalgos_la_SOURCES): Add them.
* src/tgbaalgos/dotty.hh (dotty_reachable): Take a dotty_decorator
as third parameter.
* src/tgbaalgos/dotty.cc (dotty_bfs::process_state,
dotty_bfs::process_link): Use the decorator.
* src/tgbatest/ltl2tgba.cc: Graph the accepting run if the -g option
is given.
* src/tgbatest/emptchk.test: Exercize -g.
2004-11-03 15:17:06 +00:00
Alexandre Duret-Lutz
a90b0648f8 * src/tgbaalgos/replayrun.cc (replay_tgba_run): Add missing std::endl. 2004-11-03 12:35:37 +00:00
Alexandre Duret-Lutz
42b05c7a05 * tgbaalgos/reachiter.hh, tgbaalgos/reachiter.cc
(tgba_reachable_iterator::process_link): Take the state* as arguments
in addition to the state numbers.
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
(tgba_explicit::copy_acceptance_conditions_of): New method.
* tgbaalgos/dupexp.cc (dupexp_iter::dupexp_iter): Call
copy_acceptance_conditions_of.
(dupexp_iter::process_state, duplex_iter::declare_state,
dupexp_iter::name_): Remove.
(dupexp_iter::process_link): Adjust prototype, and format
the state here rather than in process_state.
* tgbaalgos/stats.cc, tgbaalgos/dotty.cc: Adjust prototype
of process_link.
2004-11-03 11:59:58 +00:00
Alexandre Duret-Lutz
b6f3faba38 * src/ltlvisit/reduce.hh (is_eventual, is_universal): More doc. 2004-11-02 17:16:32 +00:00
Alexandre Duret-Lutz
e3de75f677 * src/tgbaalgos/projrun.hh, src/tgbaalgos/projrun.cc: New files.
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
libtgbaalgos_la_SOURCES): Add them.
* iface/gspn/ltlgspn.cc (main): Call project_tgba_run if -P.
2004-11-02 16:26:57 +00:00
Alexandre Duret-Lutz
0fd665f3a2 * src/tgbaalgos/emptiness.cc,
src/tgbaalgos/emptiness.hh (print_tgba_run): Take the tgba*
argument before the tgba_run* argument (for consistency with
replay_tgba_run).
* src/tgbatest/ltl2tgba.cc, iface/gspn/ltlgspn.cc: Adjust
calls to print_tgba_run().
2004-11-02 15:25:41 +00:00
Alexandre Duret-Lutz
e5e886a442 * src/ltlast/formula.hh (ltl::formula::~formula): Make it protected. 2004-11-02 13:53:20 +00:00
Alexandre Duret-Lutz
754d7064ae A tgba can now annotate a transition (i.e., the position of a
tgba_succ_iterator) with some string.  This comes handy to
associate that transition to its high-level name.
* src/tgba/tgba.hh, src/tgba/tgba.cc (tgba::transition_annotation):
New method.
* src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
(tgba_product::transition_annotation): Implement it.
* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
(tgba_tba_proxy::transition_annotation): Likewise.
* src/tgbaalgos/replayrun.cc (print_annotation): New function.
(replay_tgba_run): Use it.
2004-10-29 16:45:49 +00:00
Alexandre Duret-Lutz
32403566f6 * src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh (couvreur99_check::print_stats): New.
* src/tgbatest/ltl2tgba.cc: Print emptiness-check statistics.
2004-10-29 16:10:47 +00:00
Alexandre Duret-Lutz
55014e9dcc * src/sanity/style.test: Diagnose superfluous constructs such
as `if (x) delete x;'.
* iface/gspn/gspn.cc, iface/gspn/ssp.cc, src/ltlvisit/basicreduce.cc,
src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgbaalgos/magic.cc,
src/tgbatest/ltl2tgba.cc: Remove such constructs.
2004-10-29 14:29:02 +00:00
Alexandre Duret-Lutz
4654da9ab5 * src/tgbatest/ltl2tgba.cc: Replace -e, -E, -m, -M, and -n by
-eALGO and -EALGO to ease the addition of new algorithms.
* src/tgbatest/emptchk.test, src/tgbatest/emptchke.test: Adjust.
2004-10-29 13:15:01 +00:00
Alexandre Duret-Lutz
7fce2b2a95 * src/misc/version.cc: Fix trailing whitespace.
* src/sanity/style.test: Diagnose trailing whitespace.
2004-10-29 12:41:56 +00:00
Alexandre Duret-Lutz
8c0b085d73 * src/tgbatest/ltl2tgba.cc: Fix lines longer than 80 chars.
* src/sanity/80columns.test: Use expand to untabify, the previous
recipe was incomplete.
2004-10-29 12:31:13 +00:00
Alexandre Duret-Lutz
720a31c128 * src/tgbaalgos/replayrun.cc (replay_tgba_run): Note duplicate states. 2004-10-29 12:19:18 +00:00
Alexandre Duret-Lutz
cf45539312 * src/tgbaalgos/replayrun.cc (replay_tgba_run): Verify the run is
accepting.
2004-10-29 11:51:21 +00:00