1. 02 Jun, 2017 1 commit
    • 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
  2. 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
  3. 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
  4. 18 May, 2017 1 commit
    • 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
  5. 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
  6. 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
  7. 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
  8. 04 May, 2017 2 commits
  9. 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
  10. 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
  11. 22 Apr, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      ks_cobuchi: forbid n=0 · d25cdd4c
      Alexandre Duret-Lutz authored
      * spot/gen/automata.hh: State the precondition.
      * spot/gen/automata.cc: Catch n==0.
      * tests/core/genaut.test: Test it.
      d25cdd4c
    • Alexandre Duret-Lutz's avatar
      genaut: minor fixes and add test case · e4a5bf81
      Alexandre Duret-Lutz authored
      * bin/genaut.cc: Use RANGE instead of N, and document it.
      Output the FORMAT documentation, and fix handling of %F and %L.
      * tests/core/genaut.test: New file.
      * tests/Makefile.am: Add it.
      e4a5bf81
  12. 20 Apr, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      introduce original-states · 07c2dd3b
      Alexandre Duret-Lutz authored
      * spot/twaalgos/degen.cc, spot/twaalgos/degen.hh,
      spot/twaalgos/mask.hh: Store original states in "original-states"
      properties.
      * spot/twaalgos/dot.cc: Add support for option 'd'.
      * bin/common_aoutput.cc: Document it.
      * doc/org/concepts.org, NEWS: Document "original-states".
      * tests/core/readsave.test: Add some tests.
      07c2dd3b
  13. 19 Apr, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      sbacc: fix a serious bug · f02ca87f
      Alexandre Duret-Lutz authored
      Reported by Thibaud Michaud
      
      * spot/twaalgos/sbacc.cc: Do not label rejecting SCCs with the empty
      mark, as it might be accepting.
      * tests/core/sbacc.test: Add test cases.
      * NEWS: Mention the bug.
      f02ca87f
    • Alexandre Duret-Lutz's avatar
      sbacc: fix a serious bug · 9377db2e
      Alexandre Duret-Lutz authored
      Reported by Thibaud Michaud
      
      * spot/twaalgos/sbacc.cc: Do not label rejecting SCCs with the empty
      mark, as it might be accepting.
      * tests/core/sbacc.test: Add test cases.
      * NEWS: Mention the bug.
      9377db2e
  14. 07 Apr, 2017 5 commits
    • Thomas Medioni's avatar
      autfilt: Add --dualize option · 0d884d4a
      Thomas Medioni authored
      * NEWS: Mention this addition.
      * bin/autfilt.cc: Add dualize option
      * tests/Makefile.am: Add dualize option test file to the suite.
      * tests/core/dualize.test: Test the dualize option.
      0d884d4a
    • Thomas Medioni's avatar
      dtwa_complement: deprecated, use dualize() instead. · 152b5d0d
      Thomas Medioni authored
      * NEWS: Mention of the deprecation
      * bench/stutter/stutter_invariance_randomgraph.cc,
        bin/autfilt.cc, bin/ltlcross.cc, spot/twaalgos/langmap.cc,
        spot/twaalgos/minimize.cc, spot/twaalgos/powerset.cc,
        spot/twaalgos/stutter.cc, tests/core/ikwiad.cc,
        tests/python/bugdet.py, tests/python/remfin.py,
        tests/python/sum.py: Refactor calls to dtwa_complement() with calls
        to dualize().
      * doc/org/upgrade2.org: Change mention of dtwa_complement with dualize.
      * spot/twaalgos/complement.hh: Add deprecation notice.
      * python/spot/impl.i: Add deprecation notice for the python bindings.
      152b5d0d
    • Alexandre Duret-Lutz's avatar
      genltl: add support for --p-patterns · 08c153d3
      Alexandre Duret-Lutz authored
      Fixes #246.
      
      * bin/genltl.cc: Implement it.
      * bin/man/genltl.x, doc/org/genltl.org, NEWS: Document it.
      * tests/core/ltl2tgba2.test: Test it.
      08c153d3
    • Alexandre Duret-Lutz's avatar
      genltl: add --hkrss-patterns · 4b7a6238
      Alexandre Duret-Lutz authored
      Fixes #245.
      
      * bin/genltl.cc: Add the option.
      * bin/man/genltl.x: Add reference.
      * tests/core/ltl2tgba2.test: Use these patterns.
      * doc/org/genltl.org, NEWS: Document the options.
      4b7a6238
    • Alexandre Duret-Lutz's avatar
      remfin: fix a corner case for rabin_to_buchi_maybe · 1daffe12
      Alexandre Duret-Lutz authored
      when fin_alone sets where presents (i.e., not really Rabin condition),
      the rabin_to_buchi_maybe() could fail to notice DBA-typeness.
      
      * spot/twaalgos/remfin.cc: Don't set scc_ba_type to false when
      fin_alone is present.
      * tests/core/remfin.test: Add a test case.
      1daffe12
  15. 04 Apr, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      remfin: fix a corner case for rabin_to_buchi_maybe · b442d2bb
      Alexandre Duret-Lutz authored
      when fin_alone sets where presents (i.e., not really Rabin condition),
      the rabin_to_buchi_maybe() could fail to notice DBA-typeness.
      
      * spot/twaalgos/remfin.cc: Don't set scc_ba_type to false when
      fin_alone is present.
      * tests/core/remfin.test: Add a test case.
      b442d2bb
  16. 03 Apr, 2017 1 commit
    • Thomas Medioni's avatar
      sum: Fix universal initial state bug · cebc4b00
      Thomas Medioni authored
      * spot/twaalgos/sum.cc: Fix the sum of automatas having universal
        initial transitions.
      * tests/core/explsum.test: Add test case testing the handling of
        universal initial transitions in sum.
      cebc4b00
  17. 29 Mar, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      twa_graph: fix purge_unreachable_states on alternating automata · 6623af67
      Alexandre Duret-Lutz authored
      The algorithm had two problems: it was removing only useless
      destination from universal destination (instead of removing the entire
      edge), and it was not properly iterating over the entire reachable
      automaton.
      
      * spot/twa/twagraph.cc: Fix it.
      * spot/twa/twagraph.hh: Adjust documentation.
      * tests/core/alternating.test: Add more tests.
      * tests/python/twagraph.py: Adjust.
      * NEWS: Mention the bug.
      6623af67
    • Alexandre Duret-Lutz's avatar
      twa_graph: fix purge_unreachable_states on alternating automata · f6a238ef
      Alexandre Duret-Lutz authored
      The algorithm had two problems: it was removing only useless
      destination from universal destination (instead of removing the entire
      edge), and it was not properly iterating over the entire reachable
      automaton.
      
      * spot/twa/twagraph.cc: Fix it.
      * spot/twa/twagraph.hh: Adjust documentation.
      * tests/core/alternating.test: Add more tests.
      * tests/python/twagraph.py: Adjust.
      * NEWS: Mention the bug.
      f6a238ef
  18. 28 Mar, 2017 1 commit
  19. 27 Mar, 2017 1 commit
  20. 22 Mar, 2017 4 commits
  21. 20 Mar, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      twa: add support for prop_complete() · 0de5f50d
      Alexandre Duret-Lutz authored
      * spot/twa/twa.hh: Add support.  Make two constructors for prop_set in
      order to diagnose constructions with 5 arguments.
      * spot/parseaut/parseaut.yy: Adjust diagnostics for complete and
      deterministic.
      * spot/tl/exclusive.cc, spot/twa/twagraph.cc,
      spot/twaalgos/alternation.cc, spot/twaalgos/complete.cc,
      spot/twaalgos/complete.hh, spot/twaalgos/degen.cc,
      spot/twaalgos/determinize.cc, spot/twaalgos/hoa.cc,
      spot/twaalgos/isdet.cc, spot/twaalgos/mask.cc,
      spot/twaalgos/minimize.cc, spot/twaalgos/product.cc,
      spot/twaalgos/remfin.cc, spot/twaalgos/remprop.cc,
      spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
      spot/twaalgos/simulation.cc, spot/twaalgos/strength.cc,
      spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc,
      tests/core/parseaut.test, tests/python/product.ipynb: Adjust.
      * NEWS, doc/org/concepts.org, doc/org/hoa.org,
      doc/org/tut21.org: Document it.
      0de5f50d
  22. 10 Mar, 2017 1 commit
  23. 09 Mar, 2017 1 commit
    • Thomas Medioni's avatar
      Implement sum(..) and sum_and(..). · 194c1992
      Thomas Medioni authored
      Fixes #231.
      
      * NEWS: Mention of implementation of sum, sum_and.
      * bin/autfilt.cc: Add --sum, --sum-or and --sum-and options.
      * python/spot/impl.i: Add bindings for sum, sum_and.
      * spot/twaalgos/Makefile.am: Add sum.cc, sum.hh.
      * spot/twaalgos/sum.cc: Implement sum, sum_and.
      * spot/twaalgos/sum.hh: Declaration of sum, sum_and.
      * tests/Makefile.am: Add sum tests.
      * tests/core/explsum.test: Test the sum of two automatons,
        false or false, unsatisfied mark propagation, handling of univ.
        transitions.
      * tests/python/sum.py: Check that two automatons that does not
        share their bdd dict are not accepted, then run tests over the
        sum of randomly generated LTL formulas.
      194c1992
  24. 08 Mar, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      degen: improve test coverage · 0d8a88b2
      Alexandre Duret-Lutz authored
      * spot/twaalgos/degen.cc: Make use_cust_acc_orders as unlikely, as it
      was never true in the whole test suite before this patch.
      * tests/core/ltlcross2.test: Play with degen-order and degen-lcache
      options to test more cases.
      0d8a88b2