python: better support for explicit Kripke

Part of issue #376, reported by Hashim Ali.

* python/spot/impl.i: Add bindings for kripke_graph.
* python/spot/__init__.py (automaton): Add a want_kripke option.
* spot/kripke/kripkegraph.hh: Honnor the "state-names" property
when displaying states.
* spot/twaalgos/hoa.cc: Preserve names of Kripke states.
* tests/python/ltsmin-dve.ipynb: Illustrate all the above.
* NEWS: Mention those changes.
* THANKS: Add Hashim.
This commit is contained in:
Alexandre Duret-Lutz 2019-02-13 17:43:40 +01:00
parent a86925e20e
commit f26dd904ff
7 changed files with 393 additions and 33 deletions

18
NEWS
View file

@ -4,7 +4,7 @@ New in spot 2.7.0.dev (not yet release)
- Work around GCC bug #89303, that causes memory leaks and std::weak_bad_ptr
exceptions when Spot is compiled with the version of g++ 8.2 currently
distributed with Debian (starting with 8.2.0-15).
distributed by Debian unstable (starting with g++ 8.2.0-15).
Python:
@ -17,6 +17,20 @@ New in spot 2.7.0.dev (not yet release)
- unregister_all_my_variables(for_me)
- unregister_variable(var, for_me)
- Better support for explicit Kripke structures
- the kripke_graph type now has bindings
- spot.automaton() and spot.automata() now support a want_kripke=True
to return a kripke_graph
See the bottom of https://spot.lrde.epita.fr/ipynb/ltsmin-dve.html
for some examples.
Library:
- Printing Kripke structures via print_hoa() will save state names.
- kripke_graph_ptr objects now honnor any "state-names" property
when formating states.
Bugs fixed:
- The print_dot_psl() function would incorrectly number all but the
@ -38,7 +52,7 @@ New in spot 2.7.0.dev (not yet release)
suspendable automaton could incorrectly build transition-based
automata when multipliying two state-based automata. This caused
ltl2tgba to emit error messages such as: "automaton has
transition-based acceptance despite prop_state_acc()==true"
transition-based acceptance despite prop_state_acc()==true".
New in spot 2.7 (2018-12-11)