1. 09 Sep, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      python: add some parity-game bindings · 760bde09
      Alexandre Duret-Lutz authored
      * python/spot/impl.i: Process game.hh.
      * spot/misc/game.cc, spot/misc/game.hh: Make the output of
      parity_game_solve() a solved_game object for easier manipulation in
      Python.
      * bin/ltlsynt.cc: Adjust usage.
      * tests/python/paritygame.ipynb: New file.
      * tests/Makefile.am, doc/org/tut.org: Add it.
      * NEWS: Mention these bindings.
      760bde09
  2. 08 Sep, 2020 4 commits
    • Alexandre Duret-Lutz's avatar
      game: make a propagate_players() function public · 9e8a8429
      Alexandre Duret-Lutz authored
      * bin/ltlsynt.cc (complete_env): Replace this function by...
      * spot/misc/game.hh, spot/misc/game.cc (propagate_players): ... this
      new one, hiding the "state-player" business from ltlsynt.  Also do not
      create a sink states unless necessary.
      * tests/core/ltlsynt.test: Adjust expected number of states.
      9e8a8429
    • Alexandre Duret-Lutz's avatar
      dot: add support for two-player games · 41d088ea
      Alexandre Duret-Lutz authored
      * spot/twaalgos/dot.cc: Honor the "state-player" property and draw
      player 1 states using diamonds.
      * doc/org/hoa.org: Show an example.
      * tests/core/gamehoa.test: Make sure diamond is output.
      * NEWS: Mention this.
      41d088ea
    • Alexandre Duret-Lutz's avatar
      extend HOA I/O to preserve the state-player property · ea9384dd
      Alexandre Duret-Lutz authored
      * spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll,
      spot/twaalgos/hoa.cc: Add input and output support.
      * doc/org/hoa.org: Document the HOA extension.
      * bin/ltlsynt.cc: Add a --print-game-hoa option to
      produce such format.
      * tests/core/gamehoa.test: New file to test this.
      * tests/Makefile.am: Add it.
      * NEWS: Mention this new feature.
      ea9384dd
    • Alexandre Duret-Lutz's avatar
      game: git rid of the parity_game class · 25c75c55
      Alexandre Duret-Lutz authored
      This class was a simple wrapper on top of twa_graph_ptr, but it's
      easier to simply use a twa_graph_ptr with a "state-player" property
      instead, this way we will be able to modify the automata I/O routines
      to support games directly.
      
      * spot/misc/game.cc, spot/misc/game.hh: Rewrite the solver and
      pg_printer interface.
      * bin/ltlsynt.cc: Adjust.
      * NEWS: Mention this change.
      * doc/org/concepts.org: Mention the state-player property.
      25c75c55
  3. 02 Sep, 2020 1 commit
  4. 01 Sep, 2020 1 commit
  5. 03 Aug, 2020 5 commits
  6. 29 Jul, 2020 2 commits
    • Alexandre Duret-Lutz's avatar
      to_parity: minor fixes · 3710e8f2
      Alexandre Duret-Lutz authored
      * spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
      the automaton was not degeneralized.
      * spot/twaalgos/toparity.hh: Typo in comment.
      3710e8f2
    • Alexandre Duret-Lutz's avatar
      simplify_acceptance: generalize the complementary mark rewriting · a375089e
      Alexandre Duret-Lutz authored
      Fixes #403.
      
      * spot/twaalgos/cleanacc.cc (simplify_complementary_marks_here):
      Assume that two colors are complementary in a broad sense, i.e., on is
      present if (but not only if) the other is missing before applying
      those rewritings.  Technically, this is usually not necessary, because
      the changes done in #418 will cause such "covering-the-full-automaton"
      pair of colors to be disjoint so complementary in a strict sense.  It
      might make a difference (this is not tested) in presence of reused
      colors which #418 cannot remove.  In any case, it's simply less code
      to implement the broad sense.
      * tests/python/toparity.py: Add test case from #403, which is
      reduced to two states with recent optimizations.
      a375089e
  7. 28 Jul, 2020 3 commits
    • Alexandre Duret-Lutz's avatar
      improve acceptance simplifications using useless colors · 0c4b7016
      Alexandre Duret-Lutz authored
      This fixes issue #418.
      
      * spot/twa/acc.cc,
      spot/twa/acc.hh (acc_cond::acc_code::useless_colors_patterns): New
      method to detect patterns of colors allowing other colors to be added
      or removed at will.
      * spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Use the above
      patterns to remove some useless colors from transitions and hope that
      this can help simplify the acceptance condition.
      * spot/twaalgos/degen.cc (propagate_marks_vector): Use the pattern to
      add more colors.
      * tests/core/ltl2tgba2.test: Add the test case from issue #418.
      * tests/core/ltl2dstar4.test, tests/core/satmin3.test,
      tests/core/sccdot.test, tests/core/sim3.test,
      tests/python/automata.ipynb, tests/python/decompose.ipynb,
      tests/python/merge.py, tests/python/pdegen.py, tests/python/remfin.py,
      tests/python/toparity.py, tests/python/tra2tba.py: Adjust all test
      cases.
      * NEWS: Mention this new feature.
      0c4b7016
    • Alexandre Duret-Lutz's avatar
      c341a3ca
    • Alexandre Duret-Lutz's avatar
      cleanacc: merge algorithms dealing with included and identical sets · 25cb7651
      Alexandre Duret-Lutz authored
      * spot/twaalgos/cleanacc.cc (merge_identical_marks_here, merge_mark,
      included_marks): Fuse these into ...
      (simplify_included_marks_here): ... this new function.
      * NEWS: Mention the fix of issue #406.
      25cb7651
  8. 27 Jul, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      tra_to_tba: finish 05e6e088 · 3220da66
      Alexandre Duret-Lutz authored
      * spot/twaalgos/remfin.cc: Actually use propmarks.
      * tests/core/det.test, tests/core/remfin.test,
      tests/python/automata.ipynb, tests/python/remfin.py,
      tests/python/tra2tba.py: Adjust test cases.
      3220da66
  9. 25 Jul, 2020 1 commit
  10. 24 Jul, 2020 3 commits
  11. 22 Jul, 2020 2 commits
  12. 20 Jul, 2020 3 commits
    • Alexandre Duret-Lutz's avatar
      ltlcross: fix cross-checks for automata using Fin acceptance · ac5a261a
      Alexandre Duret-Lutz authored
      Fixes #420 reported by Salomon Sickert.
      
      * bin/ltlcross.cc: Call determine_unknown_acceptance().
      * spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Document
      that one_accepting_scc()==-1 can mean "don't know", and update
      determine_unknown_acceptance() to set one_acc_scc_.
      * tests/core/ltlcross3.test: Add test case.
      * NEWS: Mention the fixes.
      ac5a261a
    • Alexandre Duret-Lutz's avatar
      C++20: fix warnings reported by g++ 10.1 · c7774ebb
      Alexandre Duret-Lutz authored
      * spot/tl/formula.hh (formula::operator bool): Mark as noexcept.
      * bin/common_trans.hh, bin/common_trans.cc: Use std::atomic instead of
      volatile.
      c7774ebb
    • Alexandre Duret-Lutz's avatar
      ltlcross: fix cross-checks for automata using Fin acceptance · 33b28c81
      Alexandre Duret-Lutz authored
      Fixes #420 reported by Salomon Sickert.
      
      * bin/ltlcross.cc: Call determine_unknown_acceptance().
      * spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Document
      that one_accepting_scc()==-1 can mean "don't know", and update
      determine_unknown_acceptance() to set one_acc_scc_.
      * tests/core/ltlcross3.test: Add test case.
      * NEWS: Mention the fixes.
      33b28c81
  13. 17 Jul, 2020 1 commit
    • Alexandre Duret-Lutz's avatar
      formula: make operator bool explicit · 9daa4e60
      Alexandre Duret-Lutz authored
      * spot/tl/formula.hh (formula::operator bool): Make it explicit.  When
      compiling in C++20 mode with g++ 10.1, this bool operator was used
      instead of the comparison operators while looking up a
      std::pair<formula,formula> in a hash map, causing many test suite
      failures.  This problem does not occur with clang++ 10.0, so it
      might just be a bug in g++ 10.1.  But having explicit operator bool
      is good practice anyway.
      9daa4e60
  14. 16 Jul, 2020 2 commits
    • Alexandre Duret-Lutz's avatar
      C++20: fix warnings reported by g++ 10.1 · 368acaad
      Alexandre Duret-Lutz authored
      * spot/tl/formula.hh (formula::operator bool): Mark as noexcept.
      * bin/common_trans.hh, bin/common_trans.cc: Use std::atomic instead of
      volatile.
      368acaad
    • Alexandre Duret-Lutz's avatar
      build in C++17 mode by default · 4f230976
      Alexandre Duret-Lutz authored
      * configure.ac: Activate C++17, and replace --enable-c++17 by
      --enable-c++20.
      * NEWS: Mention the news.
      * .gitlab-ci.yml: Use C++20 for the former C++17 builds.
      * HACKING, README, doc/org/compile.org, doc/org/concepts.org,
      doc/org/index.org, doc/org/install.org, doc/org/tut.org,
      doc/org/upgrade2.org, spot/misc/escape.hh: Adjust mentions
      of C++14.
      4f230976
  15. 15 Jul, 2020 2 commits
  16. 13 Jul, 2020 8 commits
    • Alexandre Duret-Lutz's avatar
      run: fix reduce on automata with Fin · f2403c91
      Alexandre Duret-Lutz authored
      Reported by Florian Renkin.
      
      * spot/twaalgos/emptiness.cc (reduce): If the automaton uses Fin
      acceptance, check the reduced cycle and revert to the original cycle
      if necessary.
      * tests/python/intrun.py: New file.
      * tests/Makefile.am: Add it.
      * spot/twaalgos/emptiness.hh: Improve documentation.
      f2403c91
    • Alexandre Duret-Lutz's avatar
      genem: replace one recursive call by a loop · 9caba8bf
      Alexandre Duret-Lutz authored
      * spot/twaalgos/genem.cc: In the spot29 implementation for the generic
      case, when Fin(fo)=true and Fin(fo)=false have to be tested
      separately, the second test can be done by a loop instead of a
      recursion, to avoid unnecessary processing of the acceptance
      condition.  Suggested by Jan Strejček.
      9caba8bf
    • Alexandre Duret-Lutz's avatar
      address a new g++-10 warnings · a3769dfd
      Alexandre Duret-Lutz authored
      * spot/twa/twa.hh (set_named_prop): Declare the lambda as noexcept.
      * spot/twaalgos/couvreurnew.cc (acss_states): Likewise.
      a3769dfd
    • Alexandre Duret-Lutz's avatar
      sccinfo: fix doc · f16bc8a5
      Alexandre Duret-Lutz authored
      * spot/twaalgos/sccinfo.hh (scc_info_options::NONE): Fix doxygen doc.
      f16bc8a5
    • Alexandre Duret-Lutz's avatar
      twa: get rid of set_num_sets_() · 9e075e73
      Alexandre Duret-Lutz authored
      * spot/twa/twa.hh (set_num_sets_): Remove, and adjust all uses.
      This fixes #414.
      9e075e73
    • Alexandre Duret-Lutz's avatar
      simplify_acc: perform unit-propagation earlier · b434ac7f
      Alexandre Duret-Lutz authored
      Closes #405.   This shows no difference on the test suite,
      but that is thanks to the previous patch: without it, an
      example in automata.ipynb would have an extra edge.
      
      * spot/twaalgos/cleanacc.cc (simplify_acceptance): Call
      unit_propagation() before simplify_complementary_marks_here() and
      fuse_marks_here(), because that is simpler to perform.
      b434ac7f
    • Alexandre Duret-Lutz's avatar
      remfin: do not clone transitions that are accepting in main · b762f542
      Alexandre Duret-Lutz authored
      * spot/twaalgos/remfin.cc (default_strategy): Detect transitions
      from the main copy that are completely accepting and that do not
      need to be repeated in the clones.
      * tests/python/remfin.py: Add a test case.
      * tests/core/ltl2dstar4.test: Improve expected results.
      * NEWS: Mention the change.
      b762f542
    • Alexandre Duret-Lutz's avatar
      improve fuse_marks_here by detecting more patterns · c005041e
      Alexandre Duret-Lutz authored
      This remove some restrictions that prevented fuse_marks_here from
      simplifying certain patterns, as noted in the first comment of
      issue #405.
      
      * spot/twaalgos/cleanacc.cc (find_interm_rec, find_fusable): Remove
      some unnecessary restrictions to singleton marks, and replace the hack
      put one non-singleton mark at the beginning of the singleton list by a
      sort.
      * tests/python/simplacc.py: Add two test cases.
      * tests/python/automata.ipynb, tests/core/remfin.test: Improve
      expected results.
      * NEWS: Mention the bug.
      c005041e