1. 31 Jul, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      hoa: fix I/O of determinism · d3607a7c
      Alexandre Duret-Lutz authored
      Fixes #212.
      
      * spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Recognize
      exist-branch, and adjust printer to the 1.1 semantics.
      * tests/core/alternating.test, tests/core/complete.test,
      tests/core/det.test, tests/core/explsum.test,
      tests/core/parseaut.test, tests/core/readsave.test,
      tests/core/sbacc.test, tests/core/tgbagraph.test,
      tests/python/alternating.py, tests/python/dualize.py: Adjust test
      cases.
      * NEWS: Mention the change.
      d3607a7c
  2. 28 Jul, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      bin: introduce autcross · 0cf250d8
      Alexandre Duret-Lutz authored
      Fixes #252.
      
      * NEWS: Mention it.
      * bin/autcross.cc, bin/man/autcross.x, doc/org/autcross.org: New
      files.
      * bin/Makefile.am, bin/man/Makefile.am, doc/org/tools.org,
      doc/Makefile.am: Add them.
      * bin/autfilt.cc: Use is_universal() instead of is_deterministic().
      * bin/common_hoaread.hh, bin/common_trans.cc, bin/common_trans.hh,
      bin/ltlcross.cc, bin/ltldo.cc: Factor some bits common between
      ltlcross, ltldo and autcross.
      * tests/core/autcross.test, tests/core/autcross2.test: New files.
      * tests/Makefile.am: Add them.
      * tests/core/dra2dba.test, tests/core/sbacc.test,
      tests/core/streett.test: Use autcross.
      0cf250d8
  3. 25 Jul, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      acc: make &= and |= symmetrical · abe2c08b
      Alexandre Duret-Lutz authored
      Operator &= used to always move Fin to the front, it does not anymore.
      The only thing it does now is to merge Inf(x)&Inf(y) as Inf({x,y}).
      Operator |= is now symmetrical and merges Fin()s.
      
      Fixes #253.
      
      * spot/twa/acc.cc, spot/twa/acc.hh: Simplify &= and make |= symmetrical.
      * spot/twaalgos/cleanacc.cc: Fix conjunction order.
      * tests/core/acc.test, tests/core/acc2.test, tests/core/parseaut.test,
      tests/core/readsave.test, tests/core/satmin2.test,
      tests/core/sccdot.test, tests/python/acc_cond.ipynb,
      tests/python/accparse.ipynb, tests/python/automata.ipynb,
      tests/python/product.ipynb, tests/python/randaut.ipynb: Adjust test
      cases.
      abe2c08b
    • 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
  4. 24 Jul, 2017 1 commit
  5. 20 Jul, 2017 1 commit
  6. 17 Jul, 2017 3 commits
    • 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: 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
  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
  9. 20 Jun, 2017 1 commit
  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. 11 Jun, 2017 1 commit
  12. 08 Jun, 2017 1 commit
    • 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
  13. 07 Jun, 2017 1 commit
  14. 03 Jun, 2017 4 commits
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
      work around change in pandas 0.20 · 526b299d
      Alexandre Duret-Lutz authored
      * tests/core/ltlcross4.test: Replace describe() by agg() to work
      around a backward incompatible change in pandas 0.20.
      526b299d
    • 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 3 commits
    • Alexandre Duret-Lutz's avatar
      work around change in pandas 0.20 · dbcde8e3
      Alexandre Duret-Lutz authored
      * tests/core/ltlcross4.test: Replace describe() by agg() to work
      around a backward incompatible change in pandas 0.20.
      dbcde8e3
    • 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 2 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
  17. 30 May, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      scc_info: make it possible to ignore or cut edges · 42562015
      Alexandre Duret-Lutz authored
      * spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Take
      a filter function as optional argument.
      * tests/core/sccif.cc, tests/core/sccif.test: New files.
      * tests/Makefile.am, tests/core/.gitignore: Adjust.
      * NEWS: Mention the new feature.
      42562015
  18. 18 May, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      bin: release all subformulas between runs · f6607f1a
      Alexandre Duret-Lutz authored
      Fixes #262, reported by Maximilien Colange.
      
      * bin/common_output.cc, bin/common_aoutput.cc, bin/common_aoutput.hh:
      Clear the set of atomic propositions if --stats=%[...]x was used.
      * spot/twa/bdddict.cc: Release any formula associated to a BDD when it
      is unregistered, do not wait for the dictionary's destruction.  This
      was the main culprit for #262.
      * tests/core/ltl2tgba.test: Add test cases.
      * NEWS: Mention the bug.
      f6607f1a
    • Alexandre Duret-Lutz's avatar
      bin: release all subformulas between runs · acdaaac4
      Alexandre Duret-Lutz authored
      Fixes #262, reported by Maximilien Colange.
      
      * bin/common_output.cc, bin/common_aoutput.cc, bin/common_aoutput.hh:
      Clear the set of atomic propositions if --stats=%[...]x was used.
      * spot/twa/bdddict.cc: Release any formula associated to a BDD when it
      is unregistered, do not wait for the dictionary's destruction.  This
      was the main culprit for #262.
      * tests/core/ltl2tgba.test: Add test cases.
      * NEWS: Mention the bug.
      acdaaac4
  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. 08 May, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      simplify: fix related to event_univ handling · 8968bf6c
      Alexandre Duret-Lutz authored
      Fixes #260.  Reported by František Blahoudek.
      
      The simplification F(f)|q = F(f|q), where q designates an event_univ
      formula, was not always applied because of a couple of issue: (1) the
      mospliter was ignoring event_univ unless favor_event_univ was set, (2)
      when processing formulas from res_EventUniv they were not put back
      into res_F or res_G to be subject to the F/G rules.
      
      * spot/tl/simplify.cc: Improve handling of the above points.
      * tests/core/reduccmp.test: Adjust and add test case.
      * tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.
      8968bf6c
    • Alexandre Duret-Lutz's avatar
      simplify: fix related to event_univ handling · 84595883
      Alexandre Duret-Lutz authored
      Fixes #260.  Reported by František Blahoudek.
      
      The simplification F(f)|q = F(f|q), where q designates an event_univ
      formula, was not always applied because of a couple of issue: (1) the
      mospliter was ignoring event_univ unless favor_event_univ was set, (2)
      when processing formulas from res_EventUniv they were not put back
      into res_F or res_G to be subject to the F/G rules.
      
      * spot/tl/simplify.cc: Improve handling of the above points.
      * tests/core/reduccmp.test: Adjust and add test case.
      * tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.
      84595883
  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 2 commits
  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
  24. 28 Apr, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      gen: another automaton family · 469d8067
      Alexandre Duret-Lutz authored
      * spot/gen/automata.hh, spot/gen/automata.cc,
      bin/genaut.cc: Introduce L_DSA.
      * tests/core/genaut.test: Add quick test.
      469d8067
    • Alexandre Duret-Lutz's avatar
      gen: introduce a new automaton family · ec51f976
      Alexandre Duret-Lutz authored
      * spot/gen/automata.cc, spot/gen/automata.hh: Define AUT_L_NBA.
      * bin/genaut.cc (--l-nba): New option.
      * bin/man/genaut.x, doc/org/genaut.org, NEWS: Document it.
      * tests/python/gen.py, tests/core/genaut.test: Test it.
      ec51f976