Commit graph

1006 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
f7e5fe0821 * src/ltltest/reduc.test: Typo. 2004-05-13 09:50:48 +00:00
Alexandre Duret-Lutz
60a3b4ed72 * src/ltlparse/ltlparse.yy (OP_POST_NEG, OP_POST_POS): New tokens.
(subformula): Recognize `ATOMIC_PROP OP_POST_POS' and
`ATOMIC_PROP OP_POST_NEG'.
* src/ltlparse/ltlscan.ll: Introduce the not_prop start condition,
to restrict the set of atomic propositions allowed in places
where they are not expected.  Make `true' and `false' case insensitive.
* src/ltltest/parse.test, src/ltltest/tostring.test: More cases.
* src/ltlvisit/tostring.cc (to_string_visitor): Quote atomic
propositions equal to "true" or "false".
2004-05-13 09:49:06 +00:00
Alexandre Duret-Lutz
4f96a9fc14 * src/ltltest/Makefile.am (TESTS): Run inf.test and reduc.test last. 2004-05-11 11:03:22 +00:00
Alexandre Duret-Lutz
a66e7250bf * src/ltltest/reduc.test: POSIXify. 2004-05-11 08:51:20 +00:00
Alexandre Duret-Lutz
c4a5b325a2 * src/sanity/style.test: New file.
* src/sanity/Makefile.am (check-local): Run it.
* src/ltlvisit/nenoform.cc, src/ltlvisit/tostring.cc,
src/tgba/bdddict.cc, src/tgba/bddprint.cc, src/tgba/tgba.cc,
src/tgba/tgbaproduct.cc, src/tgbaalgos/lbtt.cc,
src/tgbaalgos/magic.cc, src/tgbaalgos/powerset.cc,
src/tgbaalgos/reachiter.cc, src/tgbaalgos/gtec/ce.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbatest/ltl2tgba.cc: Fix style
issues reported by style.test.
2004-05-10 18:38:20 +00:00
Alexandre Duret-Lutz
69169970a2 * src/ltltest/inf.cc, src/ltltest/inf.test, src/ltltest/reduc.test,
src/ltlvisit/formlength.cc, src/ltlvisit/reducform.cc,
src/ltlvisit/reducform.hh: Fix copyright year, these files were
created in 2004.
2004-05-10 17:26:32 +00:00
Alexandre Duret-Lutz
83de4264cb * src/sanity/80columns.test: New file.
* src/sanity/Makefile.am (check-local): Run it.
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/parseerr.test
src/ltltest/tunabbrev.test, src/ltlvisit/forminf.cc,
src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
src/tgbatest/explprod.test, src/tgbatest/spotlbtt.test,
src/tgbatest/tripprod.test: Wrap long lines.
2004-05-10 17:18:27 +00:00
martinez
e69d0fa94e * src/tgbatest/ltl2tgba.cc (main): Add a option for reduce the formula. 2004-05-10 17:07:21 +00:00
martinez
acb454fe6c reverse mistaken commit 2004-05-10 16:43:30 +00:00
martinez
61e7d4e21f * src/ltltest/formules.ltl: A pattern of 2000 formulas.
* src/ltltest/inf.test: Test some case of implies.
* src/ltltest/inf.cc: Test some case of implies.
* src/ltltest/reduc.test: Test reduction of a file of formula.
* src/ltltest/reduc.cc: Test reduction of a formula.

