1. 18 Nov, 2009 3 commits
  2. 17 Nov, 2009 1 commit
  3. 11 Nov, 2009 1 commit
  4. 10 Nov, 2009 4 commits
    • Alexandre Duret-Lutz's avatar
      Do not comment states in the never claim by default. It takes too · 8c6a2b33
      Alexandre Duret-Lutz authored
      much time when the formula is large, and it is useless when the
      purpose is model-checking with Spin.
      
      * src/tgbaalgos/neverclaim.hh (never_claim_reachable): Add the
      comments option.
      * src/tgbaalgos/neverclaim.cc (never_claim_bfs,
      never_claim_reachable): Honor the comment option.
      * src/tgba/tests/ltl2tgba.cc (-N): Do not comment states.
      (-NN) New option to output a commented never claim.
      8c6a2b33
    • Damien Lefortier's avatar
      * src/tgba/taa.cc, src/tgba/taa.hh: Fix it. · 1d8b115b
      Damien Lefortier authored
      * src/tgbaalgos/ltl2taa.cc: Do NOT use the same bdd_dict for both
      the translation and the language containment checker.
      * src/tgbatest/spotlbtt.test: Update TAA related tests.
      1d8b115b
    • Alexandre Duret-Lutz's avatar
      Use tgba_explicit_formula instead of tgba_explicit_string in FM. · 007e2bd0
      Alexandre Duret-Lutz authored
      This gives a nice speedup (>1.4) in the ltlcounter benchmark,
      because we no longer have to generate a copy the string
      representations of the LTL formulae.
      
      * src/tgbaalgos/ltl2tgba_fm.cc: Adjust.  Also get rid of the
      formulae_seen map, since we can now ask the tgba_explicit_formula
      if it knows the state.
      007e2bd0
    • Alexandre Duret-Lutz's avatar
      Introduce tgba_explicit_labelled<label> so that we can build · 4e22bb8b
      Alexandre Duret-Lutz authored
      tgba_explicit instances labelled by other objects than strings.
      
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
      Split tgba_explicit in two levels: tgba_explicit with unlabelled
      states, and tgba_explicit_labelled templated by the type of
      the label.  Define tgba_explicit_string (with the interface
      of the former tgba_explicit class) and tgba_explicit_formula
      for future use in ltl2tgba.cc.
      * src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
      src/tgbaalgos/cutscc.cc, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc: Adjust to
      use tgba_explicit_string when appropriate.
      4e22bb8b
  5. 09 Nov, 2009 2 commits
    • Alexandre Duret-Lutz's avatar
      Deprecate ltl::destroy(f) in favor of f->destroy() · 77df39b4
      Alexandre Duret-Lutz authored
      * src/ltlast/formula.cc, src/ltlast/formula.hh (formula::clone):
      Transform this static function into a member function.
      * src/ltlvisit/destroy.hh (destroy): Document and declare as
      deprecated.
      * bench/split-product/cutscc.cc, iface/gspn/ltlgspn.cc,
      src/eltlparse/eltlparse.yy, src/eltltest/acc.cc,
      src/evtgbaalgos/tgba2evtgba.cc, src/evtgbatest/ltl2evtgba.cc,
      src/ltlast/automatop.cc, src/ltlast/binop.cc,
      src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
      src/ltlenv/declenv.hh, src/ltlparse/ltlparse.yy,
      src/ltltest/equals.cc, src/ltltest/randltl.cc,
      src/ltltest/readltl.cc, src/ltltest/reduc.cc,
      src/ltltest/syntimpl.cc, src/ltltest/tostring.cc,
      src/ltlvisit/destroy.cc src/ltlvisit/basicreduce.cc,
      src/ltlvisit/contain.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
      src/tgba/bddprint.cc, src/tgba/taa.cc,
      src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbaexplicit.cc,
      src/tgba/tgbafromfile.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/complementation.cc, src/tgbatest/eltl2tgba.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/randtgba.cc,
      src/tgbatest/reductgba.cc, wrap/python/cgi/ltl2tgba.in,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
      wrap/python/tests/ltlsimple.py: Adjust destroy() usage, and remove
      the #include "destroy.hh" when appropriate.
      77df39b4
    • Alexandre Duret-Lutz's avatar
      Deprecate ltl::clone(f) in favor of f->clone(). · 48fb19ea
      Alexandre Duret-Lutz authored
      * src/ltlvisit/clone.hh (clone): Document and declare as deprecated.
      * src/ltlast/formula_tree.cc, src/ltlvisit/basicreduce.cc,
      src/ltlvisit/clone.cc, src/ltlvisit/contain.cc,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
      src/tgba/formula2bdd.cc, src/tgba/tgbabddconcretefactory.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbatest/complementation.cc, wrap/python/tests/ltlsimple.py:
      Adjust clone() usage, and remove the #include "clone.hh" when
      appropriate.
      48fb19ea
  6. 07 Nov, 2009 1 commit
  7. 22 Oct, 2009 3 commits
    • Alexandre Duret-Lutz's avatar
      Escape labels in -KV output. · 913637a7
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/scc.cc (dump_scc_dot): Escape labels and other
      strings output between quote in dot.
      * src/tgbatest/kv.test: New file.
      * src/tgbatest/Makefile.am (TESTS): Add it.
      913637a7
    • Alexandre Duret-Lutz's avatar
      4d8239e8
    • Damien Lefortier's avatar
      Improve ltl_to_taa. · 7ce27ef9
      Damien Lefortier authored
      * src/tgba/taa.cc, src/tgba/taa.hh: taa_succ_iterator is not
      on-the-fly anymore allowing some redundant transitions to be
      removed. Also a new function to output a TAA.
      * src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: Add the
      refined rules from Tauriainen.
      * src/tgbatest/ltl2tgba.cc: Use -c to activate refined rules in
      ltl_to_taa.
      * src/tgbatest/spotlbtt.test: More tests.
      7ce27ef9
  8. 17 Oct, 2009 1 commit
  9. 16 Oct, 2009 2 commits
    • Damien Lefortier's avatar
      Minor fixes. · 84060b49
      Damien Lefortier authored
      * src/misc/bddop.hh, src/tgba/taa.hh, src/tgbaalgos/ltl2taa.hh:
      Fix sanity (incorrect include guard).
      * src/tgba/tgbacomplement.cc, src/tgba/tgbacomplement.hh:
      Copyright 2009.
      * src/tgbaalgos/eltl2tgba_lacim.cc: Use abbreviations.
      * src/tgbatest/taa.cc: Fix it.
      84060b49
    • Damien Lefortier's avatar
      Add a new algorithm (from Tauriainen) to translate LTL formulae to · 627b6677
      Damien Lefortier authored
      TGBA which uses TAA as an intermediate representation.  This is a
      basic version, optimizations and enhancements will come later.
      
      * src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2taa.hh: The algortihm.
      * src/tgbaalgos/Makefile.am: Adjust.
      * src/tgbatest/ltl2tgba: New option: -taa, which uses this new
      translation algorithm.
      * src/tgbatest/spotlbtt.test: Add ltl2tgba -taa.
      627b6677
  10. 28 Sep, 2009 1 commit
  11. 18 Sep, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      Optimize previous patch. · fd0de04d
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/scc.hh (scc_map::scc::supp_rec): Initialize to
      bddfalse, since this cannot occur in reallife.
      * src/tgbaalgos/scc.cc (scc_map::update_supp_rec): Adjust.
      fd0de04d
  12. 17 Sep, 2009 2 commits
  13. 08 Jul, 2009 1 commit
    • Flix Abecassis's avatar
      Add 2 benchmarks directories. · 414956c5
      Flix Abecassis authored
      Add an algorithm to split an automaton in several automata.
      
      * bench/scc-stats: New directory.  Contains input files and test
      program for computing statistics.
      * bench/split-product: New directory.  Contains test program for
      synchronised product on splitted automata.
      * bench/split-product/models: New directory.  Contains Promela
      files and LTL formulae that should be verified by the models.
      * src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh:
      New files.  Small class to avoid long initializations with numerous
      constants when translating to TGBA many LTL formulae from a
      given file.
      * src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh:
      New file.  From a single automaton, create, at most,
      X sub automata.
      * src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh:
      Adjust to compute self-loops count.
      414956c5
  14. 09 Jun, 2009 1 commit
  15. 05 Jun, 2009 2 commits
    • Guillaume Sadegh's avatar
      Add an algorithm to complement Büchi automata. · c5f8eafb
      Guillaume Sadegh authored
      	* src/tgba/tgbacomplement.hh, src/tgba/tgbacomplement.cc: New
      	files. The complementation algorithm.
      	* src/tgba/Makefile.am: Adjust.
      	* src/tgbatest/complementation.test,
      	src/tgbatest/complementation.cc: New files. Test suite for the
      	complementation algorithm.
      	* src/tgbatest/Makefile.am: Adjust.
      	* src/tgbaalgos/Makefile.am: Reformat the header using 80
      	columns.
      c5f8eafb
    • Damien Lefortier's avatar
      Modify the ELTL parser to be able to support PSL operators. Add a · e48338e8
      Damien Lefortier authored
      new keyword in the ELTL format: finish, which applies to an
      automaton operator and tells whether it just completed.
      
      * src/eltlparse/eltlparse.yy: Clean it. Add finish.
      * src/eltlparse/eltlscan.ll: Add finish.
      * src/formula_tree.cc, src/formula_tree.hh: New files. Define a
      small AST representing formulae where atomic props are unknown
      which is used in the ELTL parser.
      * src/ltlast/automatop.cc, ltlast/automatop.hh, ltlast/nfa.cc,
      ltlast/nfa.hh: Adjust.
      * src/ltlast/unop.cc, src/ltlast/unop.hh: Finish is an unop.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc,
      src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Handle finish in switches.
      * src/tgbaalgos/eltl2tgba_lacim.cc: Translate finish.
      * src/tgbatest/eltl2tgba.test: More tests.
      e48338e8
  16. 02 Jun, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgbatest/scc.test: New file. · a2b6bef0
      Alexandre Duret-Lutz authored
      * src/tgbatest/Makefile.am: Adjust.
      * src/tgbaalgos/scc.hh: More documentation.
      * src/tgbaalgos/scc.cc (scc_recurse): Fix computation of
      acc_paths and dead_paths.  Prevent recursions in states that
      have already been visited.
      a2b6bef0
  17. 28 May, 2009 6 commits
    • Alexandre Duret-Lutz's avatar
      Test "ltl2tgba -FC" and plug the memory leaks of scc_map. · 35298429
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/scc.hh (scc_map::~scc_map): Declare it.
      * src/tgbaalgos/scc.cc (scc_map::~scc_map): Implement it.
      (scc_map::build_map): Delete duplicate states.
      * src/tbbatest/ltl2tgba.test: Run ltl2tgba -FV to catch
      memory leaks with valgrind.
      35298429
    • Alexandre Duret-Lutz's avatar
      * src/tgbaalgos/scc.cc (dump_scc_dot): Use a bit vector instead of · a375972f
      Alexandre Duret-Lutz authored
      a map to track visited SCC since they are sequentially numbered.
      a375972f
    • Alexandre Duret-Lutz's avatar
      Number states using negative values and SCCs using nonnegative · 15b3b9e0
      Alexandre Duret-Lutz authored
      values.
      
      Before this change states were numbered using positive values and
      SCCs using negative values.  That meant the user had to work with
      negative values.  With this changes, the nonnegative values used
      to label SCCs can also directly be used as index in the scc_map_.
      
      * src/tgbaalgos/scc.hh (scc_map::scc_of_state,
      scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of,
      scc_map::initial, scc_map::scc_type, scc_map::succ,
      scc_map::accepting): Adjust prototypes to take or return unsigned
      arguments.
      * src/tgbaalgos/scc.cc: Adjust prototypes of the above functions.
      (scc_map::build_map, scc_map::relabel_component): Number states
      using negative values, and SCCs using nonnegative values.
      (dump_scc_dot): Adjust to use nonnegative values.
      15b3b9e0
    • Alexandre Duret-Lutz's avatar
      Store the scc_map_ as a vector instead of a std::map. There is no · 96a7a49c
      Alexandre Duret-Lutz authored
      point in using a map since the SCC are numbered in sequence.
      
      * src/tgbaalgos/scc.hh (scc_map::relabel_component): Return the
      number of the SCC instead of taking it as argument.
      (scc_map::scc_num_): Delete this variable.  scc_map_.size() gives
      the same information.
      (scc_map::scc_map_type): Define using std::vector instead of
      std::map.
      * src/tgbaalgos/scc.cc: Adjust all uses.
      96a7a49c
    • Alexandre Duret-Lutz's avatar
      Keep track of conditions in SCC, and add a more verbose dump. · 07ead613
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/scc.hh (scc_map::scc_of_state,
      scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
      New functions.
      (scc_map::scc::conds): New attribute.
      (dump_scc_dot): Take an optional VERBOSE argument.
      * src/tgbaalgos/scc.cc (scc_map::scc_of_state,
      scc_map::cond_set_of, scc_map::acc_set_of, scc_map::states_of):
      Implement these new functions.
      (dump_scc_dot): Display number of states, conditions and
      acceptance conditions, with VERBOSE is set.
      (build_map): Fill the new scc_map::scc::cond field.
      07ead613
    • Alexandre Duret-Lutz's avatar
      Fix assertion in scc.cc · cbfdcca1
      Alexandre Duret-Lutz authored
      cbfdcca1
  18. 26 Apr, 2009 1 commit
    • Damien Lefortier's avatar
      Extend the ELTL parser to support more complex aliases of · b06c9cd5
      Damien Lefortier authored
      automaton operators such as Strong=G(F($0))->G(F($1)) and
      G=R(false, $0).
      
      * src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
      support for more complex aliases.
      * src/eltltest/acc.cc, src/eltltest/acc.test: Adjust.
      * src/ltlast/nfa.cc, src/ltlast/nfa.hh (arity): Now returns an
      unsigned value.
      * src/tgbatest/eltl2tgba.test: Adjust.
      * src/tgbalagos/eltl2tgba_lacim.cc: Fix sanity.
      b06c9cd5
  19. 08 Apr, 2009 1 commit
    • Damien Lefortier's avatar
      Correct LaCIM for ELTL and make it work with LBTT. · 7643c49c
      Damien Lefortier authored
      * src/eltlparse/eltlparse.yy: Adjust.
      * src/ltlast/automatop.cc, src/ltlast/automatop.hh,
      src/ltlvisit/clone.cc, src/ltlvisit/nenoform.cc: Clean the way we
      handle the negation of automaton operators.
      * src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh: Add an
      optional argument to output a fully parenthesized string.
      * src/tgbaalgos/eltl2tgba_lacim.cc: Fix it.
      * src/tgbatest/eltl2tgba.cc: Add a new option (-L) to read formulae
      from an LBTT-compatible file.
      * src/tgbatest/eltl2tgba.test: A new tests.
      * src/tgbatest/spotlbtt.test: Add LaCIM for ELTL.
      7643c49c
  20. 26 Mar, 2009 1 commit
    • Damien Lefortier's avatar
      Add support for ELTL (AST & parser), and an adaptation of LaCIM · 2fbcd7e5
      Damien Lefortier authored
      for ELTL.  This is a new version of the work started in 2008 with
      LTL and ELTL formulae now sharing the same class hierarchy.
      
      * configure.ac: Adjust for src/eltlparse/ and src/eltltest/
      directories, and call AX_BOOST_BASE.
      * m4/boost.m4: New file defining AX_BOOST_BASE([MINIMUM-VERSION]).
      * src/Makefile.am: Add eltlparse and eltltest.
      * src/eltlparse/: New directory.  Contains the ELTL parser.
      * src/eltltest/: New directory.  Contains tests related to
      ELTL (parser and AST).
      * src/ltlast/Makefile.am: Adjust for ELTL AST files.
      * src/ltlast/automatop.cc, src/ltlast/automatop.hh: New files.
      Represent automaton operators nodes used in ELTL ASTs.
      * src/ltlast/nfa.cc, src/ltlast/nfa.hh: New files.  Represent
      simple NFAs used internally by automatop nodes.
      * src/ltlast/allnode.hh, src/ltlast/predecl.hh,
      src/ltlast/visitor.hh: Adjust for automatop.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/dotty.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc: Because LTL and ELTL formulae share the
      same class hierarchy, LTL visitors need to handle automatop nodes
      to compile.  When it's meaningful the visitor applies on automatop
      nodes or simply assert(0) otherwise.
      * src/tgba/tgbabddconcretefactory.cc (create_anonymous_state),
      src/tgba/tgbabddconcretefactory.hh (create_anonymous_state): New
      function used by the LaCIM translation algorithm for ELTL.
      * src/tgbaalgos/Makefile.am: Adjust for eltl2tgba_lacim* files.
      * src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/eltl2tgba_lacim.hh: New files.  Implementation of
      the LaCIM translation algorithm for ELTL.
      * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
      Handle automatop nodes in the translation by an assert(0).
      * src/tgbatest/Makefile.am: Adjust for eltl2tgba.* files.
      * src/src/tgbatest/eltl2tgba.cc, src/tgbatest/eltl2tgba.test: New
      files
      2fbcd7e5
  21. 25 Mar, 2009 2 commits
  22. 18 Dec, 2008 1 commit
  23. 11 Dec, 2008 1 commit