spot/tests/python/twagraph-internals.ipynb
Alexandre Duret-Lutz 7ac570fa3f modernize some Python code
Since we now require Python 3.6, we can use f-strings instead of
format() to make the code more readable.

* doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
doc/org/tut21.org, doc/org/tut24.org, doc/org/tut90.org,
python/spot/__init__.py, python/spot/jupyter.py, tests/python/acc.py,
tests/python/acc_cond.ipynb, tests/python/complement_semidet.py,
tests/python/decompose.ipynb, tests/python/formulas.ipynb,
tests/python/highlighting.ipynb, tests/python/ipnbdoctest.py,
tests/python/ltlf.py, tests/python/parity.ipynb,
tests/python/product.ipynb, tests/python/relabel.py,
tests/python/satmin.ipynb, tests/python/stutter-inv.ipynb,
tests/python/twagraph-internals.ipynb, tests/python/zlktree.ipynb: Use
f-strings.
2024-03-27 14:32:03 +01:00

7356 lines
613 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook discusses how explicit automata (the `spot::twa_graph_ptr` objects in C++) are stored by Spot. The Python bindings do not expose all of the internals available in C++, however they have some graphical representation that are convenient to present those inner workings."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import buddy\n",
"import spot\n",
"spot.setup(show_default='.n')\n",
"from IPython.display import display"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The two-vector representation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's consider a small automaton, generated from an LTL formula."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"aut = spot.translate('GF(a <-> Xa) & FGb', 'det', 'gen')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"196pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 196.00 221.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.51)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.51 192,-217.51 192,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"43.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"82.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"124.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-185.31\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.51C2.79,-63.51 17.15,-63.51 30.63,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.51 30.94,-66.66 34.44,-63.51 30.94,-63.51 30.94,-63.51 30.94,-63.51 34.44,-63.51 30.94,-60.36 37.94,-63.51 37.94,-63.51\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-81.29C52.21,-90.82 53.29,-99.51 56,-99.51 57.99,-99.51 59.1,-94.83 59.33,-88.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-81.29 62.48,-88.25 59.28,-84.79 59.33,-88.29 59.33,-88.29 59.33,-88.29 59.28,-84.79 56.18,-88.33 59.24,-81.29 59.24,-81.29\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.99,-81.09C47.55,-102.23 49.21,-129.51 56,-129.51 62.04,-129.51 64.03,-107.87 61.96,-88.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.01,-81.09 65.06,-87.61 61.47,-84.56 61.93,-88.03 61.93,-88.03 61.93,-88.03 61.47,-84.56 58.81,-88.44 61.01,-81.09 61.01,-81.09\"/>\n",
"<text text-anchor=\"start\" x=\"40\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"168\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.7,-80.29C69.35,-91.94 78.65,-106.56 92,-113.51 107.77,-121.72 116.23,-121.72 132,-113.51 143.05,-107.76 151.34,-96.74 157.06,-86.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.3,-80.29 159.86,-87.95 158.68,-83.39 157.07,-86.5 157.07,-86.5 157.07,-86.5 158.68,-83.39 154.27,-85.04 160.3,-80.29 160.3,-80.29\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-123.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.19,-63.51C92.59,-63.51 121.95,-63.51 142.71,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.93,-63.51 142.93,-66.66 146.43,-63.51 142.93,-63.51 142.93,-63.51 142.93,-63.51 146.43,-63.51 142.93,-60.36 149.93,-63.51 149.93,-63.51\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-82.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.69,-53.64C146.6,-50.02 139.24,-46.35 132,-44.51 114.77,-40.13 109.23,-40.13 92,-44.51 87.14,-45.74 82.22,-47.81 77.67,-50.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71.31,-53.64 75.91,-47.5 74.37,-51.95 77.44,-50.25 77.44,-50.25 77.44,-50.25 74.37,-51.95 78.96,-53.01 71.31,-53.64 71.31,-53.64\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-48.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.68,-46.39C156.48,-32.88 147.1,-14.96 132,-6.51 116.49,2.17 107.51,2.17 92,-6.51 79.26,-13.64 70.59,-27.51 65.07,-39.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.32,-46.39 62.1,-38.71 63.66,-43.16 65.01,-39.93 65.01,-39.93 65.01,-39.93 63.66,-43.16 67.92,-41.14 62.32,-46.39 62.32,-46.39\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-25.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-10.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M163,-80.92C162.07,-90.6 163.73,-99.51 168,-99.51 171.13,-99.51 172.86,-94.7 173.19,-88.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173,-80.92 176.33,-87.83 173.09,-84.42 173.18,-87.92 173.18,-87.92 173.18,-87.92 173.09,-84.42 170.03,-88 173,-80.92 173,-80.92\"/>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M160.46,-80.11C154.77,-101.37 157.28,-129.51 168,-129.51 177.59,-129.51 180.61,-107 177.06,-87.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.54,-80.11 180.12,-86.26 176.29,-83.52 177.05,-86.94 177.05,-86.94 177.05,-86.94 176.29,-83.52 173.97,-87.62 175.54,-80.11 175.54,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"196pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 196.00 221.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.51)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.51 192,-217.51 192,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"43.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"82.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"124.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"140.5\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-185.31\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.51C2.79,-63.51 17.15,-63.51 30.63,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.51 30.94,-66.66 34.44,-63.51 30.94,-63.51 30.94,-63.51 30.94,-63.51 34.44,-63.51 30.94,-60.36 37.94,-63.51 37.94,-63.51\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M52.76,-81.29C52.21,-90.82 53.29,-99.51 56,-99.51 57.99,-99.51 59.1,-94.83 59.33,-88.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-81.29 62.48,-88.25 59.28,-84.79 59.33,-88.29 59.33,-88.29 59.33,-88.29 59.28,-84.79 56.18,-88.33 59.24,-81.29 59.24,-81.29\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M50.99,-81.09C47.55,-102.23 49.21,-129.51 56,-129.51 62.04,-129.51 64.03,-107.87 61.96,-88.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"61.01,-81.09 65.06,-87.61 61.47,-84.56 61.93,-88.03 61.93,-88.03 61.93,-88.03 61.47,-84.56 58.81,-88.44 61.01,-81.09 61.01,-81.09\"/>\n",
"<text text-anchor=\"start\" x=\"40\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"168\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"168\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M63.7,-80.29C69.35,-91.94 78.65,-106.56 92,-113.51 107.77,-121.72 116.23,-121.72 132,-113.51 143.05,-107.76 151.34,-96.74 157.06,-86.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.3,-80.29 159.86,-87.95 158.68,-83.39 157.07,-86.5 157.07,-86.5 157.07,-86.5 158.68,-83.39 154.27,-85.04 160.3,-80.29 160.3,-80.29\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-123.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.19,-63.51C92.59,-63.51 121.95,-63.51 142.71,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.93,-63.51 142.93,-66.66 146.43,-63.51 142.93,-63.51 142.93,-63.51 142.93,-63.51 146.43,-63.51 142.93,-60.36 149.93,-63.51 149.93,-63.51\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-82.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M152.69,-53.64C146.6,-50.02 139.24,-46.35 132,-44.51 114.77,-40.13 109.23,-40.13 92,-44.51 87.14,-45.74 82.22,-47.81 77.67,-50.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"71.31,-53.64 75.91,-47.5 74.37,-51.95 77.44,-50.25 77.44,-50.25 77.44,-50.25 74.37,-51.95 78.96,-53.01 71.31,-53.64 71.31,-53.64\"/>\n",
"<text text-anchor=\"start\" x=\"96\" y=\"-48.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M161.68,-46.39C156.48,-32.88 147.1,-14.96 132,-6.51 116.49,2.17 107.51,2.17 92,-6.51 79.26,-13.64 70.59,-27.51 65.07,-39.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.32,-46.39 62.1,-38.71 63.66,-43.16 65.01,-39.93 65.01,-39.93 65.01,-39.93 63.66,-43.16 67.92,-41.14 62.32,-46.39 62.32,-46.39\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-25.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104\" y=\"-10.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M163,-80.92C162.07,-90.6 163.73,-99.51 168,-99.51 171.13,-99.51 172.86,-94.7 173.19,-88.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"173,-80.92 176.33,-87.83 173.09,-84.42 173.18,-87.92 173.18,-87.92 173.18,-87.92 173.09,-84.42 170.03,-88 173,-80.92 173,-80.92\"/>\n",
"<text text-anchor=\"start\" x=\"148\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M160.46,-80.11C154.77,-101.37 157.28,-129.51 168,-129.51 177.59,-129.51 180.61,-107 177.06,-87.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"175.54,-80.11 180.12,-86.26 176.29,-83.52 177.05,-86.94 177.05,-86.94 177.05,-86.94 176.29,-83.52 173.97,-87.62 175.54,-80.11 175.54,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"150\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The graphical representation above is just a convenient representation of that automaton and hides some details. Internally, this automaton is stored as two vectors plus some additional data. All of those can be displayed using the `show_storage()` method. The two vectors are the `states` and `edges` vectors. The additional data gives the initial state, number of acceptance sets, acceptance condition, list of atomic propositions, as well as a bunch of [property flags](https://spot.lrde.epita.fr/concepts.html#property-flags) on the automaton. All those properties default to `maybe`, but some algorithms will turn them to `yes` or `no` whenever that property can be decided at very low cost (usually a side effect of the algorithm). In this example we asked for a deterministic automaton, so the output of the construction is necessarily `universal` (this means no existential branching, hence deterministic for our purpose), and this property implies `unambiguous` and `semi_deterministic`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"699pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 698.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 694.5,-372 694.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"56.5,-311 56.5,-332 124.5,-332 124.5,-311 56.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"56.5,-311 124.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"68.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"124.5,-311 124.5,-332 140.5,-332 140.5,-311 124.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"124.5,-311 140.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"140.5,-311 140.5,-332 156.5,-332 156.5,-311 140.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"140.5,-311 156.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"56.5,-290 56.5,-311 124.5,-311 124.5,-290 56.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"74.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"56.5,-269 56.5,-290 124.5,-290 124.5,-269 56.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"59.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"190.5,-343 190.5,-364 266.5,-364 266.5,-343 190.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"190.5,-343 266.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"207\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"266.5,-343 266.5,-364 318.5,-364 318.5,-343 266.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"266.5,-343 318.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"318.5,-343 318.5,-364 364.5,-364 364.5,-343 318.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"318.5,-343 364.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"364.5,-343 364.5,-364 416.5,-364 416.5,-343 364.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"364.5,-343 416.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"385.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"416.5,-343 416.5,-364 474.5,-364 474.5,-343 416.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"416.5,-343 474.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"440.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"474.5,-343 474.5,-364 520.5,-364 520.5,-343 474.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"474.5,-343 520.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"492.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"520.5,-343 520.5,-364 572.5,-364 572.5,-343 520.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"520.5,-343 572.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"541.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"572.5,-343 572.5,-364 630.5,-364 630.5,-343 572.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"572.5,-343 630.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"596.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"630.5,-343 630.5,-364 682.5,-364 682.5,-343 630.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"630.5,-343 682.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"651.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"190.5,-322 190.5,-343 266.5,-343 266.5,-322 190.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"211.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-322 266.5,-343 318.5,-343 318.5,-322 266.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"269.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"318.5,-322 318.5,-343 364.5,-343 364.5,-322 318.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"321.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-322 364.5,-343 416.5,-343 416.5,-322 364.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"367.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"416.5,-322 416.5,-343 474.5,-343 474.5,-322 416.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"419.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-322 474.5,-343 520.5,-343 520.5,-322 474.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"477.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"520.5,-322 520.5,-343 572.5,-343 572.5,-322 520.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-322 572.5,-343 630.5,-343 630.5,-322 572.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"575.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"630.5,-322 630.5,-343 682.5,-343 682.5,-322 630.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"633.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"190.5,-301 190.5,-322 266.5,-322 266.5,-301 190.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"216.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-301 266.5,-322 318.5,-322 318.5,-301 266.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"278.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"318.5,-301 318.5,-322 364.5,-322 364.5,-301 318.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"327.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-301 364.5,-322 416.5,-322 416.5,-301 364.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"381\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"416.5,-301 416.5,-322 474.5,-322 474.5,-301 416.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"431.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-301 474.5,-322 520.5,-322 520.5,-301 474.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"488\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"520.5,-301 520.5,-322 572.5,-322 572.5,-301 520.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"532.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-301 572.5,-322 630.5,-322 630.5,-301 572.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"587.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"630.5,-301 630.5,-322 682.5,-322 682.5,-301 630.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"642.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"190.5,-280 190.5,-301 266.5,-301 266.5,-280 190.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"217\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"266.5,-280 266.5,-301 318.5,-301 318.5,-280 266.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-280 266.5,-301 318.5,-301 318.5,-280 266.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"318.5,-280 318.5,-301 364.5,-301 364.5,-280 318.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"318.5,-280 318.5,-301 364.5,-301 364.5,-280 318.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"364.5,-280 364.5,-301 416.5,-301 416.5,-280 364.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-280 364.5,-301 416.5,-301 416.5,-280 364.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"385.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"416.5,-280 416.5,-301 474.5,-301 474.5,-280 416.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"416.5,-280 416.5,-301 474.5,-301 474.5,-280 416.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"440.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"474.5,-280 474.5,-301 520.5,-301 520.5,-280 474.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-280 474.5,-301 520.5,-301 520.5,-280 474.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"492.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"520.5,-280 520.5,-301 572.5,-301 572.5,-280 520.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"520.5,-280 520.5,-301 572.5,-301 572.5,-280 520.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"541.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"572.5,-280 572.5,-301 630.5,-301 630.5,-280 572.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-280 572.5,-301 630.5,-301 630.5,-280 572.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"596.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"630.5,-280 630.5,-301 682.5,-301 682.5,-280 630.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"630.5,-280 630.5,-301 682.5,-301 682.5,-280 630.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"651.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"190.5,-259 190.5,-280 266.5,-280 266.5,-259 190.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"193.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"266.5,-259 266.5,-280 318.5,-280 318.5,-259 266.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-259 266.5,-280 318.5,-280 318.5,-259 266.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"318.5,-259 318.5,-280 364.5,-280 364.5,-259 318.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"318.5,-259 318.5,-280 364.5,-280 364.5,-259 318.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"364.5,-259 364.5,-280 416.5,-280 416.5,-259 364.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-259 364.5,-280 416.5,-280 416.5,-259 364.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"385.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"416.5,-259 416.5,-280 474.5,-280 474.5,-259 416.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"440.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"474.5,-259 474.5,-280 520.5,-280 520.5,-259 474.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-259 474.5,-280 520.5,-280 520.5,-259 474.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"492.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"520.5,-259 520.5,-280 572.5,-280 572.5,-259 520.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"520.5,-259 520.5,-280 572.5,-280 572.5,-259 520.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"541.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"572.5,-259 572.5,-280 630.5,-280 630.5,-259 572.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-259 572.5,-280 630.5,-280 630.5,-259 572.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"596.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"630.5,-259 630.5,-280 682.5,-280 682.5,-259 630.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"651.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"190.5,-238 190.5,-259 266.5,-259 266.5,-238 190.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"217.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"266.5,-238 266.5,-259 318.5,-259 318.5,-238 266.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-238 266.5,-259 318.5,-259 318.5,-238 266.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"318.5,-238 318.5,-259 364.5,-259 364.5,-238 318.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"318.5,-238 318.5,-259 364.5,-259 364.5,-238 318.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"364.5,-238 364.5,-259 416.5,-259 416.5,-238 364.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-238 364.5,-259 416.5,-259 416.5,-238 364.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"385.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"416.5,-238 416.5,-259 474.5,-259 474.5,-238 416.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"416.5,-238 416.5,-259 474.5,-259 474.5,-238 416.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"440.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"474.5,-238 474.5,-259 520.5,-259 520.5,-238 474.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-238 474.5,-259 520.5,-259 520.5,-238 474.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"492.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"520.5,-238 520.5,-259 572.5,-259 572.5,-238 520.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"520.5,-238 520.5,-259 572.5,-259 572.5,-238 520.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"541.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"572.5,-238 572.5,-259 630.5,-259 630.5,-238 572.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-238 572.5,-259 630.5,-259 630.5,-238 572.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"596.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"630.5,-238 630.5,-259 682.5,-259 682.5,-238 630.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"630.5,-238 630.5,-259 682.5,-259 682.5,-238 630.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"651.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 205.5,-137 205.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">no</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"320.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.show_storage()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each state is represented by an integer that is a 0-based index into the `states` array. Each edge is also represented by an integer that is a 1-based index into the `edges` array. In the above picture, yellow and cyan denote state and edge indices respectively.\n",
"\n",
"Adding a new edge, for instance, will augment the size of the `edges` array and return the index of the newly added edge:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = aut.new_state()\n",
"aut.set_init_state(s)\n",
"aut.new_edge(s, 0, buddy.bddtrue)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 277.00 221.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.51)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.51 273,-217.51 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-185.31\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.51C2.79,-63.51 17.15,-63.51 30.63,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.51 30.94,-66.66 34.44,-63.51 30.94,-63.51 30.94,-63.51 30.94,-63.51 34.44,-63.51 30.94,-60.36 37.94,-63.51 37.94,-63.51\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-63.51C85.12,-63.51 99.52,-63.51 111.67,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-63.51 111.89,-66.66 115.39,-63.51 111.89,-63.51 111.89,-63.51 111.89,-63.51 115.39,-63.51 111.89,-60.36 118.89,-63.51 118.89,-63.51\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-81.29C132.79,-90.82 133.99,-99.51 137,-99.51 139.21,-99.51 140.44,-94.83 140.7,-88.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-81.29 143.85,-88.25 140.65,-84.79 140.7,-88.29 140.7,-88.29 140.7,-88.29 140.65,-84.79 137.55,-88.34 140.6,-81.29 140.6,-81.29\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-80.76C127.59,-101.94 129.42,-129.51 137,-129.51 143.75,-129.51 145.94,-107.64 143.58,-87.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-80.76 146.66,-87.21 143.03,-84.22 143.55,-87.68 143.55,-87.68 143.55,-87.68 143.03,-84.22 140.43,-88.15 142.51,-80.76 142.51,-80.76\"/>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M144.7,-80.29C150.35,-91.94 159.65,-106.56 173,-113.51 188.77,-121.72 197.23,-121.72 213,-113.51 224.05,-107.76 232.34,-96.74 238.06,-86.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"241.3,-80.29 240.86,-87.95 239.68,-83.39 238.07,-86.5 238.07,-86.5 238.07,-86.5 239.68,-83.39 235.27,-85.04 241.3,-80.29 241.3,-80.29\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-123.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.19,-63.51C173.59,-63.51 202.95,-63.51 223.71,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.93,-63.51 223.93,-66.66 227.43,-63.51 223.93,-63.51 223.93,-63.51 223.93,-63.51 227.43,-63.51 223.93,-60.36 230.93,-63.51 230.93,-63.51\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-82.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M233.69,-53.64C227.6,-50.02 220.24,-46.35 213,-44.51 195.77,-40.13 190.23,-40.13 173,-44.51 168.14,-45.74 163.22,-47.81 158.67,-50.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.31,-53.64 156.91,-47.5 155.37,-51.95 158.44,-50.25 158.44,-50.25 158.44,-50.25 155.37,-51.95 159.96,-53.01 152.31,-53.64 152.31,-53.64\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-48.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.68,-46.39C237.48,-32.88 228.1,-14.96 213,-6.51 197.49,2.17 188.51,2.17 173,-6.51 160.26,-13.64 151.59,-27.51 146.07,-39.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.32,-46.39 143.1,-38.71 144.66,-43.16 146.01,-39.93 146.01,-39.93 146.01,-39.93 144.66,-43.16 148.92,-41.14 143.32,-46.39 143.32,-46.39\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-25.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-10.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-80.92C243.07,-90.6 244.73,-99.51 249,-99.51 252.13,-99.51 253.86,-94.7 254.19,-88.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-80.92 257.33,-87.83 254.09,-84.42 254.18,-87.92 254.18,-87.92 254.18,-87.92 254.09,-84.42 251.03,-88 254,-80.92 254,-80.92\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-80.11C235.77,-101.37 238.28,-129.51 249,-129.51 258.59,-129.51 261.61,-107 258.06,-87.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-80.11 261.12,-86.26 257.29,-83.52 258.05,-86.94 258.05,-86.94 258.05,-86.94 257.29,-83.52 254.97,-87.62 256.54,-80.11 256.54,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 277.00 221.51\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.51)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.51 273,-217.51 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-199.31\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-185.31\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.51C2.79,-63.51 17.15,-63.51 30.63,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.51 30.94,-66.66 34.44,-63.51 30.94,-63.51 30.94,-63.51 30.94,-63.51 34.44,-63.51 30.94,-60.36 37.94,-63.51 37.94,-63.51\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-63.51C85.12,-63.51 99.52,-63.51 111.67,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-63.51 111.89,-66.66 115.39,-63.51 111.89,-63.51 111.89,-63.51 111.89,-63.51 115.39,-63.51 111.89,-60.36 118.89,-63.51 118.89,-63.51\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-81.29C132.79,-90.82 133.99,-99.51 137,-99.51 139.21,-99.51 140.44,-94.83 140.7,-88.56\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-81.29 143.85,-88.25 140.65,-84.79 140.7,-88.29 140.7,-88.29 140.7,-88.29 140.65,-84.79 137.55,-88.34 140.6,-81.29 140.6,-81.29\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-80.76C127.59,-101.94 129.42,-129.51 137,-129.51 143.75,-129.51 145.94,-107.64 143.58,-87.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-80.76 146.66,-87.21 143.03,-84.22 143.55,-87.68 143.55,-87.68 143.55,-87.68 143.03,-84.22 140.43,-88.15 142.51,-80.76 142.51,-80.76\"/>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-63.51\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-59.81\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M144.7,-80.29C150.35,-91.94 159.65,-106.56 173,-113.51 188.77,-121.72 197.23,-121.72 213,-113.51 224.05,-107.76 232.34,-96.74 238.06,-86.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"241.3,-80.29 240.86,-87.95 239.68,-83.39 238.07,-86.5 238.07,-86.5 238.07,-86.5 239.68,-83.39 235.27,-85.04 241.3,-80.29 241.3,-80.29\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-123.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M155.19,-63.51C173.59,-63.51 202.95,-63.51 223.71,-63.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"230.93,-63.51 223.93,-66.66 227.43,-63.51 223.93,-63.51 223.93,-63.51 223.93,-63.51 227.43,-63.51 223.93,-60.36 230.93,-63.51 230.93,-63.51\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-82.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-67.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M233.69,-53.64C227.6,-50.02 220.24,-46.35 213,-44.51 195.77,-40.13 190.23,-40.13 173,-44.51 168.14,-45.74 163.22,-47.81 158.67,-50.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.31,-53.64 156.91,-47.5 155.37,-51.95 158.44,-50.25 158.44,-50.25 158.44,-50.25 155.37,-51.95 159.96,-53.01 152.31,-53.64 152.31,-53.64\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-48.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.68,-46.39C237.48,-32.88 228.1,-14.96 213,-6.51 197.49,2.17 188.51,2.17 173,-6.51 160.26,-13.64 151.59,-27.51 146.07,-39.79\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"143.32,-46.39 143.1,-38.71 144.66,-43.16 146.01,-39.93 146.01,-39.93 146.01,-39.93 144.66,-43.16 148.92,-41.14 143.32,-46.39 143.32,-46.39\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-25.31\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-10.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-80.92C243.07,-90.6 244.73,-99.51 249,-99.51 252.13,-99.51 253.86,-94.7 254.19,-88.32\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-80.92 257.33,-87.83 254.09,-84.42 254.18,-87.92 254.18,-87.92 254.18,-87.92 254.09,-84.42 251.03,-88 254,-80.92 254,-80.92\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-118.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-103.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-80.11C235.77,-101.37 238.28,-129.51 249,-129.51 258.59,-129.51 261.61,-107 258.06,-87.02\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-80.11 261.12,-86.26 257.29,-83.52 258.05,-86.94 258.05,-86.94 258.05,-86.94 257.29,-83.52 254.97,-87.62 256.54,-80.11 256.54,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-148.31\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-133.31\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"692pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 691.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 687.5,-138 687.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"159,-109 159,-130 235,-130 235,-109 159,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"159,-109 235,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"175.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-109 235,-130 287,-130 287,-109 235,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"235,-109 287,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-109 287,-130 333,-130 333,-109 287,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287,-109 333,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"333,-109 333,-130 385,-130 385,-109 333,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"333,-109 385,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"385,-109 385,-130 443,-130 443,-109 385,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"385,-109 443,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"443,-109 443,-130 489,-130 489,-109 443,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"443,-109 489,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"489,-109 489,-130 541,-130 541,-109 489,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"489,-109 541,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541,-109 541,-130 599,-130 599,-109 541,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"541,-109 599,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"599,-109 599,-130 651,-130 651,-109 599,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"599,-109 651,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"651,-109 651,-130 676,-130 676,-109 651,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"651,-109 676,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-88 159,-109 235,-109 235,-88 159,-88\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-88 235,-109 287,-109 287,-88 235,-88\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-88 287,-109 333,-109 333,-88 287,-88\"/>\n",
"<text text-anchor=\"start\" x=\"290\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-88 333,-109 385,-109 385,-88 333,-88\"/>\n",
"<text text-anchor=\"start\" x=\"336\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-88 385,-109 443,-109 443,-88 385,-88\"/>\n",
"<text text-anchor=\"start\" x=\"388\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-88 443,-109 489,-109 489,-88 443,-88\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-88 489,-109 541,-109 541,-88 489,-88\"/>\n",
"<text text-anchor=\"start\" x=\"492\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-88 541,-109 599,-109 599,-88 541,-88\"/>\n",
"<text text-anchor=\"start\" x=\"544\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-88 599,-109 651,-109 651,-88 599,-88\"/>\n",
"<text text-anchor=\"start\" x=\"602\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-88 651,-109 676,-109 676,-88 651,-88\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-67 159,-88 235,-88 235,-67 159,-67\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-67 235,-88 287,-88 287,-67 235,-67\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-67 287,-88 333,-88 333,-67 287,-67\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-67 333,-88 385,-88 385,-67 333,-67\"/>\n",
"<text text-anchor=\"start\" x=\"349.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-67 385,-88 443,-88 443,-67 385,-67\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-67 443,-88 489,-88 489,-67 443,-67\"/>\n",
"<text text-anchor=\"start\" x=\"456.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-67 489,-88 541,-88 541,-67 489,-67\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-67 541,-88 599,-88 599,-67 541,-67\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-67 599,-88 651,-88 651,-67 599,-67\"/>\n",
"<text text-anchor=\"start\" x=\"611\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-67 651,-88 676,-88 676,-67 651,-67\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-46 159,-67 235,-67 235,-46 159,-46\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-46 287,-67 333,-67 333,-46 287,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-46 287,-67 333,-67 333,-46 287,-46\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333,-46 333,-67 385,-67 385,-46 333,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-46 333,-67 385,-67 385,-46 333,-46\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385,-46 385,-67 443,-67 443,-46 385,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-46 385,-67 443,-67 443,-46 385,-46\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-46 443,-67 489,-67 489,-46 443,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-46 443,-67 489,-67 489,-46 443,-46\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"489,-46 489,-67 541,-67 541,-46 489,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-46 489,-67 541,-67 541,-46 489,-46\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541,-46 541,-67 599,-67 599,-46 541,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-46 541,-67 599,-67 599,-46 541,-46\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-46 599,-67 651,-67 651,-46 599,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-46 599,-67 651,-67 651,-46 599,-46\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651,-46 651,-67 676,-67 676,-46 651,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-46 651,-67 676,-67 676,-46 651,-46\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-25 159,-46 235,-46 235,-25 159,-25\"/>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-25 287,-46 333,-46 333,-25 287,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-25 287,-46 333,-46 333,-25 287,-25\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"333,-25 333,-46 385,-46 385,-25 333,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-25 333,-46 385,-46 385,-25 333,-25\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-25 385,-46 443,-46 443,-25 385,-25\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"443,-25 443,-46 489,-46 489,-25 443,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-25 443,-46 489,-46 489,-25 443,-25\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"489,-25 489,-46 541,-46 541,-25 489,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-25 489,-46 541,-46 541,-25 489,-25\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541,-25 541,-46 599,-46 599,-25 541,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-25 541,-46 599,-46 599,-25 541,-25\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-25 599,-46 651,-46 651,-25 599,-25\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-25 651,-46 676,-46 676,-25 651,-25\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-4 159,-25 235,-25 235,-4 159,-4\"/>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-4 287,-25 333,-25 333,-4 287,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-4 287,-25 333,-25 333,-4 287,-4\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333,-4 333,-25 385,-25 385,-4 333,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-4 333,-25 385,-25 385,-4 333,-4\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385,-4 385,-25 443,-25 443,-4 385,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-4 385,-25 443,-25 443,-4 385,-4\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-4 443,-25 489,-25 489,-4 443,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-4 443,-25 489,-25 489,-4 443,-4\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"489,-4 489,-25 541,-25 541,-4 489,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-4 489,-25 541,-25 541,-4 489,-4\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541,-4 541,-25 599,-25 599,-4 541,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-4 541,-25 599,-25 599,-4 541,-4\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-4 599,-25 651,-25 651,-4 599,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-4 599,-25 651,-25 651,-4 599,-4\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651,-4 651,-25 676,-25 676,-4 651,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-4 651,-25 676,-25 676,-4 651,-4\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(aut, aut.show_storage(\"v\")) # \"v\" displays only the states and edges Vectors"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each state, the `states` vector stores two edge indices: `succ` is the index of the first outgoing edge, and `succ_tail` is the index of the last outgoing edge. Since there is no edge at index `0`, that value is used to indicate that there is no outgoing edge.\n",
"\n",
"In the `edges` vector, the field `next_succ` is used to organize the outgoing edges of a state as a linked list. For instance to iterate over all successors of state `0`, we would start at the edge `e = states[0].succ` (if it's not `0`),\n",
"then move to the next successor with `e = edges[e].next_succ`, and repeat until `e` becomes `0`. This code cannot be executed in Python because the automaton class won't let us access the `states` vector. However this iteration mechanism is what is used into the `out()` method: `out()` simply provides an iterator over some columns of the `edges` vector, following the `next_succ` links. When we have a reference to a column of `edges` as returned by `out()`, we can convert it into an edge index with the `edge_number()` method."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"edges[1].src=0, edges[1].dst=0\n",
"edges[2].src=0, edges[2].dst=0\n",
"edges[3].src=0, edges[3].dst=1\n",
"edges[4].src=0, edges[4].dst=1\n"
]
}
],
"source": [
"for ed in aut.out(0):\n",
" en = aut.edge_number(ed)\n",
" print(f\"edges[{en}].src={ed.src}, edges[{en}].dst={ed.dst}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The other fields of the `edges` vector probably speak for themselves. `cond` is a BDD representing the boolean combination of atomic propositions expected by the edge, `acc` is an instance of `spot::acc_cond::mark_t`, i.e., a bit set representing the set of acceptance sets the edge belongs to, `src` and `dst` are the source and destination of the transition. Of course when iterating over the successors of a state with `aut.out(src)`, the source is well known, but there are other situations where it is convenient to retrieve the source from the edge (e.g., when iterating over all edges of an automaton, or when storing edges indices for later processing).\n",
"\n",
"You can access one column of the `edges` vector using the `edge_storage()` method. For instance let's modify edge 3:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"249pt\"\n",
" viewBox=\"0.00 0.00 277.00 249.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 245.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-245.35 273,-245.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-213.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.59,-61.51C134.22,-70.89 135.02,-79.35 137,-79.35 138.45,-79.35 139.27,-74.79 139.46,-68.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"139.41,-61.51 142.61,-68.49 139.44,-65.01 139.46,-68.51 139.46,-68.51 139.46,-68.51 139.44,-65.01 136.31,-68.53 139.41,-61.51 139.41,-61.51\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.25,-61.26C130.75,-82.35 132,-109.35 137,-109.35 141.45,-109.35 142.93,-87.94 141.44,-68.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.75,-61.26 144.56,-67.92 141.09,-64.74 141.42,-68.23 141.42,-68.23 141.42,-68.23 141.09,-64.74 138.29,-68.53 140.75,-61.26 140.75,-61.26\"/>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.43,-61.13C127.35,-91.82 128.88,-139.35 137,-139.35 144.52,-139.35 146.39,-98.62 142.59,-68.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"141.57,-61.13 145.69,-67.6 142.07,-64.59 142.57,-68.05 142.57,-68.05 142.57,-68.05 142.07,-64.59 139.45,-68.5 141.57,-61.13 141.57,-61.13\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-158.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-60.76C243.07,-70.44 244.73,-79.35 249,-79.35 252.13,-79.35 253.86,-74.55 254.19,-68.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-60.76 257.33,-67.68 254.09,-64.26 254.18,-67.76 254.18,-67.76 254.18,-67.76 254.09,-64.26 251.03,-67.84 254,-60.76 254,-60.76\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-59.95C235.77,-81.22 238.28,-109.35 249,-109.35 258.59,-109.35 261.61,-86.84 258.06,-66.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-59.95 261.12,-66.11 257.29,-63.37 258.05,-66.79 258.05,-66.79 258.05,-66.79 257.29,-63.37 254.97,-67.46 256.54,-59.95 256.54,-59.95\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"249pt\"\n",
" viewBox=\"0.00 0.00 277.00 249.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 245.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-245.35 273,-245.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-227.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-213.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M134.59,-61.51C134.22,-70.89 135.02,-79.35 137,-79.35 138.45,-79.35 139.27,-74.79 139.46,-68.65\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"139.41,-61.51 142.61,-68.49 139.44,-65.01 139.46,-68.51 139.46,-68.51 139.46,-68.51 139.44,-65.01 136.31,-68.53 139.41,-61.51 139.41,-61.51\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.25,-61.26C130.75,-82.35 132,-109.35 137,-109.35 141.45,-109.35 142.93,-87.94 141.44,-68.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.75,-61.26 144.56,-67.92 141.09,-64.74 141.42,-68.23 141.42,-68.23 141.42,-68.23 141.09,-64.74 138.29,-68.53 140.75,-61.26 140.75,-61.26\"/>\n",
"<text text-anchor=\"start\" x=\"121\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M132.43,-61.13C127.35,-91.82 128.88,-139.35 137,-139.35 144.52,-139.35 146.39,-98.62 142.59,-68.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"141.57,-61.13 145.69,-67.6 142.07,-64.59 142.57,-68.05 142.57,-68.05 142.57,-68.05 142.07,-64.59 139.45,-68.5 141.57,-61.13 141.57,-61.13\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-158.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-60.76C243.07,-70.44 244.73,-79.35 249,-79.35 252.13,-79.35 253.86,-74.55 254.19,-68.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-60.76 257.33,-67.68 254.09,-64.26 254.18,-67.76 254.18,-67.76 254.18,-67.76 254.09,-64.26 251.03,-67.84 254,-60.76 254,-60.76\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-59.95C235.77,-81.22 238.28,-109.35 249,-109.35 258.59,-109.35 261.61,-86.84 258.06,-66.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-59.95 261.12,-66.11 257.29,-63.37 258.05,-66.79 258.05,-66.79 258.05,-66.79 257.29,-63.37 254.97,-67.46 256.54,-59.95 256.54,-59.95\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"692pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 691.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 687.5,-138 687.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"159,-109 159,-130 235,-130 235,-109 159,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"159,-109 235,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"175.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-109 235,-130 287,-130 287,-109 235,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"235,-109 287,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-109 287,-130 333,-130 333,-109 287,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287,-109 333,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"333,-109 333,-130 385,-130 385,-109 333,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"333,-109 385,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"385,-109 385,-130 443,-130 443,-109 385,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"385,-109 443,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"443,-109 443,-130 489,-130 489,-109 443,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"443,-109 489,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"489,-109 489,-130 541,-130 541,-109 489,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"489,-109 541,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541,-109 541,-130 599,-130 599,-109 541,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"541,-109 599,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"599,-109 599,-130 651,-130 651,-109 599,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"599,-109 651,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"651,-109 651,-130 676,-130 676,-109 651,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"651,-109 676,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-88 159,-109 235,-109 235,-88 159,-88\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-88 235,-109 287,-109 287,-88 235,-88\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-88 287,-109 333,-109 333,-88 287,-88\"/>\n",
"<text text-anchor=\"start\" x=\"290\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-88 333,-109 385,-109 385,-88 333,-88\"/>\n",
"<text text-anchor=\"start\" x=\"336\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-88 385,-109 443,-109 443,-88 385,-88\"/>\n",
"<text text-anchor=\"start\" x=\"388\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-88 443,-109 489,-109 489,-88 443,-88\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-88 489,-109 541,-109 541,-88 489,-88\"/>\n",
"<text text-anchor=\"start\" x=\"492\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-88 541,-109 599,-109 599,-88 541,-88\"/>\n",
"<text text-anchor=\"start\" x=\"544\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-88 599,-109 651,-109 651,-88 599,-88\"/>\n",
"<text text-anchor=\"start\" x=\"602\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-88 651,-109 676,-109 676,-88 651,-88\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-67 159,-88 235,-88 235,-67 159,-67\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-67 235,-88 287,-88 287,-67 235,-67\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-67 287,-88 333,-88 333,-67 287,-67\"/>\n",
"<text text-anchor=\"start\" x=\"296\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-67 333,-88 385,-88 385,-67 333,-67\"/>\n",
"<text text-anchor=\"start\" x=\"345\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-67 385,-88 443,-88 443,-67 385,-67\"/>\n",
"<text text-anchor=\"start\" x=\"400\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-67 443,-88 489,-88 489,-67 443,-67\"/>\n",
"<text text-anchor=\"start\" x=\"456.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-67 489,-88 541,-88 541,-67 489,-67\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-67 541,-88 599,-88 599,-67 541,-67\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-67 599,-88 651,-88 651,-67 599,-67\"/>\n",
"<text text-anchor=\"start\" x=\"611\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-67 651,-88 676,-88 676,-67 651,-67\"/>\n",
"<text text-anchor=\"start\" x=\"654\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-46 159,-67 235,-67 235,-46 159,-46\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-46 287,-67 333,-67 333,-46 287,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-46 287,-67 333,-67 333,-46 287,-46\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333,-46 333,-67 385,-67 385,-46 333,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-46 333,-67 385,-67 385,-46 333,-46\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385,-46 385,-67 443,-67 443,-46 385,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-46 385,-67 443,-67 443,-46 385,-46\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-46 443,-67 489,-67 489,-46 443,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-46 443,-67 489,-67 489,-46 443,-46\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"489,-46 489,-67 541,-67 541,-46 489,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-46 489,-67 541,-67 541,-46 489,-46\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541,-46 541,-67 599,-67 599,-46 541,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-46 541,-67 599,-67 599,-46 541,-46\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-46 599,-67 651,-67 651,-46 599,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-46 599,-67 651,-67 651,-46 599,-46\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651,-46 651,-67 676,-67 676,-46 651,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-46 651,-67 676,-67 676,-46 651,-46\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-25 159,-46 235,-46 235,-25 159,-25\"/>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-25 287,-46 333,-46 333,-25 287,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-25 287,-46 333,-46 333,-25 287,-25\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"333,-25 333,-46 385,-46 385,-25 333,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-25 333,-46 385,-46 385,-25 333,-25\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-25 385,-46 443,-46 443,-25 385,-25\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"443,-25 443,-46 489,-46 489,-25 443,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-25 443,-46 489,-46 489,-25 443,-25\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"489,-25 489,-46 541,-46 541,-25 489,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-25 489,-46 541,-46 541,-25 489,-25\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541,-25 541,-46 599,-46 599,-25 541,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-25 541,-46 599,-46 599,-25 541,-25\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-25 599,-46 651,-46 651,-25 599,-25\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-25 651,-46 676,-46 676,-25 651,-25\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-4 159,-25 235,-25 235,-4 159,-4\"/>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-4 287,-25 333,-25 333,-4 287,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-4 287,-25 333,-25 333,-4 287,-4\"/>\n",
"<text text-anchor=\"start\" x=\"305\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333,-4 333,-25 385,-25 385,-4 333,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333,-4 333,-25 385,-25 385,-4 333,-4\"/>\n",
"<text text-anchor=\"start\" x=\"354\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385,-4 385,-25 443,-25 443,-4 385,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385,-4 385,-25 443,-25 443,-4 385,-4\"/>\n",
"<text text-anchor=\"start\" x=\"409\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-4 443,-25 489,-25 489,-4 443,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"443,-4 443,-25 489,-25 489,-4 443,-4\"/>\n",
"<text text-anchor=\"start\" x=\"461\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"489,-4 489,-25 541,-25 541,-4 489,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"489,-4 489,-25 541,-25 541,-4 489,-4\"/>\n",
"<text text-anchor=\"start\" x=\"510\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541,-4 541,-25 599,-25 599,-4 541,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541,-4 541,-25 599,-25 599,-4 541,-4\"/>\n",
"<text text-anchor=\"start\" x=\"565\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-4 599,-25 651,-25 651,-4 599,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-4 599,-25 651,-25 651,-4 599,-4\"/>\n",
"<text text-anchor=\"start\" x=\"620\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651,-4 651,-25 676,-25 676,-4 651,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651,-4 651,-25 676,-25 676,-4 651,-4\"/>\n",
"<text text-anchor=\"start\" x=\"658.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.edge_storage(3).acc.set(1)\n",
"aut.edge_storage(3).dst = 0\n",
"display(aut)\n",
"aut.show_storage(\"v\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Having the source into the `edges` vector also allows us to easily sort that vector to put all sibling transitions (i.e., transition leaving the same state) together to improve data locality. The `merge_edges()` method will do that and a bit more: edges are first sorted by (`src`, `dst`, `acc`) making possible to merge the `cond` field of edges with identical (`src`, `dst`, `acc`). On Fin-less automata (not our example), the a second pass is perform to sort the edge (`src`, `dst`, `cond`) and then merge the `acc` fields of edges that share the other fields.\n",
"\n",
"In our example, `merge_edges()` will merge edges 1 and 3."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"201pt\"\n",
" viewBox=\"0.00 0.00 277.00 201.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 197.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-197.35 273,-197.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-165.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.14C132.79,-70.67 133.99,-79.35 137,-79.35 139.21,-79.35 140.44,-74.67 140.7,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.14 143.85,-68.09 140.65,-64.64 140.7,-68.14 140.7,-68.14 140.7,-68.14 140.65,-64.64 137.55,-68.18 140.6,-61.14 140.6,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.6C127.59,-81.79 129.42,-109.35 137,-109.35 143.75,-109.35 145.94,-87.49 143.58,-67.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.6 146.66,-67.06 143.03,-64.06 143.55,-67.53 143.55,-67.53 143.55,-67.53 143.03,-64.06 140.43,-67.99 142.51,-60.6 142.51,-60.6\"/>\n",
"<text text-anchor=\"start\" x=\"133\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-60.76C243.07,-70.44 244.73,-79.35 249,-79.35 252.13,-79.35 253.86,-74.55 254.19,-68.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-60.76 257.33,-67.68 254.09,-64.26 254.18,-67.76 254.18,-67.76 254.18,-67.76 254.09,-64.26 251.03,-67.84 254,-60.76 254,-60.76\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-59.95C235.77,-81.22 238.28,-109.35 249,-109.35 258.59,-109.35 261.61,-86.84 258.06,-66.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-59.95 261.12,-66.11 257.29,-63.37 258.05,-66.79 258.05,-66.79 258.05,-66.79 257.29,-63.37 254.97,-67.46 256.54,-59.95 256.54,-59.95\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"201pt\"\n",
" viewBox=\"0.00 0.00 277.00 201.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 197.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-197.35 273,-197.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-179.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-165.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.14C132.79,-70.67 133.99,-79.35 137,-79.35 139.21,-79.35 140.44,-74.67 140.7,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.14 143.85,-68.09 140.65,-64.64 140.7,-68.14 140.7,-68.14 140.7,-68.14 140.65,-64.64 137.55,-68.18 140.6,-61.14 140.6,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.6C127.59,-81.79 129.42,-109.35 137,-109.35 143.75,-109.35 145.94,-87.49 143.58,-67.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.6 146.66,-67.06 143.03,-64.06 143.55,-67.53 143.55,-67.53 143.55,-67.53 143.03,-64.06 140.43,-67.99 142.51,-60.6 142.51,-60.6\"/>\n",
"<text text-anchor=\"start\" x=\"133\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M244,-60.76C243.07,-70.44 244.73,-79.35 249,-79.35 252.13,-79.35 253.86,-74.55 254.19,-68.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254,-60.76 257.33,-67.68 254.09,-64.26 254.18,-67.76 254.18,-67.76 254.18,-67.76 254.09,-64.26 251.03,-67.84 254,-60.76 254,-60.76\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M241.46,-59.95C235.77,-81.22 238.28,-109.35 249,-109.35 258.59,-109.35 261.61,-86.84 258.06,-66.87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"256.54,-59.95 261.12,-66.11 257.29,-63.37 258.05,-66.79 258.05,-66.79 258.05,-66.79 257.29,-63.37 254.97,-67.46 256.54,-59.95 256.54,-59.95\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"628pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 627.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 623.5,-138 623.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"159,-109 159,-130 235,-130 235,-109 159,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"159,-109 235,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"175.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-109 235,-130 287,-130 287,-109 235,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"235,-109 287,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-109 287,-130 321,-130 321,-109 287,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287,-109 321,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"321,-109 321,-130 379,-130 379,-109 321,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"321,-109 379,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"345\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"379,-109 379,-130 425,-130 425,-109 379,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"379,-109 425,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"397\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"425,-109 425,-130 477,-130 477,-109 425,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"425,-109 477,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"477,-109 477,-130 535,-130 535,-109 477,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"477,-109 535,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"535,-109 535,-130 587,-130 587,-109 535,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"535,-109 587,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"587,-109 587,-130 612,-130 612,-109 587,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"587,-109 612,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"594.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-88 159,-109 235,-109 235,-88 159,-88\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-88 235,-109 287,-109 287,-88 235,-88\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-88 287,-109 321,-109 321,-88 287,-88\"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"321,-88 321,-109 379,-109 379,-88 321,-88\"/>\n",
"<text text-anchor=\"start\" x=\"324\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"379,-88 379,-109 425,-109 425,-88 379,-88\"/>\n",
"<text text-anchor=\"start\" x=\"382\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"425,-88 425,-109 477,-109 477,-88 425,-88\"/>\n",
"<text text-anchor=\"start\" x=\"428\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"477,-88 477,-109 535,-109 535,-88 477,-88\"/>\n",
"<text text-anchor=\"start\" x=\"480\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"535,-88 535,-109 587,-109 587,-88 535,-88\"/>\n",
"<text text-anchor=\"start\" x=\"538\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"587,-88 587,-109 612,-109 612,-88 587,-88\"/>\n",
"<text text-anchor=\"start\" x=\"594.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-67 159,-88 235,-88 235,-67 159,-67\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-67 235,-88 287,-88 287,-67 235,-67\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-67 287,-88 321,-88 321,-67 287,-67\"/>\n",
"<text text-anchor=\"start\" x=\"290\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"321,-67 321,-88 379,-88 379,-67 321,-67\"/>\n",
"<text text-anchor=\"start\" x=\"336\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"379,-67 379,-88 425,-88 425,-67 379,-67\"/>\n",
"<text text-anchor=\"start\" x=\"392.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"425,-67 425,-88 477,-88 477,-67 425,-67\"/>\n",
"<text text-anchor=\"start\" x=\"437\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"477,-67 477,-88 535,-88 535,-67 477,-67\"/>\n",
"<text text-anchor=\"start\" x=\"492\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"535,-67 535,-88 587,-88 587,-67 535,-67\"/>\n",
"<text text-anchor=\"start\" x=\"547\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"587,-67 587,-88 612,-88 612,-67 587,-67\"/>\n",
"<text text-anchor=\"start\" x=\"590\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-46 159,-67 235,-67 235,-46 159,-46\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-46 287,-67 321,-67 321,-46 287,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-46 287,-67 321,-67 321,-46 287,-46\"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"321,-46 321,-67 379,-67 379,-46 321,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"321,-46 321,-67 379,-67 379,-46 321,-46\"/>\n",
"<text text-anchor=\"start\" x=\"345\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"379,-46 379,-67 425,-67 425,-46 379,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"379,-46 379,-67 425,-67 425,-46 379,-46\"/>\n",
"<text text-anchor=\"start\" x=\"397\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"425,-46 425,-67 477,-67 477,-46 425,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"425,-46 425,-67 477,-67 477,-46 425,-46\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"477,-46 477,-67 535,-67 535,-46 477,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"477,-46 477,-67 535,-67 535,-46 477,-46\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"535,-46 535,-67 587,-67 587,-46 535,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"535,-46 535,-67 587,-67 587,-46 535,-46\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"587,-46 587,-67 612,-67 612,-46 587,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"587,-46 587,-67 612,-67 612,-46 587,-46\"/>\n",
"<text text-anchor=\"start\" x=\"594.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-25 159,-46 235,-46 235,-25 159,-25\"/>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-25 287,-46 321,-46 321,-25 287,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-25 287,-46 321,-46 321,-25 287,-25\"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"321,-25 321,-46 379,-46 379,-25 321,-25\"/>\n",
"<text text-anchor=\"start\" x=\"345\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"379,-25 379,-46 425,-46 425,-25 379,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"379,-25 379,-46 425,-46 425,-25 379,-25\"/>\n",
"<text text-anchor=\"start\" x=\"397\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"425,-25 425,-46 477,-46 477,-25 425,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"425,-25 425,-46 477,-46 477,-25 425,-25\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"477,-25 477,-46 535,-46 535,-25 477,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"477,-25 477,-46 535,-46 535,-25 477,-25\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"535,-25 535,-46 587,-46 587,-25 535,-25\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"587,-25 587,-46 612,-46 612,-25 587,-25\"/>\n",
"<text text-anchor=\"start\" x=\"594.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-4 159,-25 235,-25 235,-4 159,-4\"/>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-4 287,-25 321,-25 321,-4 287,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-4 287,-25 321,-25 321,-4 287,-4\"/>\n",
"<text text-anchor=\"start\" x=\"299\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"321,-4 321,-25 379,-25 379,-4 321,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"321,-4 321,-25 379,-25 379,-4 321,-4\"/>\n",
"<text text-anchor=\"start\" x=\"345\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"379,-4 379,-25 425,-25 425,-4 379,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"379,-4 379,-25 425,-25 425,-4 379,-4\"/>\n",
"<text text-anchor=\"start\" x=\"397\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"425,-4 425,-25 477,-25 477,-4 425,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"425,-4 425,-25 477,-25 477,-4 425,-4\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"477,-4 477,-25 535,-25 535,-4 477,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"477,-4 477,-25 535,-25 535,-4 477,-4\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"535,-4 535,-25 587,-25 587,-4 535,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"535,-4 535,-25 587,-25 587,-4 535,-4\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"587,-4 587,-25 612,-25 612,-4 587,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"587,-4 587,-25 612,-25 612,-4 587,-4\"/>\n",
"<text text-anchor=\"start\" x=\"594.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"aut.merge_edges()\n",
"display(aut, aut.show_storage(\"v\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the `succ_tail` field of the `states` vector is seldom used when reading automata as the linked list of edges ends when `next_succ` (or `succ`) equals `0`. Its main use is during calls to `new_edge()`: new edges are always created at the end of the list (otherwise it would be hard to preserve the order of edges when parsing an automaton and printing it)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The property-update issue\n",
"\n",
"Properties like `prop_complete()`, `prop_universal()`, and the like are normally updated by algorithms that modify the automaton in place. They are not updated when we modify the automaton using low-level methods like `new_state()` or `new_edges()` as we have done so far.\n",
"\n",
"For instance we could add a new edge to the automaton to introduce some non-determinism, and the automaton would still pretend it is universal."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 277.00 247.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 243.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-243.35 273,-243.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-211.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.14C132.79,-70.67 133.99,-79.35 137,-79.35 139.21,-79.35 140.44,-74.67 140.7,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.14 143.85,-68.09 140.65,-64.64 140.7,-68.14 140.7,-68.14 140.7,-68.14 140.65,-64.64 137.55,-68.18 140.6,-61.14 140.6,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.6C127.59,-81.79 129.42,-109.35 137,-109.35 143.75,-109.35 145.94,-87.49 143.58,-67.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.6 146.66,-67.06 143.03,-64.06 143.55,-67.53 143.55,-67.53 143.55,-67.53 143.03,-64.06 140.43,-67.99 142.51,-60.6 142.51,-60.6\"/>\n",
"<text text-anchor=\"start\" x=\"133\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M245.64,-61.14C245.07,-70.67 246.19,-79.35 249,-79.35 251.06,-79.35 252.21,-74.67 252.45,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.36,-61.14 255.6,-68.09 252.4,-64.64 252.45,-68.14 252.45,-68.14 252.45,-68.14 252.4,-64.64 249.3,-68.18 252.36,-61.14 252.36,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.81,-60.93C240.23,-82.07 241.96,-109.35 249,-109.35 255.27,-109.35 257.33,-87.71 255.18,-68.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.19,-60.93 258.27,-67.43 254.67,-64.4 255.15,-67.87 255.15,-67.87 255.15,-67.87 254.67,-64.4 252.03,-68.3 254.19,-60.93 254.19,-60.93\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.7,-60.68C235.47,-91.36 237.57,-139.35 249,-139.35 259.58,-139.35 262.17,-98.22 256.75,-67.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.3,-60.68 259.79,-66.91 256,-64.11 256.7,-67.54 256.7,-67.54 256.7,-67.54 256,-64.11 253.62,-68.17 255.3,-60.68 255.3,-60.68\"/>\n",
"<text text-anchor=\"start\" x=\"244.5\" y=\"-157.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"277pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 277.00 247.35\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 243.35)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-243.35 273,-243.35 273,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"84\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"165\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"181\" y=\"-225.15\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"107\" y=\"-211.15\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.35C2.79,-43.35 17.15,-43.35 30.63,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.35 30.94,-46.5 34.44,-43.35 30.94,-43.35 30.94,-43.35 30.94,-43.35 34.44,-43.35 30.94,-40.2 37.94,-43.35 37.94,-43.35\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.35C85.12,-43.35 99.52,-43.35 111.67,-43.35\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.35 111.89,-46.5 115.39,-43.35 111.89,-43.35 111.89,-43.35 111.89,-43.35 115.39,-43.35 111.89,-40.2 118.89,-43.35 118.89,-43.35\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.14C132.79,-70.67 133.99,-79.35 137,-79.35 139.21,-79.35 140.44,-74.67 140.7,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.14 143.85,-68.09 140.65,-64.64 140.7,-68.14 140.7,-68.14 140.7,-68.14 140.65,-64.64 137.55,-68.18 140.6,-61.14 140.6,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.6C127.59,-81.79 129.42,-109.35 137,-109.35 143.75,-109.35 145.94,-87.49 143.58,-67.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.6 146.66,-67.06 143.03,-64.06 143.55,-67.53 143.55,-67.53 143.55,-67.53 143.03,-64.06 140.43,-67.99 142.51,-60.6 142.51,-60.6\"/>\n",
"<text text-anchor=\"start\" x=\"133\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249\" cy=\"-43.35\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"249\" y=\"-39.65\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.01C159.16,-54.96 166.21,-57.88 173,-59.35 190.37,-63.14 195.63,-63.14 213,-59.35 217.46,-58.38 222.02,-56.79 226.33,-54.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"232.82,-52.01 227.76,-57.79 229.63,-53.47 226.45,-54.93 226.45,-54.93 226.45,-54.93 229.63,-53.47 225.14,-52.06 232.82,-52.01 232.82,-52.01\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-65.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M230.93,-41.6C225.23,-41.09 218.85,-40.6 213,-40.35 195.24,-39.59 190.76,-39.59 173,-40.35 169.53,-40.5 165.87,-40.73 162.27,-41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.6 161.79,-37.88 158.56,-41.31 162.05,-41.02 162.05,-41.02 162.05,-41.02 158.56,-41.31 162.31,-44.16 155.07,-41.6 155.07,-41.6\"/>\n",
"<text text-anchor=\"start\" x=\"177\" y=\"-44.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M238.67,-28.2C232.54,-19.76 223.68,-10.04 213,-5.35 196.72,1.78 189.28,1.78 173,-5.35 164.66,-9.01 157.43,-15.75 151.74,-22.55\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.2 149.15,-20.74 149.48,-25.44 151.63,-22.68 151.63,-22.68 151.63,-22.68 149.48,-25.44 154.12,-24.62 147.33,-28.2 147.33,-28.2\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.15\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-9.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M245.64,-61.14C245.07,-70.67 246.19,-79.35 249,-79.35 251.06,-79.35 252.21,-74.67 252.45,-68.41\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"252.36,-61.14 255.6,-68.09 252.4,-64.64 252.45,-68.14 252.45,-68.14 252.45,-68.14 252.4,-64.64 249.3,-68.18 252.36,-61.14 252.36,-61.14\"/>\n",
"<text text-anchor=\"start\" x=\"229\" y=\"-98.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-83.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M243.81,-60.93C240.23,-82.07 241.96,-109.35 249,-109.35 255.27,-109.35 257.33,-87.71 255.18,-68.04\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"254.19,-60.93 258.27,-67.43 254.67,-64.4 255.15,-67.87 255.15,-67.87 255.15,-67.87 254.67,-64.4 252.03,-68.3 254.19,-60.93 254.19,-60.93\"/>\n",
"<text text-anchor=\"start\" x=\"231\" y=\"-128.15\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"241\" y=\"-113.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M242.7,-60.68C235.47,-91.36 237.57,-139.35 249,-139.35 259.58,-139.35 262.17,-98.22 256.75,-67.77\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"255.3,-60.68 259.79,-66.91 256,-64.11 256.7,-67.54 256.7,-67.54 256.7,-67.54 256,-64.11 253.62,-68.17 255.3,-60.68 255.3,-60.68\"/>\n",
"<text text-anchor=\"start\" x=\"244.5\" y=\"-157.15\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"249\" y=\"-143.15\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"715pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 714.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 710.5,-372 710.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"48.5,-311 48.5,-332 116.5,-332 116.5,-311 48.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"48.5,-311 116.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"60.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"116.5,-311 116.5,-332 132.5,-332 132.5,-311 116.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"116.5,-311 132.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"119.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"132.5,-311 132.5,-332 148.5,-332 148.5,-311 132.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"132.5,-311 148.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"148.5,-311 148.5,-332 164.5,-332 164.5,-311 148.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"148.5,-311 164.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"48.5,-290 48.5,-311 116.5,-311 116.5,-290 48.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"66.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"116.5,-290 116.5,-311 132.5,-311 132.5,-290 116.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"116.5,-290 116.5,-311 132.5,-311 132.5,-290 116.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"119.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"132.5,-290 132.5,-311 148.5,-311 148.5,-290 132.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"132.5,-290 132.5,-311 148.5,-311 148.5,-290 132.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"148.5,-290 148.5,-311 164.5,-311 164.5,-290 148.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"148.5,-290 148.5,-311 164.5,-311 164.5,-290 148.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"48.5,-269 48.5,-290 116.5,-290 116.5,-269 48.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"51.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"116.5,-269 116.5,-290 132.5,-290 132.5,-269 116.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"116.5,-269 116.5,-290 132.5,-290 132.5,-269 116.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"119.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"132.5,-269 132.5,-290 148.5,-290 148.5,-269 132.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"132.5,-269 132.5,-290 148.5,-290 148.5,-269 132.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"148.5,-269 148.5,-290 164.5,-290 164.5,-269 148.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"148.5,-269 148.5,-290 164.5,-290 164.5,-269 148.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"151.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198.5,-343 198.5,-364 274.5,-364 274.5,-343 198.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"198.5,-343 274.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"215\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"274.5,-343 274.5,-364 326.5,-364 326.5,-343 274.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"274.5,-343 326.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"295.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"326.5,-343 326.5,-364 360.5,-364 360.5,-343 326.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"326.5,-343 360.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"360.5,-343 360.5,-364 418.5,-364 418.5,-343 360.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"360.5,-343 418.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"384.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"418.5,-343 418.5,-364 464.5,-364 464.5,-343 418.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"418.5,-343 464.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"464.5,-343 464.5,-364 516.5,-364 516.5,-343 464.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"464.5,-343 516.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"485.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"516.5,-343 516.5,-364 574.5,-364 574.5,-343 516.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"516.5,-343 574.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"540.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"574.5,-343 574.5,-364 626.5,-364 626.5,-343 574.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"574.5,-343 626.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"595.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"626.5,-343 626.5,-364 651.5,-364 651.5,-343 626.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"626.5,-343 651.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"634\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"651.5,-343 651.5,-364 698.5,-364 698.5,-343 651.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"651.5,-343 698.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.5,-322 198.5,-343 274.5,-343 274.5,-322 198.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"219.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"274.5,-322 274.5,-343 326.5,-343 326.5,-322 274.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"277.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-322 326.5,-343 360.5,-343 360.5,-322 326.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"360.5,-322 360.5,-343 418.5,-343 418.5,-322 360.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"418.5,-322 418.5,-343 464.5,-343 464.5,-322 418.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"421.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"464.5,-322 464.5,-343 516.5,-343 516.5,-322 464.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"467.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-322 516.5,-343 574.5,-343 574.5,-322 516.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"574.5,-322 574.5,-343 626.5,-343 626.5,-322 574.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"577.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-322 626.5,-343 651.5,-343 651.5,-322 626.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"634\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.5,-322 651.5,-343 698.5,-343 698.5,-322 651.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.5,-301 198.5,-322 274.5,-322 274.5,-301 198.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"224.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"274.5,-301 274.5,-322 326.5,-322 326.5,-301 274.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"286.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-301 326.5,-322 360.5,-322 360.5,-301 326.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"329.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"360.5,-301 360.5,-322 418.5,-322 418.5,-301 360.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"375.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"418.5,-301 418.5,-322 464.5,-322 464.5,-301 418.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"432\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"464.5,-301 464.5,-322 516.5,-322 516.5,-301 464.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"476.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-301 516.5,-322 574.5,-322 574.5,-301 516.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"531.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"574.5,-301 574.5,-322 626.5,-322 626.5,-301 574.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-301 626.5,-322 651.5,-322 651.5,-301 626.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.5,-301 651.5,-322 698.5,-322 698.5,-301 651.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"654.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.5,-280 198.5,-301 274.5,-301 274.5,-280 198.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"225\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"274.5,-280 274.5,-301 326.5,-301 326.5,-280 274.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"274.5,-280 274.5,-301 326.5,-301 326.5,-280 274.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"295.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"326.5,-280 326.5,-301 360.5,-301 360.5,-280 326.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-280 326.5,-301 360.5,-301 360.5,-280 326.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"360.5,-280 360.5,-301 418.5,-301 418.5,-280 360.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"360.5,-280 360.5,-301 418.5,-301 418.5,-280 360.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"384.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"418.5,-280 418.5,-301 464.5,-301 464.5,-280 418.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"418.5,-280 418.5,-301 464.5,-301 464.5,-280 418.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"464.5,-280 464.5,-301 516.5,-301 516.5,-280 464.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"464.5,-280 464.5,-301 516.5,-301 516.5,-280 464.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"485.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"516.5,-280 516.5,-301 574.5,-301 574.5,-280 516.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-280 516.5,-301 574.5,-301 574.5,-280 516.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"540.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"574.5,-280 574.5,-301 626.5,-301 626.5,-280 574.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"574.5,-280 574.5,-301 626.5,-301 626.5,-280 574.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"595.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"626.5,-280 626.5,-301 651.5,-301 651.5,-280 626.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-280 626.5,-301 651.5,-301 651.5,-280 626.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"634\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651.5,-280 651.5,-301 698.5,-301 698.5,-280 651.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.5,-280 651.5,-301 698.5,-301 698.5,-280 651.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.5,-259 198.5,-280 274.5,-280 274.5,-259 198.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"201.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"274.5,-259 274.5,-280 326.5,-280 326.5,-259 274.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"274.5,-259 274.5,-280 326.5,-280 326.5,-259 274.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"295.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"326.5,-259 326.5,-280 360.5,-280 360.5,-259 326.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-259 326.5,-280 360.5,-280 360.5,-259 326.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"360.5,-259 360.5,-280 418.5,-280 418.5,-259 360.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"384.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"418.5,-259 418.5,-280 464.5,-280 464.5,-259 418.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"418.5,-259 418.5,-280 464.5,-280 464.5,-259 418.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"464.5,-259 464.5,-280 516.5,-280 516.5,-259 464.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"464.5,-259 464.5,-280 516.5,-280 516.5,-259 464.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"485.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"516.5,-259 516.5,-280 574.5,-280 574.5,-259 516.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-259 516.5,-280 574.5,-280 574.5,-259 516.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"540.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"574.5,-259 574.5,-280 626.5,-280 626.5,-259 574.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"574.5,-259 574.5,-280 626.5,-280 626.5,-259 574.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"595.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-259 626.5,-280 651.5,-280 651.5,-259 626.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"634\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.5,-259 651.5,-280 698.5,-280 698.5,-259 651.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"198.5,-238 198.5,-259 274.5,-259 274.5,-238 198.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"225.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"274.5,-238 274.5,-259 326.5,-259 326.5,-238 274.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"274.5,-238 274.5,-259 326.5,-259 326.5,-238 274.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"295.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"326.5,-238 326.5,-259 360.5,-259 360.5,-238 326.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-238 326.5,-259 360.5,-259 360.5,-238 326.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"338.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"360.5,-238 360.5,-259 418.5,-259 418.5,-238 360.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"360.5,-238 360.5,-259 418.5,-259 418.5,-238 360.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"384.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"418.5,-238 418.5,-259 464.5,-259 464.5,-238 418.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"418.5,-238 418.5,-259 464.5,-259 464.5,-238 418.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"436.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"464.5,-238 464.5,-259 516.5,-259 516.5,-238 464.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"464.5,-238 464.5,-259 516.5,-259 516.5,-238 464.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"485.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"516.5,-238 516.5,-259 574.5,-259 574.5,-238 516.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-238 516.5,-259 574.5,-259 574.5,-238 516.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"540.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"574.5,-238 574.5,-259 626.5,-259 626.5,-238 574.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"574.5,-238 574.5,-259 626.5,-259 626.5,-238 574.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"595.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"626.5,-238 626.5,-259 651.5,-259 651.5,-238 626.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-238 626.5,-259 651.5,-259 651.5,-238 626.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"634\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"651.5,-238 651.5,-259 698.5,-259 698.5,-238 651.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"651.5,-238 651.5,-259 698.5,-259 698.5,-238 651.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 205.5,-137 205.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">no</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"332.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"517.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"aut.new_edge(1, 1, buddy.bddtrue, [1, 0])\n",
"display(aut, aut.show_storage())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Such an inconsistency will cause many issues when the automaton is passed to algorithm with specialized handling of universal automata. When writing an algorithm that modify the automaton, it is your responsibility to update the property bits as well. In this case it could be fixed by calling `aut.prop_universal(False); aut.prop_unambiguous(spot.trival_maybe()); ...` for each property, or by resetting all properties to `maybe` with `prop_reset()`:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"261pt\" height=\"206pt\"\n",
" viewBox=\"0.00 0.00 261.00 206.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 202)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-202 257,-202 257,4 -4,4\"/>\n",
"<!-- props -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"195.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.prop_reset()\n",
"aut.show_storage(\"p\") # \"p\" displays only the properties"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Erasing edges\n",
"\n",
"Erasing a single edge, denoted by its edge index `i`, is not convenient because of the linked structure of the edges: the `next_succ` of the previous (but unknown given `i`) edge would have to be updated (or maybe the `succ` or `succ_tail` fields of `states` vector have to be updated).\n",
"\n",
"The `out_iteraser(s)` method provides a way to iterate over the outgoing edges of state `s` that allows erasing edges. The iteration does not follow the usual Python pattern because once you have looked at the current edge using `current()`, you have two choices: `advance()` to the next one, or `erase()` the current one (and advance to the next). Note that `it.current()` and `it.advance()` are written `*it` and `++it` in C++.\n",
"\n",
"The following example erases all the outgoing transitions of state `0` that belong to acceptance set `1`."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"pos=1, acc={0}, toerase=False\n",
"pos=2, acc={1}, toerase=True\n",
"pos=3, acc={0}, toerase=False\n"
]
}
],
"source": [
"it = aut.out_iteraser(0)\n",
"while it:\n",
" e = it.current()\n",
" toerase = e.acc.has(1)\n",
" print(f\"pos={aut.edge_number(e)}, acc={e.acc}, toerase={toerase}\")\n",
" if toerase:\n",
" it.erase()\n",
" else:\n",
" it.advance()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"674pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 674.00 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 670,-138 670,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"158,-109 158,-130 234,-130 234,-109 158,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"158,-109 234,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"174.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-109 234,-130 286,-130 286,-109 234,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"234,-109 286,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"gray\" stroke=\"transparent\" points=\"286,-109 286,-130 320,-130 320,-109 286,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"286,-109 320,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"320,-109 320,-130 378,-130 378,-109 320,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"320,-109 378,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"378,-109 378,-130 424,-130 424,-109 378,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"378,-109 424,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"424,-109 424,-130 476,-130 476,-109 424,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"424,-109 476,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"476,-109 476,-130 534,-130 534,-109 476,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"476,-109 534,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"534,-109 534,-130 586,-130 586,-109 534,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"534,-109 586,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"586,-109 586,-130 611,-130 611,-109 586,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"586,-109 611,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"593.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"611,-109 611,-130 658,-130 658,-109 611,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"611,-109 658,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-88 158,-109 234,-109 234,-88 158,-88\"/>\n",
"<text text-anchor=\"start\" x=\"179\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-88 234,-109 286,-109 286,-88 234,-88\"/>\n",
"<text text-anchor=\"start\" x=\"237\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-88 286,-109 320,-109 320,-88 286,-88\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"320,-88 320,-109 378,-109 378,-88 320,-88\"/>\n",
"<text text-anchor=\"start\" x=\"323\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"378,-88 378,-109 424,-109 424,-88 378,-88\"/>\n",
"<text text-anchor=\"start\" x=\"381\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"424,-88 424,-109 476,-109 476,-88 424,-88\"/>\n",
"<text text-anchor=\"start\" x=\"427\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"476,-88 476,-109 534,-109 534,-88 476,-88\"/>\n",
"<text text-anchor=\"start\" x=\"479\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"534,-88 534,-109 586,-109 586,-88 534,-88\"/>\n",
"<text text-anchor=\"start\" x=\"537\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"586,-88 586,-109 611,-109 611,-88 586,-88\"/>\n",
"<text text-anchor=\"start\" x=\"593.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"611,-88 611,-109 658,-109 658,-88 611,-88\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-67 158,-88 234,-88 234,-67 158,-67\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-67 234,-88 286,-88 286,-67 234,-67\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-67 286,-88 320,-88 320,-67 286,-67\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"320,-67 320,-88 378,-88 378,-67 320,-67\"/>\n",
"<text text-anchor=\"start\" x=\"335\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"378,-67 378,-88 424,-88 424,-67 378,-67\"/>\n",
"<text text-anchor=\"start\" x=\"391.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"424,-67 424,-88 476,-88 476,-67 424,-67\"/>\n",
"<text text-anchor=\"start\" x=\"436\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"476,-67 476,-88 534,-88 534,-67 476,-67\"/>\n",
"<text text-anchor=\"start\" x=\"491\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"534,-67 534,-88 586,-88 586,-67 534,-67\"/>\n",
"<text text-anchor=\"start\" x=\"546\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"586,-67 586,-88 611,-88 611,-67 586,-67\"/>\n",
"<text text-anchor=\"start\" x=\"589\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"611,-67 611,-88 658,-88 658,-67 611,-67\"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-46 158,-67 234,-67 234,-46 158,-46\"/>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-46 286,-67 320,-67 320,-46 286,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-46 286,-67 320,-67 320,-46 286,-46\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"320,-46 320,-67 378,-67 378,-46 320,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"320,-46 320,-67 378,-67 378,-46 320,-46\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"378,-46 378,-67 424,-67 424,-46 378,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"378,-46 378,-67 424,-67 424,-46 378,-46\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"424,-46 424,-67 476,-67 476,-46 424,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"424,-46 424,-67 476,-67 476,-46 424,-46\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"476,-46 476,-67 534,-67 534,-46 476,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"476,-46 476,-67 534,-67 534,-46 476,-46\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"534,-46 534,-67 586,-67 586,-46 534,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"534,-46 534,-67 586,-67 586,-46 534,-46\"/>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"586,-46 586,-67 611,-67 611,-46 586,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"586,-46 586,-67 611,-67 611,-46 586,-46\"/>\n",
"<text text-anchor=\"start\" x=\"593.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"611,-46 611,-67 658,-67 658,-46 611,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"611,-46 611,-67 658,-67 658,-46 611,-46\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-25 158,-46 234,-46 234,-25 158,-25\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"gray\" stroke=\"transparent\" points=\"286,-25 286,-46 320,-46 320,-25 286,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-25 286,-46 320,-46 320,-25 286,-25\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"320,-25 320,-46 378,-46 378,-25 320,-25\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"378,-25 378,-46 424,-46 424,-25 378,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"378,-25 378,-46 424,-46 424,-25 378,-25\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"424,-25 424,-46 476,-46 476,-25 424,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"424,-25 424,-46 476,-46 476,-25 424,-25\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"476,-25 476,-46 534,-46 534,-25 476,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"476,-25 476,-46 534,-46 534,-25 476,-25\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"534,-25 534,-46 586,-46 586,-25 534,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"534,-25 534,-46 586,-46 586,-25 534,-25\"/>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"586,-25 586,-46 611,-46 611,-25 586,-25\"/>\n",
"<text text-anchor=\"start\" x=\"593.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"611,-25 611,-46 658,-46 658,-25 611,-25\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-4 158,-25 234,-25 234,-4 158,-4\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-4 286,-25 320,-25 320,-4 286,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-4 286,-25 320,-25 320,-4 286,-4\"/>\n",
"<text text-anchor=\"start\" x=\"298\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"320,-4 320,-25 378,-25 378,-4 320,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"320,-4 320,-25 378,-25 378,-4 320,-4\"/>\n",
"<text text-anchor=\"start\" x=\"344\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"378,-4 378,-25 424,-25 424,-4 378,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"378,-4 378,-25 424,-25 424,-4 378,-4\"/>\n",
"<text text-anchor=\"start\" x=\"396\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"424,-4 424,-25 476,-25 476,-4 424,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"424,-4 424,-25 476,-25 476,-4 424,-4\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"476,-4 476,-25 534,-25 534,-4 476,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"476,-4 476,-25 534,-25 534,-4 476,-4\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"534,-4 534,-25 586,-25 586,-4 534,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"534,-4 534,-25 586,-25 586,-4 534,-4\"/>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"586,-4 586,-25 611,-25 611,-4 586,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"586,-4 586,-25 611,-25 611,-4 586,-4\"/>\n",
"<text text-anchor=\"start\" x=\"593.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"611,-4 611,-25 658,-25 658,-4 611,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"611,-4 611,-25 658,-25 658,-4 611,-4\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.show_storage(\"v\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that the edges vector hasn't been resized, as doing so would renumber edges. Instead, erased edges have removed from the linked list of outgoing edges of `0`, and their `next_succ` field has been changed to point to themselves. \n",
"\n",
"You can test whether an edges has been erased with `is_dead_edge()`:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.is_dead_edge(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"However you usually do not have to care, because iterator methods will skip such dead edges. For instance:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"edges[1].src=0, edges[1].dst=0\n",
"edges[3].src=0, edges[3].dst=1\n",
"edges[4].src=1, edges[4].dst=0\n",
"edges[5].src=1, edges[5].dst=0\n",
"edges[6].src=1, edges[6].dst=1\n",
"edges[7].src=1, edges[7].dst=1\n",
"edges[8].src=2, edges[8].dst=0\n",
"edges[9].src=1, edges[9].dst=1\n"
]
}
],
"source": [
"for e in aut.edges(): # iterate over all non-erased edges\n",
" en = aut.edge_number(e)\n",
" print(f\"edges[{en}].src={e.src}, edges[{en}].dst={e.dst}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similarly, `num_edges()` returns the count of non-erased edges."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.num_edges()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Erased edges are actually removed by `merge_edges()`:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"640pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 640.00 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 636,-138 636,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"158,-109 158,-130 234,-130 234,-109 158,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"158,-109 234,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"174.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-109 234,-130 286,-130 286,-109 234,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"234,-109 286,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"286,-109 286,-130 344,-130 344,-109 286,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"286,-109 344,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"344,-109 344,-130 390,-130 390,-109 344,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"344,-109 390,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"390,-109 390,-130 442,-130 442,-109 390,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"390,-109 442,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"411\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"442,-109 442,-130 500,-130 500,-109 442,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"442,-109 500,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"466\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"500,-109 500,-130 552,-130 552,-109 500,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"500,-109 552,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"521\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"552,-109 552,-130 599,-130 599,-109 552,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"552,-109 599,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"570.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"599,-109 599,-130 624,-130 624,-109 599,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"599,-109 624,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"606.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-88 158,-109 234,-109 234,-88 158,-88\"/>\n",
"<text text-anchor=\"start\" x=\"179\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-88 234,-109 286,-109 286,-88 234,-88\"/>\n",
"<text text-anchor=\"start\" x=\"237\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-88 286,-109 344,-109 344,-88 286,-88\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-88 344,-109 390,-109 390,-88 344,-88\"/>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"390,-88 390,-109 442,-109 442,-88 390,-88\"/>\n",
"<text text-anchor=\"start\" x=\"393\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"442,-88 442,-109 500,-109 500,-88 442,-88\"/>\n",
"<text text-anchor=\"start\" x=\"445\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"500,-88 500,-109 552,-109 552,-88 500,-88\"/>\n",
"<text text-anchor=\"start\" x=\"503\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"552,-88 552,-109 599,-109 599,-88 552,-88\"/>\n",
"<text text-anchor=\"start\" x=\"570.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-88 599,-109 624,-109 624,-88 599,-88\"/>\n",
"<text text-anchor=\"start\" x=\"606.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-67 158,-88 234,-88 234,-67 158,-67\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-67 234,-88 286,-88 286,-67 234,-67\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-67 286,-88 344,-88 344,-67 286,-67\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-67 344,-88 390,-88 390,-67 344,-67\"/>\n",
"<text text-anchor=\"start\" x=\"357.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"390,-67 390,-88 442,-88 442,-67 390,-67\"/>\n",
"<text text-anchor=\"start\" x=\"402\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"442,-67 442,-88 500,-88 500,-67 442,-67\"/>\n",
"<text text-anchor=\"start\" x=\"457\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"500,-67 500,-88 552,-88 552,-67 500,-67\"/>\n",
"<text text-anchor=\"start\" x=\"512\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"552,-67 552,-88 599,-88 599,-67 552,-67\"/>\n",
"<text text-anchor=\"start\" x=\"555\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-67 599,-88 624,-88 624,-67 599,-67\"/>\n",
"<text text-anchor=\"start\" x=\"602\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-46 158,-67 234,-67 234,-46 158,-46\"/>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-46 286,-67 344,-67 344,-46 286,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-46 286,-67 344,-67 344,-46 286,-46\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"344,-46 344,-67 390,-67 390,-46 344,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-46 344,-67 390,-67 390,-46 344,-46\"/>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"390,-46 390,-67 442,-67 442,-46 390,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"390,-46 390,-67 442,-67 442,-46 390,-46\"/>\n",
"<text text-anchor=\"start\" x=\"411\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"442,-46 442,-67 500,-67 500,-46 442,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"442,-46 442,-67 500,-67 500,-46 442,-46\"/>\n",
"<text text-anchor=\"start\" x=\"466\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"500,-46 500,-67 552,-67 552,-46 500,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"500,-46 500,-67 552,-67 552,-46 500,-46\"/>\n",
"<text text-anchor=\"start\" x=\"521\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"552,-46 552,-67 599,-67 599,-46 552,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"552,-46 552,-67 599,-67 599,-46 552,-46\"/>\n",
"<text text-anchor=\"start\" x=\"570.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-46 599,-67 624,-67 624,-46 599,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-46 599,-67 624,-67 624,-46 599,-46\"/>\n",
"<text text-anchor=\"start\" x=\"606.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-25 158,-46 234,-46 234,-25 158,-25\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-25 286,-46 344,-46 344,-25 286,-25\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"344,-25 344,-46 390,-46 390,-25 344,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-25 344,-46 390,-46 390,-25 344,-25\"/>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"390,-25 390,-46 442,-46 442,-25 390,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"390,-25 390,-46 442,-46 442,-25 390,-25\"/>\n",
"<text text-anchor=\"start\" x=\"411\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"442,-25 442,-46 500,-46 500,-25 442,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"442,-25 442,-46 500,-46 500,-25 442,-25\"/>\n",
"<text text-anchor=\"start\" x=\"466\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"500,-25 500,-46 552,-46 552,-25 500,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"500,-25 500,-46 552,-46 552,-25 500,-25\"/>\n",
"<text text-anchor=\"start\" x=\"521\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"552,-25 552,-46 599,-46 599,-25 552,-25\"/>\n",
"<text text-anchor=\"start\" x=\"570.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-25 599,-46 624,-46 624,-25 599,-25\"/>\n",
"<text text-anchor=\"start\" x=\"606.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-4 158,-25 234,-25 234,-4 158,-4\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-4 286,-25 344,-25 344,-4 286,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-4 286,-25 344,-25 344,-4 286,-4\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"344,-4 344,-25 390,-25 390,-4 344,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-4 344,-25 390,-25 390,-4 344,-4\"/>\n",
"<text text-anchor=\"start\" x=\"362\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"390,-4 390,-25 442,-25 442,-4 390,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"390,-4 390,-25 442,-25 442,-4 390,-4\"/>\n",
"<text text-anchor=\"start\" x=\"411\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"442,-4 442,-25 500,-25 500,-4 442,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"442,-4 442,-25 500,-25 500,-4 442,-4\"/>\n",
"<text text-anchor=\"start\" x=\"466\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"500,-4 500,-25 552,-25 552,-4 500,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"500,-4 500,-25 552,-25 552,-4 500,-4\"/>\n",
"<text text-anchor=\"start\" x=\"521\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"552,-4 552,-25 599,-25 599,-4 552,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"552,-4 552,-25 599,-25 599,-4 552,-4\"/>\n",
"<text text-anchor=\"start\" x=\"570.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"599,-4 599,-25 624,-25 624,-4 599,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"599,-4 599,-25 624,-25 624,-4 599,-4\"/>\n",
"<text text-anchor=\"start\" x=\"606.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.merge_edges()\n",
"aut.show_storage(\"v\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another way to erase an edge, is to set its `cond` field to `bddfalse`. Strictly speaking, this does not really erase the edge, and it will still be iterated upon. However a subsequent call to `merge_edges()` will perform the removal of that edge."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"620pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 619.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 615.5,-138 615.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"159,-109 159,-130 235,-130 235,-109 159,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"159,-109 235,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"175.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-109 235,-130 287,-130 287,-109 235,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"235,-109 287,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287,-109 287,-130 345,-130 345,-109 287,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287,-109 345,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"345,-109 345,-130 370,-130 370,-109 345,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"345,-109 370,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"352.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"370,-109 370,-130 422,-130 422,-109 370,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"370,-109 422,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"391\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"422,-109 422,-130 480,-130 480,-109 422,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"422,-109 480,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"480,-109 480,-130 532,-130 532,-109 480,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"480,-109 532,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"532,-109 532,-130 579,-130 579,-109 532,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"532,-109 579,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"550.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"579,-109 579,-130 604,-130 604,-109 579,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"579,-109 604,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-88 159,-109 235,-109 235,-88 159,-88\"/>\n",
"<text text-anchor=\"start\" x=\"180\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-88 235,-109 287,-109 287,-88 235,-88\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-88 287,-109 345,-109 345,-88 287,-88\"/>\n",
"<text text-anchor=\"start\" x=\"290\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"345,-88 345,-109 370,-109 370,-88 345,-88\"/>\n",
"<text text-anchor=\"start\" x=\"352.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"370,-88 370,-109 422,-109 422,-88 370,-88\"/>\n",
"<text text-anchor=\"start\" x=\"373\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"422,-88 422,-109 480,-109 480,-88 422,-88\"/>\n",
"<text text-anchor=\"start\" x=\"425\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"480,-88 480,-109 532,-109 532,-88 480,-88\"/>\n",
"<text text-anchor=\"start\" x=\"483\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"532,-88 532,-109 579,-109 579,-88 532,-88\"/>\n",
"<text text-anchor=\"start\" x=\"550.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"579,-88 579,-109 604,-109 604,-88 579,-88\"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-67 159,-88 235,-88 235,-67 159,-67\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-67 235,-88 287,-88 287,-67 235,-67\"/>\n",
"<text text-anchor=\"start\" x=\"247\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-67 287,-88 345,-88 345,-67 287,-67\"/>\n",
"<text text-anchor=\"start\" x=\"302\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"345,-67 345,-88 370,-88 370,-67 345,-67\"/>\n",
"<text text-anchor=\"start\" x=\"348\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"370,-67 370,-88 422,-88 422,-67 370,-67\"/>\n",
"<text text-anchor=\"start\" x=\"382\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"422,-67 422,-88 480,-88 480,-67 422,-67\"/>\n",
"<text text-anchor=\"start\" x=\"437\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"480,-67 480,-88 532,-88 532,-67 480,-67\"/>\n",
"<text text-anchor=\"start\" x=\"492\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"532,-67 532,-88 579,-88 579,-67 532,-67\"/>\n",
"<text text-anchor=\"start\" x=\"535\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"579,-67 579,-88 604,-88 604,-67 579,-67\"/>\n",
"<text text-anchor=\"start\" x=\"582\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-46 159,-67 235,-67 235,-46 159,-46\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-46 235,-67 287,-67 287,-46 235,-46\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-46 287,-67 345,-67 345,-46 287,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-46 287,-67 345,-67 345,-46 287,-46\"/>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"345,-46 345,-67 370,-67 370,-46 345,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"345,-46 345,-67 370,-67 370,-46 345,-46\"/>\n",
"<text text-anchor=\"start\" x=\"352.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"370,-46 370,-67 422,-67 422,-46 370,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"370,-46 370,-67 422,-67 422,-46 370,-46\"/>\n",
"<text text-anchor=\"start\" x=\"391\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"422,-46 422,-67 480,-67 480,-46 422,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"422,-46 422,-67 480,-67 480,-46 422,-46\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"480,-46 480,-67 532,-67 532,-46 480,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"480,-46 480,-67 532,-67 532,-46 480,-46\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"532,-46 532,-67 579,-67 579,-46 532,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"532,-46 532,-67 579,-67 579,-46 532,-46\"/>\n",
"<text text-anchor=\"start\" x=\"550.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"579,-46 579,-67 604,-67 604,-46 579,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"579,-46 579,-67 604,-67 604,-46 579,-46\"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-25 159,-46 235,-46 235,-25 159,-25\"/>\n",
"<text text-anchor=\"start\" x=\"162\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-25 235,-46 287,-46 287,-25 235,-25\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-25 287,-46 345,-46 345,-25 287,-25\"/>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"345,-25 345,-46 370,-46 370,-25 345,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"345,-25 345,-46 370,-46 370,-25 345,-25\"/>\n",
"<text text-anchor=\"start\" x=\"352.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"370,-25 370,-46 422,-46 422,-25 370,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"370,-25 370,-46 422,-46 422,-25 370,-25\"/>\n",
"<text text-anchor=\"start\" x=\"391\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"422,-25 422,-46 480,-46 480,-25 422,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"422,-25 422,-46 480,-46 480,-25 422,-25\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"480,-25 480,-46 532,-46 532,-25 480,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"480,-25 480,-46 532,-46 532,-25 480,-25\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"532,-25 532,-46 579,-46 579,-25 532,-25\"/>\n",
"<text text-anchor=\"start\" x=\"550.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"579,-25 579,-46 604,-46 604,-25 579,-25\"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159,-4 159,-25 235,-25 235,-4 159,-4\"/>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235,-4 235,-25 287,-25 287,-4 235,-4\"/>\n",
"<text text-anchor=\"start\" x=\"256\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287,-4 287,-25 345,-25 345,-4 287,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287,-4 287,-25 345,-25 345,-4 287,-4\"/>\n",
"<text text-anchor=\"start\" x=\"311\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"345,-4 345,-25 370,-25 370,-4 345,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"345,-4 345,-25 370,-25 370,-4 345,-4\"/>\n",
"<text text-anchor=\"start\" x=\"352.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"370,-4 370,-25 422,-25 422,-4 370,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"370,-4 370,-25 422,-25 422,-4 370,-4\"/>\n",
"<text text-anchor=\"start\" x=\"391\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"422,-4 422,-25 480,-25 480,-4 422,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"422,-4 422,-25 480,-25 480,-4 422,-4\"/>\n",
"<text text-anchor=\"start\" x=\"446\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"480,-4 480,-25 532,-25 532,-4 480,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"480,-4 480,-25 532,-25 532,-4 480,-4\"/>\n",
"<text text-anchor=\"start\" x=\"501\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"532,-4 532,-25 579,-25 579,-4 532,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"532,-4 532,-25 579,-25 579,-4 532,-4\"/>\n",
"<text text-anchor=\"start\" x=\"550.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"579,-4 579,-25 604,-25 604,-4 579,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"579,-4 579,-25 604,-25 604,-4 579,-4\"/>\n",
"<text text-anchor=\"start\" x=\"586.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.edge_storage(3).cond = buddy.bddfalse\n",
"aut.show_storage(\"v\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"edges[1].src=0, edges[1].dst=0\n",
"edges[2].src=0, edges[2].dst=1\n",
"edges[3].src=1, edges[3].dst=0\n",
"edges[4].src=1, edges[4].dst=0\n",
"edges[5].src=1, edges[5].dst=1\n",
"edges[6].src=1, edges[6].dst=1\n",
"edges[7].src=1, edges[7].dst=1\n",
"edges[8].src=2, edges[8].dst=0\n"
]
}
],
"source": [
"for e in aut.edges(): # iterate over all non-erased edges\n",
" en = aut.edge_number(e)\n",
" print(f\"edges[{en}].src={e.src}, edges[{en}].dst={e.dst}\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.is_dead_edge(3)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"594pt\" height=\"142pt\"\n",
" viewBox=\"0.00 0.00 594.00 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 590,-138 590,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 76,-98 76,-77 8,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 76,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 92,-98 92,-77 76,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 92,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92,-77 92,-98 108,-98 108,-77 92,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92,-77 108,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108,-77 108,-98 124,-98 124,-77 108,-77\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108,-77 124,-77 \"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 76,-77 76,-56 8,-56\"/>\n",
"<text text-anchor=\"start\" x=\"26\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 92,-77 92,-56 76,-56\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-56 92,-77 108,-77 108,-56 92,-56\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-56 108,-77 124,-77 124,-56 108,-56\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 76,-56 76,-35 8,-35\"/>\n",
"<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 92,-56 92,-35 76,-35\"/>\n",
"<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92,-35 92,-56 108,-56 108,-35 92,-35\"/>\n",
"<text text-anchor=\"start\" x=\"95\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108,-35 108,-56 124,-56 124,-35 108,-35\"/>\n",
"<text text-anchor=\"start\" x=\"111\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"158,-109 158,-130 234,-130 234,-109 158,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"158,-109 234,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"174.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-109 234,-130 286,-130 286,-109 234,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"234,-109 286,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"286,-109 286,-130 344,-130 344,-109 286,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"286,-109 344,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"344,-109 344,-130 396,-130 396,-109 344,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"344,-109 396,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"365\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"396,-109 396,-130 454,-130 454,-109 396,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"396,-109 454,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"454,-109 454,-130 506,-130 506,-109 454,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"454,-109 506,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"506,-109 506,-130 553,-130 553,-109 506,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"506,-109 553,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"524.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"553,-109 553,-130 578,-130 578,-109 553,-109\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"553,-109 578,-109 \"/>\n",
"<text text-anchor=\"start\" x=\"560.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-88 158,-109 234,-109 234,-88 158,-88\"/>\n",
"<text text-anchor=\"start\" x=\"179\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-88 234,-109 286,-109 286,-88 234,-88\"/>\n",
"<text text-anchor=\"start\" x=\"237\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-88 286,-109 344,-109 344,-88 286,-88\"/>\n",
"<text text-anchor=\"start\" x=\"289\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-88 344,-109 396,-109 396,-88 344,-88\"/>\n",
"<text text-anchor=\"start\" x=\"347\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"396,-88 396,-109 454,-109 454,-88 396,-88\"/>\n",
"<text text-anchor=\"start\" x=\"399\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"454,-88 454,-109 506,-109 506,-88 454,-88\"/>\n",
"<text text-anchor=\"start\" x=\"457\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506,-88 506,-109 553,-109 553,-88 506,-88\"/>\n",
"<text text-anchor=\"start\" x=\"524.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"553,-88 553,-109 578,-109 578,-88 553,-88\"/>\n",
"<text text-anchor=\"start\" x=\"560.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-67 158,-88 234,-88 234,-67 158,-67\"/>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-67 234,-88 286,-88 286,-67 234,-67\"/>\n",
"<text text-anchor=\"start\" x=\"246\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-67 286,-88 344,-88 344,-67 286,-67\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-67 344,-88 396,-88 396,-67 344,-67\"/>\n",
"<text text-anchor=\"start\" x=\"356\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"396,-67 396,-88 454,-88 454,-67 396,-67\"/>\n",
"<text text-anchor=\"start\" x=\"411\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"454,-67 454,-88 506,-88 506,-67 454,-67\"/>\n",
"<text text-anchor=\"start\" x=\"466\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506,-67 506,-88 553,-88 553,-67 506,-67\"/>\n",
"<text text-anchor=\"start\" x=\"509\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"553,-67 553,-88 578,-88 578,-67 553,-67\"/>\n",
"<text text-anchor=\"start\" x=\"556\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-46 158,-67 234,-67 234,-46 158,-46\"/>\n",
"<text text-anchor=\"start\" x=\"184.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-46 234,-67 286,-67 286,-46 234,-46\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-46 286,-67 344,-67 344,-46 286,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-46 286,-67 344,-67 344,-46 286,-46\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"344,-46 344,-67 396,-67 396,-46 344,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-46 344,-67 396,-67 396,-46 344,-46\"/>\n",
"<text text-anchor=\"start\" x=\"365\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"396,-46 396,-67 454,-67 454,-46 396,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"396,-46 396,-67 454,-67 454,-46 396,-46\"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"454,-46 454,-67 506,-67 506,-46 454,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"454,-46 454,-67 506,-67 506,-46 454,-46\"/>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"506,-46 506,-67 553,-67 553,-46 506,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506,-46 506,-67 553,-67 553,-46 506,-46\"/>\n",
"<text text-anchor=\"start\" x=\"524.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"553,-46 553,-67 578,-67 578,-46 553,-46\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"553,-46 553,-67 578,-67 578,-46 553,-46\"/>\n",
"<text text-anchor=\"start\" x=\"560.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-25 158,-46 234,-46 234,-25 158,-25\"/>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-25 234,-46 286,-46 286,-25 234,-25\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-25 286,-46 344,-46 344,-25 286,-25\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"344,-25 344,-46 396,-46 396,-25 344,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-25 344,-46 396,-46 396,-25 344,-25\"/>\n",
"<text text-anchor=\"start\" x=\"365\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"396,-25 396,-46 454,-46 454,-25 396,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"396,-25 396,-46 454,-46 454,-25 396,-25\"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"454,-25 454,-46 506,-46 506,-25 454,-25\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"454,-25 454,-46 506,-46 506,-25 454,-25\"/>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506,-25 506,-46 553,-46 553,-25 506,-25\"/>\n",
"<text text-anchor=\"start\" x=\"524.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"553,-25 553,-46 578,-46 578,-25 553,-25\"/>\n",
"<text text-anchor=\"start\" x=\"560.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"158,-4 158,-25 234,-25 234,-4 158,-4\"/>\n",
"<text text-anchor=\"start\" x=\"185\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"234,-4 234,-25 286,-25 286,-4 234,-4\"/>\n",
"<text text-anchor=\"start\" x=\"255\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"286,-4 286,-25 344,-25 344,-4 286,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"286,-4 286,-25 344,-25 344,-4 286,-4\"/>\n",
"<text text-anchor=\"start\" x=\"310\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"344,-4 344,-25 396,-25 396,-4 344,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"344,-4 344,-25 396,-25 396,-4 344,-4\"/>\n",
"<text text-anchor=\"start\" x=\"365\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"396,-4 396,-25 454,-25 454,-4 396,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"396,-4 396,-25 454,-25 454,-4 396,-4\"/>\n",
"<text text-anchor=\"start\" x=\"420\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"454,-4 454,-25 506,-25 506,-4 454,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"454,-4 454,-25 506,-25 506,-4 454,-4\"/>\n",
"<text text-anchor=\"start\" x=\"475\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"506,-4 506,-25 553,-25 553,-4 506,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"506,-4 506,-25 553,-25 553,-4 506,-4\"/>\n",
"<text text-anchor=\"start\" x=\"524.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"553,-4 553,-25 578,-25 578,-4 553,-4\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"553,-4 553,-25 578,-25 578,-4 553,-4\"/>\n",
"<text text-anchor=\"start\" x=\"560.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.merge_edges()\n",
"aut.show_storage(\"v\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Alternation\n",
"\n",
"The data structures seen so far only support a single destination per edge. Support for universal branching therefore calls for something new.\n",
"\n",
"Let's add some universal branching in our example automaton."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"426pt\" height=\"322pt\"\n",
" viewBox=\"0.00 0.00 426.20 321.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 317.62)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-317.62 422.2,-317.62 422.2,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"158.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"181.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"197.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"239.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"255.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"181.6\" y=\"-285.42\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-71.62C2.79,-71.62 17.15,-71.62 30.63,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-71.62 30.94,-74.77 34.44,-71.62 30.94,-71.62 30.94,-71.62 30.94,-71.62 34.44,-71.62 30.94,-68.47 37.94,-71.62 37.94,-71.62\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-71.62C85.12,-71.62 99.52,-71.62 111.67,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-71.62 111.89,-74.77 115.39,-71.62 111.89,-71.62 111.89,-71.62 111.89,-71.62 115.39,-71.62 111.89,-68.47 118.89,-71.62 118.89,-71.62\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-75.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-88.29C128.41,-98.25 130.75,-107.62 137,-107.62 141.69,-107.62 144.18,-102.35 144.47,-95.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-88.29 147.6,-95.08 144.24,-91.78 144.46,-95.27 144.46,-95.27 144.46,-95.27 144.24,-91.78 141.31,-95.46 144.03,-88.29 144.03,-88.29\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-126.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-111.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"398.2\" cy=\"-117.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"398.2\" y=\"-113.92\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.75,-89.62C146.72,-121.28 164.04,-183.62 207.8,-183.62 207.8,-183.62 207.8,-183.62 342.4,-183.62 365.08,-183.62 380.17,-160.26 388.67,-141.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"391.51,-134.62 391.69,-142.29 390.15,-137.84 388.79,-141.07 388.79,-141.07 388.79,-141.07 390.15,-137.84 385.89,-139.84 391.51,-134.62 391.51,-134.62\"/>\n",
"<text text-anchor=\"start\" x=\"247.6\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"259.6\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"208.8\" cy=\"-25.62\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.51,-53.91C145.82,-37.41 154.91,-13.73 173,-2.62 179.06,1.1 182.57,0.42 189,-2.62 195.76,-5.83 200.9,-12.79 204.08,-18.22\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"201.92,-19.37 207.3,-24.46 206.27,-17.12 201.92,-19.37\"/>\n",
"<text text-anchor=\"start\" x=\"177.5\" y=\"-21.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M379.92,-117.62C369.14,-117.62 354.96,-117.62 342.4,-117.62 207.8,-117.62 207.8,-117.62 207.8,-117.62 186.97,-117.62 167.56,-103.17 154.53,-90.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.34,-85.17 156.49,-87.97 151.79,-87.67 154.24,-90.17 154.24,-90.17 154.24,-90.17 151.79,-87.67 151.99,-92.38 149.34,-85.17 149.34,-85.17\"/>\n",
"<text text-anchor=\"start\" x=\"249.6\" y=\"-136.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"259.6\" y=\"-121.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M396.03,-135.77C395.7,-145.16 396.42,-153.62 398.2,-153.62 399.51,-153.62 400.25,-149.06 400.41,-142.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"400.37,-135.77 403.56,-142.76 400.39,-139.27 400.41,-142.77 400.41,-142.77 400.41,-142.77 400.39,-139.27 397.26,-142.79 400.37,-135.77 400.37,-135.77\"/>\n",
"<text text-anchor=\"start\" x=\"378.2\" y=\"-172.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"390.2\" y=\"-157.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.83,-135.53C392.58,-156.62 393.7,-183.62 398.2,-183.62 402.21,-183.62 403.54,-162.21 402.19,-142.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"401.58,-135.53 405.32,-142.23 401.88,-139.02 402.18,-142.5 402.18,-142.5 402.18,-142.5 401.88,-139.02 399.04,-142.78 401.58,-135.53 401.58,-135.53\"/>\n",
"<text text-anchor=\"start\" x=\"380.2\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"390.2\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.09,-135.39C389.52,-166.09 390.89,-213.62 398.2,-213.62 404.97,-213.62 406.65,-172.88 403.23,-142.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"402.31,-135.39 406.34,-141.93 402.76,-138.86 403.21,-142.34 403.21,-142.34 403.21,-142.34 402.76,-138.86 400.09,-142.74 402.31,-135.39 402.31,-135.39\"/>\n",
"<text text-anchor=\"start\" x=\"393.7\" y=\"-231.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"382.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"398.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.92,-26.2C201.95,-29.48 176.91,-45.98 158.44,-58.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.46,-62.09 156.57,-55.61 155.39,-60.16 158.31,-58.24 158.31,-58.24 158.31,-58.24 155.39,-60.16 160.04,-60.87 152.46,-62.09 152.46,-62.09\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"267.6\" cy=\"-25.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267.6\" y=\"-21.92\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M210.79,-25.62C214.64,-25.62 229.12,-25.62 242.37,-25.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"249.52,-25.62 242.52,-28.77 246.02,-25.62 242.52,-25.62 242.52,-25.62 242.52,-25.62 246.02,-25.62 242.52,-22.47 249.52,-25.62 249.52,-25.62\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.4\" cy=\"-71.62\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.33,-21.92C296.55,-20.4 311.13,-20.42 321.6,-27.62 333.25,-35.63 337.72,-52.43 339.4,-62.8\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"336.99,-63.23 340.28,-69.87 341.85,-62.62 336.99,-63.23\"/>\n",
"<text text-anchor=\"start\" x=\"308.1\" y=\"-46.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"305.6\" y=\"-31.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M339.53,-71.62C328.37,-71.62 213.46,-71.62 162.32,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.26,-71.62 162.26,-68.47 158.76,-71.62 162.26,-71.62 162.26,-71.62 162.26,-71.62 158.76,-71.62 162.26,-74.77 155.26,-71.62 155.26,-71.62\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M343.35,-72.42C347.5,-75.91 364.46,-90.14 378.25,-101.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"383.92,-106.48 376.53,-104.39 381.24,-104.23 378.56,-101.98 378.56,-101.98 378.56,-101.98 381.24,-104.23 380.59,-99.56 383.92,-106.48 383.92,-106.48\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"426pt\" height=\"322pt\"\n",
" viewBox=\"0.00 0.00 426.20 321.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 317.62)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-317.62 422.2,-317.62 422.2,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"158.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"181.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"197.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"239.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"255.6\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"181.6\" y=\"-285.42\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- I&#45;&gt;2 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-71.62C2.79,-71.62 17.15,-71.62 30.63,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-71.62 30.94,-74.77 34.44,-71.62 30.94,-71.62 30.94,-71.62 30.94,-71.62 34.44,-71.62 30.94,-68.47 37.94,-71.62 37.94,-71.62\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.14,-71.62C85.12,-71.62 99.52,-71.62 111.67,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-71.62 111.89,-74.77 115.39,-71.62 111.89,-71.62 111.89,-71.62 111.89,-71.62 115.39,-71.62 111.89,-68.47 118.89,-71.62 118.89,-71.62\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-75.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M129.97,-88.29C128.41,-98.25 130.75,-107.62 137,-107.62 141.69,-107.62 144.18,-102.35 144.47,-95.51\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-88.29 147.6,-95.08 144.24,-91.78 144.46,-95.27 144.46,-95.27 144.46,-95.27 144.24,-91.78 141.31,-95.46 144.03,-88.29 144.03,-88.29\"/>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-126.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-111.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"398.2\" cy=\"-117.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"398.2\" y=\"-113.92\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M140.75,-89.62C146.72,-121.28 164.04,-183.62 207.8,-183.62 207.8,-183.62 207.8,-183.62 342.4,-183.62 365.08,-183.62 380.17,-160.26 388.67,-141.34\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"391.51,-134.62 391.69,-142.29 390.15,-137.84 388.79,-141.07 388.79,-141.07 388.79,-141.07 390.15,-137.84 385.89,-139.84 391.51,-134.62 391.51,-134.62\"/>\n",
"<text text-anchor=\"start\" x=\"247.6\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"259.6\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"208.8\" cy=\"-25.62\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M141.51,-53.91C145.82,-37.41 154.91,-13.73 173,-2.62 179.06,1.1 182.57,0.42 189,-2.62 195.76,-5.83 200.9,-12.79 204.08,-18.22\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"201.92,-19.37 207.3,-24.46 206.27,-17.12 201.92,-19.37\"/>\n",
"<text text-anchor=\"start\" x=\"177.5\" y=\"-21.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M379.92,-117.62C369.14,-117.62 354.96,-117.62 342.4,-117.62 207.8,-117.62 207.8,-117.62 207.8,-117.62 186.97,-117.62 167.56,-103.17 154.53,-90.46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"149.34,-85.17 156.49,-87.97 151.79,-87.67 154.24,-90.17 154.24,-90.17 154.24,-90.17 151.79,-87.67 151.99,-92.38 149.34,-85.17 149.34,-85.17\"/>\n",
"<text text-anchor=\"start\" x=\"249.6\" y=\"-136.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"259.6\" y=\"-121.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M396.03,-135.77C395.7,-145.16 396.42,-153.62 398.2,-153.62 399.51,-153.62 400.25,-149.06 400.41,-142.92\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"400.37,-135.77 403.56,-142.76 400.39,-139.27 400.41,-142.77 400.41,-142.77 400.41,-142.77 400.39,-139.27 397.26,-142.79 400.37,-135.77 400.37,-135.77\"/>\n",
"<text text-anchor=\"start\" x=\"378.2\" y=\"-172.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"390.2\" y=\"-157.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.83,-135.53C392.58,-156.62 393.7,-183.62 398.2,-183.62 402.21,-183.62 403.54,-162.21 402.19,-142.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"401.58,-135.53 405.32,-142.23 401.88,-139.02 402.18,-142.5 402.18,-142.5 402.18,-142.5 401.88,-139.02 399.04,-142.78 401.58,-135.53 401.58,-135.53\"/>\n",
"<text text-anchor=\"start\" x=\"380.2\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"390.2\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M394.09,-135.39C389.52,-166.09 390.89,-213.62 398.2,-213.62 404.97,-213.62 406.65,-172.88 403.23,-142.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"402.31,-135.39 406.34,-141.93 402.76,-138.86 403.21,-142.34 403.21,-142.34 403.21,-142.34 402.76,-138.86 400.09,-142.74 402.31,-135.39 402.31,-135.39\"/>\n",
"<text text-anchor=\"start\" x=\"393.7\" y=\"-231.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"382.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"398.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M206.92,-26.2C201.95,-29.48 176.91,-45.98 158.44,-58.15\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"152.46,-62.09 156.57,-55.61 155.39,-60.16 158.31,-58.24 158.31,-58.24 158.31,-58.24 155.39,-60.16 160.04,-60.87 152.46,-62.09 152.46,-62.09\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"267.6\" cy=\"-25.62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"267.6\" y=\"-21.92\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M210.79,-25.62C214.64,-25.62 229.12,-25.62 242.37,-25.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"249.52,-25.62 242.52,-28.77 246.02,-25.62 242.52,-25.62 242.52,-25.62 242.52,-25.62 246.02,-25.62 242.52,-22.47 249.52,-25.62 249.52,-25.62\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"341.4\" cy=\"-71.62\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M285.33,-21.92C296.55,-20.4 311.13,-20.42 321.6,-27.62 333.25,-35.63 337.72,-52.43 339.4,-62.8\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"336.99,-63.23 340.28,-69.87 341.85,-62.62 336.99,-63.23\"/>\n",
"<text text-anchor=\"start\" x=\"308.1\" y=\"-46.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"305.6\" y=\"-31.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M339.53,-71.62C328.37,-71.62 213.46,-71.62 162.32,-71.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"155.26,-71.62 162.26,-68.47 158.76,-71.62 162.26,-71.62 162.26,-71.62 162.26,-71.62 158.76,-71.62 162.26,-74.77 155.26,-71.62 155.26,-71.62\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M343.35,-72.42C347.5,-75.91 364.46,-90.14 378.25,-101.72\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"383.92,-106.48 376.53,-104.39 381.24,-104.23 378.56,-101.98 378.56,-101.98 378.56,-101.98 381.24,-104.23 380.59,-99.56 383.92,-106.48 383.92,-106.48\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = buddy.bdd_ithvar(aut.register_ap('a'))\n",
"s = aut.new_state()\n",
"aut.new_univ_edge(0, [0, s], a, [1])\n",
"aut.new_univ_edge(s, [0, 1], -a, [0])\n",
"aut"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"933pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 932.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 928.5,-372 928.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"40.5,-311 40.5,-332 108.5,-332 108.5,-311 40.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"40.5,-311 108.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108.5,-311 108.5,-332 124.5,-332 124.5,-311 108.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108.5,-311 124.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"124.5,-311 124.5,-332 140.5,-332 140.5,-311 124.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"124.5,-311 140.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"140.5,-311 140.5,-332 156.5,-332 156.5,-311 140.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"140.5,-311 156.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"156.5,-311 156.5,-332 172.5,-332 172.5,-311 156.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"156.5,-311 172.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"40.5,-290 40.5,-311 108.5,-311 108.5,-290 40.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"156.5,-290 156.5,-311 172.5,-311 172.5,-290 156.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"156.5,-290 156.5,-311 172.5,-311 172.5,-290 156.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"40.5,-269 40.5,-290 108.5,-290 108.5,-269 40.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"43.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"156.5,-269 156.5,-290 172.5,-290 172.5,-269 156.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"156.5,-269 156.5,-290 172.5,-290 172.5,-269 156.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"206.5,-343 206.5,-364 282.5,-364 282.5,-343 206.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"206.5,-343 282.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-343 282.5,-364 334.5,-364 334.5,-343 282.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"282.5,-343 334.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"334.5,-343 334.5,-364 392.5,-364 392.5,-343 334.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"334.5,-343 392.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"392.5,-343 392.5,-364 444.5,-364 444.5,-343 392.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"392.5,-343 444.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"444.5,-343 444.5,-364 502.5,-364 502.5,-343 444.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"444.5,-343 502.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"502.5,-343 502.5,-364 554.5,-364 554.5,-343 502.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"502.5,-343 554.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"554.5,-343 554.5,-364 601.5,-364 601.5,-343 554.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"554.5,-343 601.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"601.5,-343 601.5,-364 626.5,-364 626.5,-343 601.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"601.5,-343 626.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"626.5,-343 626.5,-364 660.5,-364 660.5,-343 626.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"626.5,-343 660.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"660.5,-343 660.5,-364 694.5,-364 694.5,-343 660.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"660.5,-343 694.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-322 206.5,-343 282.5,-343 282.5,-322 206.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"227.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-322 282.5,-343 334.5,-343 334.5,-322 282.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"285.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-322 334.5,-343 392.5,-343 392.5,-322 334.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"337.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-322 392.5,-343 444.5,-343 444.5,-322 392.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"395.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-322 444.5,-343 502.5,-343 502.5,-322 444.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"447.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-322 502.5,-343 554.5,-343 554.5,-322 502.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-322 554.5,-343 601.5,-343 601.5,-322 554.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-322 601.5,-343 626.5,-343 626.5,-322 601.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-322 626.5,-343 660.5,-343 660.5,-322 626.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"639\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-322 660.5,-343 694.5,-343 694.5,-322 660.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-301 206.5,-322 282.5,-322 282.5,-301 206.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-301 282.5,-322 334.5,-322 334.5,-301 282.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"294.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-301 334.5,-322 392.5,-322 392.5,-301 334.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"349.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-301 392.5,-322 444.5,-322 444.5,-301 392.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"404.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-301 444.5,-322 502.5,-322 502.5,-301 444.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"459.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-301 502.5,-322 554.5,-322 554.5,-301 502.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"514.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-301 554.5,-322 601.5,-322 601.5,-301 554.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"557.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-301 601.5,-322 626.5,-322 626.5,-301 601.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"604.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-301 626.5,-322 660.5,-322 660.5,-301 626.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-301 660.5,-322 694.5,-322 694.5,-301 660.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"663.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-280 206.5,-301 282.5,-301 282.5,-280 206.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-280 282.5,-301 334.5,-301 334.5,-280 282.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-280 282.5,-301 334.5,-301 334.5,-280 282.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"334.5,-280 334.5,-301 392.5,-301 392.5,-280 334.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-280 334.5,-301 392.5,-301 392.5,-280 334.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"392.5,-280 392.5,-301 444.5,-301 444.5,-280 392.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-280 392.5,-301 444.5,-301 444.5,-280 392.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"444.5,-280 444.5,-301 502.5,-301 502.5,-280 444.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-280 444.5,-301 502.5,-301 502.5,-280 444.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"502.5,-280 502.5,-301 554.5,-301 554.5,-280 502.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-280 502.5,-301 554.5,-301 554.5,-280 502.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"554.5,-280 554.5,-301 601.5,-301 601.5,-280 554.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-280 554.5,-301 601.5,-301 601.5,-280 554.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"601.5,-280 601.5,-301 626.5,-301 626.5,-280 601.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-280 601.5,-301 626.5,-301 626.5,-280 601.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"626.5,-280 626.5,-301 660.5,-301 660.5,-280 626.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-280 626.5,-301 660.5,-301 660.5,-280 626.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"632.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"660.5,-280 660.5,-301 694.5,-301 694.5,-280 660.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-280 660.5,-301 694.5,-301 694.5,-280 660.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"666.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-259 206.5,-280 282.5,-280 282.5,-259 206.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"209.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-259 282.5,-280 334.5,-280 334.5,-259 282.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-259 282.5,-280 334.5,-280 334.5,-259 282.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"334.5,-259 334.5,-280 392.5,-280 392.5,-259 334.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-259 334.5,-280 392.5,-280 392.5,-259 334.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"392.5,-259 392.5,-280 444.5,-280 444.5,-259 392.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-259 392.5,-280 444.5,-280 444.5,-259 392.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"444.5,-259 444.5,-280 502.5,-280 502.5,-259 444.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-259 444.5,-280 502.5,-280 502.5,-259 444.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"502.5,-259 502.5,-280 554.5,-280 554.5,-259 502.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-259 502.5,-280 554.5,-280 554.5,-259 502.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-259 554.5,-280 601.5,-280 601.5,-259 554.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-259 601.5,-280 626.5,-280 626.5,-259 601.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-259 626.5,-280 660.5,-280 660.5,-259 626.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-259 660.5,-280 694.5,-280 694.5,-259 660.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-238 206.5,-259 282.5,-259 282.5,-238 206.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"233.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-238 282.5,-259 334.5,-259 334.5,-238 282.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-238 282.5,-259 334.5,-259 334.5,-238 282.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"334.5,-238 334.5,-259 392.5,-259 392.5,-238 334.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-238 334.5,-259 392.5,-259 392.5,-238 334.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"392.5,-238 392.5,-259 444.5,-259 444.5,-238 392.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-238 392.5,-259 444.5,-259 444.5,-238 392.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"444.5,-238 444.5,-259 502.5,-259 502.5,-238 444.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-238 444.5,-259 502.5,-259 502.5,-238 444.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"502.5,-238 502.5,-259 554.5,-259 554.5,-238 502.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-238 502.5,-259 554.5,-259 554.5,-238 502.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"554.5,-238 554.5,-259 601.5,-259 601.5,-238 554.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-238 554.5,-259 601.5,-259 601.5,-238 554.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"601.5,-238 601.5,-259 626.5,-259 626.5,-238 601.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-238 601.5,-259 626.5,-259 626.5,-238 601.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"626.5,-238 626.5,-259 660.5,-259 660.5,-238 626.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-238 626.5,-259 660.5,-259 660.5,-238 626.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"660.5,-238 660.5,-259 694.5,-259 694.5,-238 660.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-238 660.5,-259 694.5,-259 694.5,-238 660.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>dests</title>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"728.5,-301 728.5,-322 796.5,-322 796.5,-301 728.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"728.5,-301 796.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"743\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"796.5,-301 796.5,-322 824.5,-322 824.5,-301 796.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"796.5,-301 824.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"799.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"824.5,-301 840.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"840.5,-301 856.5,-301 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"856.5,-301 856.5,-322 884.5,-322 884.5,-301 856.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"856.5,-301 884.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"859.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"884.5,-301 900.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"900.5,-301 916.5,-301 \"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"728.5,-280 728.5,-301 796.5,-301 796.5,-280 728.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"731.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"796.5,-280 796.5,-301 824.5,-301 824.5,-280 796.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"799.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"824.5,-280 824.5,-301 840.5,-301 840.5,-280 824.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"824.5,-280 824.5,-301 840.5,-301 840.5,-280 824.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"827.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"840.5,-280 840.5,-301 856.5,-301 856.5,-280 840.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"840.5,-280 840.5,-301 856.5,-301 856.5,-280 840.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"843.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"856.5,-280 856.5,-301 884.5,-301 884.5,-280 856.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"859.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"884.5,-280 884.5,-301 900.5,-301 900.5,-280 884.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"884.5,-280 884.5,-301 900.5,-301 900.5,-280 884.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"900.5,-280 900.5,-301 916.5,-301 916.5,-280 900.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"900.5,-280 900.5,-301 916.5,-301 916.5,-280 900.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"903.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 205.5,-137 205.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.show_storage()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we have created two universal transitions: `0->[0,2]` and `2->[0,1]`. The destination groups `[0,2]` and `[0,1]` are stored in a integer vector called `dests`. Each group is encoded by its size immediately followed by the state numbers of the destinations. So group `[0,2]` get encoded as `2,0,2` at position `0` of `dests`, and group `[0,1]` is encoded as `2,0,1` at position `3`. Each group is denoted by the index of its size in the `dests` vector. When an edge targets a destination group, the complement of that destination index is written in the `dst` field of the `edges` entry, hence that `~0` and `~3` that appear here. Using a complement like this allows us to quickly detect universal edges by looking at the sign bit if their `dst` entry.\n",
"\n",
"To work on alternating automata, one can no longer just blindingly use the `dst` field of outgoing iterations:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"0\n",
"1\n",
"1\n",
"1\n",
"0\n",
"4294967295\n",
"4294967292\n"
]
}
],
"source": [
"for e in aut.edges():\n",
" print(e.dst)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using such a large `e.dst` value as an index in `states` would likely crash the program. Instead we should iterate over all the successor of an edge using the `univ_dests()` method. Note that `univ_dests()` can be applied to regular edges as well."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0]\n",
"[1]\n",
"[0]\n",
"[1]\n",
"[1]\n",
"[1]\n",
"[0]\n",
"[0, 3]\n",
"[0, 1]\n"
]
}
],
"source": [
"for e in aut.edges():\n",
" print([d for d in aut.univ_dests(e.dst)])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that `univ_dests()` can be applied to `e.dst` or `e`."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0]\n",
"[1]\n",
"[0]\n",
"[1]\n",
"[1]\n",
"[1]\n",
"[0]\n",
"[0, 3]\n",
"[0, 1]\n"
]
}
],
"source": [
"for e in aut.edges():\n",
" print([d for d in aut.univ_dests(e)])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the initial state get also use universal branching:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"aut.set_univ_init_state([0, 1, 2])"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"467pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 466.80 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 462.8,-274 462.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"217.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"259.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"275.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"438.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"438.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 383,0 406.67,0 421.75,-25.21 429.97,-45.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"432.6,-51.94 427.14,-46.55 431.34,-48.68 430.07,-45.42 430.07,-45.42 430.07,-45.42 431.34,-48.68 433.01,-44.28 432.6,-51.94 432.6,-51.94\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 383,-204 429.72,-204 437.55,-133.74 438.29,-94.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.35,-87.21 441.44,-94.23 438.32,-90.71 438.29,-94.21 438.29,-94.21 438.29,-94.21 438.32,-90.71 435.14,-94.18 438.35,-87.21 438.35,-87.21\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.5,-101.39C209.83,-104.26 229.74,-108.26 240.59,-110.43\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"240.24,-112.86 247.59,-111.84 241.2,-108.06 240.24,-112.86\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M423.14,-59.11C412.48,-52.88 397.45,-46 383,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M436.63,-87.15C436.3,-96.54 437.02,-105 438.8,-105 440.11,-105 440.85,-100.44 441.01,-94.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"440.97,-87.15 444.16,-94.13 440.99,-90.65 441.01,-94.15 441.01,-94.15 441.01,-94.15 440.99,-90.65 437.86,-94.17 440.97,-87.15 440.97,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"418.8\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M435.43,-86.91C433.18,-108 434.3,-135 438.8,-135 442.81,-135 444.14,-113.58 442.79,-94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.18,-86.91 445.92,-93.61 442.48,-90.39 442.78,-93.88 442.78,-93.88 442.78,-93.88 442.48,-90.39 439.64,-94.15 442.18,-86.91 442.18,-86.91\"/>\n",
"<text text-anchor=\"start\" x=\"420.8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M434.69,-86.77C430.12,-117.47 431.49,-165 438.8,-165 445.57,-165 447.25,-124.26 443.83,-93.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.91,-86.77 446.94,-93.31 443.36,-90.24 443.81,-93.71 443.81,-93.71 443.81,-93.71 443.36,-90.24 440.69,-94.12 442.91,-86.77 442.91,-86.77\"/>\n",
"<text text-anchor=\"start\" x=\"434.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"422.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"438.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.46,-111.23C244.83,-109.12 237.13,-103.28 229.6,-101 221.2,-98.45 211.67,-97.43 203.14,-97.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.95,-97.03 202.99,-93.98 199.45,-97.08 202.95,-97.13 202.95,-97.13 202.95,-97.13 199.45,-97.08 202.91,-100.28 195.95,-97.03 195.95,-97.03\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.2\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.2\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-112C255.24,-112 269.72,-112 282.97,-112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"290.12,-112 283.12,-115.15 286.62,-112 283.12,-112 283.12,-112 283.12,-112 286.62,-112 283.12,-108.85 290.12,-112 290.12,-112\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M326.22,-112C340.95,-112 361.61,-112 372.88,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"373.15,-114.45 380.15,-112 373.15,-109.55 373.15,-114.45\"/>\n",
"<text text-anchor=\"start\" x=\"348.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.72,-113.3C379.54,-118.39 374.5,-136.96 362.2,-144 304.87,-176.81 272.93,-170.04 213.6,-141 204.23,-136.41 196.52,-128.01 190.75,-119.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"186.71,-113.69 193.19,-117.81 188.63,-116.62 190.56,-119.54 190.56,-119.54 190.56,-119.54 188.63,-116.62 187.92,-121.27 186.71,-113.69 186.71,-113.69\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.95,-111.25C388.08,-108.01 404.86,-94.85 418.6,-84.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"424.26,-79.62 420.7,-86.42 421.51,-81.78 418.76,-83.94 418.76,-83.94 418.76,-83.94 421.51,-81.78 416.81,-81.47 424.26,-79.62 424.26,-79.62\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"467pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 466.80 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 462.8,-274 462.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"217.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"259.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"275.9\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"438.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"438.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 383,0 406.67,0 421.75,-25.21 429.97,-45.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"432.6,-51.94 427.14,-46.55 431.34,-48.68 430.07,-45.42 430.07,-45.42 430.07,-45.42 431.34,-48.68 433.01,-44.28 432.6,-51.94 432.6,-51.94\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 383,-204 429.72,-204 437.55,-133.74 438.29,-94.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"438.35,-87.21 441.44,-94.23 438.32,-90.71 438.29,-94.21 438.29,-94.21 438.29,-94.21 438.32,-90.71 435.14,-94.18 438.35,-87.21 438.35,-87.21\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.5,-101.39C209.83,-104.26 229.74,-108.26 240.59,-110.43\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"240.24,-112.86 247.59,-111.84 241.2,-108.06 240.24,-112.86\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M423.14,-59.11C412.48,-52.88 397.45,-46 383,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M436.63,-87.15C436.3,-96.54 437.02,-105 438.8,-105 440.11,-105 440.85,-100.44 441.01,-94.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"440.97,-87.15 444.16,-94.13 440.99,-90.65 441.01,-94.15 441.01,-94.15 441.01,-94.15 440.99,-90.65 437.86,-94.17 440.97,-87.15 440.97,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"418.8\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M435.43,-86.91C433.18,-108 434.3,-135 438.8,-135 442.81,-135 444.14,-113.58 442.79,-94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.18,-86.91 445.92,-93.61 442.48,-90.39 442.78,-93.88 442.78,-93.88 442.78,-93.88 442.48,-90.39 439.64,-94.15 442.18,-86.91 442.18,-86.91\"/>\n",
"<text text-anchor=\"start\" x=\"420.8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M434.69,-86.77C430.12,-117.47 431.49,-165 438.8,-165 445.57,-165 447.25,-124.26 443.83,-93.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.91,-86.77 446.94,-93.31 443.36,-90.24 443.81,-93.71 443.81,-93.71 443.81,-93.71 443.36,-90.24 440.69,-94.12 442.91,-86.77 442.91,-86.77\"/>\n",
"<text text-anchor=\"start\" x=\"434.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"422.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"438.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.46,-111.23C244.83,-109.12 237.13,-103.28 229.6,-101 221.2,-98.45 211.67,-97.43 203.14,-97.13\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.95,-97.03 202.99,-93.98 199.45,-97.08 202.95,-97.13 202.95,-97.13 202.95,-97.13 199.45,-97.08 202.91,-100.28 195.95,-97.03 195.95,-97.03\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.2\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.2\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-112C255.24,-112 269.72,-112 282.97,-112\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"290.12,-112 283.12,-115.15 286.62,-112 283.12,-112 283.12,-112 283.12,-112 286.62,-112 283.12,-108.85 290.12,-112 290.12,-112\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M326.22,-112C340.95,-112 361.61,-112 372.88,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"373.15,-114.45 380.15,-112 373.15,-109.55 373.15,-114.45\"/>\n",
"<text text-anchor=\"start\" x=\"348.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.72,-113.3C379.54,-118.39 374.5,-136.96 362.2,-144 304.87,-176.81 272.93,-170.04 213.6,-141 204.23,-136.41 196.52,-128.01 190.75,-119.83\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"186.71,-113.69 193.19,-117.81 188.63,-116.62 190.56,-119.54 190.56,-119.54 190.56,-119.54 188.63,-116.62 187.92,-121.27 186.71,-113.69 186.71,-113.69\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.95,-111.25C388.08,-108.01 404.86,-94.85 418.6,-84.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"424.26,-79.62 420.7,-86.42 421.51,-81.78 418.76,-83.94 418.76,-83.94 418.76,-83.94 421.51,-81.78 416.81,-81.47 424.26,-79.62 424.26,-79.62\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 1, 2]\n"
]
}
],
"source": [
"print([d for d in aut.univ_dests(aut.get_init_state_number())])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"1009pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 1008.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 1004.5,-372 1004.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"40.5,-311 40.5,-332 108.5,-332 108.5,-311 40.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"40.5,-311 108.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"52.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108.5,-311 108.5,-332 124.5,-332 124.5,-311 108.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108.5,-311 124.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"124.5,-311 124.5,-332 140.5,-332 140.5,-311 124.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"124.5,-311 140.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"140.5,-311 140.5,-332 156.5,-332 156.5,-311 140.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"140.5,-311 156.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"156.5,-311 156.5,-332 172.5,-332 172.5,-311 156.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"156.5,-311 172.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"40.5,-290 40.5,-311 108.5,-311 108.5,-290 40.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"58.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-290 124.5,-311 140.5,-311 140.5,-290 124.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-290 140.5,-311 156.5,-311 156.5,-290 140.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"156.5,-290 156.5,-311 172.5,-311 172.5,-290 156.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"156.5,-290 156.5,-311 172.5,-311 172.5,-290 156.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"40.5,-269 40.5,-290 108.5,-290 108.5,-269 40.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"43.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"124.5,-269 124.5,-290 140.5,-290 140.5,-269 124.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"127.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"140.5,-269 140.5,-290 156.5,-290 156.5,-269 140.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"143.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"156.5,-269 156.5,-290 172.5,-290 172.5,-269 156.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"156.5,-269 156.5,-290 172.5,-290 172.5,-269 156.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"206.5,-343 206.5,-364 282.5,-364 282.5,-343 206.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"206.5,-343 282.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"223\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-343 282.5,-364 334.5,-364 334.5,-343 282.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"282.5,-343 334.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"334.5,-343 334.5,-364 392.5,-364 392.5,-343 334.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"334.5,-343 392.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"392.5,-343 392.5,-364 444.5,-364 444.5,-343 392.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"392.5,-343 444.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"444.5,-343 444.5,-364 502.5,-364 502.5,-343 444.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"444.5,-343 502.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"502.5,-343 502.5,-364 554.5,-364 554.5,-343 502.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"502.5,-343 554.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"554.5,-343 554.5,-364 601.5,-364 601.5,-343 554.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"554.5,-343 601.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"601.5,-343 601.5,-364 626.5,-364 626.5,-343 601.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"601.5,-343 626.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"626.5,-343 626.5,-364 660.5,-364 660.5,-343 626.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"626.5,-343 660.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"660.5,-343 660.5,-364 694.5,-364 694.5,-343 660.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"660.5,-343 694.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-322 206.5,-343 282.5,-343 282.5,-322 206.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"227.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-322 282.5,-343 334.5,-343 334.5,-322 282.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"285.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-322 334.5,-343 392.5,-343 392.5,-322 334.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"337.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-322 392.5,-343 444.5,-343 444.5,-322 392.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"395.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-322 444.5,-343 502.5,-343 502.5,-322 444.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"447.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-322 502.5,-343 554.5,-343 554.5,-322 502.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"505.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-322 554.5,-343 601.5,-343 601.5,-322 554.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-322 601.5,-343 626.5,-343 626.5,-322 601.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-322 626.5,-343 660.5,-343 660.5,-322 626.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"639\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-322 660.5,-343 694.5,-343 694.5,-322 660.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"670\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-301 206.5,-322 282.5,-322 282.5,-301 206.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-301 282.5,-322 334.5,-322 334.5,-301 282.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"294.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-301 334.5,-322 392.5,-322 392.5,-301 334.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"349.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-301 392.5,-322 444.5,-322 444.5,-301 392.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"404.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-301 444.5,-322 502.5,-322 502.5,-301 444.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"459.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-301 502.5,-322 554.5,-322 554.5,-301 502.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"514.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-301 554.5,-322 601.5,-322 601.5,-301 554.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"557.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-301 601.5,-322 626.5,-322 626.5,-301 601.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"604.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-301 626.5,-322 660.5,-322 660.5,-301 626.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"629.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-301 660.5,-322 694.5,-322 694.5,-301 660.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"663.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-280 206.5,-301 282.5,-301 282.5,-280 206.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"233\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-280 282.5,-301 334.5,-301 334.5,-280 282.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-280 282.5,-301 334.5,-301 334.5,-280 282.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"334.5,-280 334.5,-301 392.5,-301 392.5,-280 334.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-280 334.5,-301 392.5,-301 392.5,-280 334.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"392.5,-280 392.5,-301 444.5,-301 444.5,-280 392.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-280 392.5,-301 444.5,-301 444.5,-280 392.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"444.5,-280 444.5,-301 502.5,-301 502.5,-280 444.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-280 444.5,-301 502.5,-301 502.5,-280 444.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"502.5,-280 502.5,-301 554.5,-301 554.5,-280 502.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-280 502.5,-301 554.5,-301 554.5,-280 502.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"554.5,-280 554.5,-301 601.5,-301 601.5,-280 554.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-280 554.5,-301 601.5,-301 601.5,-280 554.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"601.5,-280 601.5,-301 626.5,-301 626.5,-280 601.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-280 601.5,-301 626.5,-301 626.5,-280 601.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"626.5,-280 626.5,-301 660.5,-301 660.5,-280 626.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-280 626.5,-301 660.5,-301 660.5,-280 626.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"632.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"660.5,-280 660.5,-301 694.5,-301 694.5,-280 660.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-280 660.5,-301 694.5,-301 694.5,-280 660.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"666.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-259 206.5,-280 282.5,-280 282.5,-259 206.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"209.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-259 282.5,-280 334.5,-280 334.5,-259 282.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-259 282.5,-280 334.5,-280 334.5,-259 282.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"334.5,-259 334.5,-280 392.5,-280 392.5,-259 334.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-259 334.5,-280 392.5,-280 392.5,-259 334.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"392.5,-259 392.5,-280 444.5,-280 444.5,-259 392.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-259 392.5,-280 444.5,-280 444.5,-259 392.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"444.5,-259 444.5,-280 502.5,-280 502.5,-259 444.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-259 444.5,-280 502.5,-280 502.5,-259 444.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"502.5,-259 502.5,-280 554.5,-280 554.5,-259 502.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-259 502.5,-280 554.5,-280 554.5,-259 502.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-259 554.5,-280 601.5,-280 601.5,-259 554.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-259 601.5,-280 626.5,-280 626.5,-259 601.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-259 626.5,-280 660.5,-280 660.5,-259 626.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-259 660.5,-280 694.5,-280 694.5,-259 660.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"206.5,-238 206.5,-259 282.5,-259 282.5,-238 206.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"233.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-238 282.5,-259 334.5,-259 334.5,-238 282.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-238 282.5,-259 334.5,-259 334.5,-238 282.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"303.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"334.5,-238 334.5,-259 392.5,-259 392.5,-238 334.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"334.5,-238 334.5,-259 392.5,-259 392.5,-238 334.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"358.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"392.5,-238 392.5,-259 444.5,-259 444.5,-238 392.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"392.5,-238 392.5,-259 444.5,-259 444.5,-238 392.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"444.5,-238 444.5,-259 502.5,-259 502.5,-238 444.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"444.5,-238 444.5,-259 502.5,-259 502.5,-238 444.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"468.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"502.5,-238 502.5,-259 554.5,-259 554.5,-238 502.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"502.5,-238 502.5,-259 554.5,-259 554.5,-238 502.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"523.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"554.5,-238 554.5,-259 601.5,-259 601.5,-238 554.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"554.5,-238 554.5,-259 601.5,-259 601.5,-238 554.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"573\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"601.5,-238 601.5,-259 626.5,-259 626.5,-238 601.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"601.5,-238 601.5,-259 626.5,-259 626.5,-238 601.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"609\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"626.5,-238 626.5,-259 660.5,-259 660.5,-238 626.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"626.5,-238 626.5,-259 660.5,-259 660.5,-238 626.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"638.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"660.5,-238 660.5,-259 694.5,-259 694.5,-238 660.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"660.5,-238 660.5,-259 694.5,-259 694.5,-238 660.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"672.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>dests</title>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"728.5,-301 728.5,-322 796.5,-322 796.5,-301 728.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"728.5,-301 796.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"743\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"796.5,-301 796.5,-322 824.5,-322 824.5,-301 796.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"796.5,-301 824.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"799.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"824.5,-301 840.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"840.5,-301 856.5,-301 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"856.5,-301 856.5,-322 884.5,-322 884.5,-301 856.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"856.5,-301 884.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"859.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"884.5,-301 900.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"900.5,-301 916.5,-301 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"916.5,-301 916.5,-322 944.5,-322 944.5,-301 916.5,-301\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"916.5,-301 944.5,-301 \"/>\n",
"<text text-anchor=\"start\" x=\"919.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"944.5,-301 960.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"960.5,-301 976.5,-301 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"976.5,-301 992.5,-301 \"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"728.5,-280 728.5,-301 796.5,-301 796.5,-280 728.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"731.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"796.5,-280 796.5,-301 824.5,-301 824.5,-280 796.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"799.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"824.5,-280 824.5,-301 840.5,-301 840.5,-280 824.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"824.5,-280 824.5,-301 840.5,-301 840.5,-280 824.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"827.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"840.5,-280 840.5,-301 856.5,-301 856.5,-280 840.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"840.5,-280 840.5,-301 856.5,-301 856.5,-280 840.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"843.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"856.5,-280 856.5,-301 884.5,-301 884.5,-280 856.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"859.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"884.5,-280 884.5,-301 900.5,-301 900.5,-280 884.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"884.5,-280 884.5,-301 900.5,-301 900.5,-280 884.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"887.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"900.5,-280 900.5,-301 916.5,-301 916.5,-280 900.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"900.5,-280 900.5,-301 916.5,-301 916.5,-280 900.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"903.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"916.5,-280 916.5,-301 944.5,-301 944.5,-280 916.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"919.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"944.5,-280 944.5,-301 960.5,-301 960.5,-280 944.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"944.5,-280 944.5,-301 960.5,-301 960.5,-280 944.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"947.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"960.5,-280 960.5,-301 976.5,-301 976.5,-280 960.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"960.5,-280 960.5,-301 976.5,-301 976.5,-280 960.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"963.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"976.5,-280 976.5,-301 992.5,-301 992.5,-280 976.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"976.5,-280 976.5,-301 992.5,-301 992.5,-280 976.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"979.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 205.5,-137 205.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"334.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aut.show_storage()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adding several transitions with the same destination groups may result in duplicates in the `dests` vector. Those groups get merged during `merge_edges()`."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"464pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 464.22 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.9900990099009901 0.9900990099009901) rotate(0) translate(4 358)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-358 462.8,-358 462.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"217.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"259.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"275.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-91\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-91C2.65,-91 20.2,-91 30.8,-91\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-93.45 37.92,-91 30.92,-88.55 30.92,-93.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-91.21C48.55,-92.52 85.58,-100.01 114.6,-110 128.15,-114.66 142.87,-121.01 154.57,-126.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-129.42 153.4,-129.32 157.9,-127.94 154.73,-126.46 154.73,-126.46 154.73,-126.46 157.9,-127.94 156.06,-123.61 161.07,-129.42 161.07,-129.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"438.8\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"438.8\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M40.95,-89.42C42.23,-77.34 52.08,0 95.6,0 95.6,0 95.6,0 383,0 404.43,0 419.5,-21.06 428.34,-38.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.53,-45.39 425.69,-40.4 430.03,-42.22 428.54,-39.06 428.54,-39.06 428.54,-39.06 430.03,-42.22 431.38,-37.71 431.53,-45.39 431.53,-45.39\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-91.8C45.9,-95.29 62.86,-109.52 76.65,-121.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-125.85 74.93,-123.77 79.64,-123.6 76.96,-121.35 76.96,-121.35 76.96,-121.35 79.64,-123.6 78.99,-118.94 82.32,-125.85 82.32,-125.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-153.66C169.01,-163.62 171.35,-173 177.6,-173 182.29,-173 184.78,-167.73 185.07,-160.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-153.66 188.2,-160.46 184.84,-157.16 185.06,-160.65 185.06,-160.65 185.06,-160.65 184.84,-157.16 181.91,-160.84 184.63,-153.66 184.63,-153.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.85,-155.21C180.48,-195.38 190.49,-288 248.4,-288 248.4,-288 248.4,-288 383,-288 423.94,-288 434.41,-146.14 436.99,-87.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"437.28,-80.11 440.14,-87.24 437.14,-83.61 436.99,-87.11 436.99,-87.11 436.99,-87.11 437.14,-83.61 433.85,-86.98 437.28,-80.11 437.28,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-291.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-172\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.38,-133.29C205.94,-131.89 219.44,-131.87 229.6,-138 238.93,-143.63 243.97,-155.69 246.42,-163.83\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"244.05,-164.44 248.14,-170.63 248.8,-163.24 244.05,-164.44\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M421.85,-54.75C411.1,-50.52 396.48,-46 383,-46 248.4,-46 248.4,-46 248.4,-46 214.59,-46 194.92,-86.05 185.51,-113.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"183.23,-119.88 182.44,-112.25 184.33,-116.56 185.43,-113.24 185.43,-113.24 185.43,-113.24 184.33,-116.56 188.42,-114.23 183.23,-119.88 183.23,-119.88\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M436.63,-80.15C436.3,-89.54 437.02,-98 438.8,-98 440.11,-98 440.85,-93.44 441.01,-87.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"440.97,-80.15 444.16,-87.13 440.99,-83.65 441.01,-87.15 441.01,-87.15 441.01,-87.15 440.99,-83.65 437.86,-87.17 440.97,-80.15 440.97,-80.15\"/>\n",
"<text text-anchor=\"start\" x=\"418.8\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M435.43,-79.91C433.18,-101 434.3,-128 438.8,-128 442.81,-128 444.14,-106.58 442.79,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.18,-79.91 445.92,-86.61 442.48,-83.39 442.78,-86.88 442.78,-86.88 442.78,-86.88 442.48,-83.39 439.64,-87.15 442.18,-79.91 442.18,-79.91\"/>\n",
"<text text-anchor=\"start\" x=\"420.8\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M434.69,-79.77C430.12,-110.47 431.49,-158 438.8,-158 445.57,-158 447.25,-117.26 443.83,-86.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.91,-79.77 446.94,-86.31 443.36,-83.24 443.81,-86.71 443.81,-86.71 443.81,-86.71 443.36,-83.24 440.69,-87.12 442.91,-79.77 442.91,-79.77\"/>\n",
"<text text-anchor=\"start\" x=\"434.3\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"422.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"438.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-137C125.72,-137 140.12,-137 152.27,-137\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-137 152.49,-140.15 155.99,-137 152.49,-137 152.49,-137 152.49,-137 155.99,-137 152.49,-133.85 159.49,-137 159.49,-137\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.49,-172.09C243.35,-172.45 226.04,-173.55 213.6,-168 206.82,-164.97 200.41,-160.15 194.98,-155.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"189.9,-150.27 197.11,-152.88 192.41,-152.71 194.92,-155.14 194.92,-155.14 194.92,-155.14 192.41,-152.71 192.73,-157.41 189.9,-150.27 189.9,-150.27\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.2\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.2\" y=\"-168.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-172C255.24,-172 269.72,-172 282.97,-172\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"290.12,-172 283.12,-175.15 286.62,-172 283.12,-172 283.12,-172 283.12,-172 286.62,-172 283.12,-168.85 290.12,-172 290.12,-172\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-86\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.42,-158.56C336.13,-139.75 364.05,-106.3 375.68,-92.37\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"377.68,-93.79 380.29,-86.85 373.92,-90.65 377.68,-93.79\"/>\n",
"<text text-anchor=\"start\" x=\"348.7\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;11 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>&#45;11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-217\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;11 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M325.89,-167.92C337.09,-166.17 351.67,-165.9 362.2,-173 373.92,-180.9 378.37,-197.74 380.03,-208.14\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"377.62,-208.58 380.89,-215.24 382.48,-208 377.62,-208.58\"/>\n",
"<text text-anchor=\"start\" x=\"349.7\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.12,-86.22C368.86,-89.06 252.9,-118.28 202.16,-131.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.16,-132.83 201.18,-128.06 198.56,-131.97 201.95,-131.12 201.95,-131.12 201.95,-131.12 198.56,-131.97 202.72,-134.17 195.16,-132.83 195.16,-132.83\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.95,-85.58C387.78,-83.91 402.45,-77.48 415.52,-71.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.14,-68.86 416.99,-74.55 418.94,-70.26 415.73,-71.67 415.73,-71.67 415.73,-71.67 418.94,-70.26 414.47,-68.78 422.14,-68.86 422.14,-68.86\"/>\n",
"</g>\n",
"<!-- &#45;11&#45;&gt;0 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>&#45;11&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.14,-217.22C376.21,-218.16 359.66,-221.84 346.2,-220 285.58,-211.7 264.23,-217.36 213.6,-183 204.51,-176.83 196.8,-167.53 190.94,-158.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"187.02,-152.79 193.45,-156.98 188.91,-155.74 190.8,-158.68 190.8,-158.68 190.8,-158.68 188.91,-155.74 188.15,-160.39 187.02,-152.79 187.02,-152.79\"/>\n",
"</g>\n",
"<!-- &#45;11&#45;&gt;3 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>&#45;11&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.09,-216.75C375.97,-215.59 358.71,-210.5 346.2,-203 339.62,-199.06 333.02,-193.97 327.25,-189.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"321.79,-184.27 329.13,-186.52 324.42,-186.58 327.05,-188.89 327.05,-188.89 327.05,-188.89 324.42,-186.58 324.97,-191.26 321.79,-184.27 321.79,-184.27\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"464pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 464.22 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.9900990099009901 0.9900990099009901) rotate(0) translate(4 358)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-358 462.8,-358 462.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"217.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"259.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"275.9\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.9\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-91\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-91C2.65,-91 20.2,-91 30.8,-91\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-93.45 37.92,-91 30.92,-88.55 30.92,-93.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-91.21C48.55,-92.52 85.58,-100.01 114.6,-110 128.15,-114.66 142.87,-121.01 154.57,-126.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-129.42 153.4,-129.32 157.9,-127.94 154.73,-126.46 154.73,-126.46 154.73,-126.46 157.9,-127.94 156.06,-123.61 161.07,-129.42 161.07,-129.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"438.8\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"438.8\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M40.95,-89.42C42.23,-77.34 52.08,0 95.6,0 95.6,0 95.6,0 383,0 404.43,0 419.5,-21.06 428.34,-38.63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"431.53,-45.39 425.69,-40.4 430.03,-42.22 428.54,-39.06 428.54,-39.06 428.54,-39.06 430.03,-42.22 431.38,-37.71 431.53,-45.39 431.53,-45.39\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-91.8C45.9,-95.29 62.86,-109.52 76.65,-121.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-125.85 74.93,-123.77 79.64,-123.6 76.96,-121.35 76.96,-121.35 76.96,-121.35 79.64,-123.6 78.99,-118.94 82.32,-125.85 82.32,-125.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-153.66C169.01,-163.62 171.35,-173 177.6,-173 182.29,-173 184.78,-167.73 185.07,-160.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-153.66 188.2,-160.46 184.84,-157.16 185.06,-160.65 185.06,-160.65 185.06,-160.65 184.84,-157.16 181.91,-160.84 184.63,-153.66 184.63,-153.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M178.85,-155.21C180.48,-195.38 190.49,-288 248.4,-288 248.4,-288 248.4,-288 383,-288 423.94,-288 434.41,-146.14 436.99,-87.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"437.28,-80.11 440.14,-87.24 437.14,-83.61 436.99,-87.11 436.99,-87.11 436.99,-87.11 437.14,-83.61 433.85,-86.98 437.28,-80.11 437.28,-80.11\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-291.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-172\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.38,-133.29C205.94,-131.89 219.44,-131.87 229.6,-138 238.93,-143.63 243.97,-155.69 246.42,-163.83\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"244.05,-164.44 248.14,-170.63 248.8,-163.24 244.05,-164.44\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M421.85,-54.75C411.1,-50.52 396.48,-46 383,-46 248.4,-46 248.4,-46 248.4,-46 214.59,-46 194.92,-86.05 185.51,-113.01\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"183.23,-119.88 182.44,-112.25 184.33,-116.56 185.43,-113.24 185.43,-113.24 185.43,-113.24 184.33,-116.56 188.42,-114.23 183.23,-119.88 183.23,-119.88\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M436.63,-80.15C436.3,-89.54 437.02,-98 438.8,-98 440.11,-98 440.85,-93.44 441.01,-87.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"440.97,-80.15 444.16,-87.13 440.99,-83.65 441.01,-87.15 441.01,-87.15 441.01,-87.15 440.99,-83.65 437.86,-87.17 440.97,-80.15 440.97,-80.15\"/>\n",
"<text text-anchor=\"start\" x=\"418.8\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M435.43,-79.91C433.18,-101 434.3,-128 438.8,-128 442.81,-128 444.14,-106.58 442.79,-87\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.18,-79.91 445.92,-86.61 442.48,-83.39 442.78,-86.88 442.78,-86.88 442.78,-86.88 442.48,-83.39 439.64,-87.15 442.18,-79.91 442.18,-79.91\"/>\n",
"<text text-anchor=\"start\" x=\"420.8\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"430.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M434.69,-79.77C430.12,-110.47 431.49,-158 438.8,-158 445.57,-158 447.25,-117.26 443.83,-86.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"442.91,-79.77 446.94,-86.31 443.36,-83.24 443.81,-86.71 443.81,-86.71 443.81,-86.71 443.36,-83.24 440.69,-87.12 442.91,-79.77 442.91,-79.77\"/>\n",
"<text text-anchor=\"start\" x=\"434.3\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"422.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"438.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-137C125.72,-137 140.12,-137 152.27,-137\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-137 152.49,-140.15 155.99,-137 152.49,-137 152.49,-137 152.49,-137 155.99,-137 152.49,-133.85 159.49,-137 159.49,-137\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.49,-172.09C243.35,-172.45 226.04,-173.55 213.6,-168 206.82,-164.97 200.41,-160.15 194.98,-155.2\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"189.9,-150.27 197.11,-152.88 192.41,-152.71 194.92,-155.14 194.92,-155.14 194.92,-155.14 192.41,-152.71 192.73,-157.41 189.9,-150.27 189.9,-150.27\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.2\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.2\" y=\"-168.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.39,-172C255.24,-172 269.72,-172 282.97,-172\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"290.12,-172 283.12,-175.15 286.62,-172 283.12,-172 283.12,-172 283.12,-172 286.62,-172 283.12,-168.85 290.12,-172 290.12,-172\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-86\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M320.42,-158.56C336.13,-139.75 364.05,-106.3 375.68,-92.37\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"377.68,-93.79 380.29,-86.85 373.92,-90.65 377.68,-93.79\"/>\n",
"<text text-anchor=\"start\" x=\"348.7\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;11 -->\n",
"<g id=\"node9\" class=\"node\">\n",
"<title>&#45;11</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"382\" cy=\"-217\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;11 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;11</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M325.89,-167.92C337.09,-166.17 351.67,-165.9 362.2,-173 373.92,-180.9 378.37,-197.74 380.03,-208.14\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"377.62,-208.58 380.89,-215.24 382.48,-208 377.62,-208.58\"/>\n",
"<text text-anchor=\"start\" x=\"349.7\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"346.2\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.12,-86.22C368.86,-89.06 252.9,-118.28 202.16,-131.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.16,-132.83 201.18,-128.06 198.56,-131.97 201.95,-131.12 201.95,-131.12 201.95,-131.12 198.56,-131.97 202.72,-134.17 195.16,-132.83 195.16,-132.83\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M383.95,-85.58C387.78,-83.91 402.45,-77.48 415.52,-71.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"422.14,-68.86 416.99,-74.55 418.94,-70.26 415.73,-71.67 415.73,-71.67 415.73,-71.67 418.94,-70.26 414.47,-68.78 422.14,-68.86 422.14,-68.86\"/>\n",
"</g>\n",
"<!-- &#45;11&#45;&gt;0 -->\n",
"<g id=\"edge19\" class=\"edge\">\n",
"<title>&#45;11&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.14,-217.22C376.21,-218.16 359.66,-221.84 346.2,-220 285.58,-211.7 264.23,-217.36 213.6,-183 204.51,-176.83 196.8,-167.53 190.94,-158.9\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"187.02,-152.79 193.45,-156.98 188.91,-155.74 190.8,-158.68 190.8,-158.68 190.8,-158.68 188.91,-155.74 188.15,-160.39 187.02,-152.79 187.02,-152.79\"/>\n",
"</g>\n",
"<!-- &#45;11&#45;&gt;3 -->\n",
"<g id=\"edge20\" class=\"edge\">\n",
"<title>&#45;11&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M380.09,-216.75C375.97,-215.59 358.71,-210.5 346.2,-203 339.62,-199.06 333.02,-193.97 327.25,-189.07\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"321.79,-184.27 329.13,-186.52 324.42,-186.58 327.05,-188.89 327.05,-188.89 327.05,-188.89 324.42,-186.58 324.97,-191.26 321.79,-184.27 321.79,-184.27\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"1119pt\" height=\"262pt\"\n",
" viewBox=\"0.00 0.00 1119.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 1115,-258 1115,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"36.5,-197 36.5,-218 104.5,-218 104.5,-197 36.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"36.5,-197 104.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"48.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"104.5,-197 104.5,-218 120.5,-218 120.5,-197 104.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"104.5,-197 120.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"120.5,-197 120.5,-218 136.5,-218 136.5,-197 120.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"120.5,-197 136.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"136.5,-197 136.5,-218 152.5,-218 152.5,-197 136.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"136.5,-197 152.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"152.5,-197 152.5,-218 177.5,-218 177.5,-197 152.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"152.5,-197 177.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"36.5,-176 36.5,-197 104.5,-197 104.5,-176 36.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"54.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"104.5,-176 104.5,-197 120.5,-197 120.5,-176 104.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"104.5,-176 104.5,-197 120.5,-197 120.5,-176 104.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-176 120.5,-197 136.5,-197 136.5,-176 120.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-176 120.5,-197 136.5,-197 136.5,-176 120.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"136.5,-176 136.5,-197 152.5,-197 152.5,-176 136.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"136.5,-176 136.5,-197 152.5,-197 152.5,-176 136.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"152.5,-176 152.5,-197 177.5,-197 177.5,-176 152.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"152.5,-176 152.5,-197 177.5,-197 177.5,-176 152.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"36.5,-155 36.5,-176 104.5,-176 104.5,-155 36.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"39.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"104.5,-155 104.5,-176 120.5,-176 120.5,-155 104.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"104.5,-155 104.5,-176 120.5,-176 120.5,-155 104.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-155 120.5,-176 136.5,-176 136.5,-155 120.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-155 120.5,-176 136.5,-176 136.5,-155 120.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"136.5,-155 136.5,-176 152.5,-176 152.5,-155 136.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"136.5,-155 136.5,-176 152.5,-176 152.5,-155 136.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"152.5,-155 152.5,-176 177.5,-176 177.5,-155 152.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"152.5,-155 152.5,-176 177.5,-176 177.5,-155 152.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"155.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"211.5,-229 211.5,-250 287.5,-250 287.5,-229 211.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"211.5,-229 287.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-229 287.5,-250 339.5,-250 339.5,-229 287.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287.5,-229 339.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"339.5,-229 339.5,-250 397.5,-250 397.5,-229 339.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"339.5,-229 397.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"397.5,-229 397.5,-250 449.5,-250 449.5,-229 397.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"397.5,-229 449.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"418.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"449.5,-229 449.5,-250 507.5,-250 507.5,-229 449.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"449.5,-229 507.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"473.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"507.5,-229 507.5,-250 559.5,-250 559.5,-229 507.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"507.5,-229 559.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"528.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"559.5,-229 559.5,-250 606.5,-250 606.5,-229 559.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"559.5,-229 606.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"578\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"606.5,-229 606.5,-250 631.5,-250 631.5,-229 606.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"606.5,-229 631.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"631.5,-229 631.5,-250 665.5,-250 665.5,-229 631.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"631.5,-229 665.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"643.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"665.5,-229 665.5,-250 699.5,-250 699.5,-229 665.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"665.5,-229 699.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"677.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"699.5,-229 699.5,-250 736.5,-250 736.5,-229 699.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"699.5,-229 736.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"708.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-208 211.5,-229 287.5,-229 287.5,-208 211.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-208 287.5,-229 339.5,-229 339.5,-208 287.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"290.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-208 339.5,-229 397.5,-229 397.5,-208 339.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"342.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-208 397.5,-229 449.5,-229 449.5,-208 397.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"400.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"449.5,-208 449.5,-229 507.5,-229 507.5,-208 449.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"452.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"507.5,-208 507.5,-229 559.5,-229 559.5,-208 507.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"510.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"559.5,-208 559.5,-229 606.5,-229 606.5,-208 559.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"578\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"606.5,-208 606.5,-229 631.5,-229 631.5,-208 606.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631.5,-208 631.5,-229 665.5,-229 665.5,-208 631.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"644\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-208 665.5,-229 699.5,-229 699.5,-208 665.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"675\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-208 699.5,-229 736.5,-229 736.5,-208 699.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"713\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-187 211.5,-208 287.5,-208 287.5,-187 211.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"237.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-187 287.5,-208 339.5,-208 339.5,-187 287.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"299.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-187 339.5,-208 397.5,-208 397.5,-187 339.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-187 397.5,-208 449.5,-208 449.5,-187 397.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"409.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"449.5,-187 449.5,-208 507.5,-208 507.5,-187 449.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"464.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"507.5,-187 507.5,-208 559.5,-208 559.5,-187 507.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"519.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"559.5,-187 559.5,-208 606.5,-208 606.5,-187 559.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"562.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"606.5,-187 606.5,-208 631.5,-208 631.5,-187 606.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"609.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631.5,-187 631.5,-208 665.5,-208 665.5,-187 631.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"634.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-187 665.5,-208 699.5,-208 699.5,-187 665.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"668.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-187 699.5,-208 736.5,-208 736.5,-187 699.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"704\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-166 211.5,-187 287.5,-187 287.5,-166 211.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-166 287.5,-187 339.5,-187 339.5,-166 287.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-166 287.5,-187 339.5,-187 339.5,-166 287.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"339.5,-166 339.5,-187 397.5,-187 397.5,-166 339.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-166 339.5,-187 397.5,-187 397.5,-166 339.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"397.5,-166 397.5,-187 449.5,-187 449.5,-166 397.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-166 397.5,-187 449.5,-187 449.5,-166 397.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"418.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"449.5,-166 449.5,-187 507.5,-187 507.5,-166 449.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"449.5,-166 449.5,-187 507.5,-187 507.5,-166 449.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"473.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"507.5,-166 507.5,-187 559.5,-187 559.5,-166 507.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"507.5,-166 507.5,-187 559.5,-187 559.5,-166 507.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"528.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"559.5,-166 559.5,-187 606.5,-187 606.5,-166 559.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"559.5,-166 559.5,-187 606.5,-187 606.5,-166 559.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"578\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"606.5,-166 606.5,-187 631.5,-187 631.5,-166 606.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"606.5,-166 606.5,-187 631.5,-187 631.5,-166 606.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"631.5,-166 631.5,-187 665.5,-187 665.5,-166 631.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631.5,-166 631.5,-187 665.5,-187 665.5,-166 631.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"637.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"665.5,-166 665.5,-187 699.5,-187 699.5,-166 665.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-166 665.5,-187 699.5,-187 699.5,-166 665.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"671.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"699.5,-166 699.5,-187 736.5,-187 736.5,-166 699.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-166 699.5,-187 736.5,-187 736.5,-166 699.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"702.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~10</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-145 211.5,-166 287.5,-166 287.5,-145 211.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-145 287.5,-166 339.5,-166 339.5,-145 287.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-145 287.5,-166 339.5,-166 339.5,-145 287.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"339.5,-145 339.5,-166 397.5,-166 397.5,-145 339.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-145 339.5,-166 397.5,-166 397.5,-145 339.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"397.5,-145 397.5,-166 449.5,-166 449.5,-145 397.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-145 397.5,-166 449.5,-166 449.5,-145 397.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"418.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"449.5,-145 449.5,-166 507.5,-166 507.5,-145 449.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"449.5,-145 449.5,-166 507.5,-166 507.5,-145 449.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"473.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"507.5,-145 507.5,-166 559.5,-166 559.5,-145 507.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"507.5,-145 507.5,-166 559.5,-166 559.5,-145 507.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"528.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"559.5,-145 559.5,-166 606.5,-166 606.5,-145 559.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"578\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"606.5,-145 606.5,-166 631.5,-166 631.5,-145 606.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631.5,-145 631.5,-166 665.5,-166 665.5,-145 631.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"643.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"665.5,-145 665.5,-166 699.5,-166 699.5,-145 665.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-145 665.5,-166 699.5,-166 699.5,-145 665.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"673\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-145 699.5,-166 736.5,-166 736.5,-145 699.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"713\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-124 211.5,-145 287.5,-145 287.5,-124 211.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"238.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-124 287.5,-145 339.5,-145 339.5,-124 287.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-124 287.5,-145 339.5,-145 339.5,-124 287.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"339.5,-124 339.5,-145 397.5,-145 397.5,-124 339.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-124 339.5,-145 397.5,-145 397.5,-124 339.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"397.5,-124 397.5,-145 449.5,-145 449.5,-124 397.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-124 397.5,-145 449.5,-145 449.5,-124 397.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"418.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"449.5,-124 449.5,-145 507.5,-145 507.5,-124 449.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"449.5,-124 449.5,-145 507.5,-145 507.5,-124 449.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"473.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"507.5,-124 507.5,-145 559.5,-145 559.5,-124 507.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"507.5,-124 507.5,-145 559.5,-145 559.5,-124 507.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"528.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"559.5,-124 559.5,-145 606.5,-145 606.5,-124 559.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"559.5,-124 559.5,-145 606.5,-145 606.5,-124 559.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"578\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"606.5,-124 606.5,-145 631.5,-145 631.5,-124 606.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"606.5,-124 606.5,-145 631.5,-145 631.5,-124 606.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"614\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"631.5,-124 631.5,-145 665.5,-145 665.5,-124 631.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"631.5,-124 631.5,-145 665.5,-145 665.5,-124 631.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"643.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"665.5,-124 665.5,-145 699.5,-145 699.5,-124 665.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-124 665.5,-145 699.5,-145 699.5,-124 665.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"677.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"699.5,-124 699.5,-145 736.5,-145 736.5,-124 699.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-124 699.5,-145 736.5,-145 736.5,-124 699.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"713\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>dests</title>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"770.5,-187 770.5,-208 838.5,-208 838.5,-187 770.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"770.5,-187 838.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"785\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"838.5,-187 838.5,-208 866.5,-208 866.5,-187 838.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"838.5,-187 866.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"841.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"866.5,-187 882.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"882.5,-187 898.5,-187 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"898.5,-187 898.5,-208 926.5,-208 926.5,-187 898.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"898.5,-187 926.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"901.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"926.5,-187 942.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"942.5,-187 958.5,-187 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"958.5,-187 958.5,-208 986.5,-208 986.5,-187 958.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"958.5,-187 986.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"961.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"986.5,-187 1002.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1002.5,-187 1018.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1018.5,-187 1034.5,-187 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"1034.5,-187 1034.5,-208 1071.5,-208 1071.5,-187 1034.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1034.5,-187 1071.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"1037.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~10</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1071.5,-187 1087.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1087.5,-187 1103.5,-187 \"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"770.5,-166 770.5,-187 838.5,-187 838.5,-166 770.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"773.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"838.5,-166 838.5,-187 866.5,-187 866.5,-166 838.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"841.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"866.5,-166 866.5,-187 882.5,-187 882.5,-166 866.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"866.5,-166 866.5,-187 882.5,-187 882.5,-166 866.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"869.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"882.5,-166 882.5,-187 898.5,-187 898.5,-166 882.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"882.5,-166 882.5,-187 898.5,-187 898.5,-166 882.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"885.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"898.5,-166 898.5,-187 926.5,-187 926.5,-166 898.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"901.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"926.5,-166 926.5,-187 942.5,-187 942.5,-166 926.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"926.5,-166 926.5,-187 942.5,-187 942.5,-166 926.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"929.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"942.5,-166 942.5,-187 958.5,-187 958.5,-166 942.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"942.5,-166 942.5,-187 958.5,-187 958.5,-166 942.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"945.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"958.5,-166 958.5,-187 986.5,-187 986.5,-166 958.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"961.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"986.5,-166 986.5,-187 1002.5,-187 1002.5,-166 986.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"986.5,-166 986.5,-187 1002.5,-187 1002.5,-166 986.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"989.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"1002.5,-166 1002.5,-187 1018.5,-187 1018.5,-166 1002.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1002.5,-166 1002.5,-187 1018.5,-187 1018.5,-166 1002.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1005.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"1018.5,-166 1018.5,-187 1034.5,-187 1034.5,-166 1018.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1018.5,-166 1018.5,-187 1034.5,-187 1034.5,-166 1018.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1021.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1034.5,-166 1034.5,-187 1071.5,-187 1071.5,-166 1034.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1042\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"1071.5,-166 1071.5,-187 1087.5,-187 1087.5,-166 1071.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1071.5,-166 1071.5,-187 1087.5,-187 1087.5,-166 1071.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1074.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"1087.5,-166 1087.5,-187 1103.5,-187 1103.5,-166 1087.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1087.5,-166 1087.5,-187 1103.5,-187 1103.5,-166 1087.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1090.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"97.5,-61 97.5,-80 205.5,-80 205.5,-61 97.5,-61\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"482pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 481.80 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 477.8,-274 477.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"186.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"209.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"225.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"267.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"283.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"209.4\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"453.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"453.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 398,0 421.67,0 436.75,-25.21 444.97,-45.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"447.6,-51.94 442.14,-46.55 446.34,-48.68 445.07,-45.42 445.07,-45.42 445.07,-45.42 446.34,-48.68 448.01,-44.28 447.6,-51.94 447.6,-51.94\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 398,-204 444.72,-204 452.55,-133.74 453.29,-94.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"453.35,-87.21 456.44,-94.23 453.32,-90.71 453.29,-94.21 453.29,-94.21 453.29,-94.21 453.32,-90.71 450.14,-94.18 453.35,-87.21 453.35,-87.21\"/>\n",
"<text text-anchor=\"start\" x=\"303.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.2\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-96\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.85,-97.51C210.05,-97.1 229.53,-96.54 240.34,-96.23\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"240.67,-98.67 247.6,-96.02 240.53,-93.77 240.67,-98.67\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M438.14,-59.11C427.48,-52.88 412.45,-46 398,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n",
"<text text-anchor=\"start\" x=\"305.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M451.63,-87.15C451.3,-96.54 452.02,-105 453.8,-105 455.11,-105 455.85,-100.44 456.01,-94.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.97,-87.15 459.16,-94.13 455.99,-90.65 456.01,-94.15 456.01,-94.15 456.01,-94.15 455.99,-90.65 452.86,-94.17 455.97,-87.15 455.97,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"433.8\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"445.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M450.43,-86.91C448.18,-108 449.3,-135 453.8,-135 457.81,-135 459.14,-113.58 457.79,-94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"457.18,-86.91 460.92,-93.61 457.48,-90.39 457.78,-93.88 457.78,-93.88 457.78,-93.88 457.48,-90.39 454.64,-94.15 457.18,-86.91 457.18,-86.91\"/>\n",
"<text text-anchor=\"start\" x=\"435.8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"445.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.69,-86.77C445.12,-117.47 446.49,-165 453.8,-165 460.57,-165 462.25,-124.26 458.83,-93.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"457.91,-86.77 461.94,-93.31 458.36,-90.24 458.81,-93.71 458.81,-93.71 458.81,-93.71 458.36,-90.24 455.69,-94.12 457.91,-86.77 457.91,-86.77\"/>\n",
"<text text-anchor=\"start\" x=\"449.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"437.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"453.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.39,-95.71C244.6,-94.91 236.5,-92.73 229.6,-92 220.82,-91.08 211.21,-91.76 202.71,-92.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.59,-94.1 202,-89.88 199.04,-93.55 202.5,-92.99 202.5,-92.99 202.5,-92.99 199.04,-93.55 203,-96.1 195.59,-94.1 195.59,-94.1\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"323.2\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"323.2\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.28,-95.72C255.26,-94.5 272,-89.81 285.2,-93 290.73,-94.34 296.36,-96.65 301.5,-99.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"307.71,-102.53 300.05,-102.01 304.62,-100.88 301.54,-99.23 301.54,-99.23 301.54,-99.23 304.62,-100.88 303.02,-96.45 307.71,-102.53 307.71,-102.53\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M305.32,-108.24C290.4,-104.91 269.32,-100.22 258.11,-97.72\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"258.57,-95.31 251.21,-96.18 257.51,-100.09 258.57,-95.31\"/>\n",
"<text text-anchor=\"start\" x=\"272.7\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"269.2\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"397\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M341.22,-112C355.95,-112 376.61,-112 387.88,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"388.15,-114.45 395.15,-112 388.15,-109.55 388.15,-114.45\"/>\n",
"<text text-anchor=\"start\" x=\"363.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"361.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M395.72,-113.3C394.54,-118.39 389.5,-136.96 377.2,-144 335.45,-167.89 317.06,-141.83 269.2,-137 244.42,-134.5 236.21,-140.45 213.6,-130 206.76,-126.84 200.34,-121.85 194.91,-116.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"189.84,-111.66 197.01,-114.39 192.31,-114.14 194.78,-116.61 194.78,-116.61 194.78,-116.61 192.31,-114.14 192.55,-118.84 189.84,-111.66 189.84,-111.66\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M398.95,-111.25C403.08,-108.01 419.86,-94.85 433.6,-84.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"439.26,-79.62 435.7,-86.42 436.51,-81.78 433.76,-83.94 433.76,-83.94 433.76,-83.94 436.51,-81.78 431.81,-81.47 439.26,-79.62 439.26,-79.62\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"482pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 481.80 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 477.8,-274 477.8,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"186.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"209.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"225.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"267.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"283.4\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"209.4\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- I&#45;&gt;&#45;7 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;&#45;7</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"453.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"453.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 398,0 421.67,0 436.75,-25.21 444.97,-45.16\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"447.6,-51.94 442.14,-46.55 446.34,-48.68 445.07,-45.42 445.07,-45.42 445.07,-45.42 446.34,-48.68 448.01,-44.28 447.6,-51.94 447.6,-51.94\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- &#45;7&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>&#45;7&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n",
"<text text-anchor=\"start\" x=\"159.6\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 398,-204 444.72,-204 452.55,-133.74 453.29,-94.59\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"453.35,-87.21 456.44,-94.23 453.32,-90.71 453.29,-94.21 453.29,-94.21 453.29,-94.21 453.32,-90.71 450.14,-94.18 453.35,-87.21 453.35,-87.21\"/>\n",
"<text text-anchor=\"start\" x=\"303.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.2\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;1 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>&#45;1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-96\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;&#45;1 -->\n",
"<g id=\"edge7\" class=\"edge\">\n",
"<title>0&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M195.85,-97.51C210.05,-97.1 229.53,-96.54 240.34,-96.23\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"240.67,-98.67 247.6,-96.02 240.53,-93.77 240.67,-98.67\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"213.6\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
"<title>1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M438.14,-59.11C427.48,-52.88 412.45,-46 398,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n",
"<text text-anchor=\"start\" x=\"305.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.2\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge11\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M451.63,-87.15C451.3,-96.54 452.02,-105 453.8,-105 455.11,-105 455.85,-100.44 456.01,-94.3\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"455.97,-87.15 459.16,-94.13 455.99,-90.65 456.01,-94.15 456.01,-94.15 456.01,-94.15 455.99,-90.65 452.86,-94.17 455.97,-87.15 455.97,-87.15\"/>\n",
"<text text-anchor=\"start\" x=\"433.8\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"445.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M450.43,-86.91C448.18,-108 449.3,-135 453.8,-135 457.81,-135 459.14,-113.58 457.79,-94\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"457.18,-86.91 460.92,-93.61 457.48,-90.39 457.78,-93.88 457.78,-93.88 457.78,-93.88 457.48,-90.39 454.64,-94.15 457.18,-86.91 457.18,-86.91\"/>\n",
"<text text-anchor=\"start\" x=\"435.8\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"445.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge13\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M449.69,-86.77C445.12,-117.47 446.49,-165 453.8,-165 460.57,-165 462.25,-124.26 458.83,-93.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"457.91,-86.77 461.94,-93.31 458.36,-90.24 458.81,-93.71 458.81,-93.71 458.81,-93.71 458.36,-90.24 455.69,-94.12 457.91,-86.77 457.91,-86.77\"/>\n",
"<text text-anchor=\"start\" x=\"449.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"437.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"453.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;0 -->\n",
"<g id=\"edge14\" class=\"edge\">\n",
"<title>2&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;0 -->\n",
"<g id=\"edge8\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M247.39,-95.71C244.6,-94.91 236.5,-92.73 229.6,-92 220.82,-91.08 211.21,-91.76 202.71,-92.96\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"195.59,-94.1 202,-89.88 199.04,-93.55 202.5,-92.99 202.5,-92.99 202.5,-92.99 199.04,-93.55 203,-96.1 195.59,-94.1 195.59,-94.1\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"323.2\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"323.2\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- &#45;1&#45;&gt;3 -->\n",
"<g id=\"edge9\" class=\"edge\">\n",
"<title>&#45;1&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M251.28,-95.72C255.26,-94.5 272,-89.81 285.2,-93 290.73,-94.34 296.36,-96.65 301.5,-99.21\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"307.71,-102.53 300.05,-102.01 304.62,-100.88 301.54,-99.23 301.54,-99.23 301.54,-99.23 304.62,-100.88 303.02,-96.45 307.71,-102.53 307.71,-102.53\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;1 -->\n",
"<g id=\"edge18\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M305.32,-108.24C290.4,-104.91 269.32,-100.22 258.11,-97.72\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"258.57,-95.31 251.21,-96.18 257.51,-100.09 258.57,-95.31\"/>\n",
"<text text-anchor=\"start\" x=\"272.7\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"269.2\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"397\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n",
"</g>\n",
"<!-- 3&#45;&gt;&#45;4 -->\n",
"<g id=\"edge15\" class=\"edge\">\n",
"<title>3&#45;&gt;&#45;4</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M341.22,-112C355.95,-112 376.61,-112 387.88,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"388.15,-114.45 395.15,-112 388.15,-109.55 388.15,-114.45\"/>\n",
"<text text-anchor=\"start\" x=\"363.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"361.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;0 -->\n",
"<g id=\"edge16\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M395.72,-113.3C394.54,-118.39 389.5,-136.96 377.2,-144 335.45,-167.89 317.06,-141.83 269.2,-137 244.42,-134.5 236.21,-140.45 213.6,-130 206.76,-126.84 200.34,-121.85 194.91,-116.74\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"189.84,-111.66 197.01,-114.39 192.31,-114.14 194.78,-116.61 194.78,-116.61 194.78,-116.61 192.31,-114.14 192.55,-118.84 189.84,-111.66 189.84,-111.66\"/>\n",
"</g>\n",
"<!-- &#45;4&#45;&gt;1 -->\n",
"<g id=\"edge17\" class=\"edge\">\n",
"<title>&#45;4&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M398.95,-111.25C403.08,-108.01 419.86,-94.85 433.6,-84.06\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"439.26,-79.62 435.7,-86.42 436.51,-81.78 433.76,-83.94 433.76,-83.94 433.76,-83.94 436.51,-81.78 431.81,-81.47 439.26,-79.62 439.26,-79.62\"/>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdcf63db0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"1048pt\" height=\"262pt\"\n",
" viewBox=\"0.00 0.00 1047.50 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 1043.5,-258 1043.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"36.5,-197 36.5,-218 104.5,-218 104.5,-197 36.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"36.5,-197 104.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"48.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"104.5,-197 104.5,-218 120.5,-218 120.5,-197 104.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"104.5,-197 120.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"120.5,-197 120.5,-218 136.5,-218 136.5,-197 120.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"120.5,-197 136.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"136.5,-197 136.5,-218 152.5,-218 152.5,-197 136.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"136.5,-197 152.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"152.5,-197 152.5,-218 177.5,-218 177.5,-197 152.5,-197\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"152.5,-197 177.5,-197 \"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"36.5,-176 36.5,-197 104.5,-197 104.5,-176 36.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"54.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"104.5,-176 104.5,-197 120.5,-197 120.5,-176 104.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"104.5,-176 104.5,-197 120.5,-197 120.5,-176 104.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-176 120.5,-197 136.5,-197 136.5,-176 120.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-176 120.5,-197 136.5,-197 136.5,-176 120.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"136.5,-176 136.5,-197 152.5,-197 152.5,-176 136.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"136.5,-176 136.5,-197 152.5,-197 152.5,-176 136.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"152.5,-176 152.5,-197 177.5,-197 177.5,-176 152.5,-176\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"152.5,-176 152.5,-197 177.5,-197 177.5,-176 152.5,-176\"/>\n",
"<text text-anchor=\"start\" x=\"160\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"36.5,-155 36.5,-176 104.5,-176 104.5,-155 36.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"39.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"104.5,-155 104.5,-176 120.5,-176 120.5,-155 104.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"104.5,-155 104.5,-176 120.5,-176 120.5,-155 104.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-155 120.5,-176 136.5,-176 136.5,-155 120.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-155 120.5,-176 136.5,-176 136.5,-155 120.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"123.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"136.5,-155 136.5,-176 152.5,-176 152.5,-155 136.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"136.5,-155 136.5,-176 152.5,-176 152.5,-155 136.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"139.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"152.5,-155 152.5,-176 177.5,-176 177.5,-155 152.5,-155\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"152.5,-155 152.5,-176 177.5,-176 177.5,-155 152.5,-155\"/>\n",
"<text text-anchor=\"start\" x=\"155.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"211.5,-229 211.5,-250 287.5,-250 287.5,-229 211.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"211.5,-229 287.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"228\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-229 287.5,-250 339.5,-250 339.5,-229 287.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287.5,-229 339.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"339.5,-229 339.5,-250 397.5,-250 397.5,-229 339.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"339.5,-229 397.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"397.5,-229 397.5,-250 431.5,-250 431.5,-229 397.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"397.5,-229 431.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"409.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"431.5,-229 431.5,-250 483.5,-250 483.5,-229 431.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"431.5,-229 483.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"452.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"483.5,-229 483.5,-250 541.5,-250 541.5,-229 483.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"483.5,-229 541.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"507.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541.5,-229 541.5,-250 593.5,-250 593.5,-229 541.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"541.5,-229 593.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"562.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"593.5,-229 593.5,-250 640.5,-250 640.5,-229 593.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"593.5,-229 640.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"612\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"640.5,-229 640.5,-250 665.5,-250 665.5,-229 640.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"640.5,-229 665.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"648\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"665.5,-229 665.5,-250 699.5,-250 699.5,-229 665.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"665.5,-229 699.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"677.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"699.5,-229 699.5,-250 733.5,-250 733.5,-229 699.5,-229\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"699.5,-229 733.5,-229 \"/>\n",
"<text text-anchor=\"start\" x=\"707\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-208 211.5,-229 287.5,-229 287.5,-208 211.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"232.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-208 287.5,-229 339.5,-229 339.5,-208 287.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"290.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-208 339.5,-229 397.5,-229 397.5,-208 339.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"342.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-208 397.5,-229 431.5,-229 431.5,-208 397.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"410\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-208 431.5,-229 483.5,-229 483.5,-208 431.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"434.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"483.5,-208 483.5,-229 541.5,-229 541.5,-208 483.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"486.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541.5,-208 541.5,-229 593.5,-229 593.5,-208 541.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"544.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"593.5,-208 593.5,-229 640.5,-229 640.5,-208 593.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"612\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"640.5,-208 640.5,-229 665.5,-229 665.5,-208 640.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"648\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-208 665.5,-229 699.5,-229 699.5,-208 665.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"675\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-208 699.5,-229 733.5,-229 733.5,-208 699.5,-208\"/>\n",
"<text text-anchor=\"start\" x=\"711.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-187 211.5,-208 287.5,-208 287.5,-187 211.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"237.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-187 287.5,-208 339.5,-208 339.5,-187 287.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"299.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-187 339.5,-208 397.5,-208 397.5,-187 339.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-187 397.5,-208 431.5,-208 431.5,-187 397.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"400.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-187 431.5,-208 483.5,-208 483.5,-187 431.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"443.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"483.5,-187 483.5,-208 541.5,-208 541.5,-187 483.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"498.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541.5,-187 541.5,-208 593.5,-208 593.5,-187 541.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"553.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"593.5,-187 593.5,-208 640.5,-208 640.5,-187 593.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"596.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"640.5,-187 640.5,-208 665.5,-208 665.5,-187 640.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"643.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-187 665.5,-208 699.5,-208 699.5,-187 665.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"668.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-187 699.5,-208 733.5,-208 733.5,-187 699.5,-187\"/>\n",
"<text text-anchor=\"start\" x=\"702.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-166 211.5,-187 287.5,-187 287.5,-166 211.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"238\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-166 287.5,-187 339.5,-187 339.5,-166 287.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-166 287.5,-187 339.5,-187 339.5,-166 287.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"339.5,-166 339.5,-187 397.5,-187 397.5,-166 339.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-166 339.5,-187 397.5,-187 397.5,-166 339.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"397.5,-166 397.5,-187 431.5,-187 431.5,-166 397.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-166 397.5,-187 431.5,-187 431.5,-166 397.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"403.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"431.5,-166 431.5,-187 483.5,-187 483.5,-166 431.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-166 431.5,-187 483.5,-187 483.5,-166 431.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"452.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"483.5,-166 483.5,-187 541.5,-187 541.5,-166 483.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"483.5,-166 483.5,-187 541.5,-187 541.5,-166 483.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"507.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541.5,-166 541.5,-187 593.5,-187 593.5,-166 541.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541.5,-166 541.5,-187 593.5,-187 593.5,-166 541.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"562.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"593.5,-166 593.5,-187 640.5,-187 640.5,-166 593.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"593.5,-166 593.5,-187 640.5,-187 640.5,-166 593.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"612\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"640.5,-166 640.5,-187 665.5,-187 665.5,-166 640.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"640.5,-166 640.5,-187 665.5,-187 665.5,-166 640.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"648\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"665.5,-166 665.5,-187 699.5,-187 699.5,-166 665.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-166 665.5,-187 699.5,-187 699.5,-166 665.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"671.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"699.5,-166 699.5,-187 733.5,-187 733.5,-166 699.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-166 699.5,-187 733.5,-187 733.5,-166 699.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"705.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-145 211.5,-166 287.5,-166 287.5,-145 211.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-145 287.5,-166 339.5,-166 339.5,-145 287.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-145 287.5,-166 339.5,-166 339.5,-145 287.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"339.5,-145 339.5,-166 397.5,-166 397.5,-145 339.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-145 339.5,-166 397.5,-166 397.5,-145 339.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-145 397.5,-166 431.5,-166 431.5,-145 397.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"409.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"431.5,-145 431.5,-166 483.5,-166 483.5,-145 431.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-145 431.5,-166 483.5,-166 483.5,-145 431.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"452.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"483.5,-145 483.5,-166 541.5,-166 541.5,-145 483.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"483.5,-145 483.5,-166 541.5,-166 541.5,-145 483.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"507.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"541.5,-145 541.5,-166 593.5,-166 593.5,-145 541.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541.5,-145 541.5,-166 593.5,-166 593.5,-145 541.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"562.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"593.5,-145 593.5,-166 640.5,-166 640.5,-145 593.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"612\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"640.5,-145 640.5,-166 665.5,-166 665.5,-145 640.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"648\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"665.5,-145 665.5,-166 699.5,-166 699.5,-145 665.5,-145\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-145 665.5,-166 699.5,-166 699.5,-145 665.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"673\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-145 699.5,-166 733.5,-166 733.5,-145 699.5,-145\"/>\n",
"<text text-anchor=\"start\" x=\"711.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"211.5,-124 211.5,-145 287.5,-145 287.5,-124 211.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"238.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-124 287.5,-145 339.5,-145 339.5,-124 287.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-124 287.5,-145 339.5,-145 339.5,-124 287.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"308.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"339.5,-124 339.5,-145 397.5,-145 397.5,-124 339.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"339.5,-124 339.5,-145 397.5,-145 397.5,-124 339.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"397.5,-124 397.5,-145 431.5,-145 431.5,-124 397.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"397.5,-124 397.5,-145 431.5,-145 431.5,-124 397.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"409.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"431.5,-124 431.5,-145 483.5,-145 483.5,-124 431.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-124 431.5,-145 483.5,-145 483.5,-124 431.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"452.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"483.5,-124 483.5,-145 541.5,-145 541.5,-124 483.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"483.5,-124 483.5,-145 541.5,-145 541.5,-124 483.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"507.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"541.5,-124 541.5,-145 593.5,-145 593.5,-124 541.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"541.5,-124 541.5,-145 593.5,-145 593.5,-124 541.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"562.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"593.5,-124 593.5,-145 640.5,-145 640.5,-124 593.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"593.5,-124 593.5,-145 640.5,-145 640.5,-124 593.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"612\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"640.5,-124 640.5,-145 665.5,-145 665.5,-124 640.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"640.5,-124 640.5,-145 665.5,-145 665.5,-124 640.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"648\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"665.5,-124 665.5,-145 699.5,-145 699.5,-124 665.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"665.5,-124 665.5,-145 699.5,-145 699.5,-124 665.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"677.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"699.5,-124 699.5,-145 733.5,-145 733.5,-124 699.5,-124\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-124 699.5,-145 733.5,-145 733.5,-124 699.5,-124\"/>\n",
"<text text-anchor=\"start\" x=\"711.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>dests</title>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"767.5,-187 767.5,-208 835.5,-208 835.5,-187 767.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"767.5,-187 835.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"782\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"835.5,-187 835.5,-208 863.5,-208 863.5,-187 835.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"835.5,-187 863.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"838.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"863.5,-187 879.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"879.5,-187 895.5,-187 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"895.5,-187 895.5,-208 923.5,-208 923.5,-187 895.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"895.5,-187 923.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"898.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"923.5,-187 939.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"939.5,-187 955.5,-187 \"/>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"955.5,-187 955.5,-208 983.5,-208 983.5,-187 955.5,-187\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"955.5,-187 983.5,-187 \"/>\n",
"<text text-anchor=\"start\" x=\"958.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"983.5,-187 999.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"999.5,-187 1015.5,-187 \"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"1015.5,-187 1031.5,-187 \"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"767.5,-166 767.5,-187 835.5,-187 835.5,-166 767.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"770.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"835.5,-166 835.5,-187 863.5,-187 863.5,-166 835.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"838.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"863.5,-166 863.5,-187 879.5,-187 879.5,-166 863.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"863.5,-166 863.5,-187 879.5,-187 879.5,-166 863.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"866.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"879.5,-166 879.5,-187 895.5,-187 895.5,-166 879.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"879.5,-166 879.5,-187 895.5,-187 895.5,-166 879.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"882.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"895.5,-166 895.5,-187 923.5,-187 923.5,-166 895.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"898.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"923.5,-166 923.5,-187 939.5,-187 939.5,-166 923.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"923.5,-166 923.5,-187 939.5,-187 939.5,-166 923.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"926.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"939.5,-166 939.5,-187 955.5,-187 955.5,-166 939.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"939.5,-166 939.5,-187 955.5,-187 955.5,-166 939.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"942.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"955.5,-166 955.5,-187 983.5,-187 983.5,-166 955.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"958.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"983.5,-166 983.5,-187 999.5,-187 999.5,-166 983.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"983.5,-166 983.5,-187 999.5,-187 999.5,-166 983.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"986.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"999.5,-166 999.5,-187 1015.5,-187 1015.5,-166 999.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"999.5,-166 999.5,-187 1015.5,-187 1015.5,-166 999.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1002.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"1015.5,-166 1015.5,-187 1031.5,-187 1031.5,-166 1015.5,-166\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"1015.5,-166 1015.5,-187 1031.5,-187 1031.5,-166 1015.5,-166\"/>\n",
"<text text-anchor=\"start\" x=\"1018.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"pink\" stroke=\"transparent\" points=\"97.5,-61 97.5,-80 205.5,-80 205.5,-61 97.5,-61\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) &amp; Inf(1)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"aut.new_univ_edge(3, [0,3], buddy.bddtrue, [0])\n",
"display(aut, aut.show_storage(\"vd\"))\n",
"aut.merge_edges()\n",
"display(aut, aut.show_storage(\"vd\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Above group `~0` and `~10` have been merged."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Named properties\n",
"\n",
"Finally automata can also been attached [arbitrarily named properties](https://spot.lrde.epita.fr/concepts.html#named-properties). The `show_storage()` method will only display the name of these properties, not their contents. Properties like `automaton-name` are used to store a name for the automaton, `product-states` is filled by `product()` and holds a vector of pairs representing the source states in the product's operands, etc."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: aub * gfa Pages: 1 -->\n",
"<svg width=\"212pt\" height=\"179pt\"\n",
" viewBox=\"0.00 0.00 211.59 178.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 174.62)\">\n",
"<title>aub * gfa</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-174.62 207.59,-174.62 207.59,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74.3\" y=\"-156.42\" font-family=\"Lato\" font-size=\"14.00\">aub * gfa</text>\n",
"<text text-anchor=\"start\" x=\"81.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"102.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"118.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"80.3\" y=\"-128.42\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"61.4\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"51.4\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">1,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-21.62C2.85,-21.62 16.69,-21.62 30.57,-21.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.76,-21.62 30.76,-24.77 34.26,-21.62 30.76,-21.62 30.76,-21.62 30.76,-21.62 34.26,-21.62 30.76,-18.47 37.76,-21.62 37.76,-21.62\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.26,-39.03C52.92,-48.7 55.3,-57.62 61.4,-57.62 65.87,-57.62 68.35,-52.81 68.82,-46.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.54,-39.03 71.95,-45.9 68.67,-42.52 68.8,-46.02 68.8,-46.02 68.8,-46.02 68.67,-42.52 65.65,-46.14 68.54,-39.03 68.54,-39.03\"/>\n",
"<text text-anchor=\"start\" x=\"43.4\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"180.19\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"170.19\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M84.92,-21.62C103.34,-21.62 129.53,-21.62 149.64,-21.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.74,-21.62 149.74,-24.77 153.24,-21.62 149.74,-21.62 149.74,-21.62 149.74,-21.62 153.24,-21.62 149.74,-18.47 156.74,-21.62 156.74,-21.62\"/>\n",
"<text text-anchor=\"start\" x=\"102.8\" y=\"-25.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M80.69,-10.93C87.41,-7.58 95.23,-4.31 102.8,-2.62 118.41,0.87 123.18,0.87 138.8,-2.62 144,-3.78 149.32,-5.69 154.32,-7.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.9,-10.93 153.22,-10.82 157.73,-9.45 154.56,-7.97 154.56,-7.97 154.56,-7.97 157.73,-9.45 155.89,-5.11 160.9,-10.93 160.9,-10.93\"/>\n",
"<text text-anchor=\"start\" x=\"104.8\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.98,-39.4C174.09,-48.93 175.83,-57.62 180.19,-57.62 183.4,-57.62 185.18,-52.93 185.56,-46.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"185.41,-39.4 188.7,-46.33 185.48,-42.9 185.55,-46.4 185.55,-46.4 185.55,-46.4 185.48,-42.9 182.4,-46.46 185.41,-39.4 185.41,-39.4\"/>\n",
"<text text-anchor=\"start\" x=\"174.69\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M171.79,-38.48C166.69,-55.99 169.49,-75.62 180.19,-75.62 189.48,-75.62 192.82,-60.86 190.21,-45.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.6,-38.48 193.23,-44.6 189.38,-41.89 190.16,-45.3 190.16,-45.3 190.16,-45.3 189.38,-41.89 187.09,-46.01 188.6,-38.48 188.6,-38.48\"/>\n",
"<text text-anchor=\"start\" x=\"176.69\" y=\"-94.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"172.19\" y=\"-79.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: aub * gfa Pages: 1 -->\n",
"<svg width=\"212pt\" height=\"179pt\"\n",
" viewBox=\"0.00 0.00 211.59 178.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 174.62)\">\n",
"<title>aub * gfa</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-174.62 207.59,-174.62 207.59,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"74.3\" y=\"-156.42\" font-family=\"Lato\" font-size=\"14.00\">aub * gfa</text>\n",
"<text text-anchor=\"start\" x=\"81.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"102.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"118.3\" y=\"-142.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"80.3\" y=\"-128.42\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"61.4\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"51.4\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">1,0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.17,-21.62C2.85,-21.62 16.69,-21.62 30.57,-21.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.76,-21.62 30.76,-24.77 34.26,-21.62 30.76,-21.62 30.76,-21.62 30.76,-21.62 34.26,-21.62 30.76,-18.47 37.76,-21.62 37.76,-21.62\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M54.26,-39.03C52.92,-48.7 55.3,-57.62 61.4,-57.62 65.87,-57.62 68.35,-52.81 68.82,-46.42\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"68.54,-39.03 71.95,-45.9 68.67,-42.52 68.8,-46.02 68.8,-46.02 68.8,-46.02 68.67,-42.52 65.65,-46.14 68.54,-39.03 68.54,-39.03\"/>\n",
"<text text-anchor=\"start\" x=\"43.4\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"180.19\" cy=\"-21.62\" rx=\"23.3\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"170.19\" y=\"-17.92\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M84.92,-21.62C103.34,-21.62 129.53,-21.62 149.64,-21.62\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"156.74,-21.62 149.74,-24.77 153.24,-21.62 149.74,-21.62 149.74,-21.62 149.74,-21.62 153.24,-21.62 149.74,-18.47 156.74,-21.62 156.74,-21.62\"/>\n",
"<text text-anchor=\"start\" x=\"102.8\" y=\"-25.42\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M80.69,-10.93C87.41,-7.58 95.23,-4.31 102.8,-2.62 118.41,0.87 123.18,0.87 138.8,-2.62 144,-3.78 149.32,-5.69 154.32,-7.86\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"160.9,-10.93 153.22,-10.82 157.73,-9.45 154.56,-7.97 154.56,-7.97 154.56,-7.97 157.73,-9.45 155.89,-5.11 160.9,-10.93 160.9,-10.93\"/>\n",
"<text text-anchor=\"start\" x=\"104.8\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M174.98,-39.4C174.09,-48.93 175.83,-57.62 180.19,-57.62 183.4,-57.62 185.18,-52.93 185.56,-46.67\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"185.41,-39.4 188.7,-46.33 185.48,-42.9 185.55,-46.4 185.55,-46.4 185.55,-46.4 185.48,-42.9 182.4,-46.46 185.41,-39.4 185.41,-39.4\"/>\n",
"<text text-anchor=\"start\" x=\"174.69\" y=\"-61.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M171.79,-38.48C166.69,-55.99 169.49,-75.62 180.19,-75.62 189.48,-75.62 192.82,-60.86 190.21,-45.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"188.6,-38.48 193.23,-44.6 189.38,-41.89 190.16,-45.3 190.16,-45.3 190.16,-45.3 189.38,-41.89 187.09,-46.01 188.6,-38.48 188.6,-38.48\"/>\n",
"<text text-anchor=\"start\" x=\"176.69\" y=\"-94.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"172.19\" y=\"-79.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdd05b7e0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"599pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 598.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 594.5,-372 594.5,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"24.5,-311 24.5,-332 92.5,-332 92.5,-311 24.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"24.5,-311 92.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"36.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92.5,-311 92.5,-332 108.5,-332 108.5,-311 92.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92.5,-311 108.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108.5,-311 108.5,-332 124.5,-332 124.5,-311 108.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108.5,-311 124.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"24.5,-290 24.5,-311 92.5,-311 92.5,-290 24.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"42.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92.5,-290 92.5,-311 108.5,-311 108.5,-290 92.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92.5,-290 92.5,-311 108.5,-311 108.5,-290 92.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"24.5,-269 24.5,-290 92.5,-290 92.5,-269 24.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92.5,-269 92.5,-290 108.5,-290 108.5,-269 92.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92.5,-269 92.5,-290 108.5,-290 108.5,-269 92.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"266.5,-343 266.5,-364 342.5,-364 342.5,-343 266.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"266.5,-343 342.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"283\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"342.5,-343 342.5,-364 394.5,-364 394.5,-343 342.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"342.5,-343 394.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"394.5,-343 394.5,-364 440.5,-364 440.5,-343 394.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"394.5,-343 440.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"412.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"440.5,-343 440.5,-364 492.5,-364 492.5,-343 440.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"440.5,-343 492.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"492.5,-343 492.5,-364 517.5,-364 517.5,-343 492.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"492.5,-343 517.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"517.5,-343 517.5,-364 551.5,-364 551.5,-343 517.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"517.5,-343 551.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"529.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-322 266.5,-343 342.5,-343 342.5,-322 266.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"287.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.5,-322 342.5,-343 394.5,-343 394.5,-322 342.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"345.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"394.5,-322 394.5,-343 440.5,-343 440.5,-322 394.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"397.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.5,-322 440.5,-343 492.5,-343 492.5,-322 440.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"443.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"492.5,-322 492.5,-343 517.5,-343 517.5,-322 492.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"497.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"517.5,-322 517.5,-343 551.5,-343 551.5,-322 517.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"530\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-301 266.5,-322 342.5,-322 342.5,-301 266.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"292.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.5,-301 342.5,-322 394.5,-322 394.5,-301 342.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"359\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"394.5,-301 394.5,-322 440.5,-322 440.5,-301 394.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"408\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.5,-301 440.5,-322 492.5,-322 492.5,-301 440.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"457\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"492.5,-301 492.5,-322 517.5,-322 517.5,-301 492.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"495.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"517.5,-301 517.5,-322 551.5,-322 551.5,-301 517.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"520.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-280 266.5,-301 342.5,-301 342.5,-280 266.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"293\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"342.5,-280 342.5,-301 394.5,-301 394.5,-280 342.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.5,-280 342.5,-301 394.5,-301 394.5,-280 342.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"394.5,-280 394.5,-301 440.5,-301 440.5,-280 394.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"394.5,-280 394.5,-301 440.5,-301 440.5,-280 394.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"412.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"440.5,-280 440.5,-301 492.5,-301 492.5,-280 440.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.5,-280 440.5,-301 492.5,-301 492.5,-280 440.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"492.5,-280 492.5,-301 517.5,-301 517.5,-280 492.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"492.5,-280 492.5,-301 517.5,-301 517.5,-280 492.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"517.5,-280 517.5,-301 551.5,-301 551.5,-280 517.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"517.5,-280 517.5,-301 551.5,-301 551.5,-280 517.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"529.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-259 266.5,-280 342.5,-280 342.5,-259 266.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"269.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"342.5,-259 342.5,-280 394.5,-280 394.5,-259 342.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.5,-259 342.5,-280 394.5,-280 394.5,-259 342.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"394.5,-259 394.5,-280 440.5,-280 440.5,-259 394.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"394.5,-259 394.5,-280 440.5,-280 440.5,-259 394.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"412.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.5,-259 440.5,-280 492.5,-280 492.5,-259 440.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"492.5,-259 492.5,-280 517.5,-280 517.5,-259 492.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"492.5,-259 492.5,-280 517.5,-280 517.5,-259 492.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"517.5,-259 517.5,-280 551.5,-280 551.5,-259 517.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"529.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"266.5,-238 266.5,-259 342.5,-259 342.5,-238 266.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"293.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"342.5,-238 342.5,-259 394.5,-259 394.5,-238 342.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"342.5,-238 342.5,-259 394.5,-259 394.5,-238 342.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"363.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"394.5,-238 394.5,-259 440.5,-259 440.5,-238 394.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"394.5,-238 394.5,-259 440.5,-259 440.5,-238 394.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"412.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"440.5,-238 440.5,-259 492.5,-259 492.5,-238 440.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"440.5,-238 440.5,-259 492.5,-259 492.5,-238 440.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"461.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"492.5,-238 492.5,-259 517.5,-259 517.5,-238 492.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"492.5,-238 492.5,-259 517.5,-259 517.5,-238 492.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"500\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"517.5,-238 517.5,-259 551.5,-259 551.5,-238 517.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"517.5,-238 517.5,-259 551.5,-259 551.5,-238 517.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"529.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 141.5,-137 141.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Inf(0)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"181.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"366.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"<!-- namedprops -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>namedprops</title>\n",
"<text text-anchor=\"middle\" x=\"516.5\" y=\"-110.3\" font-family=\"Times,serif\" font-size=\"14.00\">named properties:</text>\n",
"<text text-anchor=\"middle\" x=\"516.5\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">automaton&#45;name</text>\n",
"<text text-anchor=\"middle\" x=\"516.5\" y=\"-80.3\" font-family=\"Times,serif\" font-size=\"14.00\">product&#45;states</text>\n",
"</g>\n",
"<!-- namedprops&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"aub = spot.translate('a U b')\n",
"gfa = spot.translate('GFa')\n",
"prod = spot.product(aub, gfa)\n",
"prod.set_name(\"aub * gfa\")\n",
"display(prod, prod.show_storage())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These properties also need to be updated by algorithms. They can be reset with:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"190pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 190.00 164.95\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.95)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.95 186,-160.95 186,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"70.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"91.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"69.5\" y=\"-128.75\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-21.95\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.25\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-21.95C2.79,-21.95 17.15,-21.95 30.63,-21.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.95 30.94,-25.1 34.44,-21.95 30.94,-21.95 30.94,-21.95 30.94,-21.95 34.44,-21.95 30.94,-18.8 37.94,-21.95 37.94,-21.95\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-38.99C48.32,-48.81 50.45,-57.95 56,-57.95 60.17,-57.95 62.4,-52.81 62.71,-46.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-38.99 65.85,-45.84 62.54,-42.49 62.71,-45.98 62.71,-45.98 62.71,-45.98 62.54,-42.49 59.56,-46.13 62.38,-38.99 62.38,-38.99\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-61.75\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"164\" cy=\"-21.95\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"164\" y=\"-18.25\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-21.95C91.47,-21.95 118.74,-21.95 138.49,-21.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.66,-21.95 138.66,-25.1 142.16,-21.95 138.66,-21.95 138.66,-21.95 138.66,-21.95 142.16,-21.95 138.66,-18.8 145.66,-21.95 145.66,-21.95\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.75\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.31,-12.09C77.4,-8.46 84.76,-4.79 92,-2.95 107.51,0.98 112.49,0.98 128,-2.95 132.86,-4.19 137.78,-6.25 142.33,-8.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"148.69,-12.09 141.04,-11.45 145.63,-10.39 142.56,-8.7 142.56,-8.7 142.56,-8.7 145.63,-10.39 144.09,-5.94 148.69,-12.09 148.69,-12.09\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-6.75\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.18,-39.36C158.28,-49.04 159.89,-57.95 164,-57.95 167.02,-57.95 168.69,-53.15 169.01,-46.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.82,-39.36 172.15,-46.28 168.91,-42.86 169,-46.36 169,-46.36 169,-46.36 168.91,-42.86 165.85,-46.44 168.82,-39.36 168.82,-39.36\"/>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-61.75\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.33,-38.26C151.37,-55.91 153.93,-75.95 164,-75.95 172.73,-75.95 175.82,-60.88 173.25,-45.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.67,-38.26 176.26,-44.41 172.43,-41.68 173.19,-45.1 173.19,-45.1 173.19,-45.1 172.43,-41.68 170.11,-45.78 171.67,-38.26 171.67,-38.26\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-94.75\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"156\" y=\"-79.75\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"190pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 190.00 164.95\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 160.95)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-160.95 186,-160.95 186,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"70.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"91.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"107.5\" y=\"-142.75\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"69.5\" y=\"-128.75\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-21.95\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.25\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- I&#45;&gt;0 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-21.95C2.79,-21.95 17.15,-21.95 30.63,-21.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.95 30.94,-25.1 34.44,-21.95 30.94,-21.95 30.94,-21.95 30.94,-21.95 34.44,-21.95 30.94,-18.8 37.94,-21.95 37.94,-21.95\"/>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M49.62,-38.99C48.32,-48.81 50.45,-57.95 56,-57.95 60.17,-57.95 62.4,-52.81 62.71,-46.1\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-38.99 65.85,-45.84 62.54,-42.49 62.71,-45.98 62.71,-45.98 62.71,-45.98 62.54,-42.49 59.56,-46.13 62.38,-38.99 62.38,-38.99\"/>\n",
"<text text-anchor=\"start\" x=\"38\" y=\"-61.75\" font-family=\"Lato\" font-size=\"14.00\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"164\" cy=\"-21.95\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"164\" y=\"-18.25\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.03,-21.95C91.47,-21.95 118.74,-21.95 138.49,-21.95\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"145.66,-21.95 138.66,-25.1 142.16,-21.95 138.66,-21.95 138.66,-21.95 138.66,-21.95 142.16,-21.95 138.66,-18.8 145.66,-21.95 145.66,-21.95\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.75\" font-family=\"Lato\" font-size=\"14.00\">!a &amp; b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>0&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M71.31,-12.09C77.4,-8.46 84.76,-4.79 92,-2.95 107.51,0.98 112.49,0.98 128,-2.95 132.86,-4.19 137.78,-6.25 142.33,-8.57\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"148.69,-12.09 141.04,-11.45 145.63,-10.39 142.56,-8.7 142.56,-8.7 142.56,-8.7 145.63,-10.39 144.09,-5.94 148.69,-12.09 148.69,-12.09\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-6.75\" font-family=\"Lato\" font-size=\"14.00\">a &amp; b</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M159.18,-39.36C158.28,-49.04 159.89,-57.95 164,-57.95 167.02,-57.95 168.69,-53.15 169.01,-46.76\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"168.82,-39.36 172.15,-46.28 168.91,-42.86 169,-46.36 169,-46.36 169,-46.36 168.91,-42.86 165.85,-46.44 168.82,-39.36 168.82,-39.36\"/>\n",
"<text text-anchor=\"start\" x=\"158.5\" y=\"-61.75\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M156.33,-38.26C151.37,-55.91 153.93,-75.95 164,-75.95 172.73,-75.95 175.82,-60.88 173.25,-45.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"171.67,-38.26 176.26,-44.41 172.43,-41.68 173.19,-45.1 173.19,-45.1 173.19,-45.1 172.43,-41.68 170.11,-45.78 171.67,-38.26 171.67,-38.26\"/>\n",
"<text text-anchor=\"start\" x=\"160.5\" y=\"-94.75\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"156\" y=\"-79.75\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f1fdd05b7e0> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Title: g Pages: 1 -->\n",
"<svg width=\"460pt\" height=\"376pt\"\n",
" viewBox=\"0.00 0.00 460.00 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 456,-372 456,4 -4,4\"/>\n",
"<!-- states -->\n",
"<g id=\"node1\" class=\"node\">\n",
"<title>states</title>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"24.5,-311 24.5,-332 92.5,-332 92.5,-311 24.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"24.5,-311 92.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"36.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"92.5,-311 92.5,-332 108.5,-332 108.5,-311 92.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"92.5,-311 108.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"108.5,-311 108.5,-332 124.5,-332 124.5,-311 108.5,-311\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"108.5,-311 124.5,-311 \"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"24.5,-290 24.5,-311 92.5,-311 92.5,-290 24.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"42.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92.5,-290 92.5,-311 108.5,-311 108.5,-290 92.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92.5,-290 92.5,-311 108.5,-311 108.5,-290 92.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-290 108.5,-311 124.5,-311 124.5,-290 108.5,-290\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"24.5,-269 24.5,-290 92.5,-290 92.5,-269 24.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"27.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"92.5,-269 92.5,-290 108.5,-290 108.5,-269 92.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"92.5,-269 92.5,-290 108.5,-290 108.5,-269 92.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"108.5,-269 108.5,-290 124.5,-290 124.5,-269 108.5,-269\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>edges</title>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"159.5,-343 159.5,-364 235.5,-364 235.5,-343 159.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"159.5,-343 235.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-343 235.5,-364 287.5,-364 287.5,-343 235.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"235.5,-343 287.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-343 287.5,-364 333.5,-364 333.5,-343 287.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"287.5,-343 333.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"305.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"333.5,-343 333.5,-364 385.5,-364 385.5,-343 333.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"333.5,-343 385.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"385.5,-343 385.5,-364 410.5,-364 410.5,-343 385.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"385.5,-343 410.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"393\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"410.5,-343 410.5,-364 444.5,-364 444.5,-343 410.5,-343\"/>\n",
"<polyline fill=\"none\" stroke=\"black\" points=\"410.5,-343 444.5,-343 \"/>\n",
"<text text-anchor=\"start\" x=\"422.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.5,-322 159.5,-343 235.5,-343 235.5,-322 159.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"180.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-322 235.5,-343 287.5,-343 287.5,-322 235.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"238.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-322 287.5,-343 333.5,-343 333.5,-322 287.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"290.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-322 333.5,-343 385.5,-343 385.5,-322 333.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"336.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a &amp; !b</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385.5,-322 385.5,-343 410.5,-343 410.5,-322 385.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"390.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"410.5,-322 410.5,-343 444.5,-343 444.5,-322 410.5,-322\"/>\n",
"<text text-anchor=\"start\" x=\"423\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.5,-301 159.5,-322 235.5,-322 235.5,-301 159.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-301 235.5,-322 287.5,-322 287.5,-301 235.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"252\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-301 287.5,-322 333.5,-322 333.5,-301 287.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"301\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-301 333.5,-322 385.5,-322 385.5,-301 333.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"350\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385.5,-301 385.5,-322 410.5,-322 410.5,-301 385.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"388.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"410.5,-301 410.5,-322 444.5,-322 444.5,-301 410.5,-301\"/>\n",
"<text text-anchor=\"start\" x=\"413.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.5,-280 159.5,-301 235.5,-301 235.5,-280 159.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"186\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-280 235.5,-301 287.5,-301 287.5,-280 235.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-280 235.5,-301 287.5,-301 287.5,-280 235.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-280 287.5,-301 333.5,-301 333.5,-280 287.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-280 287.5,-301 333.5,-301 333.5,-280 287.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"305.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333.5,-280 333.5,-301 385.5,-301 385.5,-280 333.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-280 333.5,-301 385.5,-301 385.5,-280 333.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385.5,-280 385.5,-301 410.5,-301 410.5,-280 385.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385.5,-280 385.5,-301 410.5,-301 410.5,-280 385.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"393\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"410.5,-280 410.5,-301 444.5,-301 444.5,-280 410.5,-280\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"410.5,-280 410.5,-301 444.5,-301 444.5,-280 410.5,-280\"/>\n",
"<text text-anchor=\"start\" x=\"422.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.5,-259 159.5,-280 235.5,-280 235.5,-259 159.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"162.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-259 235.5,-280 287.5,-280 287.5,-259 235.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-259 235.5,-280 287.5,-280 287.5,-259 235.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"287.5,-259 287.5,-280 333.5,-280 333.5,-259 287.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-259 287.5,-280 333.5,-280 333.5,-259 287.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"305.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-259 333.5,-280 385.5,-280 385.5,-259 333.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"cyan\" stroke=\"transparent\" points=\"385.5,-259 385.5,-280 410.5,-280 410.5,-259 385.5,-259\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385.5,-259 385.5,-280 410.5,-280 410.5,-259 385.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"393\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"410.5,-259 410.5,-280 444.5,-280 444.5,-259 410.5,-259\"/>\n",
"<text text-anchor=\"start\" x=\"422.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"159.5,-238 159.5,-259 235.5,-259 235.5,-238 159.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"186.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-238 235.5,-259 287.5,-259 287.5,-238 235.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-238 235.5,-259 287.5,-259 287.5,-238 235.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"256.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"287.5,-238 287.5,-259 333.5,-259 333.5,-238 287.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"287.5,-238 287.5,-259 333.5,-259 333.5,-238 287.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"305.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"333.5,-238 333.5,-259 385.5,-259 385.5,-238 333.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"333.5,-238 333.5,-259 385.5,-259 385.5,-238 333.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"354.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"385.5,-238 385.5,-259 410.5,-259 410.5,-238 385.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"385.5,-238 385.5,-259 410.5,-259 410.5,-238 385.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"393\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"410.5,-238 410.5,-259 444.5,-259 444.5,-238 410.5,-238\"/>\n",
"<polygon fill=\"none\" stroke=\"black\" points=\"410.5,-238 410.5,-259 444.5,-259 444.5,-238 410.5,-238\"/>\n",
"<text text-anchor=\"start\" x=\"422.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>meta</title>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n",
"<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-118 97.5,-137 141.5,-137 141.5,-118 97.5,-118\"/>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Inf(0)</text>\n",
"<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n",
"<text text-anchor=\"start\" x=\"99.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>props</title>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n",
"<text text-anchor=\"start\" x=\"370.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>\n"
],
"text/plain": [
"<spot.jupyter.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prod.release_named_properties()\n",
"display(prod, prod.show_storage())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}