* src/ltlvisit/formlength.cc: Gives the lenght of a formula.
* src/ltlvisit/forminf.cc: To know if a formula implies an other.
* src/ltlvisit/basereduc.cc: Implement only basic reduction.
* src/ltlvisit/reducform.cc: Implement reduction.
* src/ltlvisit/reducform.hh: To reduce a formula.
2004-05-10 16:40:34 +00:00
martinez
bafc92d0b8 *** empty log message *** 2004-05-10 15:43:18 +00:00
Alexandre Duret-Lutz
faf4a2af26 * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Refine
fair_loop_approximation when branching postponement is not used.
2004-05-10 13:43:22 +00:00
Alexandre Duret-Lutz
040f8beec7 Cache formula translations, and canonize formulae before doing
branching postponement.
* src/tgbaalgos/ltl2tgba_fm.cc (formula_canonizer): New class, with
bits extracted from fill_dests and ltl_to_tgba_fm.
(fill_dests, ltl_to_tgba_fm): Adjust to use formula_canonizer.
2004-05-10 12:17:07 +00:00
Alexandre Duret-Lutz
aa5cef3c83 * src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
fair_loop_approx.
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Implement the
fair_loop_approx optimization.
(ltl_promise_visitor, ltl_possible_fair_loop_visitor,
possible_fair_loop_checker): New classes.
* src/tgbatest/ltl2tgba.cc: Add the -L option.
* src/tgbatest/spotlbtt.test: Exercise fair_loop_approx.
* wrap/python/cgi/ltl2tgba.in: Make it an option.
2004-05-10 10:41:28 +00:00
Alexandre Duret-Lutz
6b06e28f3d * src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
branching_postponement.
* src/tgbaalgos/ltl2tgba_fm.cc (fill_dests): New function, extracted
from ltl_to_tgba_fm().
(ltl_to_tgba_fm): Implement the branching_postponement optimization.
* src/tgbatest/ltl2tgba.cc: Add the -p option.
* src/tgbatest/spotlbtt.test: Exercise branching postponement.
* wrap/python/cgi/ltl2tgba.in: Make it an option.
2004-05-07 10:00:34 +00:00
Alexandre Duret-Lutz
f11df7679a * src/tgbaalgos/ltl2tgba_fm.cc: Add a superfluous return to pacify
some GCC version.  Report from Denis Poitrenaud.
2004-05-04 11:22:06 +00:00
Alexandre Duret-Lutz
ca80561ad5 * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Clone and then
free all formulae entered into canonical_succ, to avoid errors
when a formula is entered into canonical_succ but not into
formulae_seen.
* src/tgbatest/ltl2tgba.test: Add a new test, and check with -f.
Report from Thomas Martinez.
2004-05-03 16:41:00 +00:00
Alexandre Duret-Lutz
b980717756 * configure.ac, NEWS: Bump version to 0.0t.
* HACKING: Update tools requirements.
* src/sanity/Makefile.am (EXTRA_DIST): Distribute includes.test.
2004-04-23 17:31:57 +00:00
Alexandre Duret-Lutz
007143e9e3 * src/sanity/Makefile.am, src/sanity/includes.test: New files.
* src/Makefile.am (SUBDIRS): Add sanity.
* configure.ac: Output src/sanity/Makefile.in.
2004-04-23 12:27:40 +00:00
Alexandre Duret-Lutz
7cf55415a7 * src/tgbatest/Makefile.am (check_PROGRAMS): Move ltl2tgba ...
(noinst_PROGRAMS): ... here.
* iface/gspn/Makefile.am (check_PROGRAMS): Rename as ...
(noinst_PROGRAMS): ... this.
2004-04-23 11:27:21 +00:00
Alexandre Duret-Lutz
70e93ea053 * src/tgbatest/explicit.test: Reorder bdd variable in output.
Report from Denis Poitrenaud.
2004-04-22 12:02:53 +00:00
Alexandre Duret-Lutz
cf1ab2946f * src/tgbaalgos/gtec/ce.hh, src/misc/freelist.hh,
src/tgba/bddprint.hh: Fix Doxygen comments.
2004-04-21 20:14:40 +00:00
Alexandre Duret-Lutz
2f84bee41c * src/tgbaalgos/neverclaim.hh (never_claim_reachable): Document
arguments.
* src/tgbaalgos/neverclaim.cc (never_claim_bfs::state_is_accepting):
New method.
(never_claim_bfs::get_state_label, never_claim_bfs::process_state):
Use it.
2004-04-21 20:08:36 +00:00
Alexandre Duret-Lutz
8d8af2e53a * src/ltlvisit/tostring.hh (to_spin_string): New function.
Convert a formula into a string parsable by Spin.
* src/tgbaalgos/neverclaim.hh, src/tgbaalgos/neverclaim.cc: New files.
Print the never claim in Spin format of a degeneralized TGBA.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbatest/ltl2tgba.cc: Add the option -N which outputs the
never claim in Spin format of a degeneralized TGBA.
* src/tgbatest/ltl2neverclaim.test: New file.
* src/tgbatest/Makefile.am: Add it.
2004-04-21 15:18:07 +00:00
Alexandre Duret-Lutz
4d73490a49 * src/ltltest/defs.in, src/tgbatest/defs.in: Correctly set exitcode
when valgrind is not used.
Reported by Denis Poitrenaud.
2004-04-20 11:11:40 +00:00
Alexandre Duret-Lutz
00487e1176 * src/tgba/tgba.hh (tgba::succ_iter): Doco.
* src/tgba/tgbatba.hh (tgba_tba_proxy::state_is_accepting): Document
it.
Reported by Denis Poitrenaud.
2004-04-20 09:36:49 +00:00
Alexandre Duret-Lutz
8ff4ca08ce * src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map::find):
Rewrite.
(numbered_state_heap_hash_map::index): New functions.
(numbered_state_heap_hash_map::filter): Delete.
* src/tgbaalgos/gtec/nsheap.hh
(numbered_state_heap_hash_map::index): New functions.
(numbered_state_heap_hash_map::filter): Delete.
* iface/gspn/eesrg.cc (numbered_state_heap_eesrg_semi::find,
numbered_state_heap_eesrg_semi::index): Rewrite.
(numbered_state_heap_eesrg_semi::filter): Remove.
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/ce.cc:
Adjust to use find() and index() instead of filter()..
2004-04-15 11:50:29 +00:00
Alexandre Duret-Lutz
be4f4e3370 * iface/gspn/eesrg.cc (connected_component_eesrg::has_state):
Free filtered states.
(emptiness_check_shy_eesrg): New class.
(emptiness_check_eesrg_shy): New function.
* iface/gspn/eesrg.hh (emptiness_check_eesrg_shy): New function.
* iface/gspn/ltlgspn.cc (main) [EESRG]: Handle -e3, -e4, and -e5.
* * src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/gtec.cc
(emptiness_check_shy::check): Move arc, num, succ_queue, and todo
as attributes.
(emptiness_check_shy::find_state): New virtual function.
2004-04-15 09:12:11 +00:00
Alexandre Duret-Lutz
a2cd1de267 * src/tgbaalgos/gtec/nsheap.hh (numbered_state_heap_factory,
numbered_state_heap_hash_map_factory): New class.
* src/tgbaalgos/gtec/nsheap.cc (numbered_state_heap_hash_map_factory):
Implement it.
* src/tgbaalgos/gtec/gtec.hh (emptiness_check::emptiness_check,
emptiness_check_shy::emptiness_check_shy): Take a
numbered_state_heap_factory argument.
* tgbaalgos/gtec/status.hh
(emptiness_check_status::emptiness_check_status): Likewise.
(emptiness_check_status::h): Make it a numbered_state_heap*.
* src/tgbaalgos/gtec/ce.cc, tgbaalgos/gtec/gtec.cc,
tgbaalgos/gtec/status.cc: Adjust uses of ecs_->h.
2004-04-14 11:30:41 +00:00
Alexandre Duret-Lutz
579c343e13 * src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/emptinesscheck.cc:
Delete and split into ...
* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh: ...
these new files.
* src/tgbaalgos/gtec/Makefile.am: New file.
* src/tgbaalgos/Makefile.am (SUBDIRS, libtgbaalgos_la_LIBADD):
Recurse into gtec and link gtec/libgtec.la.
(tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES): Remove emptinesscheck.hh
and emptinesscheck.cc.
* configure.ac: Output src/tgbalagos/gtec/Makefile.
* iface/gspn/ltlgspn.cc, src/tgbatest/ltl2tgba.cc: Update includes.
* README: Update tree description.
2004-04-14 10:56:36 +00:00
Alexandre Duret-Lutz
d8f5bf608a * tgbaalgos/emptinesscheck.hh (numbered_state_heap_const_iterator,
numbered_state_heap, numbered_state_heap_hash_map): New classes.
* tgbaalgos/emptinesscheck.cc
(numbered_state_heap_hash_map_const_iterator): New class.
(numbered_state_heap_hash_map): Implement it.
2004-04-13 15:32:10 +00:00
Alexandre Duret-Lutz
7305dbb658 * src/tgbaalgos/emptinesscheck.hh
(explicit_connected_component_factory,
connected_component_hash_set_factory): New classes.
(counter_example::counter_example): Take an
explicit_connected_component_factory factory argument.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
2004-04-13 13:57:59 +00:00
Alexandre Duret-Lutz
3e63c1a0ca * src/tgbaalgos/emptinesscheck.hh (explicit_connected_component):
New class.
(counter_example::connected_component_set): Rename as ...
(connected_component_hash_set): ... this, and inherit from
explicit_connected_component.
(counter_example::accepting_path, counter_example::complete_cycle):
2004-04-13 13:25:19 +00:00
Alexandre Duret-Lutz
1ea3c2ce5a * src/tgbaalgos/emptinesscheck.hh
(counter_example::connected_component_set::has_state): Return
a const state* and behave like h_filt.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
2004-04-13 12:16:33 +00:00
Alexandre Duret-Lutz
b85e930232 * src/tgbaalgos/emptinesscheck.hh (emptiness_check::check2): Move
into ...
(emptiness_check_shy): This new subclass of emptiness_check.
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
iface/gspn/ltlgspn.cc: Adjust.
2004-04-13 11:44:42 +00:00
Alexandre Duret-Lutz
be17fc19f5 * src/tgba/bdddict.hh (bdd_dict::annon_free_list): Hide from Swig. 2004-04-13 09:56:44 +00:00
Alexandre Duret-Lutz
8a84cc6fb3 * src/tgbaalgo/semptinesscheck.hh (counter_example): New class,
extracted from ...
(emptiness_check): ... here.
* src/tgbaalgos/emptinesscheck.cc, src/tgbatest/ltl2tgba.cc,
iface/gspn/ltlgspn.cc: Adjust.
2004-04-13 09:39:30 +00:00
Alexandre Duret-Lutz
5eb2cf2cac * src/tgbaalgo/semptinesscheck.hh (emptiness_check_status): New class,
extracted from ...
(emptiness_check): ... here.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
2004-04-13 08:53:10 +00:00
Alexandre Duret-Lutz
f8321633b7 * src/tgbaalgo/semptinesscheck.hh (scc_stack): New class, extracted
from ...
(emptiness_check): ... here.
(emptiness_check::root): Redefined as a scc_stack object.
* src/tgbaalgos/emptinesscheck.cc: Adjust.
2004-04-13 08:33:24 +00:00
Alexandre Duret-Lutz
7fd9459a63 * src/tgbaalgos/emptinesscheck.cc (emptiness_check::complete_cycle):
Do not visit a state more than once.  Report from Soheib Baarir.
2004-04-05 12:43:06 +00:00
Alexandre Duret-Lutz
fa6ac39cfb * src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Reuse Acc and Var
variables from a shared bdd_dict.  Register Next variables as
anonymous variables.
(translate_dict::translate_dict, translate_dict::~translate_dict,
translate_dict::register_proposition,
translate_dict::register_a_variable,
translate_dict::register_next_variable,
translate_dict::dump, translate_dict::var_to_formula,
ltl_to_tgba_fm): Adjust.
(translate_dict::dict): New attribute.
(translate_dict::a_map, translate_dict::a_formula_map,
translate_dict::var_map, translate_dict::var_formula_map): Delete.
2004-03-25 16:24:05 +00:00
Alexandre Duret-Lutz
3c3b23bfa4 * src/misc/freelist.cc (free_list::remove): Work around
invalidated iterators.
* tgba/bdddict.cc (unregister_variable): New methods,
extracted from ...
(bdd_dict::unregister_all_my_variables): ... here.
* tgba/bdddict.hh (unregister_variable): Declare them.
2004-03-25 15:02:57 +00:00
Alexandre Duret-Lutz
784ccafb1b * src/misc/freelist.hh (free_list::remove, free_list::insert): New
methods.
* src/misc/freelist.cc (free_list::register_n,
free_list::releases_n): Rewrite using free_list::remove and
free_list::insert.
(free_list::remove, free_list::insert): New methods.
* src/tgba/bdddict.hh (bdd_dict::register_anonymous_variables):
New method.
(bdd_dict::annon_free_list): New subclass.
(bdd_dict::free_annonymous_list_of_type_of): New attribute.
* src/tgba/bdddict.cc (bdd_dict::register_all_variables_of,
bdd_dict::unregister_all_my_variables): Handle anonymous variables
too.
(bdd_dict::register_anonymous_variables,
bdd_dict::annon_free_list::annon_free_list,
bdd_dict::annon_free_list::extend): New methods.
2004-03-23 09:39:38 +00:00
Alexandre Duret-Lutz
aba2dc75d7 * src/tgbaalgos/emptinesscheck.cc (emptiness_check::accepting_path)
Fix handling of PATH when backtracking.  Report from Soheib Baarir.
2004-03-23 09:33:27 +00:00
Alexandre Duret-Lutz
cf6602a3be Move the free_list management into a separate class for reuse.
* src/misc/freelist.hh, src/misc/freelist.cc: New files.
* src/misc/Makefile.am (misc_HEADERS, libmisc_la_SOURCES): Add them.
* src/misc/bddalloc.hh (bdd_allocator): Inherit from free_list and
make dump_free_list visible.
* src/misc/bddalloc.cc (bdd_allocator::allocate_variables): Move
all the code into free_list::register_n() and
bdd_allocator::extend(), and call the former.
(bdd_allocator::release_variables): Move all the code into
free_list::release_n() and call it.
(bdd_allocator::extend): New method.
* src/tgba/bdddict.cc (bdd_dict::dump): Call dump_free_list;
2004-03-18 15:43:10 +00:00
Alexandre Duret-Lutz
249a114f29 * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm) <exprop>: Do not
blindly enumerate all combinations of atomic properties; initially
set all_props to the set of all possibly satisfiable combinations.
2004-03-08 17:24:17 +00:00
Alexandre Duret-Lutz
af27439d87 * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Fix example
in comment.  Skip false transitions, and do not compute
sub-formulae reachable only via false transitions.
2004-02-20 14:18:54 +00:00
Alexandre Duret-Lutz
0f7625b17d * src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Revert
yesterday's change.  This optimization is NOT covered by exprop.
In fact it could be generalized.
2004-02-20 09:29:00 +00:00
Alexandre Duret-Lutz
3350ff7176 * src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator::current_state):
Fix reference to Oddoux's thesis.
2004-02-19 15:46:30 +00:00
Alexandre Duret-Lutz
4e793ef418 * src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add the
symb_merge argument.
* src/tgbaalgos/ltl2tgba_fm.cc (ltl_to_tgba_fm): Likewise.
* src/tgbatest/ltl2tgba.cc (main): Rename -fx as -x, and add -y
to unset symb_merge.
* wrap/python/cgi/ltl2tgba.in: Remove the exprop version
of the FM translator, make exprop and symb_merge options.
2004-02-16 16:07:47 +00:00