Commit graph

20 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
982c5efc6c * src/ltltest/Makefile.am (AM_CXXFLAGS): New variable.
* tgba/bdddict.hh (bdd_dict::register_propositions,
bdd_dict::register_accepting_variables): New methods.
* src/bdddict.cc: Likewise.
* tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
tgba_explicit::add_accepting_conditions): New methods.
(tgba_explicit::get_init_state): Add an "empty" initial
state to empty automata.
* tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
tgba_explicit::add_accepting_conditions): New methods.
* tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
Add dupexp.hh and dupexp.cc.
* tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
* tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
(check_SCRIPTS): Add dupexp.test.
(CLEANFILES): Add output1 and output2.
* tgbatest/dupexp.test: New file.
* tgbatest/ltl2tgba.cc: Handle -s and -S.
* tgbatest/tgbaread.cc: Remove unused variable exit_code.
2003-11-14 16:44:12 +00:00
Alexandre Duret-Lutz
d46c63a21b Merge emptinesscheckexplicit into ltl2tgba.
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove
emptinesscheckexplicit.
(emptinesscheckexplicit_SOURCES): Remove.
(TESTS): Replace emptinesscheckexplicit.test by emptchke.test.
* src/tgbatest/emptinesscheckexplicit.cc,
src/tgbatest/emptinesscheckexplicit.test: Delete.
* src/tgbatest/empchke.test: New file.
* src/tgbatest/ltl2tgba.cc: Add support for -X.
2003-10-23 11:58:11 +00:00
Alexandre Duret-Lutz
65f84e2c61 Merge emptiness-checks tests into ltl2tgba.
* src/tgbatest/Makefile (check_PRORGRAMS): Remove
emptinesscheck and ltlmagic.
(emptinesscheck_SOURCES, ltlmagic_SOURCES): Remove.
(TESTS): Replace emptinesscheck.test and ltlmagic.test by
emptchk.test.
* src/tgbatest/emptinesscheck.test, src/tgbatest/ltlmagic.test:
Delete.
* src/tgbatest/emptchk.test: New file.
* src/tgbatest/emptinesscheck.cc, src/tgbatest/ltlmagic.cc:
Delete.
* src/tgbatest/ltl2tgba.cc: Add support for -e, -E, -m, -M, and -n.
2003-10-23 11:37:07 +00:00
rebiha
7f3c113130 * src/tgbatest/emptinesscheckexplicit.test (acc): New file.
* src/tgbatest/emptinesscheckexplicit.cc (main): New file.

* src/tgbatest/emptinesscheck.test: New file.

* src/tgbatest/emptinesscheck.cc (main): New file.

* src/tgbaalgos/emptinesscheck.cc (spot): New method.

* src/tgbaalgos/emptinesscheck.hh: New interface.
2003-09-25 15:12:44 +00:00
Alexandre Duret-Lutz
6da1f35641 * src/tgba/tgbaexplicit.cc (tgba_explicit::all_accepting_conditions)
Compute all_accepting_conditions_ from neg_accepting_conditions_,
not by browsing the dictionary.  The dictionary also contains
accepting conditions from other automata...  This bug was a
consequence of the change from 2003-07-14.
* src/tgbaalgos/save.cc (save_bfs::start()): Likewise, do not
browse the dictionary to print accepting conditions.  Call
->all_accepting_conditions() instead.
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Typo
from 2003-08-22 in the computation of all_accepting_conditions_.
* src/tgbatest/explpro3.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add explpro3.test.
* src/tgbatest/explprod.test, src/tgbatest/explpro2.test,
 src/tgbatest/tripprod.test: Sort the output using Perl.
