1. 26 Nov, 2003 1 commit
  2. 25 Nov, 2003 1 commit
  3. 24 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Explicit automata can now have arbitrary logic formula on their · 20289e4e
      Alexandre Duret-Lutz authored
      arcs.  ltl2tgba_fm benefits from this and join multiple arcs with
      the same destination and acceptance conditions.
      * src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
      * src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
      bdd_format_formula): New functions.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
      tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
      tgba_explicit::declare_accepting_condition,
      tgba_explicit::has_accepting_condition,
      tgba_explicit::get_accepting_condition,
      tgba_explicit::add_accepting_condition): Take a const formula*.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
      Rewrite using formula_to_bdd.
      * src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
      bdd_print_formula to display conditions.
      * src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
      * src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
      New function.
      (translate_dict::conj_bdd_to_atomic_props): Remove.
      (ltl_to_tgba_fm): Factor successors on accepting conditions
      and destinations, not conditions.  Use bdd_to_formula to translate
      the conditions.
      * src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
      in a string, call the LTL parser for this.
      * src/tgbaparse/tgbascan.ll: Process " and \ escapes in
      strings.
      * src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
      src/tgbatest/tripprod.test: Adjust to new syntax for explicit
      automata.
      20289e4e
  4. 21 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * COPYING: New file. · 43a91a15
      Alexandre Duret-Lutz authored
      * Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
      iface/gspn/Makefile.am, iface/gspn/common.cc,
      iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
      iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
      iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
      src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
      src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
      src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/constant.cc,
      src/ltlast/constant.hh, src/ltlast/formula.cc,
      src/ltlast/formula.hh, src/ltlast/multop.cc, src/ltlast/multop.hh,
      src/ltlast/predecl.hh, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
      src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
      src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
      src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
      src/ltlparse/public.hh, src/ltltest/Makefile.am,
      src/ltltest/defs.in, src/ltltest/equals.cc,
      src/ltltest/equals.test, src/ltltest/lunabbrev.test,
      src/ltltest/nenoform.test, src/ltltest/parse.test,
      src/ltltest/parseerr.test, src/ltltest/readltl.cc,
      src/ltltest/tostring.cc, src/ltltest/tostring.test,
      src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
      src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
      src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
      src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
      src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
      src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
      src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
      src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
      src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
      src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
      src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
      src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
      src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh,
      src/tgba/tgbabddconcreteproduct.cc,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
      src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
      src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
      src/tgbaalgos/Makefile.am, src/tgbaalgos/dotty.cc,
      src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
      src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
      src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
      src/tgbaalgos/save.hh, 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/Makefile.am,
      src/tgbatest/bddprod.test, src/tgbatest/defs.in,
      src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
      src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/ltl2tgba.test,
      src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
      wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
      wrap/python/spot.i, wrap/python/cgi/Makefile.am,
      wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
      wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
      wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
      wrap/python/tests/run.in: Add Copyright license.
      43a91a15
  5. 14 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/Makefile.am (AM_CXXFLAGS): New variable. · 982c5efc
      Alexandre Duret-Lutz authored
      * 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.
      982c5efc
  6. 27 Oct, 2003 1 commit
  7. 30 Sep, 2003 1 commit
  8. 11 Sep, 2003 1 commit
  9. 29 Aug, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/tgba/state.hh (state::hash): New method. · f0de3868
      Alexandre Duret-Lutz authored
      (state_ptr_equal, state_ptr_hash): New functors.
      * src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash):
      New method.
      * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
      (state_explicit::hash): New method.
      (ns_map, sn_map): Use Sgi::hash_map instead of std::map.
      * src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
      (state_product::hash): New method.
      * src/tgba/tgbatba.cc (state_tba_proxy::hash): New method.
      * src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine
      using Sgi::hash_map or Sgi::hash_set.
      (lbtt_reachable): Don't erase a key that is pointed to by an
      iterator.
      * src/tgbaalgos/reachiter.cc
      (tgba_reachable_iterator::~tgba_reachable_iterator): Likewise.
      * src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise.
      * src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map.
      * src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map.
      * iface/gspn/gspn.cc (state_gspn::hash): New method.
      * src/misc/hash.hh (string_hash): New functor.
      f0de3868
    • Alexandre Duret-Lutz's avatar
      * src/tgba/tgbaexplicit.cc (tgba_explicit::all_accepting_conditions) · 6da1f356
      Alexandre Duret-Lutz authored
      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.
      6da1f356
  10. 28 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Rewrite all std::map<const formula*, ...> as · 19551509
      Alexandre Duret-Lutz authored
      Sgi::hash_map<const formula*, ...>.
      
      * src/misc/hash.hh: New file.
      * src/misc/Makefile.am (misc_HEADERS): Add it.
      * src/ltlvisit/dotty.cc (dotty_visitor::map): Use a hash_map instead
      of a map.
      * src/tgba/bdddict.hh (bdd_dict::fv_map, bdd_dict::vf_map,
      bdd_dict::ref_set, bdd_dict::var_map): Define as hash_map or
      hash_set.
      * src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::fv_map,
      translate_dict::vf_map): Likewise.
      * src/tgba/tgbabddconcretefactory.hh
      (tgba_bdd_concrete_factory::acc_map_): Likewise.
      * src/tgba/tgbatba.hh, src/tgbaalgos/reachiter.hh: Include <map>.
      19551509
  11. 25 Aug, 2003 1 commit
  12. 22 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix computation of product acceptance conditions, when the · 7db71d9a
      Alexandre Duret-Lutz authored
      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.
      7db71d9a
  13. 20 Aug, 2003 1 commit
  14. 15 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      This implements Couvreur's FM'99 ltl2tgba translation. · 2b9f1720
      Alexandre Duret-Lutz authored
      * 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.
      2b9f1720
  15. 14 Aug, 2003 1 commit
  16. 10 Aug, 2003 3 commits
    • Alexandre Duret-Lutz's avatar
      Revamp the multop interface to allow some basic optimizations like · de6314ed
      Alexandre Duret-Lutz authored
      not constructing a single-child multop.
      * src/ltlast/multop.hh (multop::instance(type)): Remove.
      (multop::instance(type, formula*, formula*)): Return a formula*.
      (multop::instance(type, vec*)): Make it public and return a formula*.
      (multop::add_sorted, multop::add):
      * src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite.
      (multop::instance(type)): Delete.
      (multop::instance(type, formula*, formula*)): Adjust.
      (multop::add_sorted, multop::add): Remove.
      * src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust.
      * src/ltlvisit/nenoform.cc
      (negative_normal_form_visitor::::visit(multop*)) Adjust.
      * src/ltltest/equals.test: Make sure `a & a' and `a' are equals.
      * wrap/python/tests/ltlsimple.py: Adjust.
      de6314ed
    • Alexandre Duret-Lutz's avatar
      * src/tgba/succiterconcrete.cc, src/tgba/tgbaexplicit.cc, · 317fed59
      Alexandre Duret-Lutz authored
      src/tgba/tgbatba.cc, src/tgbaalgos/lbtt.cc: Use `-' instead of `& !'
      between two BDDs.  That's one less call to BuDDy.
      317fed59
    • Alexandre Duret-Lutz's avatar
      07fc5d35
  17. 30 Jul, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      * iface/gspn/Makefile.am (TESTS): Add dcswaveltl.test. · 372d4907
      Alexandre Duret-Lutz authored
      (ltlgspn_rg_LDADD, ltlgspn_srg_LDADD, ltlgspn_rg_SOURCES)
      (ltlgspn_srg_SOURCES): New variables.
      (check_PROGRAMS): Add ltlgspn-rg and ltlgspn-srg.
      
      * iface/gspn/Makefile.am (gspn_HEADERS, gspndir): Install
      gspn.hh.
      372d4907
    • Alexandre Duret-Lutz's avatar
      * src/tgba/tgba.hh, src/tgba/tgba.cc · 24099078
      Alexandre Duret-Lutz authored
      (tgba::project_state): New method.
      * src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
      (tgba_product::project_state): New method.
      * src/tgba/tgbabta.hh, src/tgba/tgbabta.cc
      (tgba_bta_proxy::project_state): New method.
      * src/tgbaalgos/magic.cc (magic_search::print_result): Take
      a restrict argument.
      24099078
  18. 28 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgba/tgbatba.hh, src/tgba/tgbatba.cc · 860d085b
      Alexandre Duret-Lutz authored
      (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.
      860d085b
  19. 25 Jul, 2003 1 commit
  20. 17 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Now succ_iter() can fetch extra information from · 1d9c3d64
      Alexandre Duret-Lutz authored
      the root of a product to reduce its number of successors.
      * src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgba.cc.
      * src/tgba/tgba.hh (tgba::succ_iter): Add the global_state and
      global_automaton arguments.
      (tgba::support_conditions, tgba::support_variables,
      tgba::compute_support_conditions, tgba::compute_support_variables):
      New functions.
      (tgba::last_support_conditions_input_,
      tgba::last_support_conditions_output_,
      tgba::last_support_variables_input_,
      tgba::last_support_variables_output_): New attributes.
      * src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
      Handle the two new arguments.
      (tgba_bdd_concrete::compute_support_conditions,
      tgba_bdd_concrete::compute_support_variables): Implement them.
      * src/tgba/tgbabddconcrete.hh: Adjust.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::succ_iter):	Ignore
      the two new arguments.
      (tgba_explicit::compute_support_conditions,
      tgba_explicit::compute_support_variables): Implement them.
      * src/tgba/tgbaexplicit.hh: Adjust.
      * src/tgba/tgbaproduct.cc (tgba_product::succ_iter): Handle the
      two new arguments.
      (tgba_product::compute_support_conditions,
      tgba_product::compute_support_variables): Implement them.
      * src/tgba/tgbaproduct.hh: Adjust.
      * iface/gspn/gspn.cc (tgba_gspn_private_::last_state_cond_input,
      tgba_gspn_private_::last_state_cond_output,
      (tgba_gspn_private_::tgba_gspn_private_): Set last_state_cond_input.
      (tgba_gspn_private_::~tgba_gspn_private_): Delete
      last_state_cond_input.
      (tgba_gspn_private_::state_conds): New function, eved out
      from tgba_gspn::succ_iter.
      (tgba_gspn::succ_iter): Use it.  Use the two new arguments.
      (tgba_gspn::compute_support_conditions,
      tgba_gspn::compute_support_variables): New functions.
      * iface/gspn/gspn.hh: Adjust.
      1d9c3d64
  21. 15 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Homogenize passing of automata as pointers, not references. · 66b1630c
      Alexandre Duret-Lutz authored
      Disallow copy for security.
      
      * src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
      * src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
      tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
      * src/tgba/tgbabddconcreteproduct.cc
      (tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
      product): Take operand automata as pointers.
      * src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
      * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
      (tgba_product): Disallow copy.
      (tgba_product::tgba_product): Take operand automata as pointers.
      * src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
      Take tgba arguments as pointer.
      * src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
      * src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
      * src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
      Likewise.
      * src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
      * src/tgbaalgos/save.hh (save): Likewise.
      * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
      src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
      src/tgbatest/tripprod.cc: Likewise.
      66b1630c
  22. 14 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Before this change, all automata would construct their own · cab3be97
      Alexandre Duret-Lutz authored
      dictionaries (map of BDD variables to LTL formulae).  This was
      cumbersome, because to multiply two automata we had to build a
      common dictionary (the union of the two LTL formula spaces), and
      install wrappers to translate each automaton's BDD answers into
      the common dictionary.  This translation, that had to be repeated
      when several products were nested, was time consuming and was a
      hindrance for some optimizations.
      In the new scheme, all automata involved in a product must
      share the same dictionary.  An empty dictionary should be
      constructed by the user and passed to the automaton' constructors
      as necessary.
      This huge change removes most code than it adds.
      
      * src/Makefile.am (libspot_la_LIBADD): Add misc/libmisc.la.
      * src/misc/bddalloc.hh, src/misc/bddalloc.cc: New files.  These
      partly replace src/tgba/bddfactory.hh and src/tgba/bddfactory.cc.
      * src/misc/Makefile.am: Adjust to build bddalloc.hh and bddalloc.cc.
      * src/tgba/bddfactory.hh, src/tgba/bddfactory.cc,
      src/tgba/dictunion.hh, src/tgba/dictunion.cc,
      src/tgba/tgbabdddict.hh, src/tgba/tgbabdddict.cc,
      src/tgba/tgbabddtranslatefactory.hh,
      src/tgba/tgbabddtranslatefactory.cc,
      src/tgba/tgbatranslateproxy.hh, src/tgba/tgbatranslateproxy.cc:
      Delete.
      * src/tgba/bdddict.hh, src/tgba/bdddict.cc: New files.  These
      replaces tgbabdddict.hh and tgbabdddict.cc, and also part of
      bddfactory.hh and bddfactory.cc.
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh: Adjust to
      use bdd_dict* instead of tgba_bdd_dict&.
      * src/tgba/succiterconcrete.cc (succ_iter_concrete::next()):
      Get next_to_now from the dictionary.
      * src/tgba/tgba.hh (tgba::get_dict): Return a bdd_dict*,
      not a const tgba_bdd_dict*.
      * src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh:
      Adjust to use the new dictionary, stored in data_.
      * src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh: Likewise.  Plus
      now_to_next_ is now also stored in the dictionary.
      * src/tgba/tgbabddconcreteproduct.cc: Likewise.  Now
      that both operand share the same product, there is not
      point in using tgba_bdd_translate_factory.
      * src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh:
      Store a bdd_dict (taken as constructor argument).
      (tgba_bdd_core_data::~tgba_bdd_core_data): Remove.
      (tgba_bdd_core_data::translate): Remove.
      (tgba_bdd_core_data::next_to_now): Remove (now in dict).
      (tgba_bdd_core_data::dict): New pointer.
      * src/tgba/tgbabddfactory.hh: (tgba_bdd_factory::get_dict): Remove.
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
      Adjust to use the new dictionary.
      * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Likewise.  Do
      not use tgba_bdd_dict_union and tgba_bdd_translate_proxy anymore.
      * src/tgbaalgos/lbtt.cc, src/tgbaalgos/save.cc: Adjust to
      use bdd_dict* instead of tgba_bdd_dict&.
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.cc: Likewise.
      (ltl_to_tgba): Take a dict argument.
      * src/tgbaparse/public.hh (tgba_parse): Take a dict argument.
      * src/tgbaparse/tgbaparse.yy (tgba_parse): Take a dict argument.
      * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
      src/tgbatest/readsave.cc, src/tgbatest/spotlbtt.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc: Instantiate
      a dictionary, and pass it to the automata' constructors.
      * src/tgbatest/ltl2tgba.cc: Likewise, and remove the -o (defrag)
      option.
      * iface/gspn/gspn.hh (tgba_gspn::tgba_gspn): Take a bdd_dict argument.
      (tgba_gspn::get_dict): Adjust return type.
      * iface/gspn/gspn.cc: Do not use bdd_factory, adjust to
      use the new dictionary instead.
      cab3be97
  23. 10 Jul, 2003 3 commits
  24. 09 Jul, 2003 1 commit
  25. 08 Jul, 2003 2 commits
  26. 07 Jul, 2003 4 commits
  27. 03 Jul, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/tgba/tgbaproduct.cc (tgba_product_succ_iterator::first): · 4432b238
      Alexandre Duret-Lutz authored
      Simplify, do not call next_non_false_() either side is done.
      4432b238
    • Alexandre Duret-Lutz's avatar
      * src/tgba/succiter.hh (tgba_succ_iterator::current_condition): · c09f646e
      Alexandre Duret-Lutz authored
      State that this is a boolean function.
      * src/tgba/succiterconcrete.hh
      (tgba_succ_iterator_concrete::trans_dest_,
      tgba_succ_iterator_concrete::trans_set_,
      tgba_succ_iterator_concrete::trans_set_left_,
      tgba_succ_iterator_concrete::neg_trans_set_): Remove.
      * src/tgba/succiterconcrete.cc
      (tgba_succ_iterator_concrete::tgba_succ_iterator_concrete,
      tgba_succ_iterator_concrete::first): Adjust to removed members.
      (tgba_succ_iterator_concrete::next): Simplify, transitions
      are no labelled by boolean functions, not only conjunctions.
      Suggested by Denis Poitrenaud.
      c09f646e
  28. 02 Jul, 2003 2 commits