Commit graph

663 commits

Author SHA1 Message Date
Damien Lefortier
543190f2bc Template ltlast/ & ltlenv/ classes in internal/ & Add ELTL parser. 2008-04-17 11:41:41 +02:00
Alexandre Duret-Lutz
21c98c0a01 Kill some FIXMEs.
* src/ltlenv/environment.hh, src/ltlvisit/basicreduce.cc: Remove
useless FIXMEs.
* src/ltlvisit/reduce.cc (reduce_visitor::visit(binop)): Compute
syntactic implications only when needed.
* src/tgbaalgos/reductgba_sim_del.cc
(build_recurse_successor_spoiler): Remplace the FIXME by an assert.
* src/tgba/tgbareduc.cc: Reword some comments, discard old
commented code.
2008-04-14 11:35:57 +02:00
Alexandre Duret-Lutz
43c9c6faaa * src/evtgbaparse/Makefile.am (AM_CXXFLAGS): Remove -Werror
so we tolerate more flex versions.
* src/ltlparse/Makefile.am (AM_CXXFLAGS): Likewise.
* src/tgbaparse/Makefile.am (AM_CXXFLAGS): Likewise.
2008-03-28 17:22:23 +01:00
Alexandre Duret-Lutz
323e326c7d Second thinko in #if/#else. 2008-03-25 16:26:50 +01:00
Alexandre Duret-Lutz
07fd0377e6 Thinko in #if/#else. 2008-03-25 15:43:51 +01:00
Damien Lefortier
b71360ae44 Avoid <iostream> in headers, better use <iosfwd>. 2008-03-21 21:59:34 +01:00
Alexandre Duret-Lutz
c764b2021d * src/tgbatest/ltl2tgba.cc, src/misc/hash.hh: Reformat the header
using 80 columns.
2008-03-21 17:02:57 +01:00
Alexandre Duret-Lutz
d3b702a97c Make sure Spot compiles with g++-4.3.
* src/ltlast/formula.hh (hash): Remove const from return type.
This kills a g++-4.3 warning.
* src/misc/hash.hh: Adjust to use unordered_set and unordered_map
from TR1 when g++-4.3 is used.
* src/evtgba/product.cc, src/ltltest/randltl.cc,
src/ltlvisit/randomltl.cc, src/ltlvisit/tostring.cc,
src/misc/freelist.hh, src/misc/optionmap.cc,
src/tgba/tgbareduc.hh, src/tgbaalgos/gv04.cc,
src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/randomgraph.cc,
src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc,
src/ltltest/equals.cc, src/ltltest/readltl.cc,
src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
src/ltltest/tostring.cc, src/tgbatest/ltlprod.cc,
src/tgbatest/powerset.cc, src/tgbatest/explprod.cc,
src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
src/tgbatest/reductgba.cc, src/tgbatest/tgbaread.cc,
src/tgbatest/tripprod.cc, src/evtgbatest/product.cc,
src/evtgbatest/readsave.cc, src/evtgbatest/ltl2evtgba.cc,
src/evtgbatest/readsave.cc: Add missing includes.
* src/tgbatest/explicit.test, src/tgbatest/explprod.test,
src/tgbatest/explpro2.test, src/tgbatest/troprod.test,
src/tgbatest/emptchk.test: Cope with different outputs.
2008-03-14 22:45:37 +01:00
Alexandre Duret-Lutz
5ef7084b61 Add .gitignore files 2008-03-14 16:59:32 +01:00
Alexandre Duret-Lutz
8c829cf3e1 * src/tgbaalgos/reachiter.hh: Typos in comments. 2008-02-27 16:14:45 +01:00
Alexandre Duret-Lutz
cc9c08b6cf * src/tgba/tgbabddconcretefactory.hh (create_state):
Clarify comments.
2008-02-25 14:37:55 +01:00
Alexandre Duret-Lutz
b5f4ba982c * src/tgbaalgos/gtec/gtec.cc (couvreur99_check_shy::dump_queue):
Remove superfluous semicolon.
2008-02-25 14:37:55 +01:00
Alexandre Duret-Lutz
fbbaef0ab8 * src/tgbaalgos/reductgba_sim.cc (reduc_tgba_sim): Add two
assert().  This patch has been lying in my tree since 2007-04-30.
2008-02-25 14:37:55 +01:00
Alexandre Duret-Lutz
cc0ca4ae54 This is something Soheib and I worked on back in July, but a
intricate memory corruption bug prevented me to check the patch
in.  It took me two days to realize why find_state() must do a
double loop over the candidates to check for equality before
checking for inclusion(s).

* iface/gspn/ltlgspn.cc: New options, -e45 and -n.
* iface/gspn/ssp.cc, iface/gspn/ssp.hh: Handle these.
* src/tgbaalgos/gtec/gtec.cc (TRACE): Add some debugging traces.
(couvreur99_check_shy::dump_queue): New function.
* src/tgbaalgos/gtec/gtec.hh (couvreur99_check_shy::dump_queue):
New function.
2008-02-25 14:37:55 +01:00
Alexandre Duret-Lutz
089c315c28 * src/misc/bddalloc.cc (bdd_allocator::initialize):
Disable the default GC handler.  Reported by
Kristin Yvonne Rozier <kyrozier@cs.rice.edu>.
2008-02-25 14:37:54 +01:00
Alexandre Duret-Lutz
44e4beca2e * src/tgbatest/ltl2tgba.cc (main): Correctly destroy unobservable
events.
2008-02-25 14:37:54 +01:00
Alexandre Duret-Lutz
3ffba1c988 * src/tgbatest/spotlbtt.test: Do not check -R1q -R1t -R2q -R2t. 2008-02-25 14:36:59 +01:00
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
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
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
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
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
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
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