1. 31 May, 2017 1 commit
    • 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
  2. 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
  3. 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
      twa_graph: introduce copy_state_names_from() · 46d8aaaa
      Alexandre Duret-Lutz authored
      * spot/twa/twagraph.cc, spot/twa/twagraph.hh: Here.  Also
      make sure "original-states" survives defrag_states().
      * NEWS: Mention it.
      * tests/python/origstate.py: New file.
      * tests/Makefile.am: Add it.
      46d8aaaa
  4. 26 Apr, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      gen: rename genltl() to ltl_pattern() and introduce ltl_patterns() · 540b9713
      Alexandre Duret-Lutz authored
      * spot/gen/formulas.hh, spot/gen/formulas.cc (genltl): Rename as...
      (ltl_pattern): This.
      (ltl_pattern_max): New function.
      * bin/genltl.cc: Adjust names, and simplify using ltl_pattern_max().
      * python/spot/gen.i (ltl_patterns): New function.
      * tests/python/gen.py: Test it.
      * tests/python/gen.ipynb: New file to document the spot.gen package.
      * tests/Makefile.am, doc/org/tut.org: Add gen.ipynb.
      540b9713
  5. 23 Apr, 2017 1 commit
  6. 22 Apr, 2017 2 commits
  7. 21 Apr, 2017 1 commit
    • Thomas Medioni's avatar
      Implements is_streett_like() and streett_like_pairs(), is_rabin_like... · b428ed31
      Thomas Medioni authored
      Adds the method spot::acc_cond::is_streett_like() that behaves like
      spot::acc_cond::is_streett() except that it works on a wider range
      of acceptance conditions, called Streett-like. Also adds
      spot::acc_cond::streett_like_pairs() that returns a boolean assessing
      whether the acceptance condition is Streett-like and also returns all
      the Streett_like pairs.
      Defines the new struct type spot::acc_cond::rs_pair.
      Similarily, Adds the methods spot::acc_cond::is_rabin_like() and
      spot::acc_cond::rabin_like_pairs().
      
      * NEWS: Mention this modification
      * python/spot/impl.i: Declares the new struct to SWIG, and defines
      the streett_like_pairs() vector as an output parameter, which makes
      the python code return a tuple (boolean, vector) rather than a
      pass-by-reference vector.
      * spot/twa/acc.cc, spot/twa/acc.hh: Declares an implements the new
      methods and the new nested struct.
      * tests/Makefile.am: Add new tests to the suite
      * tests/python/rs_like.py: Tests the new methods and
      the SWIG bindings.
      b428ed31
  8. 07 Apr, 2017 2 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
      implement dualize to complement automatons · c9d8d41f
      Thomas Medioni authored
      * NEWS: Mention the implementation
      * python/spot/impl.i: Add dualize() to python interface.
      * spot/twaalgos/Makefile.am: Add dualize.cc,hh to the build
      * spot/twaalgos/dualize.cc: Implement dualize() that takes an automaton
        and returns its dual
      * spot/twaalgos/dualize.hh: Implement dualize()
      * tests/Makefile.am: Add dualize tests to the test suite
      * tests/python/dualize.py: Test cases for dualize
      c9d8d41f
  9. 10 Mar, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      emptiness checks: replace assert-preconditions by exceptions · d6d987bd
      Alexandre Duret-Lutz authored
      * spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
      spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
      spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
      condition is not satisfied.
      * tests/python/misc-ec.py: New file.
      * tests/Makefile.am: Add it.
      * NEWS: Mention the change.
      d6d987bd
    • Alexandre Duret-Lutz's avatar
      emptiness checks: replace assert-preconditions by exceptions · 2e3fc0d4
      Alexandre Duret-Lutz authored
      * spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
      spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
      spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
      condition is not satisfied.
      * tests/python/misc-ec.py: New file.
      * tests/Makefile.am: Add it.
      * NEWS: Mention the change.
      2e3fc0d4
  10. 09 Mar, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      python: add python bindings for declarative_environment · b81d7e58
      Alexandre Duret-Lutz authored
      * python/spot/impl.i: Here.
      * tests/python/declenv.py: New file.
      * tests/Makefile.am: Add it.
      b81d7e58
    • 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
  11. 08 Mar, 2017 2 commits
    • Alexandre Duret-Lutz's avatar
      python: add bindings for bdd_to_formula() · d1d3ee38
      Alexandre Duret-Lutz authored
      Follow-up to an email from Ayrat Khalimov.
      
      * python/spot/impl.i: Include twa/formula2bdd.hh.
      * python/spot/__init__.py: Make the dictionnary
      optional.
      * spot/twa/formula2bdd.cc: Throw an exception instead of asserting.
      * tests/python/bdditer.py: New file.
      * tests/Makefile.am: Add it.
      * NEWS: Update.
      d1d3ee38
    • Alexandre Duret-Lutz's avatar
      python: add bindings for bdd_to_formula() · 4e9303e3
      Alexandre Duret-Lutz authored
      Follow-up to an email from Ayrat Khalimov.
      
      * python/spot/impl.i: Include twa/formula2bdd.hh.
      * python/spot/__init__.py: Make the dictionnary
      optional.
      * spot/twa/formula2bdd.cc: Throw an exception instead of asserting.
      * tests/python/bdditer.py: New file.
      * tests/Makefile.am: Add it.
      * NEWS: Update.
      4e9303e3
  12. 07 Mar, 2017 3 commits
    • Alexandre Duret-Lutz's avatar
      twa_graph: more test coverage · cd4c326f
      Alexandre Duret-Lutz authored
      The goal is to improve coverage stats, but I discovered two issues
      while doing so.
      
      * tests/python/twagraph.py: New test case.
      * tests/Makefile.am: Add it.
      * spot/twa/twagraph.hh: Add fix typos in error messages.
      * python/spot/impl.i: Fix broken wrappers for state_from_number and
      state_acc_sets.
      cd4c326f
    • Alexandre Duret-Lutz's avatar
      twa_graph: more test coverage · 2e763a08
      Alexandre Duret-Lutz authored
      The goal is to improve coverage stats, but I discovered two issues
      while doing so.
      
      * tests/python/twagraph.py: New test case.
      * tests/Makefile.am: Add it.
      * spot/twa/twagraph.hh: Add fix typos in error messages.
      * python/spot/impl.i: Fix broken wrappers for state_from_number and
      state_acc_sets.
      2e763a08
    • Alexandre Duret-Lutz's avatar
      tests: remove ltlprod · be4f1397
      Alexandre Duret-Lutz authored
      This very old test did not do anything useful today.
      
      * tests/core/ltlprod.cc, tests/core/ltlprod.test: Delete.
      * tests/Makefile.am: Adjust.
      be4f1397
  13. 21 Feb, 2017 1 commit
    • Clément Gillard's avatar
      Add a decompose_scc() function · 164135d3
      Clément Gillard authored
      See #172.
      While at it, fix typo in doxygen comment.
      
      * spot/twaalgos/strength.cc, spot/twaalgos/strength.hh: New function.
      * tests/python/decompose_scc.py, tests/Makefile.am: Test python
      binding.
      
      * spot/twaalgos/mask.hh: Fix typo.
      164135d3
  14. 20 Feb, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      scc_info: add Python bindings · 289b2383
      Alexandre Duret-Lutz authored
      Related to #172, where we discussed that scc_info bindings were
      missing.
      
      * spot/twaalgos/sccinfo.hh (spot::scc_info::scc_node): Move...
      (spot::scc_info_node): ... here to help Swig.
      * python/spot/impl.i: Add bindings for scc_info.
      * tests/python/sccinfo.py: New file.
      * tests/Makefile.am: Add it.
      289b2383
  15. 23 Jan, 2017 1 commit
  16. 10 Jan, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      ltlfilt: add --recurrence and --persistence · de8a248f
      Alexandre Duret-Lutz authored
      * spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh
      (rabin_to_buchi_maybe): Make this function public.
      * bin/ltlfilt.cc: Implement the two options.
      * tests/core/hierarchy.test: New file.
      * tests/Makefile.am: Add it.
      * NEWS: Mention the new options.
      de8a248f
  17. 29 Dec, 2016 3 commits
    • Alexandre Duret-Lutz's avatar
      support for semi-deterministic property · 4b013878
      Alexandre Duret-Lutz authored
      * spot/twa/twa.hh (prop_semi_deterministic): New methods.
      * spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Add support for the
      semi-deterministic property.
      * doc/org/concepts.org, doc/org/hoa.org: Document it.
      * spot/twaalgos/isdet.cc,
      spot/twaalgos/isdet.hh (is_semi_deterministic): New function.
      * bin/autfilt.cc: Add --is-semi-deterministic.
      * bin/common_aoutput.cc: Add --check=semi-deterministic.
      * tests/core/semidet.test: New file.
      * tests/Makefile.am: Add it.
      * tests/core/parseaut.test, tests/core/readsave.test: Adjust.
      4b013878
    • Alexandre Duret-Lutz's avatar
      ltlcross: add support for alternating automata · 87c9d6f0
      Alexandre Duret-Lutz authored
      * bin/ltlcross.cc: Add an alternation-removal pass, and
      adjust CSV output.
      * doc/org/ltlcross.org: Update.
      * tests/core/ltl3dra.test, tests/core/ltl3ba.test: Add more tests.
      * tests/Makefile.am: Add tests/core/ltl3ba.test.
      * NEWS: Mention it.
      87c9d6f0
    • Alexandre Duret-Lutz's avatar
      alternation: implement remove_alternation() for weak alt automata · fa06cfa3
      Alexandre Duret-Lutz authored
      This mixes the subset construction (for 1-state rejecting SCCs) and
      the breakpoint construction (for larger rejecting SCCs).  The
      algorithm should probably be rewritten in a cleaner and more efficient
      way, but that should do for a first version.  It should be easy to
      extend it to support Büchi acceptance (since the breakpoint
      construction works for this) when we need it.
      
      * spot/twaalgos/alternation.hh,
      spot/twaalgos/alternation.cc (remove_alternation): New function.
      * tests/python/alternation.ipynb: New file.
      * tests/Makefile.am, doc/org/tut.org: Add it.
      fa06cfa3
  18. 27 Dec, 2016 3 commits
    • Alexandre Duret-Lutz's avatar
      sccinfo: adjust to work with alternating automata · a4ce9994
      Alexandre Duret-Lutz authored
      * spot/twaalgos/sccinfo.cc: Consider universal edges as if they were
      existential edges.
      * spot/twaalgos/sccinfo.hh: Document that.
      * spot/twaalgos/dot.cc: Allow option 's' again, for easy testing.
      * tests/core/alternating.test: Adjust tests.
      * tests/python/_altscc.ipynb: New file (more tests).
      * tests/Makefile.am: Add it.
      a4ce9994
    • Alexandre Duret-Lutz's avatar
      dot: add support for alternating automata · d5c9c345
      Alexandre Duret-Lutz authored
      * spot/twaalgos/dot.cc: Handle universal destinations.
      Ignore option 's' for alternating automata.
      * tests/core/alternating.test: New file.
      * tests/Makefile.am: Add it.
      d5c9c345
    • Alexandre Duret-Lutz's avatar
      twa_graph: add basic support for alternation · 6aad559c
      Alexandre Duret-Lutz authored
      This only allows creating universal edges, and reading the associated
      destinations.
      
      * spot/twa/twagraph.hh (new_univ_edges, univ_dests, is_alternating): New
      function.
      * python/spot/impl.i: Add Python bindings.
      * tests/python/alternating.py: New file.
      * tests/Makefile.am: Add it.
      6aad559c
  19. 24 Nov, 2016 1 commit
  20. 23 Nov, 2016 1 commit
    • Maximilien Colange's avatar
      Add support to load GAL models. · c9aabcdd
      Maximilien Colange authored
      * spot/ltsmin/ltsmin.cc: Handle GAL models.
      * tests/Makefile.am: Test the new feature.
      * tests/ltsmin/check.test: Also check GAL.
      * tests/ltsmin/beem-peterson.4.gal: A new GAL model for tests.
      * tests/ltsmin/finite.gal: A new GAL model for tests.
      * tests/ltsmin/finite3.test: A new test for GAL.
      c9aabcdd
  21. 11 Nov, 2016 2 commits
  22. 09 Nov, 2016 1 commit
  23. 05 Nov, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      from_ltlf: new LTL transformation. · 2e69e045
      Alexandre Duret-Lutz authored
      Fixes #187.
      
      * spot/tl/ltlf.cc, spot/tl/ltlf.hh: New files.
      * spot/tl/Makefile.am: Add them.
      * bin/ltlfilt.cc: Add a new option.
      * bin/man/ltlfilt.x: Add bibliographic reference.
      * tests/core/ltlfilt.test: Add more tests.
      * tests/python/ltlf.py: New file.
      * tests/Makefile.am: Add it.
      * python/spot/impl.i: Python bindings.
      * NEWS: Mention it.
      2e69e045
  24. 01 Nov, 2016 1 commit
  25. 15 Aug, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      bin: %a,%b,%s format specs for LTL output · 926ffbf9
      Alexandre Duret-Lutz authored
      * NEWS: Mention those.
      * bin/common_output.cc, bin/common_output.hh: Implement them.
      * bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Update
      --help.
      * tests/core/format.test: New file.
      * tests/Makefile.am: Add it.
      * doc/org/ioltl.org, doc/org/ltlfilt.org: Update documentation.
      926ffbf9
  26. 14 Aug, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      bin: diagnose more write errors · e97ea5fa
      Alexandre Duret-Lutz authored
      * tests/core/full.test: New file.
      * tests/Makefile.am: Add it.
      * bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
      bin/common_file.cc, bin/common_file.hh, bin/genltl.cc, bin/ltlcross.cc,
      bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Add diagnostics.
      * NEWS: Mention the fix.
      e97ea5fa
  27. 04 Aug, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      implement conversion to GRA and GSA · 14bee1ae
      Alexandre Duret-Lutz authored
      Fixes #174.
      
      * spot/twaalgos/totgba.hh, spot/twaalgos/totgba.cc
      (to_generalized_streett, to_generalized_rabin): New functions.
      * spot/twa/acc.hh: Declare more methods as static.
      * bin/autfilt.cc: Implement --generalized-rabin and
      --generalized-streett options.
      * NEWS: Mention these.
      * tests/core/gragsa.test: New file.
      * tests/Makefile.am: Add it.
      14bee1ae