1. 25 Jul, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      deprecate copy() in favor of make_twa_graph() · 8e685e00
      Alexandre Duret-Lutz authored
      Fixes #258.
      
      * spot/twaalgos/copy.cc: Delete, and move the code...
      * spot/twa/twagraph.cc: ... in some anonymous namespace here.
      * spot/twa/twagraph.hh: Adjust the make_twa_graph() overload.
      * spot/twaalgos/copy.hh, NEWS: Mark copy() as deprecated and redirect
      to make_twa_graph().
      * doc/org/upgrade2.org, doc/org/tut51.org, python/spot/impl.i,
      spot/twaalgos/dot.cc, spot/twaalgos/langmap.cc, tests/core/ikwiad.cc:
      Adjust callers.
      * spot/twaalgos/Makefile.am: Remove copy.cc.
      8e685e00
  2. 24 Jul, 2017 2 commits
  3. 20 Jul, 2017 1 commit
  4. 19 Jul, 2017 1 commit
    • Thomas Medioni's avatar
      Implement to_weak_alternating() which weakifies tgbas · c8889e65
      Thomas Medioni authored
      * NEWS: mention the modification.
      * python/spot/impl.i: makes to_weak_alternating visible from python
      * spot/twaalgos/Makefile.am, spot/twaalgos/toweak.cc,
        spot/twaalgos/toweak.hh: Implements to_weak_alternating.
      * tests/Makefile.am, tests/python/toweak.py: Test the results of
        to_weak_alternating.
      c8889e65
  5. 17 Jul, 2017 6 commits
    • Henrich Lauko's avatar
      tra2tba: Make result state-based if possible · 71b08b03
      Henrich Lauko authored
      * spot/twaalgos/remfin.cc: Create state-based result.
      71b08b03
    • Henrich Lauko's avatar
      remfin: Use tra2tba as new rabin strategy in remove_fin · d45b60a4
      Henrich Lauko authored
      Move implementation of tra2tba to remfin.
      
      * python/spot/impl.i: Remove tra2tba python bindings
      * spot/twaalgos/Makefile.am: Remove tra2tba
      * spot/twaalgos/remfin.cc: Update rabin_strategy
      * spot/twaalgos/tra2tba.cc: Delete the file
      * spot/twaalgos/tra2tba.hh: Delete the file
      * tests/core/remfin.test: Update tests
      * tests/python/tra2tba.py: Update tests
      d45b60a4
    • Henrich Lauko's avatar
      tra2tba: Merge edges of resulting automaton · bd8ede62
      Henrich Lauko authored
      * spot/twaalgos/tra2tba.cc: Call 'merge_edges'
      * tests/python/tra2tba.py: Update tests
      bd8ede62
    • Henrich Lauko's avatar
      tra2tba: Add support for Rabin like automata · 69cf3c55
      Henrich Lauko authored
      * spot/twaalgos/tra2tba.cc: Support Rabin like input
      * tests/core/tra2tba.cc: Remove C tests
      * tests/core/tra2tba.test: Remove C tests
      * tests/python/tra2tba.py: Convert C tests to python
      * tests/Makefile.am: Remove C tests and add python tests
      69cf3c55
    • Henrich Lauko's avatar
      tra2tba: Implement transformation of TRA to TBA acceptance condition · e1271bf8
      Henrich Lauko authored
      * python/spot/impl.i: Add bindings for tra2tba
      * spot/twaalgos/Makefile.am: Record tra2tba.cc, tra2tba.hh
      * spot/twaalgos/tra2tba.cc: Implement transformation of TRA to TBA
      * spot/twaalgos/tra2tba.hh: Introduce declaration of tra_to_tba
      * tests/Makefile.am: Record tra2tba tests
      * tests/core/tra2tba.cc: Add driver for tests
      * tests/core/tra2tba.test: Add tests of tra2tba transformation
      e1271bf8
    • Alexandre Duret-Lutz's avatar
      remfin: typo · da0cdf11
      Alexandre Duret-Lutz authored
      * spot/twaalgos/remfin.cc: 0x16 is not 16.
      da0cdf11
  6. 01 Jul, 2017 1 commit
  7. 30 Jun, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      decompose: merge decompose_strength() and decompose_scc() · 09e47d64
      Alexandre Duret-Lutz authored
      These two functions were doing almost identical work, the only
      difference was the way to select the SCC to keep.  Now we have a more
      uniform way to do that.  Closes #172.
      
      * bin/autfilt.cc: Offer a unique --decompose-scc option, but keep
      --decompose-strength as an alias for backward compatibility.
      * spot/twaalgos/strength.cc, spot/twaalgos/strength.hh: Rename
      decompose_strength as decompose_scc, and handle a way to list
      all SCC numers in the string specifier.  This gets rid
      of the nearly identical
      * tests/core/scc.test, tests/core/strength.test,
      tests/python/decompose.ipynb, tests/python/decompose_scc.py: Adjust
      test cases.
      * NEWS: Adjust.
      09e47d64
  8. 21 Jun, 2017 1 commit
    • Thomas Medioni's avatar
      streett_like: clear the pair vector when non Streett-like · fc609057
      Thomas Medioni authored
      When an acceptance condition is not Streett-like, is_streett_like
      now clears the rs_pair vector parameter before returning. Fixes #270.
      
      * spot/twa/acc.cc: Clear the pair vector.
      * spot/twaalgos/totgba.cc: Stop calling streett_to_generalized_buchi()
        when the acceptance condition is not Streett-like.
      fc609057
  9. 20 Jun, 2017 2 commits
  10. 19 Jun, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      stats: fix slow %s and inappropriate %S output · 413d2d6a
      Alexandre Duret-Lutz authored
      Fixes #269.
      
      * spot/twaalgos/stats.cc: Use twa_statistics instead of
      twa_sub_statistics when %t is not used.
      * bin/common_aoutput.cc: Likewise, also fix %S to use twa_statistics
      instead of num_states(), and document that %s,%t,%e all return
      statistics about the reachable part of the automaton.
      * tests/core/format.test: Add more tests.
      * NEWS: Document the issue.
      413d2d6a
    • Alexandre Duret-Lutz's avatar
      stats: fix slow %s and inappropriate %S output · 20a4959f
      Alexandre Duret-Lutz authored
      Fixes #269.
      
      * spot/twaalgos/stats.cc: Use twa_statistics instead of
      twa_sub_statistics when %t is not used.
      * bin/common_aoutput.cc: Likewise, also fix %S to use twa_statistics
      instead of num_states(), and document that %s,%t,%e all return
      statistics about the reachable part of the automaton.
      * tests/core/format.test: Add more tests.
      * NEWS: Document the issue.
      20a4959f
  11. 08 Jun, 2017 3 commits
    • Thomas Medioni's avatar
      streett_to_generalized_buchi() now works on Streett-like · 7b5b8f34
      Thomas Medioni authored
      * NEWS: Mention the modification.
      * spot/twaalgos/remfin.cc: Adapt to avoid infinite recursion.
      * spot/twaalgos/totgba.cc: Work on Streett-like.
      * tests/Makefile.am, tests/python/streett_totgba.py: Tests the
        modification.
      * tests/core/remfin.test: Fix one test case that is now handled by
        the modification.
      7b5b8f34
    • Thomas Medioni's avatar
      introduce spot::simplify_acceptance() · a12d676b
      Thomas Medioni authored
      Simplify some automata where some marks are identical,
      or complementary to another. Fixes #216.
      
      * NEWS: mention the new function.
      * spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Implement
        the function.
      * tests/Makefile.am, tests/python/merge.py: Test this implementation.
      a12d676b
    • Alexandre Duret-Lutz's avatar
      cleanacc: add an option to not strip sets · d795955a
      Alexandre Duret-Lutz authored
      also consider sets that appear everywhere
      
      * spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Here.
      d795955a
  12. 07 Jun, 2017 1 commit
    • Henrich Lauko's avatar
      remfin: Make removing of fins more modular. · 784681d8
      Henrich Lauko authored
      * spot/twaalgos/remfin.cc: Refactore remove_fin implementation. Enable
      filtering of strategies used for fin removing.
      * spot/priv/enumflags.hh: Add support for enum flags from brick-types.
      * spot/priv/Makefile.am: Add enumflags.hh to make.
      * debian/copyright: Update copyright with bricks library license.
      784681d8
  13. 05 Jun, 2017 1 commit
  14. 03 Jun, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      simulation: do not depend on bdd numbers for ordering classes · ae0e84ac
      Alexandre Duret-Lutz authored
      Fixes #262 again.  Reported by Maximilien Colange.
      
      * spot/twaalgos/simulation.cc: Use state numbers to order classes, not
      their signatures.  The problem was that even if two simulation of the
      same automaton assign the same signature, the BDD identifier used for
      that signature might be different, and therefore the ordering obtained
      by using BDDs as keys in a map can be different.  A side-effect of
      this change is that the order of states in automata produced by
      simulation-based reduction may change; many tests had to be updated.
      * tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
      report.
      * tests/core/complement.test, tests/core/det.test,
      tests/core/parseaut.test, tests/core/prodor.test,
      tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
      tests/python/decompose.ipynb, tests/python/highlighting.ipynb,
      tests/python/piperead.ipynb, tests/python/testingaut.ipynb,
      tests/python/word.ipynb: Update test cases for new order of states.
      ae0e84ac
  15. 02 Jun, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      simulation: do not depend on bdd numbers for ordering classes · 9ab4b840
      Alexandre Duret-Lutz authored
      Fixes #262 again.  Reported by Maximilien Colange.
      
      * spot/twaalgos/simulation.cc: Use state numbers to order classes, not
      their signatures.  The problem was that even if two simulation of the
      same automaton assign the same signature, the BDD identifier used for
      that signature might be different, and therefore the ordering obtained
      by using BDDs as keys in a map can be different.  A side-effect of
      this change is that the order of states in automata produced by
      simulation-based reduction may change; many tests had to be updated.
      * tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
      report.
      * tests/core/complement.test, tests/core/det.test,
      tests/core/parseaut.test, tests/core/prodor.test, tests/core/scc.test,
      tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
      tests/python/decompose.ipynb, tests/python/decompose_scc.py,
      tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
      tests/python/sccinfo.py, tests/python/simstate.py,
      tests/python/testingaut.ipynb, tests/python/word.ipynb: Update
      test case for new order of states.
      9ab4b840
    • Alexandre Duret-Lutz's avatar
      dot: fix printing of alternating automata · 7b6cfd44
      Alexandre Duret-Lutz authored
      Related to #208.
      
      * spot/twaalgos/dot.cc: Fix missing definitions of universal nodes,
      and inclusion of universal nodes inside of SCC when none of the
      destination comes back to the SCC.
      * tests/python/_altscc.ipynb: Adjust and add more test cases.
      * tests/core/alternating.test, tests/core/neverclaimread.test,
      tests/core/readsave.test, tests/core/sccdot.test,
      tests/python/decompose.ipynb: Adjust test cases.
      * NEWS: Mention the bug.
      7b6cfd44
  16. 31 May, 2017 4 commits
    • Alexandre Duret-Lutz's avatar
      dot: fix printing of alternating automata · 97f3efab
      Alexandre Duret-Lutz authored
      Related to #208.
      
      * spot/twaalgos/dot.cc: Fix missing definitions of universal nodes,
      and inclusion of universal nodes inside of SCC when none of the
      destination comes back to the SCC.
      * tests/python/_altscc.ipynb: Adjust and add more test cases.
      * tests/core/alternating.test, tests/core/neverclaimread.test,
      tests/core/readsave.test, tests/core/sccdot.test,
      tests/python/decompose.ipynb: Adjust test cases.
      * NEWS: Mention the bug.
      97f3efab
    • Alexandre Duret-Lutz's avatar
      scc_info: keep track of common acceptance sets · 617a7187
      Alexandre Duret-Lutz authored
      * spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Do it.
      * tests/core/sccdot.test: Add a test case.
      * NEWS: Mention it.
      617a7187
    • Maximilien Colange's avatar
      Degeneralization keeps track of levels. · f7d14ab5
      Maximilien Colange authored
      * NEWS: Document this.
      * spot/twa/twagraph.cc: `copy_state_names_from` handles this new info.
      * spot/twaalgos/degen.hh, spot/twaalgos/degen.cc: Implement it.
      * tests/python/origstate.py, tests/python/simstate.py: Update tests to
        reflect the change.
      f7d14ab5
    • Maximilien Colange's avatar
      Simulation keeps track of simulated states in the input automaton. · 7b5ab545
      Maximilien Colange authored
      * NEWS: Document the change.
      * spot/twaalgos/simulation.cc: Implement the change.
      * spot/twa/twagraph.cc: `copy_state_names_from` uses simulated states
        info if present.
      * spot/twaalgos/determinize.cc: Pretty-print in determinization follows
        simulated states, avoiding possible confusion.
      * tests/Makefile.am, tests/python/simstate.py: Add a test.
      7b5ab545
  17. 30 May, 2017 2 commits
  18. 11 May, 2017 1 commit
  19. 10 May, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      ltl2tgba: clear simplification cache between translations · aa404823
      Alexandre Duret-Lutz authored
      The cache used in formula simplification will keep atomic propositions
      defined between several translations, and may impact variable order.
      Reported by Maximilien Colange.
      
      * spot/tl/simplify.hh, spot/tl/simplify.cc,
      spot/twaalgos/translate.cc, spot/twaalgos/translate.hh (clear_cache):
      New method.
      * bin/ltl2tgba.cc, bin/ltl2tgta.cc: Call it.
      * spot/twaalgos/stats.cc: Do not keep a point to the formula after
      printing statistics.
      * tests/core/ltl2tgba.test: Add a test case.
      * tests/core/readsave.test: Adjust one formula.
      * NEWS: Mention the issue.
      aa404823
    • Alexandre Duret-Lutz's avatar
      ltl2tgba: clear simplification cache between translations · f07fbbae
      Alexandre Duret-Lutz authored
      The cache used in formula simplification will keep atomic propositions
      defined between several translations, and may impact variable order.
      Reported by Maximilien Colange.
      
      * spot/tl/simplify.hh, spot/tl/simplify.cc,
      spot/twaalgos/translate.cc, spot/twaalgos/translate.hh (clear_cache):
      New method.
      * bin/ltl2tgba.cc, bin/ltl2tgta.cc: Call it.
      * spot/twaalgos/stats.cc: Do not keep a point to the formula after
      printing statistics.
      * tests/core/ltl2tgba.test: Add a test case.
      * tests/core/readsave.test: Adjust one formula.
      * NEWS: Mention the issue.
      f07fbbae
  20. 09 May, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      scc_info: introduce edges_of() and inner_edges_of() · 8e19d3f4
      Alexandre Duret-Lutz authored
      This is motivated by some upcoming patch by Heňo.
      
      * spot/twaalgos/sccinfo.hh (edges_of, inner_edges_of): New methods.
      * spot/twaalgos/sccinfo.cc, spot/twaalgos/strength.cc: Use them.
      * spot/twa/twagraph.hh (edge_number): Add an overload.
      * python/spot/impl.i: Bind the new methods.
      * tests/python/sccinfo.py: Add tests.
      * NEWS: Mention the changes.
      8e19d3f4
  21. 05 May, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      introduce spot::split_edges() · 19aae6f9
      Alexandre Duret-Lutz authored
      Fixes #255.
      
      * spot/twaalgos/split.cc, spot/twaalgos/split.hh,
      tests/core/split.test: New files.
      * spot/twaalgos/Makefile.am, tests/Makefile.am: Add them.
      * bin/autfilt.cc (--split-edges): New option.
      * python/spot/impl.i: Process split.hh.
      * tests/python/alternating.py: Test split_edges() on
      an alternating automaton.
      19aae6f9
    • Alexandre Duret-Lutz's avatar
      degen: consider incoming edges to select initial levels · 679b6cff
      Alexandre Duret-Lutz authored
      Fixes #257.
      
      * spot/twaalgos/degen.cc: Implement this optimization.
      * tests/core/degendet.test: Add a few test cases.
      * tests/core/ltl2tgba2.test: Adjust expected sizes.
      * NEWS: Mention the change.
      679b6cff
  22. 04 May, 2017 1 commit
  23. 01 May, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      minimize_dfa: use the twa_graph interface · 172bee49
      Alexandre Duret-Lutz authored
      Fixes #233, although more cleanup would be welcome.
      
      * spot/twaalgos/minimize.cc: Replace the uses of twa methods by
      twa_graph methods, and simplify some data structures.
      * tests/core/acc_word.test, tests/core/readsave.test,
      tests/python/automata.ipynb: Adjust changed output due
      to different data structures.
      172bee49