2003-08-29 15:48:23 +00:00
Alexandre Duret-Lutz
7db71d9afe Fix computation of product acceptance conditions, when the
two operands share some acceptance conditions.
* src/tgba/tgbaproduct.hh (tgba_product::left_acc_complement_,
tgba_product::right_acc_complement_): New attribute.
* src/tgba/tgbaproduct.cc (tgba_product::tgba_product): Set them.
(tgba_product::succ_iter): Use them.
* src/tgba/explpro2.test: New file.
* src/tgba/Makefile.am (TESTS): Add it.
2003-08-22 10:07:02 +00:00
Alexandre Duret-Lutz
2b9f17202c This implements Couvreur's FM'99 ltl2tgba translation.
* src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
(bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
bdd_dict::is_registered_accepting_variable): ... these.
* src/tgba/bdddict.hh: Likewise.
* src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
(tgba_explicit::declare_accepting_condition): Arrange so that this
function can be called during the construction of the automaton.
(tgba_explicit::complement_all_accepting_conditions): New method.
(tgba_explicit::has_accepting_condition): Adjust to call
bdd_dict::is_registered_accepting_variable.
* src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
tgba_explicit::complement_all_accepting_conditions): New methods.
* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
New files.
* src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
libtgbaalgos_la_SOURCES): Add them.
* src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
* src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
and tbalbtt.
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
* src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
* src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
* src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
"spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
also check the ltl2tgba_fm translator.
* wrap/python/spot.i: Wrap ltl2tgba_fm.
* wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
between ltl2tgba and ltl2tgba_fm.
* wrap/python/tests/ltl2tgba.py: Add support for the -f option.
* wrap/python/tests/ltl2tgba.test: Try the -f option.
2003-08-15 01:33:09 +00:00
Alexandre Duret-Lutz
01f58f5fbf * src/tgbatest/Makefile.am (check_PROGRAMS): Add tbalbtt.
(tbalbtt_SOURCES, tbalbtt_CXXFLAGS): New variables.
* src/tgbatest/spotlbtt.cc [TBA]: Build tba proxies conditionally.
* src/tgbatest/spotlbtt.test: Include tbalbtt in the tests.
2003-07-29 11:21:18 +00:00
Alexandre Duret-Lutz
860d085b1a * src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
(tgba_tba_proxy::state_is_accepting): New method.
* src/tgbaalgos/magic.hh, src/tgbaalgos/magic.cc: New files.
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
tgbaalgos_HEADERS): Add them.
* src/tgbatest/ltlmagic.cc, src/tgbatest/ltlmagic.test: New files.
* src/tgbatest/Makefile.am (TESTS, ltlmagic_SOURCES,
check_PROGRAMS): Add them.
2003-07-28 15:49:16 +00:00
Alexandre Duret-Lutz
79bed65843 * lbtt/: New directory. Contains a patched version of lbtt 1.0.1.
* Makefile.am (MAYBE_LBTT): New variables.
(SUBDIRS): Add $(MAYBE_LBTT).
(EXTRA_DIST): Add m4/lbtt.m4.
* configure.ac: Call AX_CHECK_LBTT.
* m4/lbtt.m4: New file.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add spotlbtt.
(spotlbtt_SOURCES): New variables.
(TESTS): Add spotlbtt.test.
(CLEANFILE): Add config.
* src/tgbatest/defs.in (top_builddir, LBTT, LBTT_TRANSLATE): New
substitutions.
* src/tgbatest/spotlbtt.cc, src/tgbatest/spotlbtt.test: New files.
2003-07-09 15:40:24 +00:00
Alexandre Duret-Lutz
510756cdb7 Distribute BuDDy. Compile and link with the included version if
explicitely requested (--with-included-buddy) or if there is
now stuitable version already installed.

