Commit graph

934 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
eb6bde4dd4 * src/tgbatest/ltl2tgba.cc (main): Fix handing of -R1q -R1t -R2q -R2t.
Add support for -r8/-fr8.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
5d8727258d * src/ltlvisit/reduce.cc (reduce): Repeat the reduction as
long as the formula changes, it makes more sense when
combining algorithm.  E.g. basic reductions can help language
containment and vice-versa.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
f57097b991 * src/tgbatest/spotlbtt.test: Disable formula rewriting during
construction.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
78d37fa126 * src/ltltest/reduc.cc (main): More cases to test.
* src/ltlvisit/basicreduce.cc (basic_reduce_visitor::visit):
Simplify the formula again after FX->XF and GX->XG permutations.
This is so that formulae like GFXXa become GFa and not just GFXa.
* src/ltlvisit/contain.cc (reduce_tau03_visitor): Fix a typo
in the rules for i|j or i&j, resulting in missing simplifications.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
b1c820af4d * src/ltlvisit/contain.cc (reduce_tau03_visitor): Simplify the
rules for "a U b" and "a R b", an implication check is enough.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
21e2439d06 * src/misc/bddalloc.cc (bdd_allocator::initialize): Call
bdd_isrunning() and don't run bdd_init() if it has already been
called.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
1eb47b1a94 * src/tgbaalgos/randomgraph.cc (random_graph): Fix the
generation of the graph.  Some states had no successors or
duplicate transitions because of that bug.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
3c7f1822df * HACKING: We need Bison 2.3. 2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
ac94af5791 * evtgbaparse/evtgbaparse.yy, ltlparse/ltlparse.yy,
tgbaparse/tgbaparse.yy: Fix Bison warnings about unset $$.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
94bf01a53c * src/tgbaparse/Makefile.am (tgbaparse_HEADERS): Also
install location.hh and position.hh, since we no longer share
those of ltlvisit.
* src/evtgbaparse/Makefile.am (evtgbaparse_HEADERS): Likewise.
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
6cf223bba4 * src/ltlparse/public.hh: Work around Bison 2.3 unique guards. 2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
641db2d77d * src/evtgbaparse/public.hh: Work around Bison 2.3 unique guards.
* src/ltlvisit/reduce.hh, src/ltlvisit/reduce.hh:
Add Reduce_Containment_Checks and Reduce_Containment_Checks_Stronger
flags, and call reduce_tau03.
* src/ltlvisit/contain.hh (reduce_tau03): Make "stronger" the
default.
* src/ltlvisit/contain.cc: Style.
* src/ltltest/reduc.cc: Simplify using the reduce() interface
instead of reduce_tau03.
* src/tgbatest/ltl2tgba.cc: Likewise.  Add -fr5, -fr6, and -fr7
options.
* src/tgbatest/spotlbtt.test: Remove cases using "-c", since its
current implementation is not always correct (and apparently
reduces less than -fr7).
2008-02-25 14:36:59 +01:00
Alexandre Duret-Lutz
c055212326 * src/evtgbatest/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
src/evtgbaparse/parsedecl.hh, src/evtgbaparse/public.hh,
src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
src/ltlparse/public.hh, src/tgbaparse/parsedecl.hh,
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
src/tgbaparse/tgbascan.ll: Adjust for Bison 2.3.  Use %name-prefix
instead of the "#define yy ... " kludge.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
db98955e9d * src/ltlvisit/contain.hh, src/ltlvisit/contain.cc: Adjust to only
check containment on demand.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
d4c9bf2b1e * src/ltlvisit/contain.hh, src/ltlvisit/contain.cc (reduce_tau03):
New function, performing LTL reduction a la tauriainen.03.a83.
* src/ltltest/equals.cc, src/ltltest/reduc.cc: Add support for
the new reduction.
* src/ltltest/reduc.test: Cut the test in half, and additionally
test the new reduction.
* src/ltltest/reduccmp.test: Run on the new reduction.
* src/ltltest/Makefile.am: Adjust.
* src/tgbatest/ltl2tgba.cc: Add new options to apply the reduction.
* src/tgbatest/spotlbtt.test: Use them.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
8cbec95253 * src/tgba/tgbaproduct.cc: Fix computation of common acceptance
conditions.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
c412cd4cc3 * src/tgba/bdddict.cc, src/tgba/bdddict.cc (register_clone_acc):
New function.
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Use it to
distinguish acceptance conditions that are identical in both
operands.
* src/tgbatest/explpro4.test: New file.
* src/tgbatest/explpro2.test, src/tgbatest/Makefile.am: Adjust.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
cb9549e4d4 * src/tgbaalgos/ltl2tgba_fm.cc (language_containment_checker): Move ...
* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh
(spot::ltl::language_containment_checker): ... in these new files.
* src/ltlvisit/Makefile.am: Adjust.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
c2bc76816b * src/misc/memusage.cc, src/misc/memusage.hh: New files.
* src/misc/Makefile.am: Add them.
* src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh: Add a "vmsize" statistic.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
9e97543e33 * src/tgba/bdddict.cc, src/tgba/bdddict.hh (free_annonymous_list_of):
Rename as ...
(free_anonymous_list_of): ... this, and correct their update on
release.  Also correct yesterday's the correction (ahem!).
(dump): Improve verbosity.
* src/misc/freelist.cc (free_list::remove, free_list::insert): Fix
longstanding thinkos.
(free_list::free_count): New function.
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
064319b3e4 Merge this fix from proviso-branch:
2006-05-22  Alexandre Duret-Lutz  <adl@src.lip6.fr>
* src/misc/bddalloc.cc (bdd_allocator::bdd_allocator): Count the
2008-02-25 14:36:58 +01:00
Alexandre Duret-Lutz
decd87dcbf * src/tgba/tgbabddconcrete.hh, src/tgba/tgbaexplicit.hh,
src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh, src/tgba/tgbatba.hh:
Remove superfluous class qualifiers worrying gcc 4.1.2.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
85c5c870db * src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_fm.cc
(ltl_to_tgba_fm): Add a new option "containment_checks" to enable
some language containment checks (via emptiness checks) during the
translation.  This first attempt currently only use containment
checks to merge states bisimulating each other.
* src/tgbatest/ltl2tgba.cc: Bind this to option "-c".
* src/tgbatest/spotlbtt.test: Check it.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
49a78724a4 * src/tgba/bdddict.cc (bdd_dict::unregister_variable): Correctly
call release_n(), not remove() to repopulated the freelist of
anonymous BDD variables.  New code I'm working on triggered an
assertion inside remove(), but I'm surprised this bug hadn't
manifested before !
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
e84647b30b * iface/gspn/common.hh, iface/gspn/common.cc, iface/gspn/gspn.cc,
iface/gspn/ltlgspn.cc, iface/gspn/dottygspn.cc, iface/gspn/ssp.cc,
iface/gspn/dottyssp.cc: s/exeption/exception/g.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
983d12cc5a * src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
(couvreur99_check_shy_ssp): Add a onepass_ attribute to
disable the "shyness", and do not increment pos before calling
find_state since gspn's implementation uses it.
* iface/gspn/ssp.cc: Enable "onepass_" for all "shy" variants,
and also fix find_state for the case where onepass_ is
disabled (but I do not yet know why the latter fix isn't enough).
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
644b74f8c0 * src/tgbaalgos/gtec/gtec.cc: Add a third level hash, to split
each container into lists of states with identical formula states.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
afd4ea0eb4 * iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
inclusion check in the stack.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
bb47e31b1e * src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
Count the number of removed components.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
857f0ac54e * iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state,
numbered_state_heap_ssp_semi): Implement a double hash_map using
greatspn's new container() function.
* iface/gspn/ssp.hh (gspn_ssp_interface): Add a doublehash option.
* iface/gspn/ltlgspn.cc: Add option -1 to disable this optimization.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
ea9ee5d5c7 * src/tgbatest/ltl2tgba.cc: Pacify sanity.test. 2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
5891679ce0 * src/tgbaparse/public.hh (tgba_parse): Take two environments
instead of one : one for the atomic propositions, and one
for the acceptance conditions.  This way it's easy for
the tools in iface/gspn/ to require some atomic proposition
to be declared and allow any acceptance conditions (there is nothing
to adjust in this files because of the default value of the argument).
* src/tgbaparse/tgbaparse.yy: Adjust.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/readsave.cc,
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc: Adjust calls.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
e5481ee3ac * src/tgbaparse/tgbaparse.yy (acc_decl): Diagnose acceptance
conditions rejected by the environment.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
d2cf7199bc * iface/gspn/ltlgspn.cc (display_stats): New function.
(main): Use it.
* iface/gspn/ssp.cc: Add more counters for statistics.
2008-02-25 14:36:57 +01:00
Alexandre Duret-Lutz
723054ce80 * iface/gspn/ssp.cc (couvreur99_check_shy_ssp::find_state): Correctly
update the emptiness statistics.

