1. 09 Apr, 2011 1 commit
  2. 04 Apr, 2011 1 commit
  3. 03 Apr, 2011 1 commit
  4. 31 Mar, 2011 3 commits
    • Alexandre Duret-Lutz's avatar
      Introduct a down_cast macro. · 9f63bb66
      Alexandre Duret-Lutz authored
      * src/misc/casts.hh: New file.
      * src/misc/Makefile.am: Add it.
      * iface/dve2/dve2.cc, iface/gspn/gspn.cc, iface/gspn/ssp.cc,
      src/evtgba/explicit.cc, src/evtgba/product.cc, src/misc/casts.hh,
      src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/taatgba.cc,
      src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbakvcomplement.cc, src/tgba/tgbaproduct.cc,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
      src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
      src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reductgba_sim.cc,
      src/tgbaalgos/reductgba_sim_del.cc: Use down_cast when
      appropriate.
      9f63bb66
    • Alexandre Duret-Lutz's avatar
      Cosmetics. · 12783ff7
      Alexandre Duret-Lutz authored
      * src/sanity/style.test: Catch some binary operators not
      delimited with spaces.
      * src/tgbaalgos/bfssteps.cc, src/tgbaalgos/magic.cc,
      src/tgbaalgos/reducerun.cc, src/tgbaalgos/se05.cc,
      src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Fix these.
      12783ff7
    • Alexandre Duret-Lutz's avatar
      Make state_explicit instances persistent objects. · 36f7c648
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Merge
      state_explicit and tgba_explicit::state.  In the past,
      state_explicit was a small object encapsulating a pointer to the
      persistent tgba_explicit::state; and we used to clone() and
      destroy() a lot of state_explicit instance.  Now state_explicit is
      persistent, and clone() and destroy() have no effects.
      * src/tgba/tgbareduce.cc: Adjust, since this inherits from
      tgbaexplicit and uses the internals of state_explicit.
      * src/tgbatest/reductgba.cc: Fix deletion order for automata.
      * src/tgba/tgba.hh (last_support_conditions_input_,
      last_support_variables_input_): Make these protected, so
      they can be zeroed by tgba_explicit.
      36f7c648
  5. 30 Mar, 2011 4 commits
    • Alexandre Duret-Lutz's avatar
      Remove tgba_reduc::format_state(). · cd900a40
      Alexandre Duret-Lutz authored
      * src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh (format_state):
      Remove this useless copy of the tgba_explicit_string::format_state
      method.
      cd900a40
    • Alexandre Duret-Lutz's avatar
      Protect the state destructor. · 29a908cc
      Alexandre Duret-Lutz authored
      Client code should always call the destroy() method instead.  (It
      was introduced in Spot 0.7.)
      
      * src/tgba/state.hh (state::~state): Make it protected.
      29a908cc
    • Alexandre Duret-Lutz's avatar
      Speedup tgba_product when one of the argument is a Kripke structure. · 94ac863c
      Alexandre Duret-Lutz authored
      The gain is not very impressive.  The runtime of the first example
      in iface/dve2/README (also in dve2check.test) is 15% faster.
      
      * src/tgba/tgbaproduct.hh (tgba_succ_iterator_product): Move ...
      * src/tgba/tgbaproduct.cc (tgba_succ_iterator_product,
      tgba_succ_iterator_product_common): ... in these two classes.
      (tgba_succ_iterator_product_kripke): New class to speedup
      successor computation on Kripke structures.  We can assume that
      all the transitions leaving the same state have the same label.
      (tgba_product::tgba_product, tgba_product::succ_iter): Use
      tgba_succ_iterator_product_kripke when appropriate.
      (tgba_product_init::tgba_product_init): Adjust for the case
      where tgba_product did reverse its operands.
      94ac863c
    • Alexandre Duret-Lutz's avatar
  6. 21 Mar, 2011 1 commit
  7. 17 Mar, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Improve a reduction rule for "a M b". · 1878bfd0
      Alexandre Duret-Lutz authored
      * src/ltlvisit/reduce.cc (reduce_visitor): Always reduce "a M b"
      to "a & b" if "a" is a pure eventual formula, remove the
      constraint on "b".
      * src/ltltest/reduccmp.test: Add two tests.
      1878bfd0
  8. 07 Mar, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Clear the timer map to help valgrind. · 0584d278
      Alexandre Duret-Lutz authored
      * src/misc/timer.hh (reset_all): New method.
      * iface/dve2/dve2check.cc: Use it to help valgrind.
      0584d278
    • Alexandre Duret-Lutz's avatar
      Allow atomic propositions and identifiers like `X.Y'. · 4a622249
      Alexandre Duret-Lutz authored
      * src/ltlparse/ltlscan.ll: Do not recognize `.' as an AND.  Allow
      it in atomic propositions.
      * src/evtgbaparse/evtgbascan.ll, src/tgbaparse/tgbascan.ll: Accept
      `.' in identifiers.
      * src/misc/bareword.cc (is_bareword): Accept `.' inside
      barewords, so that there is no need to quote `X.Y'.
      * src/ltltest/parse.test: Do not use `.' as and operator..
      4a622249
  9. 05 Mar, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Using double borders for acceptance states in SBAs. · e1ef47d9
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/dotty.hh (dotty_reachable): Take a new
      assume_sba argument.
      * src/tgbaalgos/dotty.cc (dotty_bfs): Take a new
      mark_accepting_states arguments.
      (dotty_bfs::process_state): Check if a state is accepting using
      the state_is_accepting() method for tgba_sba_proxies, or by
      looking at the first outgoing transition of the state.  Pass
      the result to the dectorator.
      (dotty_reachable): Adjust function.
      * src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc,
      src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc
      (state_decl): Add an "accepting" argument, and use it to
      decorate accepting states with a double border.
      * src/tgbatest/ltl2tgba.cc: Keep track of whether the output
      is an SBA or not, so that we can tell it to dotty().
      * wrap/python/ajax/spot.in: Likewise.
      * wrap/python/cgi-bin/ltl2tgba.in: Likewise.
      e1ef47d9
    • Alexandre Duret-Lutz's avatar
      2c5bae3d
  10. 04 Mar, 2011 1 commit
  11. 01 Mar, 2011 1 commit
  12. 21 Feb, 2011 2 commits
  13. 14 Feb, 2011 1 commit
  14. 10 Feb, 2011 1 commit
  15. 09 Feb, 2011 2 commits
  16. 08 Feb, 2011 1 commit
  17. 07 Feb, 2011 1 commit
  18. 06 Feb, 2011 1 commit
  19. 04 Feb, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Add a way to count the number of sub-transitions. · 30727074
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/stats.hh (tgba_sub_statistics): New class.
      (sub_stats_reachable): New function.
      * src/tgbaalgos/stats.cc (sub_stats_bfs): New class.
      (tgba_sub_statistics::dump, sub_stats_reachable): New function.
      * src/tgbatest/ltl2tgba.cc (-kt): New option.
      * src/tgbatest/ltl2tgba.test: Use -kt.
      30727074
  20. 03 Feb, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Read guard of the form !(x) in neverclaims. · 91e51c4c
      Alexandre Duret-Lutz authored
      So far all neverclaims encountered would use (!(x)), but the
      files from the Büchi store do not.
      
      * src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
      so that we can read Promela files from Goal's Büchi store.
      * src/tgbatest/neverclaimread.test: Test it.
      91e51c4c
    • Alexandre Duret-Lutz's avatar
      Recognize Goal's syntax for Boolean operators. · 3278844c
      Alexandre Duret-Lutz authored
      * src/ltlparse/ltlscan.ll: Recognize ~, -->, and <--> operators
      from Goal, to ease the use of formulas provided by the Goal team.
      * src/ltltest/equals.test: Use these once, just to be on the
      safe side.
      3278844c
  21. 01 Feb, 2011 1 commit
  22. 28 Jan, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Fixup minimize_monitor(). · ad93f875
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/minimize.cc (minimize_monitor): Fix typo yielding
      incorrect monitor if the input tgba is not deterministic.
      * src/tgbatest/ltl2tgba.test: Add test case.
      ad93f875
  23. 27 Jan, 2011 5 commits
    • Alexandre Duret-Lutz's avatar
      more files to ignore · dd0f01fe
      Alexandre Duret-Lutz authored
      dd0f01fe
    • Alexandre Duret-Lutz's avatar
      Report formulas that are both safety and guarantee. · c8140de9
      Alexandre Duret-Lutz authored
      * src/tgbatest/ltl2tgba.cc (-O): Report formulas that are both
      safety and guarantee.
      * src/tgbatest/obligation.test: Add cases.
      c8140de9
    • Alexandre Duret-Lutz's avatar
      Rename is_safety_automaton() as is_guarantee_automaton() and · db124d02
      Alexandre Duret-Lutz authored
      implement is_safety_mwdba().
      
      Note: I swapped the name of safety and guarantee when I
      implemented is_safety_automaton() on 2010-03-20.  Fortunately,
      is_safety_automaton() was only used where is_guarantee_automaton()
      would have been correct.
      
      * src/tgbaalgos/safety.cc (is_guarantee_automaton): Rename as ...
      (is_guarantee_automaton): ... this.
      (is_safety_mwdba): New function.
      * src/tgbaalgos/safety.hh: Adjust and add documentation.
      * src/tgbaalgos/minimize.cc: Use is_guarantee_automaton() instead
      of is_safety_automaton().
      * src/tgbatests/safety.test: Rename as ...
      * src/tgbatests/obligation.test: ... this, and augment the
      test.
      * src/tgbatest/Makefile.am: Adjust.
      * src/tgbatest/ltl2tgba.cc (-O): Display whether a formula
      represent a safety, guarantee, or obligation property.
      * NEWS: Adjust.
      db124d02
    • Alexandre Duret-Lutz's avatar
      Replace delete by destroy in comments dealing with states. · 0c9c9fc6
      Alexandre Duret-Lutz authored
      * src/tgba/succiter.hh, src/tgba/tgba.hh,
      src/tgba/tgbabddconcrete.hh, src/tgba/tgbaproduct.hh,
      src/tgba/tgbaunion.hh, src/tgbaalgos/bfssteps.hh,
      src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.hh,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/replayrun.cc,
      src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Update comments
      to say that we "destroy" a state instead of "deleting" it.
      0c9c9fc6
    • Alexandre Duret-Lutz's avatar
      Introduce a destroy() method on states, and use it instead of delete. · 574a2285
      Alexandre Duret-Lutz authored
      Right now, destroy() just executes "delete this".  But in a later
      version, we will rewrite tgba_explicit so that it does not
      allocate new states (and the destroy() method for explicit state
      will do nothing).
      
      * src/tgba/state.hh (state::destroy): New method, to replace
      state::~state() in the future.
      (shared_state_deleter): New function.
      * src/evtgba/product.cc, src/evtgbaalgos/reachiter.cc,
      src/evtgbaalgos/save.cc, src/evtgbaalgos/tgba2evtgba.cc,
      src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbareduc.cc,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
      src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
      src/tgbaalgos/cutscc.cc, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.cc,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/nsheap.cc,
      src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
      src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.hh,
      src/tgbaalgos/reachiter.cc, src/tgbaalgos/reducerun.cc,
      src/tgbaalgos/reductgba_sim.cc,
      src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/replayrun.cc,
      src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc,
      src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
      src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Adjust to call
      "s->destroy()" instead of "delete s".
      * src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc:
      Pass shared_state_deleter to the shared_ptr constructor, so that
      it calls destroy() instead of delete.
      574a2285
  24. 12 Jan, 2011 3 commits
    • Alexandre Duret-Lutz's avatar
      Fix "unused function" warnings reported by clang++. · fe535a15
      Alexandre Duret-Lutz authored
      * src/evtgbaparse/Makefile.am, src/ltlparse/Makefile.am,
      src/neverparse/Makefile.am, src/tgbaparse/Makefile.am
      (AM_CPPFLAGS): Define -DYY_NO_INPUT so that the unused yyinput()
      function does not get compiled.
      * src/eltlparse/Makefile.am (AM_CPPFLAGS): Likewise.
      (AM_CXXFLAGS): Also enable warnings.
      * src/eltlparse/eltlparse.yy: Move helper functions from
      the "%code requires" block to the "%code" block, so that they
      do not appear in the eltlparse.hh file (which is included in
      two places...).
      * iface/nips/nips.cc (search_error_callback_assert): Comment
      this unused function.
      fe535a15
    • Alexandre Duret-Lutz's avatar
      Fix segfault with g++-3.3. · 45d7c880
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/minimize.cc (minimize_dfa): Fix deletion of the
      state_set_map.  It led to a crash when compiled with g++-3.3.
      45d7c880
    • Alexandre Duret-Lutz's avatar
      Fix a compilation failure with g++-3.3. · b39e68c5
      Alexandre Duret-Lutz authored
      * src/misc/hash.hh (identity_hash): New function.
      * src/tgba/tgbaexplicit.hh (tgba_explicit_number): Use
      identity_hash<int> instead of std::tr1::hash<int> that does not
      exist with g++-3.3.
      b39e68c5