* buddy/: New directory.  Contains a patched version of BuDDy 2.2.
* m4/buddy.m4: Make sure the installed BuDDy supports bdd_mergepairs.
Honor --with-included-buddy and --without-included-buddy.  Define
the BUDDY_LDFLAGS and BUDDY_CPPFLAGS output variables, and the
WITH_INCLUDED_BUDDY Automake conditional
* Makefile.am [WITH_INCLUDED_BUDDY] (MAYBE_SUBDIRS): New variable.
(SUBDIRS): Prepend $(MAYBE_SUBDIRS).
* src/Makefile.am (libspot_LDFLAGS): New variable.
* src/tgba/Makefile.am (AM_CPPFLAGS): Add $(BUDDY_CPPFLAGS).
* src/tgbaalgos/Makefile.am (AM_CPPFLAGS): Likewise.
* src/tgbatest/Makefile.am (AM_CPPFLAGS): Likewise.
2003-06-26 11:53:17 +00:00
Alexandre Duret-Lutz
bacd5a0ac2 * src/tgba/bddprint.cc (print_handler): Quote promises
when !want_prom.
* src/tgbaparse/tgbaparse.yy (prop_list): Accept strings or
identifiers.  Discard empty strings.
* src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test: New file.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add mixprod.
(mixprod_SOURCES): New variable.
(TESTS): Add mixprod.test.
2003-06-18 12:02:36 +00:00
Alexandre Duret-Lutz
fd12c02345 * src/tgba/tgbaproduct.cc (state_bdd_product::state_bdd_product):
New constructor.
* src/tgba/tgbaproduct.hh (state_bdd_product::state_bdd_product):
New constructor.
* tgbatest/tripprod.cc, tgbatest/tripprod.test: New files.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
(tripprod_SOURCES): New variable.
(CLEANFILES): Add input3.
(TESTS): Add tripprod.test.
2003-06-17 14:54:30 +00:00
Alexandre Duret-Lutz
ab09c18597 Make sure we can multiply two tgba_explicit.
* tgba/state.hh (state::translate, state::clone, state::as_bdd):
New virtual methods.
* tgba/stataebdd.cc (state::translate, state::clone): New methods.
* tgba/stataebdd.hh (state::translate, state::clone): New methods.
* tgba/tgbabddprod.cc (state_bdd_product::clone,
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
New methods.
(tgba_bdd_product_succ_iterator::first): Reset right_
if any of left_ or right_ is already done (i.e., is empty).
(tgba_bdd_product_succ_iterator::done): Return true
if right_ is NULL.
(tgba_bdd_product_succ_iterator::current_state,
tgba_bdd_product::get_init_state): Work	directory with `state's.
* tgba/tgbabddprod.hh (state_bdd_product::clone,
tgba_bdd_product_succ_iterator::~tgba_bdd_product_succ_iterator):
New methods.
* tgba/tgbabddtranslateproxy.cc
(tgba_bdd_translate_proxy_succ_iterator::
tgba_bdd_translate_proxy_succ_iterator): Work on any kind of iteraator.
(tgba_bdd_translate_proxy_succ_iterator::
~tgba_bdd_translate_proxy_succ_iterator): New method.
(tgba_bdd_translate_proxy_succ_iterator::current_state,
tgba_bdd_translate_proxy::get_init_state,
tgba_bdd_translate_proxy::succ_iter): Work on `state's and
`tgba_succ_iterator's directlry.
(tgba_bdd_translate_proxy::format_state): Delegate formating
to the proxied automata.
* tgba/tgbaexplicit.cc (state_explicit::clone): New method.
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
tgba_explicit::get_promise): Call ltl::destroy on existing formulae.
* tgbatest/Makefile.am (check_PROGRAMS): Add explprod.
(explprod_SOURCES): New variable.
(TESTS): Add explprod.test.
(CLEANFILES): Add input1 and input2.
2003-06-16 15:18:20 +00:00
Alexandre Duret-Lutz
0233f31ee0 * src/tgbatest/bddprod.test: New file.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add bddprod.
(bddprod_SOURCES, bddprod_CXXFLAGS): New variables.
(TESTS): Add bddprod.test.
* src/tgbatest/ltlprod.c: Handle BDD_CONCRETE_PRODUCT.
2003-06-06 13:53:01 +00:00
Alexandre Duret-Lutz
4472a29227 * src/tgba/dictunion.cc (tgba_bdd_dict_union): Clone formulae
while building new dictionary.
* src/tgbatest/ltlprod.test, src/tgbatest/ltlprod.cc: New files.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltlprod.
(ltlprod_SOURCES): New variable.
(TESTS): Add ltlprod.test.
2003-06-06 13:23:04 +00:00
Alexandre Duret-Lutz
3991a51a17 * src/ltlvisit/clone.cc (clone): New const version.
* src/ltlvisit/clone.hh (clone): Likewise.
* src/ltlvisit/destroy.cc (destroy): New const version.
* src/ltlvisit/destroy.hh (destroy): Likewise.
* src/tgba/tgbabddconcretefactory.cc
(tgba_bdd_concrete_factory::create_state,
tgba_bdd_concrete_factory::create_atomic_prop,
tgba_bdd_concrete_factory::promise): Clone new formulae.
* src/tgba/tgbabdddict.cc (tgba_bdd_dict::tgba_bdd_dict,
tgba_bdd_dict::~tgba_bdd_dict, tgba_bdd_dict::operator=): New methods
that clone and destroy formulae.
* src/tgbatest/ltl2tgba.test, src/tgbatest/ltl2tgba.cc: New files.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add ltl2tgba.
(ltl2tgba_SOURCES): New variable.
(TESTS): Add ltl2tgba.test.
2003-06-06 12:45:11 +00:00
Alexandre Duret-Lutz
19e47ee6e4 * src/tgba/bddprint.cc (dict): Make this variable static.
(want_prom): New global static variable.
(print_handle): Honor want_prom.
(print_sat_handler, bdd_print_sat, bdd_format_sat): New functions.
(bdd_print_set, bdd_print_dot, bdd_print_table): Set want_prom.
* src/tgba/bddprint.hh (bdd_print_sat, bdd_format_sat): New functions.
* src/tgbaalgos/save.cc, src/tgbaalgos/save.hh,
src/tgbatest/readsave.cc, src/tgbatest/readsave.test: New files.
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES): Add
save.cc and save.hh.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add readsave.
(readsave_SOURCES): New variable.
(TESTS): Add readsave.test.
2003-06-05 16:22:30 +00:00
Alexandre Duret-Lutz
6884a7f985 * configure.ac: Output src/tgbaparse/Makefile.
* src/Makefile.am (SUBDIRS): Add tgbaparse.
(libspot_la_LDADD): Add tgbaparse/libtgbaparse.la.
* src/tgba/tgbaexplicit.cc (tgba_explicit::get_condition,
tgba_explicit::get_promise, tgba_explicit::add_neg_condition,
tgba_explicit::add_neg_promise): New methods.
* src/tgba/tgbaexplicit.hh: Declare them.
* src/tgbaparse/Makefile.am, src/tgbaparse/fmterror.cc,
src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
src/tgbaparse/tgbaparse.yy, src/tgbaparse/tgbascan.ll,
src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test: New files.
* src/tgbatest/Makefile.am (check_PROGRAMS): Add tgbaread.
(TESTS): Add tgbaread.cc.
(CLEANFILES): Add input.
(tgbaread_SOURCES): New variable.
2003-06-05 15:22:42 +00:00
Alexandre Duret-Lutz
80dd0ae140 * configure.ac: Output src/tgbatest/Makefile and src/tgbatest/defs.
* src/Makefile.am (SUBDIRS): Add tgbatest.
* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: New file.
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgbaexplicit.cc
and tgbaexplicit.hh.
* src/tgbatest/Makefile.am, src/tgbatest/defs.in,
src/tgbatest/explicit.cc, src/tgbatest/explicit.test: New files.
2003-06-05 12:15:03 +00:00