* m4/gspnlib.m4: Typo.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
ffd47e425e * iface/gspn/ssp.cc: Pacify sanity.test. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
a390fe0754 typos 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
2a843fab1a * iface/gspn/ssp.cc (spot): Typo. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
236742aed8 * src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::check):
Reorganize this function so that syntactically there is only one
loop over the successors, and not two.  Call reintroduce the call
to couvreur99_check_shy::state_index(), needed by SSP, and
suppress that to index_and_insert introduced on 2004-12-29.  Also
split the "group" option in two: "group" and "group2".  "group2"
is the equivalent of the older "group", while the new "group" is
weaker and faster.
(couvreur99_check_shy::state_index): Change prototype as needed by
the algorithm.
* src/tgbaalgos/gtec/gtec.hh: Adjust.
* src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gtec/nsheap.cc
(index_and_insert): Remove.
* iface/gspn/ssp.cc (couvreur99_check_shy_ssp::state_index): Adjust
to new prototype.
* bench/emptchk/README, bench/emptchk/algorithms: Adjust references
to group/group2.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
d9d4804bc9 * NEWS, configure.ac: Bump version to 0.3a. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
05d0353d04 * NEWS, README, configure.ac: Update for version 0.3. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
3751960ac8 * wrap/python/cgi/ltl2tgba.in: Fix degeneralisation and output of
accepting runs.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
851ca0d807 * wrap/python/spot.i: Wrap spot::emptiness_check_instantiator.
* wrap/python/cgi/ltl2tgba.in: Offers all 6 emptiness
check algorithms, and a text box for options.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
396894f7a7 * src/tgbaalgos/ndfs_result.hxx (ndfs_result::construct_cycle):
Initialize tmp to suppress a GCC 4.0.1 warning (seen on Darwin).
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
b47f4ab09b * src/tgbatest/defs.in (VALGRIND): Use --log-fd instead of
--logfile-fd to please newer versions of Valgrind.
* src/ltltest/defs.in, src/evtgbatest/defs.in: Likewise.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
89aff72523 * src/ltlparse/ltlparse.yy (result): Do not assign to $$, it's useless.
Suggested by Akim.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
f7fe379e60 * src/tgbatest/randtgba.cc: New option -H.
* src/tgbaalgos/emptiness_stats.hh (unsigned_statistics_copy): New
class.
2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
d5fb32120f * src/tgbatest/randtgba.cc: New option -S. 2008-02-25 14:36:56 +01:00
Alexandre Duret-Lutz
8e00065d84 * src/tgbaalgos/lbtt.cc: Typo. 2008-02-25 14:36:55 +01:00
Alexandre Duret-Lutz
b343e16b51 * src/tgbatest/randtgba.cc (default_algos): Test the "ordering"
heuristic.
2008-02-25 14:36:55 +01:00