introduce a zielonka_tree class

* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: New files.
* spot/twaalgos/Makefile.am: Add them.
* tests/python/_zlktree.ipynb: New file.
* tests/Makefile.am: Add it.
* python/spot/__init__.py, python/spot/impl.i: Add bindings for it.
* doc/spot.bib (casares.21.icalp): New entry.
* NEWS: Mention this.
This commit is contained in:
Alexandre Duret-Lutz 2021-07-29 17:41:04 +02:00
parent 803f647dde
commit af511707c0
9 changed files with 1948 additions and 10 deletions

View file

@ -428,6 +428,15 @@ class atomic_prop_set:
return res
@_extend(zielonka_tree)
class zielonka_tree:
def _repr_svg_(self):
"""Output the Zielonka tree as SVG"""
ostr = ostringstream()
self.dot(ostr)
return _ostream_to_svg(ostr)
def automata(*sources, timeout=None, ignore_abort=True,
trust_hoa=True, no_sid=False, debug=False,
want_kripke=False):

View file

@ -164,6 +164,7 @@
#include <spot/twaalgos/word.hh>
#include <spot/twaalgos/are_isomorphic.hh>
#include <spot/twaalgos/toparity.hh>
#include <spot/twaalgos/zlktree.hh>
#include <spot/parseaut/public.hh>
@ -690,6 +691,7 @@ def state_is_accepting(self, src) -> "bool":
%template(list_bdd) std::list<bdd>;
%include <spot/twaalgos/are_isomorphic.hh>
%include <spot/twaalgos/toparity.hh>
%include <spot/twaalgos/zlktree.hh>
%pythonprepend spot::twa::dtwa_complement %{
from warnings import warn