spot/tests/python/twagraph-internals.ipynb
Alexandre Duret-Lutz eb7b68ad58 use reduce_parity in translator and posprocessor
* spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Here.
* tests/core/genltl.test, tests/core/parity2.test,
tests/core/sccsimpl.test, tests/python/twagraph-internals.ipynb:
Adjust test cases.
* NEWS: Mention it.
2019-06-12 22:05:04 +02:00

5810 lines
532 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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"198pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 197.50 221.60\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 217.597)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-217.597 193.5,-217.597 193.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"42.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"67.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"83.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"126.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"142.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"65.75\" y=\"-185.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-63.597\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.897\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-63.597C4.178,-63.597 17.9448,-63.597 30.9241,-63.597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-63.597 30.9808,-66.7471 34.4807,-63.597 30.9807,-63.5971 30.9807,-63.5971 30.9807,-63.5971 34.4807,-63.597 30.9807,-60.4471 37.9807,-63.597 37.9807,-63.597\"/>\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=\"#000000\" d=\"M52.7643,-81.3787C52.2144,-90.9119 53.293,-99.597 56,-99.597 57.988,-99.597 59.0977,-94.913 59.3292,-88.6491\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"59.2357,-81.3787 62.4756,-88.3376 59.2808,-84.8784 59.3258,-88.3781 59.3258,-88.3781 59.3258,-88.3781 59.2808,-84.8784 56.1761,-88.4187 59.2357,-81.3787 59.2357,-81.3787\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-103.397\" 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=\"#000000\" d=\"M50.9906,-81.1741C47.5451,-102.315 49.2148,-129.597 56,-129.597 62.043,-129.597 64.0285,-107.9565 61.9564,-88.2876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.0094,-81.1741 65.0556,-87.6972 61.4713,-84.6435 61.9332,-88.1129 61.9332,-88.1129 61.9332,-88.1129 61.4713,-84.6435 58.8107,-88.5286 61.0094,-81.1741 61.0094,-81.1741\"/>\n",
"<text text-anchor=\"start\" x=\"39\" y=\"-148.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"48\" y=\"-133.397\" 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=\"#000000\" cx=\"169\" cy=\"-63.597\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"169\" y=\"-59.897\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M63.0163,-80.3922C68.8835,-92.0457 78.4814,-106.6723 92,-113.597 108.2183,-121.9045 116.7817,-121.9045 133,-113.597 144.1951,-107.8624 152.7014,-96.8461 158.6268,-86.6103\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.9837,-80.3922 161.4302,-88.0483 160.321,-83.472 158.6583,-86.5519 158.6583,-86.5519 158.6583,-86.5519 160.321,-83.472 155.8865,-85.0555 161.9837,-80.3922 161.9837,-80.3922\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-123.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M74.1554,-63.597C93.0184,-63.597 122.6779,-63.597 143.8045,-63.597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"150.8897,-63.597 143.8897,-66.7471 147.3897,-63.597 143.8897,-63.5971 143.8897,-63.5971 143.8897,-63.5971 147.3897,-63.597 143.8896,-60.4471 150.8897,-63.597 150.8897,-63.597\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-82.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-67.397\" 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=\"#000000\" d=\"M153.8943,-53.5269C147.6932,-49.9651 140.2713,-46.3981 133,-44.597 115.3123,-40.2158 109.6877,-40.2158 92,-44.597 87.1146,-45.8071 82.1612,-47.8144 77.5558,-50.0817\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.1057,-53.5269 75.7959,-47.4504 74.1929,-51.8779 77.2801,-50.2289 77.2801,-50.2289 77.2801,-50.2289 74.1929,-51.8779 78.7642,-53.0073 71.1057,-53.5269 71.1057,-53.5269\"/>\n",
"<text text-anchor=\"start\" x=\"95.5\" y=\"-48.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M163.3945,-46.4596C157.9627,-32.9433 148.2731,-15.015 133,-6.597 117.0413,2.199 107.9587,2.199 92,-6.597 79.1133,-13.6997 70.2016,-27.5729 64.4686,-39.8538\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.6055,-46.4596 61.499,-38.7842 62.9974,-43.2482 64.3893,-40.0368 64.3893,-40.0368 64.3893,-40.0368 62.9974,-43.2482 67.2795,-41.2895 61.6055,-46.4596 61.6055,-46.4596\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-25.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"104.5\" y=\"-10.397\" 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=\"#000000\" d=\"M164.0012,-81.0069C163.0681,-90.6849 164.7344,-99.597 169,-99.597 172.1326,-99.597 173.8633,-94.7906 174.1921,-88.4042\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.9988,-81.0069 177.3307,-87.9221 174.0903,-84.5057 174.1818,-88.0045 174.1818,-88.0045 174.1818,-88.0045 174.0903,-84.5057 171.0329,-88.0868 173.9988,-81.0069 173.9988,-81.0069\"/>\n",
"<text text-anchor=\"start\" x=\"148.5\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-103.397\" 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=\"#000000\" d=\"M161.4634,-80.1928C155.769,-101.4602 158.2813,-129.597 169,-129.597 178.5883,-129.597 181.6098,-107.0823 178.0645,-87.1101\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"176.5366,-80.1928 181.1223,-86.3487 177.2915,-83.6105 178.0464,-87.0281 178.0464,-87.0281 178.0464,-87.0281 177.2915,-83.6105 174.9706,-87.7075 176.5366,-80.1928 176.5366,-80.1928\"/>\n",
"<text text-anchor=\"start\" x=\"150.5\" y=\"-148.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"161\" y=\"-133.397\" 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 0x7f2950267b40> >"
]
},
"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 existantial branching, hence deterministic for our purpose), and this property implies `unambiguous` and `semi_deterministic`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 580.00 376.00\" width=\"580pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 576,-372 576,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"46.5,-311 46.5,-332 101.5,-332 101.5,-311 46.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"46.5,-311 101.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"58.5\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"101.5,-311 114.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"114.5,-311 127.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"none\" points=\"46.5,-290 46.5,-311 101.5,-311 101.5,-290 46.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"61.5\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-296.8\">5</text>\n",
"<polygon fill=\"none\" points=\"46.5,-269 46.5,-290 101.5,-290 101.5,-269 46.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"49.5\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-275.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-275.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"161.5,-343 161.5,-364 222.5,-364 222.5,-343 161.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"161.5,-343 222.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"176.5\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"222.5,-343 222.5,-364 265.5,-364 265.5,-343 222.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"222.5,-343 265.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"240.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"265.5,-343 265.5,-364 303.5,-364 303.5,-343 265.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"265.5,-343 303.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"303.5,-343 303.5,-364 346.5,-364 346.5,-343 303.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"303.5,-343 346.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"346.5,-343 346.5,-364 393.5,-364 393.5,-343 346.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"346.5,-343 393.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"393.5,-343 393.5,-364 431.5,-364 431.5,-343 393.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"393.5,-343 431.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"431.5,-343 431.5,-364 474.5,-364 474.5,-343 431.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"431.5,-343 474.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"474.5,-343 474.5,-364 521.5,-364 521.5,-343 474.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"474.5,-343 521.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494.5\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"521.5,-343 521.5,-364 564.5,-364 564.5,-343 521.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"521.5,-343 564.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"539.5\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"none\" points=\"161.5,-322 161.5,-343 222.5,-343 222.5,-322 161.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"178.5\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"222.5,-322 222.5,-343 265.5,-343 265.5,-322 222.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"225.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"265.5,-322 265.5,-343 303.5,-343 303.5,-322 265.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"268.5\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"303.5,-322 303.5,-343 346.5,-343 346.5,-322 303.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"346.5,-322 346.5,-343 393.5,-343 393.5,-322 346.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"349.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"393.5,-322 393.5,-343 431.5,-343 431.5,-322 393.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396.5\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"431.5,-322 431.5,-343 474.5,-343 474.5,-322 431.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"474.5,-322 474.5,-343 521.5,-343 521.5,-322 474.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"521.5,-322 521.5,-343 564.5,-343 564.5,-322 521.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"524.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"161.5,-301 161.5,-322 222.5,-322 222.5,-301 161.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"182.5\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"222.5,-301 222.5,-322 265.5,-322 265.5,-301 222.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"265.5,-301 265.5,-322 303.5,-322 303.5,-301 265.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"274\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"303.5,-301 303.5,-322 346.5,-322 346.5,-301 303.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"346.5,-301 346.5,-322 393.5,-322 393.5,-301 346.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"359.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"393.5,-301 393.5,-322 431.5,-322 431.5,-301 393.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"431.5,-301 431.5,-322 474.5,-322 474.5,-301 431.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"442.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"474.5,-301 474.5,-322 521.5,-322 521.5,-301 474.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"487.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"521.5,-301 521.5,-322 564.5,-322 564.5,-301 521.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"161.5,-280 161.5,-301 222.5,-301 222.5,-280 161.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"222.5,-280 222.5,-301 265.5,-301 265.5,-280 222.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-280 222.5,-301 265.5,-301 265.5,-280 222.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"240.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"265.5,-280 265.5,-301 303.5,-301 303.5,-280 265.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"265.5,-280 265.5,-301 303.5,-301 303.5,-280 265.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"474.5,-280 474.5,-301 521.5,-301 521.5,-280 474.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"474.5,-280 474.5,-301 521.5,-301 521.5,-280 474.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"521.5,-280 521.5,-301 564.5,-301 564.5,-280 521.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"521.5,-280 521.5,-301 564.5,-301 564.5,-280 521.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"539.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"161.5,-259 161.5,-280 222.5,-280 222.5,-259 161.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"164.5\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"222.5,-259 222.5,-280 265.5,-280 265.5,-259 222.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-259 222.5,-280 265.5,-280 265.5,-259 222.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"240.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"265.5,-259 265.5,-280 303.5,-280 303.5,-259 265.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"265.5,-259 265.5,-280 303.5,-280 303.5,-259 265.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"none\" points=\"346.5,-259 346.5,-280 393.5,-280 393.5,-259 346.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-265.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"474.5,-259 474.5,-280 521.5,-280 521.5,-259 474.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"474.5,-259 474.5,-280 521.5,-280 521.5,-259 474.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"none\" points=\"521.5,-259 521.5,-280 564.5,-280 564.5,-259 521.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"539.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"161.5,-238 161.5,-259 222.5,-259 222.5,-238 161.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"222.5,-238 222.5,-259 265.5,-259 265.5,-238 222.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-238 222.5,-259 265.5,-259 265.5,-238 222.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"240.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"265.5,-238 265.5,-259 303.5,-259 303.5,-238 265.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"265.5,-238 265.5,-259 303.5,-259 303.5,-238 265.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"474.5,-238 474.5,-259 521.5,-259 521.5,-238 474.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"474.5,-238 474.5,-259 521.5,-259 521.5,-238 474.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"521.5,-238 521.5,-259 564.5,-259 564.5,-238 521.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"521.5,-238 521.5,-259 564.5,-259 564.5,-238 521.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"539.5\" y=\"-244.8\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffff00\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-142.8\">no</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-66.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-47.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-28.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416.5\" y=\"-9.8\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"279pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 278.50 221.60\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 217.597)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-217.597 274.5,-217.597 274.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"108.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"124.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"167.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"183.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"106.25\" y=\"-185.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-63.597\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.897\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-63.597C4.178,-63.597 17.9448,-63.597 30.9241,-63.597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-63.597 30.9808,-66.7471 34.4807,-63.597 30.9807,-63.5971 30.9807,-63.5971 30.9807,-63.5971 34.4807,-63.597 30.9807,-60.4471 37.9807,-63.597 37.9807,-63.597\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-63.597\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-59.897\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-63.597C85.4352,-63.597 99.6622,-63.597 111.7609,-63.597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-63.597 111.9716,-66.7471 115.4716,-63.597 111.9716,-63.5971 111.9716,-63.5971 111.9716,-63.5971 115.4716,-63.597 111.9716,-60.4471 118.9716,-63.597 118.9716,-63.597\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-67.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M133.4047,-81.3787C132.7938,-90.9119 133.9922,-99.597 137,-99.597 139.2089,-99.597 140.4419,-94.913 140.6991,-88.6491\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"140.5953,-81.3787 143.845,-88.3329 140.6453,-84.8783 140.6954,-88.378 140.6954,-88.378 140.6954,-88.378 140.6453,-84.8783 137.5457,-88.423 140.5953,-81.3787 140.5953,-81.3787\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-103.397\" 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=\"#000000\" d=\"M131.494,-80.846C127.5865,-102.0315 129.4219,-129.597 137,-129.597 143.7493,-129.597 145.9433,-107.7317 143.582,-87.982\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.506,-80.846 146.6646,-87.298 143.0279,-84.3069 143.5498,-87.7677 143.5498,-87.7677 143.5498,-87.7677 143.0279,-84.3069 140.435,-88.2375 142.506,-80.846 142.506,-80.846\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-148.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-133.397\" 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=\"#000000\" cx=\"250\" cy=\"-63.597\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"250\" y=\"-59.897\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M144.0163,-80.3922C149.8835,-92.0457 159.4814,-106.6723 173,-113.597 189.2183,-121.9045 197.7817,-121.9045 214,-113.597 225.1951,-107.8624 233.7014,-96.8461 239.6268,-86.6103\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"242.9837,-80.3922 242.4302,-88.0483 241.321,-83.472 239.6583,-86.5519 239.6583,-86.5519 239.6583,-86.5519 241.321,-83.472 236.8865,-85.0555 242.9837,-80.3922 242.9837,-80.3922\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-123.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M155.1554,-63.597C174.0184,-63.597 203.6779,-63.597 224.8045,-63.597\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"231.8897,-63.597 224.8897,-66.7471 228.3897,-63.597 224.8897,-63.5971 224.8897,-63.5971 224.8897,-63.5971 228.3897,-63.597 224.8896,-60.4471 231.8897,-63.597 231.8897,-63.597\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-82.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-67.397\" 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=\"#000000\" d=\"M234.8943,-53.5269C228.6932,-49.9651 221.2713,-46.3981 214,-44.597 196.3123,-40.2158 190.6877,-40.2158 173,-44.597 168.1146,-45.8071 163.1612,-47.8144 158.5558,-50.0817\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.1057,-53.5269 156.7959,-47.4504 155.1929,-51.8779 158.2801,-50.2289 158.2801,-50.2289 158.2801,-50.2289 155.1929,-51.8779 159.7642,-53.0073 152.1057,-53.5269 152.1057,-53.5269\"/>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-48.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M244.3945,-46.4596C238.9627,-32.9433 229.2731,-15.015 214,-6.597 198.0413,2.199 188.9587,2.199 173,-6.597 160.1133,-13.6997 151.2016,-27.5729 145.4686,-39.8538\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.6055,-46.4596 142.499,-38.7842 143.9974,-43.2482 145.3893,-40.0368 145.3893,-40.0368 145.3893,-40.0368 143.9974,-43.2482 148.2795,-41.2895 142.6055,-46.4596 142.6055,-46.4596\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-25.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-10.397\" 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=\"#000000\" d=\"M245.0012,-81.0069C244.0681,-90.6849 245.7344,-99.597 250,-99.597 253.1326,-99.597 254.8633,-94.7906 255.1921,-88.4042\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"254.9988,-81.0069 258.3307,-87.9221 255.0903,-84.5057 255.1818,-88.0045 255.1818,-88.0045 255.1818,-88.0045 255.0903,-84.5057 252.0329,-88.0868 254.9988,-81.0069 254.9988,-81.0069\"/>\n",
"<text text-anchor=\"start\" x=\"229.5\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-103.397\" 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=\"#000000\" d=\"M242.4634,-80.1928C236.769,-101.4602 239.2813,-129.597 250,-129.597 259.5883,-129.597 262.6098,-107.0823 259.0645,-87.1101\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.5366,-80.1928 262.1223,-86.3487 258.2915,-83.6105 259.0464,-87.0281 259.0464,-87.0281 259.0464,-87.0281 258.2915,-83.6105 255.9706,-87.7075 257.5366,-80.1928 257.5366,-80.1928\"/>\n",
"<text text-anchor=\"start\" x=\"231.5\" y=\"-148.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-133.397\" 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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 575.50 142.00\" width=\"576pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 571.5,-138 571.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">9</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 279,-130 279,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 279,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"279,-109 279,-130 322,-130 322,-109 279,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"279,-109 322,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"322,-109 369,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"369,-109 407,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"407,-109 450,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"450,-109 450,-130 497,-130 497,-109 450,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"450,-109 497,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"497,-109 497,-130 540,-130 540,-109 497,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"497,-109 540,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"540,-109 540,-130 560,-130 560,-109 540,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"540,-109 560,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-115.8\">9</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 279,-109 279,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"282\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"410\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"450,-88 450,-109 497,-109 497,-88 450,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"497,-88 497,-109 540,-109 540,-88 497,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"540,-88 540,-109 560,-109 560,-88 540,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 279,-88 279,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"249.5\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"335\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"450,-67 450,-88 497,-88 497,-67 450,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"497,-67 497,-88 540,-88 540,-67 497,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"508\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"540,-67 540,-88 560,-88 560,-67 540,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"543\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"none\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-31.8\">8</text>\n",
"<polygon fill=\"none\" points=\"497,-25 497,-46 540,-46 540,-25 497,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"540,-25 540,-46 560,-46 560,-25 540,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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",
" print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(ed), src=ed.src, 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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"279pt\" height=\"249pt\"\n",
" viewBox=\"0.00 0.00 278.50 249.40\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 245.4001)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-245.4001 274.5,-245.4001 274.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"108.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"124.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"167.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"183.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"106.25\" y=\"-213.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-43.4001C4.178,-43.4001 17.9448,-43.4001 30.9241,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43.4001 30.9808,-46.5502 34.4807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 34.4807,-43.4002 30.9807,-40.2502 37.9807,-43.4001 37.9807,-43.4001\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-43.4001C85.4352,-43.4001 99.6622,-43.4001 111.7609,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-43.4001 111.9716,-46.5502 115.4716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 115.4716,-43.4002 111.9716,-40.2502 118.9716,-43.4001 118.9716,-43.4001\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M134.5879,-61.5528C134.2168,-70.9392 135.0208,-79.4001 137,-79.4001 138.4535,-79.4001 139.2731,-74.8371 139.4591,-68.6955\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"139.4121,-61.5528 142.6082,-68.5319 139.4352,-65.0527 139.4582,-68.5527 139.4582,-68.5527 139.4582,-68.5527 139.4352,-65.0527 136.3083,-68.5734 139.4121,-61.5528 139.4121,-61.5528\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" 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=\"#000000\" d=\"M133.25,-61.3064C130.75,-82.4001 132,-109.4001 137,-109.4001 141.4531,-109.4001 142.9317,-87.9834 141.4357,-68.3967\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"140.75,-61.3064 144.5593,-67.9706 141.087,-64.7901 141.4239,-68.2739 141.4239,-68.2739 141.4239,-68.2739 141.087,-64.7901 138.2886,-68.5771 140.75,-61.3064 140.75,-61.3064\"/>\n",
"<text text-anchor=\"start\" x=\"120\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.2001\" 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=\"#000000\" d=\"M132.4297,-61.1716C127.3516,-91.8689 128.875,-139.4001 137,-139.4001 144.522,-139.4001 146.3859,-98.6625 142.5919,-68.2584\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.5703,-61.1716 145.6869,-67.6505 142.0697,-64.6358 142.5691,-68.1 142.5691,-68.1 142.5691,-68.1 142.0697,-64.6358 139.4514,-68.5495 141.5703,-61.1716 141.5703,-61.1716\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-158.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-143.2001\" 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=\"#000000\" cx=\"250\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"250\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-65.2001\" 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=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-9.2001\" 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=\"#000000\" d=\"M245.0012,-60.81C244.0681,-70.488 245.7344,-79.4001 250,-79.4001 253.1326,-79.4001 254.8633,-74.5937 255.1921,-68.2074\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"254.9988,-60.81 258.3307,-67.7253 255.0903,-64.3088 255.1818,-67.8076 255.1818,-67.8076 255.1818,-67.8076 255.0903,-64.3088 252.0329,-67.89 254.9988,-60.81 254.9988,-60.81\"/>\n",
"<text text-anchor=\"start\" x=\"229.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" 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=\"#000000\" d=\"M242.4634,-59.996C236.769,-81.2634 239.2813,-109.4001 250,-109.4001 259.5883,-109.4001 262.6098,-86.8855 259.0645,-66.9133\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.5366,-59.996 262.1223,-66.1518 258.2915,-63.4136 259.0464,-66.8312 259.0464,-66.8312 259.0464,-66.8312 258.2915,-63.4136 255.9706,-67.5107 257.5366,-59.996 257.5366,-59.996\"/>\n",
"<text text-anchor=\"start\" x=\"231.5\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-113.2001\" 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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 575.50 142.00\" width=\"576pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 571.5,-138 571.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">9</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 279,-130 279,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 279,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"279,-109 279,-130 322,-130 322,-109 279,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"279,-109 322,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"322,-109 369,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"369,-109 407,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"407,-109 450,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"450,-109 450,-130 497,-130 497,-109 450,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"450,-109 497,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"497,-109 497,-130 540,-130 540,-109 497,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"497,-109 540,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"540,-109 540,-130 560,-130 560,-109 540,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"540,-109 560,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-115.8\">9</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 279,-109 279,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"282\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"410\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"450,-88 450,-109 497,-109 497,-88 450,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"497,-88 497,-109 540,-109 540,-88 497,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"540,-88 540,-109 560,-109 560,-88 540,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 279,-88 279,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"249.5\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"335\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"450,-67 450,-88 497,-88 497,-67 450,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"497,-67 497,-88 540,-88 540,-67 497,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"508\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"540,-67 540,-88 560,-88 560,-67 540,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"543\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"none\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-31.8\">8</text>\n",
"<polygon fill=\"none\" points=\"497,-25 497,-46 540,-46 540,-25 497,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"540,-25 540,-46 560,-46 560,-25 540,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"515\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"279pt\" height=\"201pt\"\n",
" viewBox=\"0.00 0.00 278.50 201.40\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 197.4001)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-197.4001 274.5,-197.4001 274.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"108.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"124.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"167.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"183.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"106.25\" y=\"-165.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-43.4001C4.178,-43.4001 17.9448,-43.4001 30.9241,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43.4001 30.9808,-46.5502 34.4807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 34.4807,-43.4002 30.9807,-40.2502 37.9807,-43.4001 37.9807,-43.4001\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-43.4001C85.4352,-43.4001 99.6622,-43.4001 111.7609,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-43.4001 111.9716,-46.5502 115.4716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 115.4716,-43.4002 111.9716,-40.2502 118.9716,-43.4001 118.9716,-43.4001\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M133.4047,-61.1818C132.7938,-70.7151 133.9922,-79.4001 137,-79.4001 139.2089,-79.4001 140.4419,-74.7162 140.6991,-68.4522\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"140.5953,-61.1818 143.845,-68.1361 140.6453,-64.6815 140.6954,-68.1811 140.6954,-68.1811 140.6954,-68.1811 140.6453,-64.6815 137.5457,-68.2262 140.5953,-61.1818 140.5953,-61.1818\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" 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=\"#000000\" d=\"M131.494,-60.6491C127.5865,-81.8347 129.4219,-109.4001 137,-109.4001 143.7493,-109.4001 145.9433,-87.5349 143.582,-67.7852\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.506,-60.6491 146.6646,-67.1012 143.0279,-64.11 143.5498,-67.5709 143.5498,-67.5709 143.5498,-67.5709 143.0279,-64.11 140.435,-68.0406 142.506,-60.6491 142.506,-60.6491\"/>\n",
"<text text-anchor=\"start\" x=\"132.5\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.2001\" 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=\"#000000\" cx=\"250\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"250\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-65.2001\" 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=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-9.2001\" 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=\"#000000\" d=\"M245.0012,-60.81C244.0681,-70.488 245.7344,-79.4001 250,-79.4001 253.1326,-79.4001 254.8633,-74.5937 255.1921,-68.2074\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"254.9988,-60.81 258.3307,-67.7253 255.0903,-64.3088 255.1818,-67.8076 255.1818,-67.8076 255.1818,-67.8076 255.0903,-64.3088 252.0329,-67.89 254.9988,-60.81 254.9988,-60.81\"/>\n",
"<text text-anchor=\"start\" x=\"229.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" 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=\"#000000\" d=\"M242.4634,-59.996C236.769,-81.2634 239.2813,-109.4001 250,-109.4001 259.5883,-109.4001 262.6098,-86.8855 259.0645,-66.9133\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"257.5366,-59.996 262.1223,-66.1518 258.2915,-63.4136 259.0464,-66.8312 259.0464,-66.8312 259.0464,-66.8312 258.2915,-63.4136 255.9706,-67.5107 257.5366,-59.996 257.5366,-59.996\"/>\n",
"<text text-anchor=\"start\" x=\"231.5\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-113.2001\" 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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 521.50 142.00\" width=\"522pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 517.5,-138 517.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">8</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 268,-130 268,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 268,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"268,-109 268,-130 315,-130 315,-109 268,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"268,-109 315,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"315,-109 315,-130 353,-130 353,-109 315,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"315,-109 353,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"353,-109 353,-130 396,-130 396,-109 353,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"353,-109 396,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"396,-109 396,-130 443,-130 443,-109 396,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"396,-109 443,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"443,-109 443,-130 486,-130 486,-109 443,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"443,-109 486,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"486,-109 486,-130 506,-130 506,-109 486,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"486,-109 506,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 268,-109 268,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-94.8\">b</text>\n",
"<polygon fill=\"none\" points=\"268,-88 268,-109 315,-109 315,-88 268,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"271\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"315,-88 315,-109 353,-109 353,-88 315,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"353,-88 353,-109 396,-109 396,-88 353,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"356\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"396,-88 396,-109 443,-109 443,-88 396,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"399\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"443,-88 443,-109 486,-109 486,-88 443,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"486,-88 486,-109 506,-109 506,-88 486,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 268,-88 268,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"268,-67 268,-88 315,-88 315,-67 268,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"315,-67 315,-88 353,-88 353,-67 315,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"353,-67 353,-88 396,-88 396,-67 353,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"364\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"396,-67 396,-88 443,-88 443,-67 396,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"443,-67 443,-88 486,-88 486,-67 443,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"454\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"486,-67 486,-88 506,-88 506,-67 486,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"489\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 268,-67 268,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 268,-67 268,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"396,-46 396,-67 443,-67 443,-46 396,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"396,-46 396,-67 443,-67 443,-46 396,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"443,-46 443,-67 486,-67 486,-46 443,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"443,-46 443,-67 486,-67 486,-46 443,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"486,-46 486,-67 506,-67 506,-46 486,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"486,-46 486,-67 506,-67 506,-46 486,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-25 241,-46 268,-46 268,-25 241,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 268,-46 268,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"none\" points=\"268,-25 268,-46 315,-46 315,-25 268,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"396,-25 396,-46 443,-46 443,-25 396,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"396,-25 396,-46 443,-46 443,-25 396,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"none\" points=\"443,-25 443,-46 486,-46 486,-25 443,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"486,-25 486,-46 506,-46 506,-25 486,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 268,-25 268,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 268,-25 268,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"396,-4 396,-25 443,-25 443,-4 396,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"396,-4 396,-25 443,-25 443,-4 396,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"443,-4 443,-25 486,-25 486,-4 443,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"443,-4 443,-25 486,-25 486,-4 443,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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 and 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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"279pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 278.50 247.40\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 243.4001)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-243.4001 274.5,-243.4001 274.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"83.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"108.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"124.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"167.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"183.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"106.25\" y=\"-211.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-43.4001C4.178,-43.4001 17.9448,-43.4001 30.9241,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-43.4001 30.9808,-46.5502 34.4807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 30.9807,-43.4002 34.4807,-43.4002 30.9807,-40.2502 37.9807,-43.4001 37.9807,-43.4001\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-43.4001C85.4352,-43.4001 99.6622,-43.4001 111.7609,-43.4001\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-43.4001 111.9716,-46.5502 115.4716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 111.9716,-43.4002 115.4716,-43.4002 111.9716,-40.2502 118.9716,-43.4001 118.9716,-43.4001\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M133.4047,-61.1818C132.7938,-70.7151 133.9922,-79.4001 137,-79.4001 139.2089,-79.4001 140.4419,-74.7162 140.6991,-68.4522\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"140.5953,-61.1818 143.845,-68.1361 140.6453,-64.6815 140.6954,-68.1811 140.6954,-68.1811 140.6954,-68.1811 140.6453,-64.6815 137.5457,-68.2262 140.5953,-61.1818 140.5953,-61.1818\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" 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=\"#000000\" d=\"M131.494,-60.6491C127.5865,-81.8347 129.4219,-109.4001 137,-109.4001 143.7493,-109.4001 145.9433,-87.5349 143.582,-67.7852\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.506,-60.6491 146.6646,-67.1012 143.0279,-64.11 143.5498,-67.5709 143.5498,-67.5709 143.5498,-67.5709 143.0279,-64.11 140.435,-68.0406 142.506,-60.6491 142.506,-60.6491\"/>\n",
"<text text-anchor=\"start\" x=\"132.5\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-113.2001\" 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=\"#000000\" cx=\"250\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"250\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-65.2001\" 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=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"185.5\" y=\"-9.2001\" 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=\"#000000\" d=\"M246.6444,-61.1818C246.0742,-70.7151 247.1927,-79.4001 250,-79.4001 252.0616,-79.4001 253.2124,-74.7162 253.4525,-68.4522\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"253.3556,-61.1818 256.5987,-68.1392 253.4023,-64.6815 253.449,-68.1812 253.449,-68.1812 253.449,-68.1812 253.4023,-64.6815 250.2993,-68.2233 253.3556,-61.1818 253.3556,-61.1818\"/>\n",
"<text text-anchor=\"start\" x=\"229.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" 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=\"#000000\" d=\"M244.8051,-60.9773C241.2319,-82.1181 242.9635,-109.4001 250,-109.4001 256.2668,-109.4001 258.3258,-87.7597 256.177,-68.0908\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"255.1949,-60.9773 259.2727,-67.4807 255.6736,-64.4444 256.1523,-67.9115 256.1523,-67.9115 256.1523,-67.9115 255.6736,-64.4444 253.0319,-68.3423 255.1949,-60.9773 255.1949,-60.9773\"/>\n",
"<text text-anchor=\"start\" x=\"231.5\" y=\"-128.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"242\" y=\"-113.2001\" 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=\"#000000\" d=\"M243.7047,-60.73C236.4719,-91.4107 238.5703,-139.4001 250,-139.4001 260.5814,-139.4001 263.1652,-98.2698 257.7515,-67.8206\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.2953,-60.73 260.7892,-66.9532 256.9994,-64.1585 257.7036,-67.5869 257.7036,-67.5869 257.7036,-67.5869 256.9994,-64.1585 254.618,-68.2206 256.2953,-60.73 256.2953,-60.73\"/>\n",
"<text text-anchor=\"start\" x=\"245.5\" y=\"-157.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"234\" y=\"-143.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"250\" y=\"-143.2001\" 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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 589.50 376.00\" width=\"590pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 585.5,-372 585.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"39.5,-311 39.5,-332 94.5,-332 94.5,-311 39.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"39.5,-311 94.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"51.5\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"94.5,-311 94.5,-332 107.5,-332 107.5,-311 94.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"94.5,-311 107.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"97.5\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"107.5,-311 107.5,-332 120.5,-332 120.5,-311 107.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"107.5,-311 120.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"110.5\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"120.5,-311 120.5,-332 133.5,-332 133.5,-311 120.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"120.5,-311 133.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"123.5\" y=\"-317.8\">2</text>\n",
"<polygon fill=\"none\" points=\"39.5,-290 39.5,-311 94.5,-311 94.5,-290 39.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"54.5\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"94.5,-290 94.5,-311 107.5,-311 107.5,-290 94.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"94.5,-290 94.5,-311 107.5,-311 107.5,-290 94.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"97.5\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"107.5,-290 107.5,-311 120.5,-311 120.5,-290 107.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"107.5,-290 107.5,-311 120.5,-311 120.5,-290 107.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"110.5\" y=\"-296.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"120.5,-290 120.5,-311 133.5,-311 133.5,-290 120.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"120.5,-290 120.5,-311 133.5,-311 133.5,-290 120.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"123.5\" y=\"-296.8\">8</text>\n",
"<polygon fill=\"none\" points=\"39.5,-269 39.5,-290 94.5,-290 94.5,-269 39.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"42.5\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"94.5,-269 94.5,-290 107.5,-290 107.5,-269 94.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"94.5,-269 94.5,-290 107.5,-290 107.5,-269 94.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"97.5\" y=\"-275.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"107.5,-269 107.5,-290 120.5,-290 120.5,-269 107.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"107.5,-269 107.5,-290 120.5,-290 120.5,-269 107.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"110.5\" y=\"-275.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"120.5,-269 120.5,-290 133.5,-290 133.5,-269 120.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"120.5,-269 120.5,-290 133.5,-290 133.5,-269 120.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"123.5\" y=\"-275.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"167.5,-343 167.5,-364 228.5,-364 228.5,-343 167.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"167.5,-343 228.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"182.5\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"228.5,-343 228.5,-364 271.5,-364 271.5,-343 228.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"228.5,-343 271.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"271.5,-343 271.5,-364 298.5,-364 298.5,-343 271.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"271.5,-343 298.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"298.5,-343 298.5,-364 345.5,-364 345.5,-343 298.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"298.5,-343 345.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"345.5,-343 345.5,-364 383.5,-364 383.5,-343 345.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"345.5,-343 383.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"383.5,-343 383.5,-364 426.5,-364 426.5,-343 383.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"383.5,-343 426.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"426.5,-343 426.5,-364 473.5,-364 473.5,-343 426.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"426.5,-343 473.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"473.5,-343 473.5,-364 516.5,-364 516.5,-343 473.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"473.5,-343 516.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"516.5,-343 516.5,-364 536.5,-364 536.5,-343 516.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"516.5,-343 536.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"536.5,-343 536.5,-364 573.5,-364 573.5,-343 536.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"536.5,-343 573.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-349.8\">9</text>\n",
"<polygon fill=\"none\" points=\"167.5,-322 167.5,-343 228.5,-343 228.5,-322 167.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"184.5\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"228.5,-322 228.5,-343 271.5,-343 271.5,-322 228.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"231.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"271.5,-322 271.5,-343 298.5,-343 298.5,-322 271.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-328.8\">b</text>\n",
"<polygon fill=\"none\" points=\"298.5,-322 298.5,-343 345.5,-343 345.5,-322 298.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"345.5,-322 345.5,-343 383.5,-343 383.5,-322 345.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"383.5,-322 383.5,-343 426.5,-343 426.5,-322 383.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"386.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"426.5,-322 426.5,-343 473.5,-343 473.5,-322 426.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"473.5,-322 473.5,-343 516.5,-343 516.5,-322 473.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"476.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"516.5,-322 516.5,-343 536.5,-343 536.5,-322 516.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"536.5,-322 536.5,-343 573.5,-343 573.5,-322 536.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"167.5,-301 167.5,-322 228.5,-322 228.5,-301 167.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"188.5\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"228.5,-301 228.5,-322 271.5,-322 271.5,-301 228.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"239.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"271.5,-301 271.5,-322 298.5,-322 298.5,-301 271.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"274.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"298.5,-301 298.5,-322 345.5,-322 345.5,-301 298.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"311.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"345.5,-301 345.5,-322 383.5,-322 383.5,-301 345.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"357.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"383.5,-301 383.5,-322 426.5,-322 426.5,-301 383.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"394.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"426.5,-301 426.5,-322 473.5,-322 473.5,-301 426.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"439.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"473.5,-301 473.5,-322 516.5,-322 516.5,-301 473.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"516.5,-301 516.5,-322 536.5,-322 536.5,-301 516.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"519.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"536.5,-301 536.5,-322 573.5,-322 573.5,-301 536.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"539.5\" y=\"-307.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"167.5,-280 167.5,-301 228.5,-301 228.5,-280 167.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"190\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"228.5,-280 228.5,-301 271.5,-301 271.5,-280 228.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-280 228.5,-301 271.5,-301 271.5,-280 228.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"271.5,-280 271.5,-301 298.5,-301 298.5,-280 271.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"271.5,-280 271.5,-301 298.5,-301 298.5,-280 271.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"426.5,-280 426.5,-301 473.5,-301 473.5,-280 426.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"426.5,-280 426.5,-301 473.5,-301 473.5,-280 426.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"473.5,-280 473.5,-301 516.5,-301 516.5,-280 473.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"473.5,-280 473.5,-301 516.5,-301 516.5,-280 473.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"167.5,-259 167.5,-280 228.5,-280 228.5,-259 167.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"170.5\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"228.5,-259 228.5,-280 271.5,-280 271.5,-259 228.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-259 228.5,-280 271.5,-280 271.5,-259 228.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"271.5,-259 271.5,-280 298.5,-280 298.5,-259 271.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"271.5,-259 271.5,-280 298.5,-280 298.5,-259 271.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"none\" points=\"298.5,-259 298.5,-280 345.5,-280 345.5,-259 298.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"426.5,-259 426.5,-280 473.5,-280 473.5,-259 426.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"426.5,-259 426.5,-280 473.5,-280 473.5,-259 426.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446.5\" y=\"-265.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"473.5,-259 473.5,-280 516.5,-280 516.5,-259 473.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"473.5,-259 473.5,-280 516.5,-280 516.5,-259 473.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-265.8\">9</text>\n",
"<polygon fill=\"none\" points=\"516.5,-259 516.5,-280 536.5,-280 536.5,-259 516.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"536.5,-259 536.5,-280 573.5,-280 573.5,-259 536.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"167.5,-238 167.5,-259 228.5,-259 228.5,-238 167.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"190\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"228.5,-238 228.5,-259 271.5,-259 271.5,-238 228.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-238 228.5,-259 271.5,-259 271.5,-238 228.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"271.5,-238 271.5,-259 298.5,-259 298.5,-238 271.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"271.5,-238 271.5,-259 298.5,-259 298.5,-238 271.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"426.5,-238 426.5,-259 473.5,-259 473.5,-238 426.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"426.5,-238 426.5,-259 473.5,-259 473.5,-238 426.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"473.5,-238 473.5,-259 516.5,-259 516.5,-238 473.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"473.5,-238 473.5,-259 516.5,-259 516.5,-238 473.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-244.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-244.8\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffff00\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-142.8\">no</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-66.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-47.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-28.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424.5\" y=\"-9.8\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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 reseting all properties to `maybe` with `prop_reset()`:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg height=\"206pt\" viewBox=\"0.00 0.00 209.00 206.00\" width=\"209pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 202)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-202 205,-202 205,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-66.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-47.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-28.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154.5\" y=\"-9.8\">maybe</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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(\"pos={}, acc={}, toerase={}\".format(aut.edge_number(e), e.acc, toerase))\n",
" if toerase:\n",
" it.erase()\n",
" else:\n",
" it.advance()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 558.00 142.00\" width=\"558pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 554,-138 554,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">8</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"136,-109 136,-130 197,-130 197,-109 136,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"136,-109 197,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"151\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"197,-109 197,-130 240,-130 240,-109 197,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"197,-109 240,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"215\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#c0c0c0\" points=\"240,-109 240,-130 267,-130 267,-109 240,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"240,-109 267,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"267,-109 267,-130 314,-130 314,-109 267,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"267,-109 314,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"314,-109 314,-130 352,-130 352,-109 314,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"314,-109 352,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"352,-109 352,-130 395,-130 395,-109 352,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"352,-109 395,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"395,-109 395,-130 442,-130 442,-109 395,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"395,-109 442,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"442,-109 442,-130 485,-130 485,-109 442,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"442,-109 485,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"460\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"485,-109 485,-130 505,-130 505,-109 485,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"485,-109 505,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"505,-109 505,-130 542,-130 542,-109 505,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"505,-109 542,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520\" y=\"-115.8\">9</text>\n",
"<polygon fill=\"none\" points=\"136,-88 136,-109 197,-109 197,-88 136,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"153\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"197,-88 197,-109 240,-109 240,-88 197,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"240,-88 240,-109 267,-109 267,-88 240,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250\" y=\"-94.8\">b</text>\n",
"<polygon fill=\"none\" points=\"267,-88 267,-109 314,-109 314,-88 267,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"270\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"314,-88 314,-109 352,-109 352,-88 314,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"317\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"352,-88 352,-109 395,-109 395,-88 352,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"355\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"395,-88 395,-109 442,-109 442,-88 395,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"398\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"442,-88 442,-109 485,-109 485,-88 442,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"445\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"485,-88 485,-109 505,-109 505,-88 485,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"505,-88 505,-109 542,-109 542,-88 505,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"136,-67 136,-88 197,-88 197,-67 136,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"157\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"197,-67 197,-88 240,-88 240,-67 197,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"240,-67 240,-88 267,-88 267,-67 240,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"243\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"267,-67 267,-88 314,-88 314,-67 267,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"314,-67 314,-88 352,-88 352,-67 314,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"352,-67 352,-88 395,-88 395,-67 352,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"395,-67 395,-88 442,-88 442,-67 395,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"442,-67 442,-88 485,-88 485,-67 442,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"485,-67 485,-88 505,-88 505,-67 485,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"488\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"505,-67 505,-88 542,-88 542,-67 505,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"508\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"136,-46 136,-67 197,-67 197,-46 136,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"197,-46 197,-67 240,-67 240,-46 197,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-46 197,-67 240,-67 240,-46 197,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"215\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"240,-46 240,-67 267,-67 267,-46 240,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"240,-46 240,-67 267,-67 267,-46 240,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"395,-46 395,-67 442,-67 442,-46 395,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"395,-46 395,-67 442,-67 442,-46 395,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"442,-46 442,-67 485,-67 485,-46 442,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"442,-46 442,-67 485,-67 485,-46 442,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"460\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"485,-46 485,-67 505,-67 505,-46 485,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"485,-46 485,-67 505,-67 505,-46 485,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"505,-46 505,-67 542,-67 542,-46 505,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"505,-46 505,-67 542,-67 542,-46 505,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"none\" points=\"136,-25 136,-46 197,-46 197,-25 136,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"139\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"197,-25 197,-46 240,-46 240,-25 197,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-25 197,-46 240,-46 240,-25 197,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"215\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"#c0c0c0\" points=\"240,-25 240,-46 267,-46 267,-25 240,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"240,-25 240,-46 267,-46 267,-25 240,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"267,-25 267,-46 314,-46 314,-25 267,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"395,-25 395,-46 442,-46 442,-25 395,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"395,-25 395,-46 442,-46 442,-25 395,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"442,-25 442,-46 485,-46 485,-25 442,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"442,-25 442,-46 485,-46 485,-25 442,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"460\" y=\"-31.8\">9</text>\n",
"<polygon fill=\"none\" points=\"485,-25 485,-46 505,-46 505,-25 485,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"505,-25 505,-46 542,-46 542,-25 505,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"136,-4 136,-25 197,-25 197,-4 136,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"197,-4 197,-25 240,-25 240,-4 197,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-4 197,-25 240,-25 240,-4 197,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"215\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"240,-4 240,-25 267,-25 267,-4 240,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"240,-4 240,-25 267,-25 267,-4 240,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"395,-4 395,-25 442,-25 442,-4 395,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"395,-4 395,-25 442,-25 442,-4 395,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"442,-4 442,-25 485,-25 485,-4 442,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"442,-4 442,-25 485,-25 485,-4 442,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"460\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"485,-4 485,-25 505,-25 505,-4 485,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"485,-4 485,-25 505,-25 505,-4 485,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-10.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"505,-4 505,-25 542,-25 542,-4 505,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"505,-4 505,-25 542,-25 542,-4 505,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520\" y=\"-10.8\">1</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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",
" print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(e), src=e.src, 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": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 531.50 142.00\" width=\"532pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 527.5,-138 527.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">8</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-109 288,-130 326,-130 326,-109 288,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"288,-109 326,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"326,-109 326,-130 369,-130 369,-109 326,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"326,-109 369,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-109 369,-130 416,-130 416,-109 369,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"369,-109 416,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"389\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"416,-109 416,-130 459,-130 459,-109 416,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"416,-109 459,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"459,-109 459,-130 496,-130 496,-109 459,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"459,-109 496,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"474\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"496,-109 496,-130 516,-130 516,-109 496,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"496,-109 516,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"288,-88 288,-109 326,-109 326,-88 288,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"326,-88 326,-109 369,-109 369,-88 326,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"369,-88 369,-109 416,-109 416,-88 369,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"416,-88 416,-109 459,-109 459,-88 416,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"419\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"459,-88 459,-109 496,-109 496,-88 459,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"474\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"496,-88 496,-109 516,-109 516,-88 496,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"288,-67 288,-88 326,-88 326,-67 288,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"326,-67 326,-88 369,-88 369,-67 326,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"369,-67 369,-88 416,-88 416,-67 369,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"382\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"416,-67 416,-88 459,-88 459,-67 416,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"427\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"459,-67 459,-88 496,-88 496,-67 459,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"496,-67 496,-88 516,-88 516,-67 496,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-46 288,-67 326,-67 326,-46 288,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-46 288,-67 326,-67 326,-46 288,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"326,-46 326,-67 369,-67 369,-46 326,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"326,-46 326,-67 369,-67 369,-46 326,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 416,-67 416,-46 369,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-46 369,-67 416,-67 416,-46 369,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"389\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"416,-46 416,-67 459,-67 459,-46 416,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"416,-46 416,-67 459,-67 459,-46 416,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-46 459,-67 496,-67 496,-46 459,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-46 459,-67 496,-67 496,-46 459,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"474\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"496,-46 496,-67 516,-67 516,-46 496,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"496,-46 496,-67 516,-67 516,-46 496,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-25 288,-46 326,-46 326,-25 288,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-25 288,-46 326,-46 326,-25 288,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 416,-46 416,-25 369,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-25 369,-46 416,-46 416,-25 369,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"389\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"416,-25 416,-46 459,-46 459,-25 416,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"416,-25 416,-46 459,-46 459,-25 416,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"none\" points=\"459,-25 459,-46 496,-46 496,-25 459,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"474\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"496,-25 496,-46 516,-46 516,-25 496,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-4 288,-25 326,-25 326,-4 288,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-4 288,-25 326,-25 326,-4 288,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 416,-25 416,-4 369,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-4 369,-25 416,-25 416,-4 369,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"389\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"416,-4 416,-25 459,-25 459,-4 416,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"416,-4 416,-25 459,-25 459,-4 416,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-4 459,-25 496,-25 496,-4 459,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-4 459,-25 496,-25 496,-4 459,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"474\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"496,-4 496,-25 516,-25 516,-4 496,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"496,-4 496,-25 516,-25 516,-4 496,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 513.50 142.00\" width=\"514pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 509.5,-138 509.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">8</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">8</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-109 288,-130 308,-130 308,-109 288,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"288,-109 308,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"308,-109 308,-130 351,-130 351,-109 308,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"308,-109 351,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"351,-109 351,-130 398,-130 398,-109 351,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"351,-109 398,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"398,-109 398,-130 441,-130 441,-109 398,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"398,-109 441,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"441,-109 441,-130 478,-130 478,-109 441,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"441,-109 478,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"478,-109 478,-130 498,-130 498,-109 478,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"478,-109 498,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-115.8\">8</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"288,-88 288,-109 308,-109 308,-88 288,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-94.8\">0</text>\n",
"<polygon fill=\"none\" points=\"308,-88 308,-109 351,-109 351,-88 308,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"311\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"351,-88 351,-109 398,-109 398,-88 351,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"354\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"398,-88 398,-109 441,-109 441,-88 398,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"441,-88 441,-109 478,-109 478,-88 441,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"478,-88 478,-109 498,-109 498,-88 478,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"288,-67 288,-88 308,-88 308,-67 288,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"308,-67 308,-88 351,-88 351,-67 308,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"319\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"351,-67 351,-88 398,-88 398,-67 351,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"364\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"398,-67 398,-88 441,-88 441,-67 398,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"441,-67 441,-88 478,-88 478,-67 441,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"444\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"478,-67 478,-88 498,-88 498,-67 478,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"481\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-46 288,-67 308,-67 308,-46 288,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-46 288,-67 308,-67 308,-46 288,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"308,-46 308,-67 351,-67 351,-46 308,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"308,-46 308,-67 351,-67 351,-46 308,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"351,-46 351,-67 398,-67 398,-46 351,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"351,-46 351,-67 398,-67 398,-46 351,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"398,-46 398,-67 441,-67 441,-46 398,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398,-46 398,-67 441,-67 441,-46 398,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"441,-46 441,-67 478,-67 478,-46 441,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"441,-46 441,-67 478,-67 478,-46 441,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"478,-46 478,-67 498,-67 498,-46 478,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"478,-46 478,-67 498,-67 498,-46 478,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-25 288,-46 308,-46 308,-25 288,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-25 288,-46 308,-46 308,-25 288,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"308,-25 308,-46 351,-46 351,-25 308,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"308,-25 308,-46 351,-46 351,-25 308,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"351,-25 351,-46 398,-46 398,-25 351,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"351,-25 351,-46 398,-46 398,-25 351,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"398,-25 398,-46 441,-46 441,-25 398,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398,-25 398,-46 441,-46 441,-25 398,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"none\" points=\"441,-25 441,-46 478,-46 478,-25 441,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"478,-25 478,-46 498,-46 498,-25 478,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-4 288,-25 308,-25 308,-4 288,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-4 288,-25 308,-25 308,-4 288,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"308,-4 308,-25 351,-25 351,-4 308,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"308,-4 308,-25 351,-25 351,-4 308,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"351,-4 351,-25 398,-25 398,-4 351,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"351,-4 351,-25 398,-25 398,-4 351,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"398,-4 398,-25 441,-25 441,-4 398,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398,-4 398,-25 441,-25 441,-4 398,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"441,-4 441,-25 478,-25 478,-4 441,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"441,-4 441,-25 478,-25 478,-4 441,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"478,-4 478,-25 498,-25 498,-4 478,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"478,-4 478,-25 498,-25 498,-4 478,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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",
" print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(e), src=e.src, 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": {
"image/svg+xml": [
"<svg height=\"142pt\" viewBox=\"0.00 0.00 493.50 142.00\" width=\"494pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 138)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-138 489.5,-138 489.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"8,-77 63,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"20\" y=\"-83.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"63,-77 76,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-83.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"76,-77 89,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-83.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"89,-77 102,-77 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-83.8\">2</text>\n",
"<polygon fill=\"none\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-62.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-62.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-62.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-62.8\">7</text>\n",
"<polygon fill=\"none\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"11\" y=\"-41.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"66\" y=\"-41.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"79\" y=\"-41.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"92\" y=\"-41.8\">7</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"137,-109 198,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-115.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 241,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"241,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-109 288,-130 331,-130 331,-109 288,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"288,-109 331,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"331,-109 331,-130 378,-130 378,-109 331,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"331,-109 378,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"351\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"378,-109 378,-130 421,-130 421,-109 378,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"378,-109 421,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"421,-109 421,-130 458,-130 458,-109 421,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"421,-109 458,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"458,-109 458,-130 478,-130 478,-109 458,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"458,-109 478,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"464.5\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"none\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"154\" y=\"-94.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"244\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"288,-88 288,-109 331,-109 331,-88 288,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"331,-88 331,-109 378,-109 378,-88 331,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"334\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"378,-88 378,-109 421,-109 421,-88 378,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381\" y=\"-94.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"421,-88 421,-109 458,-109 458,-88 421,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"458,-88 458,-109 478,-109 478,-88 458,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"464.5\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"158\" y=\"-73.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"209\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"288,-67 288,-88 331,-88 331,-67 288,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"331,-67 331,-88 378,-88 378,-67 331,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"378,-67 378,-88 421,-88 421,-67 378,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"389\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"421,-67 421,-88 458,-88 458,-67 421,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"458,-67 458,-88 478,-88 478,-67 458,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-52.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-46 288,-67 331,-67 331,-46 288,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-46 288,-67 331,-67 331,-46 288,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"331,-46 331,-67 378,-67 378,-46 331,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"331,-46 331,-67 378,-67 378,-46 331,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"351\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"378,-46 378,-67 421,-67 421,-46 378,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"378,-46 378,-67 421,-67 421,-46 378,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"421,-46 421,-67 458,-67 458,-46 421,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"421,-46 421,-67 458,-67 458,-46 421,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458,-46 458,-67 478,-67 478,-46 458,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458,-46 458,-67 478,-67 478,-46 458,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"464.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"140\" y=\"-31.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"288,-25 288,-46 331,-46 331,-25 288,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-25 288,-46 331,-46 331,-25 288,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"331,-25 331,-46 378,-46 378,-25 331,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"331,-25 331,-46 378,-46 378,-25 331,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"351\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"378,-25 378,-46 421,-46 421,-25 378,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"378,-25 378,-46 421,-46 421,-25 378,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"none\" points=\"421,-25 421,-46 458,-46 458,-25 421,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"458,-25 458,-46 478,-46 478,-25 458,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"464.5\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"159.5\" y=\"-10.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"216\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"288,-4 288,-25 331,-25 331,-4 288,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"288,-4 288,-25 331,-25 331,-4 288,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"331,-4 331,-25 378,-25 378,-4 331,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"331,-4 331,-25 378,-25 378,-4 331,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"351\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"378,-4 378,-25 421,-25 421,-4 378,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"378,-4 378,-25 421,-25 421,-4 378,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"421,-4 421,-25 458,-25 458,-4 421,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"421,-4 421,-25 458,-25 458,-4 421,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458,-4 458,-25 478,-25 478,-4 458,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458,-4 458,-25 478,-25 478,-4 458,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"464.5\" y=\"-10.8\">2</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"428pt\" height=\"322pt\"\n",
" viewBox=\"0.00 0.00 427.70 321.58\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 317.5843)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-317.5843 423.7,-317.5843 423.7,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"157.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"182.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"198.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"241.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"257.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"180.85\" y=\"-285.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- 2 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-71.5843\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-67.8843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-71.5843C4.178,-71.5843 17.9448,-71.5843 30.9241,-71.5843\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-71.5843 30.9808,-74.7343 34.4807,-71.5843 30.9807,-71.5843 30.9807,-71.5843 30.9807,-71.5843 34.4807,-71.5843 30.9807,-68.4343 37.9807,-71.5843 37.9807,-71.5843\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"137\" cy=\"-71.5843\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"137\" y=\"-67.8843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.3802,-71.5843C85.4352,-71.5843 99.6622,-71.5843 111.7609,-71.5843\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.9716,-71.5843 111.9716,-74.7343 115.4716,-71.5843 111.9716,-71.5843 111.9716,-71.5843 111.9716,-71.5843 115.4716,-71.5843 111.9716,-68.4343 118.9716,-71.5843 118.9716,-71.5843\"/>\n",
"<text text-anchor=\"middle\" x=\"96.5\" y=\"-75.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M129.9688,-88.2483C128.4063,-98.2093 130.75,-107.5843 137,-107.5843 141.6875,-107.5843 144.1777,-102.3108 144.4707,-95.4718\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.0313,-88.2483 147.6006,-95.0441 144.2438,-91.7419 144.4564,-95.2354 144.4564,-95.2354 144.4564,-95.2354 144.2438,-91.7419 141.3122,-95.4267 144.0313,-88.2483 144.0313,-88.2483\"/>\n",
"<text text-anchor=\"start\" x=\"118.5\" y=\"-126.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"129\" y=\"-111.3843\" 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=\"#000000\" cx=\"399.2\" cy=\"-117.5843\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"399.2\" y=\"-113.8843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M140.0038,-89.579C146.4299,-121.2388 164.6848,-183.5843 208.8,-183.5843 208.8,-183.5843 208.8,-183.5843 342.4,-183.5843 365.4233,-183.5843 381.1555,-160.2257 390.1234,-141.301\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"393.1223,-134.5809 393.1462,-142.257 391.696,-137.7771 390.2696,-140.9733 390.2696,-140.9733 390.2696,-140.9733 391.696,-137.7771 387.3931,-139.6896 393.1223,-134.5809 393.1223,-134.5809\"/>\n",
"<text text-anchor=\"start\" x=\"247.6\" y=\"-202.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"260.1\" y=\"-187.3843\" 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=\"#000000\" cx=\"208.8\" cy=\"-25.5843\" 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=\"#000000\" d=\"M140.7617,-53.8563C145.3096,-37.3406 154.744,-13.6508 173,-2.5843 179.0811,1.102 182.5363,.3802 189,-2.5843 195.6929,-5.6539 200.979,-12.2262 204.3997,-17.5622\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"202.4363,-19.0663 208.0234,-23.9435 206.6973,-16.6467 202.4363,-19.0663\"/>\n",
"<text text-anchor=\"start\" x=\"177.5\" y=\"-21.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"173\" y=\"-6.3843\" 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=\"#000000\" d=\"M381.038,-117.5843C369.8887,-117.5843 355.3181,-117.5843 342.4,-117.5843 208.8,-117.5843 208.8,-117.5843 208.8,-117.5843 187.6278,-117.5843 167.7031,-103.2279 154.2398,-90.5556\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"149.232,-85.6357 156.433,-88.2945 151.7287,-88.0886 154.2254,-90.5415 154.2254,-90.5415 154.2254,-90.5415 151.7287,-88.0886 152.0178,-92.7885 149.232,-85.6357 149.232,-85.6357\"/>\n",
"<text text-anchor=\"start\" x=\"249.6\" y=\"-136.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"260.1\" y=\"-121.3843\" 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=\"#000000\" d=\"M397.0291,-135.737C396.6951,-145.1233 397.4188,-153.5843 399.2,-153.5843 400.5081,-153.5843 401.2458,-149.0212 401.4132,-142.8796\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"401.3709,-135.737 404.5624,-142.7181 401.3917,-139.2369 401.4124,-142.7368 401.4124,-142.7368 401.4124,-142.7368 401.3917,-139.2369 398.2625,-142.7555 401.3709,-135.737 401.3709,-135.737\"/>\n",
"<text text-anchor=\"start\" x=\"378.7\" y=\"-172.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"391.2\" y=\"-157.3843\" 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=\"#000000\" d=\"M395.825,-135.4905C393.575,-156.5843 394.7,-183.5843 399.2,-183.5843 403.2078,-183.5843 404.5385,-162.1675 403.1922,-142.5808\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"402.575,-135.4905 406.3202,-142.1909 402.8785,-138.9773 403.1821,-142.4641 403.1821,-142.4641 403.1821,-142.4641 402.8785,-138.9773 400.044,-142.7373 402.575,-135.4905 402.575,-135.4905\"/>\n",
"<text text-anchor=\"start\" x=\"380.7\" y=\"-202.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"391.2\" y=\"-187.3843\" 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=\"#000000\" d=\"M395.0867,-135.3557C390.5164,-166.053 391.8875,-213.5843 399.2,-213.5843 405.9698,-213.5843 407.6473,-172.8466 404.2327,-142.4425\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"403.3133,-135.3557 407.3378,-141.8922 403.7636,-138.8266 404.214,-142.2976 404.214,-142.2976 404.214,-142.2976 403.7636,-138.8266 401.0902,-142.7029 403.3133,-135.3557 403.3133,-135.3557\"/>\n",
"<text text-anchor=\"start\" x=\"394.7\" y=\"-231.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"383.2\" y=\"-217.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"399.2\" y=\"-217.3843\" 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=\"#000000\" d=\"M207.2336,-26.5878C200.8704,-30.6645 176.4262,-46.3251 158.1525,-58.0325\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.2269,-61.8288 156.4218,-55.4003 155.174,-59.9407 158.1211,-58.0526 158.1211,-58.0526 158.1211,-58.0526 155.174,-59.9407 159.8204,-60.705 152.2269,-61.8288 152.2269,-61.8288\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node6\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"268.1\" cy=\"-25.5843\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"268.1\" y=\"-21.8843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M210.773,-25.5843C215.8129,-25.5843 229.669,-25.5843 242.4957,-25.5843\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"249.8545,-25.5843 242.8546,-28.7343 246.3545,-25.5843 242.8545,-25.5843 242.8545,-25.5843 242.8545,-25.5843 246.3545,-25.5843 242.8545,-22.4343 249.8545,-25.5843 249.8545,-25.5843\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"342.4\" cy=\"-71.5843\" 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=\"#000000\" d=\"M285.7565,-21.7519C297.2032,-20.2803 311.9168,-20.3954 322.6,-27.5843 334.3277,-35.4759 339.1975,-52.0823 341.1547,-62.4852\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"338.7364,-62.8794 342.2003,-69.4371 343.5819,-62.1506 338.7364,-62.8794\"/>\n",
"<text text-anchor=\"start\" x=\"309.1\" y=\"-46.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"306.6\" y=\"-31.3843\" 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=\"#000000\" d=\"M340.4472,-71.5843C324.3671,-71.5843 213.1336,-71.5843 162.275,-71.5843\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.2279,-71.5843 162.2279,-68.4343 158.7279,-71.5843 162.2279,-71.5843 162.2279,-71.5843 162.2279,-71.5843 158.7279,-71.5843 162.2278,-74.7343 155.2279,-71.5843 155.2279,-71.5843\"/>\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=\"#000000\" d=\"M343.8041,-72.7213C348.707,-76.692 365.5194,-90.3077 379.3491,-101.5078\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"385.05,-106.1248 377.6277,-104.1672 382.3301,-103.922 379.6102,-101.7193 379.6102,-101.7193 379.6102,-101.7193 382.3301,-103.922 381.5927,-99.2713 385.05,-106.1248 385.05,-106.1248\"/>\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 0x7f2950267b40> >"
]
},
"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": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 762.00 376.00\" width=\"762pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 758,-372 758,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"33.5,-311 33.5,-332 88.5,-332 88.5,-311 33.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"33.5,-311 88.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"45.5\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"88.5,-311 88.5,-332 101.5,-332 101.5,-311 88.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"88.5,-311 101.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"101.5,-311 114.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"114.5,-311 127.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-317.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"127.5,-311 127.5,-332 140.5,-332 140.5,-311 127.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"127.5,-311 140.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-317.8\">3</text>\n",
"<polygon fill=\"none\" points=\"33.5,-290 33.5,-311 88.5,-311 88.5,-290 33.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"48.5\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-296.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-296.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-296.8\">9</text>\n",
"<polygon fill=\"none\" points=\"33.5,-269 33.5,-290 88.5,-290 88.5,-269 33.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"36.5\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-275.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-275.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-275.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-275.8\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"174.5,-343 174.5,-364 235.5,-364 235.5,-343 174.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"174.5,-343 235.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"189.5\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"235.5,-343 235.5,-364 278.5,-364 278.5,-343 235.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"235.5,-343 278.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"278.5,-343 278.5,-364 325.5,-364 325.5,-343 278.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"278.5,-343 325.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-343 325.5,-364 368.5,-364 368.5,-343 325.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"325.5,-343 368.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"368.5,-343 368.5,-364 415.5,-364 415.5,-343 368.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"368.5,-343 415.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-343 415.5,-364 458.5,-364 458.5,-343 415.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"415.5,-343 458.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"458.5,-343 458.5,-364 495.5,-364 495.5,-343 458.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"458.5,-343 495.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"495.5,-343 495.5,-364 515.5,-364 515.5,-343 495.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"495.5,-343 515.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"515.5,-343 515.5,-364 542.5,-364 542.5,-343 515.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"515.5,-343 542.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"542.5,-343 542.5,-364 569.5,-364 569.5,-343 542.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"542.5,-343 569.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-349.8\">9</text>\n",
"<polygon fill=\"none\" points=\"174.5,-322 174.5,-343 235.5,-343 235.5,-322 174.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"191.5\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"235.5,-322 235.5,-343 278.5,-343 278.5,-322 235.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"278.5,-322 278.5,-343 325.5,-343 325.5,-322 278.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"325.5,-322 325.5,-343 368.5,-343 368.5,-322 325.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"368.5,-322 368.5,-343 415.5,-343 415.5,-322 368.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"415.5,-322 415.5,-343 458.5,-343 458.5,-322 415.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"458.5,-322 458.5,-343 495.5,-343 495.5,-322 458.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"495.5,-322 495.5,-343 515.5,-343 515.5,-322 495.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"515.5,-322 515.5,-343 542.5,-343 542.5,-322 515.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"542.5,-322 542.5,-343 569.5,-343 569.5,-322 542.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"550.5\" y=\"-328.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"174.5,-301 174.5,-322 235.5,-322 235.5,-301 174.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"195.5\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"235.5,-301 235.5,-322 278.5,-322 278.5,-301 235.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"278.5,-301 278.5,-322 325.5,-322 325.5,-301 278.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"325.5,-301 325.5,-322 368.5,-322 368.5,-301 325.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"336.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"368.5,-301 368.5,-322 415.5,-322 415.5,-301 368.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"415.5,-301 415.5,-322 458.5,-322 458.5,-301 415.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"426.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"458.5,-301 458.5,-322 495.5,-322 495.5,-301 458.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461.5\" y=\"-307.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"495.5,-301 495.5,-322 515.5,-322 515.5,-301 495.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"498.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"515.5,-301 515.5,-322 542.5,-322 542.5,-301 515.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"518.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"542.5,-301 542.5,-322 569.5,-322 569.5,-301 542.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"545.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"174.5,-280 174.5,-301 235.5,-301 235.5,-280 174.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"521.5\" y=\"-286.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548.5\" y=\"-286.8\">~3</text>\n",
"<polygon fill=\"none\" points=\"174.5,-259 174.5,-280 235.5,-280 235.5,-259 174.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"none\" points=\"458.5,-259 458.5,-280 495.5,-280 495.5,-259 458.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"495.5,-259 495.5,-280 515.5,-280 515.5,-259 495.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"515.5,-259 515.5,-280 542.5,-280 542.5,-259 515.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"542.5,-259 542.5,-280 569.5,-280 569.5,-259 542.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"174.5,-238 174.5,-259 235.5,-259 235.5,-238 174.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-244.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-244.8\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>dests</title>\n",
"<polygon fill=\"#ffc0cb\" points=\"603.5,-301 603.5,-322 652.5,-322 652.5,-301 603.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"603.5,-301 652.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"614\" y=\"-307.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"652.5,-301 652.5,-322 673.5,-322 673.5,-301 652.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"652.5,-301 673.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"655.5\" y=\"-307.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"673.5,-301 686.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"686.5,-301 699.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"699.5,-301 699.5,-322 720.5,-322 720.5,-301 699.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"699.5,-301 720.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"702.5\" y=\"-307.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"720.5,-301 733.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"733.5,-301 746.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"603.5,-280 603.5,-301 652.5,-301 652.5,-280 603.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"606.5\" y=\"-286.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"652.5,-280 652.5,-301 673.5,-301 673.5,-280 652.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"656\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"676.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"689.5\" y=\"-286.8\">3</text>\n",
"<polygon fill=\"none\" points=\"699.5,-280 699.5,-301 720.5,-301 720.5,-280 699.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"703\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"723.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"736.5\" y=\"-286.8\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffff00\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-66.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-47.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-28.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-9.8\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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 longuer 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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"468pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 468.30 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 1) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-274 464.3,-274 464.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"203.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"219.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"262.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"278.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.15\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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=\"#000000\" d=\"M1.1821,-52C4.6508,-52 20.5694,-52 30.8552,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-54.4501 37.9898,-52 30.9898,-49.5501 30.9898,-54.4501\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.6817,-52.3648C50.2252,-54.0444 86.176,-61.3649 114.6,-71 128.166,-75.5986 142.9035,-81.8422 154.7114,-87.1672\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-90.1769 153.6182,-90.1309 158.1111,-88.7215 154.928,-87.2662 154.928,-87.2662 154.928,-87.2662 158.1111,-88.7215 156.2378,-84.4014 161.2942,-90.1769 161.2942,-90.1769\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"439.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"439.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M40.5959,-50.2699C44.8775,-41.2471 66.1176,0 96.6,0 96.6,0 96.6,0 383,0 406.9769,0 422.7037,-25.1421 431.404,-45.0729\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"434.0869,-51.5884 428.5088,-46.3151 432.7542,-48.352 431.4215,-45.1157 431.4215,-45.1157 431.4215,-45.1157 432.7542,-48.352 434.3343,-43.9162 434.0869,-51.5884 434.0869,-51.5884\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.2041,-53.1371C46.107,-57.1078 62.9194,-70.7235 76.7491,-81.9235\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-86.5405 75.0277,-84.5829 79.7301,-84.3378 77.0102,-82.135 77.0102,-82.135 77.0102,-82.135 79.7301,-84.3378 78.9927,-79.6871 82.45,-86.5405 82.45,-86.5405\"/>\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=\"#000000\" d=\"M170.5688,-114.6641C169.0063,-124.625 171.35,-134 177.6,-134 182.2875,-134 184.7777,-128.7266 185.0707,-121.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"184.6313,-114.6641 188.2006,-121.4598 184.8438,-118.1576 185.0564,-121.6511 185.0564,-121.6511 185.0564,-121.6511 184.8438,-118.1576 181.9122,-121.8425 184.6313,-114.6641 184.6313,-114.6641\"/>\n",
"<text text-anchor=\"start\" x=\"159.1\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M181.1474,-115.9815C188.2755,-146.2237 207.3907,-204 249.4,-204 249.4,-204 249.4,-204 383,-204 406.6982,-204 425.9991,-132.4288 434.7425,-93.5111\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"436.2509,-86.6489 437.8245,-94.162 435.4994,-90.0673 434.748,-93.4857 434.748,-93.4857 434.748,-93.4857 435.4994,-90.0673 431.6714,-92.8094 436.2509,-86.6489 436.2509,-86.6489\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.7\" 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=\"#000000\" 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=\"#000000\" d=\"M195.3483,-101.4607C209.7661,-104.2719 229.4845,-108.1168 240.6853,-110.3008\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"240.2384,-112.7097 247.578,-111.6447 241.1763,-107.9003 240.2384,-112.7097\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M424.5565,-59.1124C413.4854,-52.8787 397.8944,-46 383,-46 249.4,-46 249.4,-46 249.4,-46 226.8449,-46 206.5844,-63.0403 193.3827,-77.6115\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"188.5096,-83.238 190.7113,-75.8844 190.801,-80.5923 193.0924,-77.9466 193.0924,-77.9466 193.0924,-77.9466 190.801,-80.5923 195.4735,-80.0089 188.5096,-83.238 188.5096,-83.238\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.7\" 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=\"#000000\" d=\"M437.6291,-87.1527C437.2951,-96.5391 438.0188,-105 439.8,-105 441.1081,-105 441.8458,-100.437 442.0132,-94.2953\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"441.9709,-87.1527 445.1624,-94.1339 441.9917,-90.6526 442.0124,-94.1526 442.0124,-94.1526 442.0124,-94.1526 441.9917,-90.6526 438.8625,-94.1713 441.9709,-87.1527 441.9709,-87.1527\"/>\n",
"<text text-anchor=\"start\" x=\"419.3\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"431.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=\"#000000\" d=\"M436.425,-86.9063C434.175,-108 435.3,-135 439.8,-135 443.8078,-135 445.1385,-113.5833 443.7922,-93.9965\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.175,-86.9063 446.9202,-93.6067 443.4785,-90.3931 443.7821,-93.8799 443.7821,-93.8799 443.7821,-93.8799 443.4785,-90.3931 440.644,-94.1531 443.175,-86.9063 443.175,-86.9063\"/>\n",
"<text text-anchor=\"start\" x=\"421.3\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"431.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=\"#000000\" d=\"M435.6867,-86.7715C431.1164,-117.4688 432.4875,-165 439.8,-165 446.5698,-165 448.2473,-124.2623 444.8327,-93.8583\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.9133,-86.7715 447.9378,-93.308 444.3636,-90.2424 444.814,-93.7133 444.814,-93.7133 444.814,-93.7133 444.3636,-90.2424 441.6902,-94.1186 443.9133,-86.7715 443.9133,-86.7715\"/>\n",
"<text text-anchor=\"start\" x=\"435.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"423.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"439.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=\"#000000\" d=\"M114.9802,-98C126.0352,-98 140.2622,-98 152.3609,-98\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-98 152.5716,-101.1501 156.0716,-98 152.5716,-98.0001 152.5716,-98.0001 152.5716,-98.0001 156.0716,-98 152.5716,-94.8501 159.5716,-98 159.5716,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M247.6658,-110.6757C244.3631,-108.2393 236.8511,-103.1037 229.6,-101 221.1365,-98.5446 211.5812,-97.5239 202.9917,-97.2014\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.7438,-97.0792 202.796,-94.0477 199.2433,-97.1382 202.7428,-97.1973 202.7428,-97.1973 202.7428,-97.1973 199.2433,-97.1382 202.6897,-100.3468 195.7438,-97.0792 195.7438,-97.0792\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"308.7\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.7\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M251.373,-112C256.4129,-112 270.269,-112 283.0957,-112\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"290.4545,-112 283.4546,-115.1501 286.9545,-112 283.4545,-112.0001 283.4545,-112.0001 283.4545,-112.0001 286.9545,-112 283.4545,-108.8501 290.4545,-112 290.4545,-112\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" 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=\"#000000\" d=\"M327.0663,-112C341.9861,-112 362.3911,-112 373.9818,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"374.1146,-114.4501 381.1145,-112 374.1145,-109.5501 374.1146,-114.4501\"/>\n",
"<text text-anchor=\"start\" x=\"349.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"347.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=\"#000000\" d=\"M382.5185,-113.9135C380.9376,-119.7373 375.2987,-137.2587 363.2,-144 305.1071,-176.3692 273.5362,-169.8131 213.6,-141 204.2301,-136.4956 196.4134,-128.2676 190.4844,-120.206\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"186.3239,-114.1381 192.8804,-118.1301 188.3032,-117.0247 190.2824,-119.9114 190.2824,-119.9114 190.2824,-119.9114 188.3032,-117.0247 187.6844,-121.6927 186.3239,-114.1381 186.3239,-114.1381\"/>\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=\"#000000\" d=\"M384.8898,-110.5693C390.2649,-106.5001 406.1095,-94.5051 419.4051,-84.4398\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"425.2878,-79.9864 421.608,-86.723 422.4972,-82.0989 419.7067,-84.2115 419.7067,-84.2115 419.7067,-84.2115 422.4972,-82.0989 417.8054,-81.7 425.2878,-79.9864 425.2878,-79.9864\"/>\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 0x7f2950267b40> >"
]
},
"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": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 822.00 376.00\" width=\"822pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 818,-372 818,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"33.5,-311 33.5,-332 88.5,-332 88.5,-311 33.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"33.5,-311 88.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"45.5\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"88.5,-311 88.5,-332 101.5,-332 101.5,-311 88.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"88.5,-311 101.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"101.5,-311 114.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"114.5,-311 127.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-317.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"127.5,-311 127.5,-332 140.5,-332 140.5,-311 127.5,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"127.5,-311 140.5,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-317.8\">3</text>\n",
"<polygon fill=\"none\" points=\"33.5,-290 33.5,-311 88.5,-311 88.5,-290 33.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"48.5\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-296.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-296.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-296.8\">9</text>\n",
"<polygon fill=\"none\" points=\"33.5,-269 33.5,-290 88.5,-290 88.5,-269 33.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"36.5\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-275.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-275.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-275.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-275.8\">9</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"174.5,-343 174.5,-364 235.5,-364 235.5,-343 174.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"174.5,-343 235.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"189.5\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"235.5,-343 235.5,-364 278.5,-364 278.5,-343 235.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"235.5,-343 278.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"278.5,-343 278.5,-364 325.5,-364 325.5,-343 278.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"278.5,-343 325.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-343 325.5,-364 368.5,-364 368.5,-343 325.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"325.5,-343 368.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"368.5,-343 368.5,-364 415.5,-364 415.5,-343 368.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"368.5,-343 415.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-343 415.5,-364 458.5,-364 458.5,-343 415.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"415.5,-343 458.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"458.5,-343 458.5,-364 495.5,-364 495.5,-343 458.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"458.5,-343 495.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"495.5,-343 495.5,-364 515.5,-364 515.5,-343 495.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"495.5,-343 515.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"515.5,-343 515.5,-364 542.5,-364 542.5,-343 515.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"515.5,-343 542.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"542.5,-343 542.5,-364 569.5,-364 569.5,-343 542.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"542.5,-343 569.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-349.8\">9</text>\n",
"<polygon fill=\"none\" points=\"174.5,-322 174.5,-343 235.5,-343 235.5,-322 174.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"191.5\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"235.5,-322 235.5,-343 278.5,-343 278.5,-322 235.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"278.5,-322 278.5,-343 325.5,-343 325.5,-322 278.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"325.5,-322 325.5,-343 368.5,-343 368.5,-322 325.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"368.5,-322 368.5,-343 415.5,-343 415.5,-322 368.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"415.5,-322 415.5,-343 458.5,-343 458.5,-322 415.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"458.5,-322 458.5,-343 495.5,-343 495.5,-322 458.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"495.5,-322 495.5,-343 515.5,-343 515.5,-322 495.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"515.5,-322 515.5,-343 542.5,-343 542.5,-322 515.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"542.5,-322 542.5,-343 569.5,-343 569.5,-322 542.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"550.5\" y=\"-328.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"174.5,-301 174.5,-322 235.5,-322 235.5,-301 174.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"195.5\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"235.5,-301 235.5,-322 278.5,-322 278.5,-301 235.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"246.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"278.5,-301 278.5,-322 325.5,-322 325.5,-301 278.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"325.5,-301 325.5,-322 368.5,-322 368.5,-301 325.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"336.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"368.5,-301 368.5,-322 415.5,-322 415.5,-301 368.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"415.5,-301 415.5,-322 458.5,-322 458.5,-301 415.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"426.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"458.5,-301 458.5,-322 495.5,-322 495.5,-301 458.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461.5\" y=\"-307.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"495.5,-301 495.5,-322 515.5,-322 515.5,-301 495.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"498.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"515.5,-301 515.5,-322 542.5,-322 542.5,-301 515.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"518.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"542.5,-301 542.5,-322 569.5,-322 569.5,-301 542.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"545.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"174.5,-280 174.5,-301 235.5,-301 235.5,-280 174.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"521.5\" y=\"-286.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548.5\" y=\"-286.8\">~3</text>\n",
"<polygon fill=\"none\" points=\"174.5,-259 174.5,-280 235.5,-280 235.5,-259 174.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"none\" points=\"458.5,-259 458.5,-280 495.5,-280 495.5,-259 458.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"495.5,-259 495.5,-280 515.5,-280 515.5,-259 495.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"515.5,-259 515.5,-280 542.5,-280 542.5,-259 515.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"542.5,-259 542.5,-280 569.5,-280 569.5,-259 542.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"174.5,-238 174.5,-259 235.5,-259 235.5,-238 174.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"253.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"388.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"433.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"473.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502\" y=\"-244.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-244.8\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>dests</title>\n",
"<polygon fill=\"#ffc0cb\" points=\"603.5,-301 603.5,-322 652.5,-322 652.5,-301 603.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"603.5,-301 652.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"614\" y=\"-307.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"652.5,-301 652.5,-322 673.5,-322 673.5,-301 652.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"652.5,-301 673.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"655.5\" y=\"-307.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"673.5,-301 686.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"686.5,-301 699.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"699.5,-301 699.5,-322 720.5,-322 720.5,-301 699.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"699.5,-301 720.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"702.5\" y=\"-307.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"720.5,-301 733.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"733.5,-301 746.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"746.5,-301 746.5,-322 767.5,-322 767.5,-301 746.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"746.5,-301 767.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"749.5\" y=\"-307.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"767.5,-301 780.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"780.5,-301 793.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"793.5,-301 806.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"603.5,-280 603.5,-301 652.5,-301 652.5,-280 603.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"606.5\" y=\"-286.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"652.5,-280 652.5,-301 673.5,-301 673.5,-280 652.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"656\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"676.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"689.5\" y=\"-286.8\">3</text>\n",
"<polygon fill=\"none\" points=\"699.5,-280 699.5,-301 720.5,-301 720.5,-280 699.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"703\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"723.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"736.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"746.5,-280 746.5,-301 767.5,-301 767.5,-280 746.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"750\" y=\"-286.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"767.5,-280 767.5,-301 780.5,-301 780.5,-280 767.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"767.5,-280 767.5,-301 780.5,-301 780.5,-280 767.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"770.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"780.5,-280 780.5,-301 793.5,-301 793.5,-280 780.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"780.5,-280 780.5,-301 793.5,-301 793.5,-280 780.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"783.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"793.5,-280 793.5,-301 806.5,-301 806.5,-280 793.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"793.5,-280 793.5,-301 806.5,-301 806.5,-280 793.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"796.5\" y=\"-286.8\">2</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">~6</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-66.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-47.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-28.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-9.8\">maybe</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"466pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 465.71 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(.9945 .9945) rotate(0) translate(4 358)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-358 464.3,-358 464.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"178.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"203.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"219.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"262.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"278.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"201.15\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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=\"#000000\" d=\"M1.1821,-91C4.6508,-91 20.5694,-91 30.8552,-91\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-93.4501 37.9898,-91 30.9898,-88.5501 30.9898,-93.4501\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.6817,-91.3648C50.2252,-93.0444 86.176,-100.3649 114.6,-110 128.166,-114.5986 142.9035,-120.8422 154.7114,-126.1672\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-129.1769 153.6182,-129.1309 158.1111,-127.7215 154.928,-126.2662 154.928,-126.2662 154.928,-126.2662 158.1111,-127.7215 156.2378,-123.4014 161.2942,-129.1769 161.2942,-129.1769\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"439.8\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"439.8\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M40.0208,-89.0993C41.6528,-76.0314 53.0208,0 96.6,0 96.6,0 96.6,0 383,0 404.8423,0 420.5555,-21.1797 429.8427,-38.7812\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.973,-45.0582 427.0301,-40.1997 431.411,-41.9261 429.849,-38.794 429.849,-38.794 429.849,-38.794 431.411,-41.9261 432.6679,-37.3882 432.973,-45.0582 432.973,-45.0582\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.2041,-92.1371C46.107,-96.1078 62.9194,-109.7235 76.7491,-120.9235\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-125.5405 75.0277,-123.5829 79.7301,-123.3378 77.0102,-121.135 77.0102,-121.135 77.0102,-121.135 79.7301,-123.3378 78.9927,-118.6871 82.45,-125.5405 82.45,-125.5405\"/>\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=\"#000000\" d=\"M170.5688,-153.6641C169.0063,-163.625 171.35,-173 177.6,-173 182.2875,-173 184.7777,-167.7266 185.0707,-160.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"184.6313,-153.6641 188.2006,-160.4598 184.8438,-157.1576 185.0564,-160.6511 185.0564,-160.6511 185.0564,-160.6511 184.8438,-157.1576 181.9122,-160.8425 184.6313,-153.6641 184.6313,-153.6641\"/>\n",
"<text text-anchor=\"start\" x=\"159.1\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M182.0004,-154.6171C192.4647,-194.4493 220.1543,-288 249.4,-288 249.4,-288 249.4,-288 383,-288 424.0278,-288 435.6984,-146.136 438.7766,-87.2016\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.126,-80.1125 441.9275,-87.2591 438.9537,-83.6083 438.7813,-87.104 438.7813,-87.104 438.7813,-87.104 438.9537,-83.6083 435.6351,-86.9489 439.126,-80.1125 439.126,-80.1125\"/>\n",
"<text text-anchor=\"start\" x=\"288.2\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.7\" 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=\"#000000\" 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=\"#000000\" d=\"M195.6361,-133.1658C206.2288,-131.8874 219.4801,-132.0523 229.6,-138 238.866,-143.4458 244.2215,-155.0413 246.9731,-163.1698\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"244.6467,-163.9441 248.9528,-169.9823 249.352,-162.5767 244.6467,-163.9441\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M423.2434,-54.749C412.0927,-50.5156 396.933,-46 383,-46 249.4,-46 249.4,-46 249.4,-46 215.4091,-46 195.0158,-85.6144 185.0739,-112.5688\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"182.6568,-119.4543 182.0033,-111.806 183.8161,-116.1519 184.9754,-112.8494 184.9754,-112.8494 184.9754,-112.8494 183.8161,-116.1519 187.9476,-113.8928 182.6568,-119.4543 182.6568,-119.4543\"/>\n",
"<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"300.7\" 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=\"#000000\" d=\"M437.6291,-80.1527C437.2951,-89.5391 438.0188,-98 439.8,-98 441.1081,-98 441.8458,-93.437 442.0132,-87.2953\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"441.9709,-80.1527 445.1624,-87.1339 441.9917,-83.6526 442.0124,-87.1526 442.0124,-87.1526 442.0124,-87.1526 441.9917,-83.6526 438.8625,-87.1713 441.9709,-80.1527 441.9709,-80.1527\"/>\n",
"<text text-anchor=\"start\" x=\"419.3\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"431.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=\"#000000\" d=\"M436.425,-79.9063C434.175,-101 435.3,-128 439.8,-128 443.8078,-128 445.1385,-106.5833 443.7922,-86.9965\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.175,-79.9063 446.9202,-86.6067 443.4785,-83.3931 443.7821,-86.8799 443.7821,-86.8799 443.7821,-86.8799 443.4785,-83.3931 440.644,-87.1531 443.175,-79.9063 443.175,-79.9063\"/>\n",
"<text text-anchor=\"start\" x=\"421.3\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"431.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=\"#000000\" d=\"M435.6867,-79.7715C431.1164,-110.4688 432.4875,-158 439.8,-158 446.5698,-158 448.2473,-117.2623 444.8327,-86.8583\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.9133,-79.7715 447.9378,-86.308 444.3636,-83.2424 444.814,-86.7133 444.814,-86.7133 444.814,-86.7133 444.3636,-83.2424 441.6902,-87.1186 443.9133,-79.7715 443.9133,-79.7715\"/>\n",
"<text text-anchor=\"start\" x=\"435.3\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"423.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"439.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=\"#000000\" d=\"M114.9802,-137C126.0352,-137 140.2622,-137 152.3609,-137\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-137 152.5716,-140.1501 156.0716,-137 152.5716,-137.0001 152.5716,-137.0001 152.5716,-137.0001 156.0716,-137 152.5716,-133.8501 159.5716,-137 159.5716,-137\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M247.3538,-172.1791C241.7053,-172.5899 225.5245,-173.1982 213.6,-168 206.7953,-165.0337 200.3257,-160.3215 194.7967,-155.4578\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.6035,-150.6025 196.8681,-153.0821 192.1601,-152.9928 194.7168,-155.3831 194.7168,-155.3831 194.7168,-155.3831 192.1601,-152.9928 192.5655,-157.6841 189.6035,-150.6025 189.6035,-150.6025\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"308.7\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"308.7\" y=\"-168.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M251.373,-172C256.4129,-172 270.269,-172 283.0957,-172\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"290.4545,-172 283.4546,-175.1501 286.9545,-172 283.4545,-172.0001 283.4545,-172.0001 283.4545,-172.0001 286.9545,-172 283.4545,-168.8501 290.4545,-172 290.4545,-172\"/>\n",
"</g>\n",
"<!-- &#45;4 -->\n",
"<g id=\"node8\" class=\"node\">\n",
"<title>&#45;4</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" 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=\"#000000\" d=\"M320.6376,-158.1826C336.7128,-139.576 364.7131,-107.1666 376.967,-92.983\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"378.874,-94.5233 381.5964,-87.6246 375.1661,-91.3198 378.874,-94.5233\"/>\n",
"<text text-anchor=\"start\" x=\"349.7\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"347.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=\"#000000\" cx=\"383\" 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=\"#000000\" d=\"M326.3169,-167.7816C337.7469,-166.0737 352.4568,-165.913 363.2,-173 374.9995,-180.7838 379.8465,-197.4246 381.7798,-207.8634\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"379.3637,-208.2742 382.8071,-214.8428 384.2115,-207.5606 379.3637,-208.2742\"/>\n",
"<text text-anchor=\"start\" x=\"350.7\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"347.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=\"#000000\" d=\"M381.0289,-86.4894C364.7993,-90.5192 252.5631,-118.387 202.0919,-130.9188\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.1123,-132.6518 201.1469,-127.9077 198.5091,-131.8083 201.906,-130.9648 201.906,-130.9648 201.906,-130.9648 198.5091,-131.8083 202.6651,-134.022 195.1123,-132.6518 195.1123,-132.6518\"/>\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=\"#000000\" d=\"M384.8898,-85.2015C389.8598,-83.1015 403.7805,-77.2195 416.3608,-71.9039\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"423.1467,-69.0366 417.9247,-74.6628 419.9227,-70.3989 416.6987,-71.7612 416.6987,-71.7612 416.6987,-71.7612 419.9227,-70.3989 415.4726,-68.8596 423.1467,-69.0366 423.1467,-69.0366\"/>\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=\"#000000\" d=\"M381.052,-217.4611C375.6542,-218.6747 360.0549,-221.7472 347.2,-220 286.1485,-211.7022 264.8493,-217.2002 213.6,-183 204.279,-176.7798 196.2974,-167.359 190.2355,-158.6595\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"186.3526,-152.8001 192.8452,-156.8951 188.286,-155.7177 190.2195,-158.6352 190.2195,-158.6352 190.2195,-158.6352 188.286,-155.7177 187.5937,-160.3753 186.3526,-152.8001 186.3526,-152.8001\"/>\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=\"#000000\" d=\"M380.9628,-216.4422C375.3371,-214.8527 359.2093,-209.9615 347.2,-203 340.5181,-199.1267 333.776,-194.1453 327.8418,-189.3137\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"322.2091,-184.5786 329.5944,-186.6718 324.8883,-186.8309 327.5674,-189.0831 327.5674,-189.0831 327.5674,-189.0831 324.8883,-186.8309 325.5404,-191.4943 322.2091,-184.5786 322.2091,-184.5786\"/>\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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"262pt\" viewBox=\"0.00 0.00 908.00 262.00\" width=\"908pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 258)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-258 904,-258 904,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"29.5,-197 29.5,-218 84.5,-218 84.5,-197 29.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"29.5,-197 84.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"41.5\" y=\"-203.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"84.5,-197 84.5,-218 97.5,-218 97.5,-197 84.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"84.5,-197 97.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-203.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"97.5,-197 97.5,-218 110.5,-218 110.5,-197 97.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"97.5,-197 110.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-203.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"110.5,-197 110.5,-218 123.5,-218 123.5,-197 110.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"110.5,-197 123.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-203.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"123.5,-197 123.5,-218 143.5,-218 143.5,-197 123.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"123.5,-197 143.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130\" y=\"-203.8\">3</text>\n",
"<polygon fill=\"none\" points=\"29.5,-176 29.5,-197 84.5,-197 84.5,-176 29.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"44.5\" y=\"-182.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-182.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-182.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-182.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130\" y=\"-182.8\">9</text>\n",
"<polygon fill=\"none\" points=\"29.5,-155 29.5,-176 84.5,-176 84.5,-155 29.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"32.5\" y=\"-161.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-161.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-161.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-161.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"126.5\" y=\"-161.8\">10</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"178.5,-229 178.5,-250 239.5,-250 239.5,-229 178.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"178.5,-229 239.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"193.5\" y=\"-235.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"239.5,-229 239.5,-250 282.5,-250 282.5,-229 239.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"239.5,-229 282.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"257.5\" y=\"-235.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-229 282.5,-250 329.5,-250 329.5,-229 282.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"282.5,-229 329.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"302.5\" y=\"-235.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"329.5,-229 329.5,-250 372.5,-250 372.5,-229 329.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"329.5,-229 372.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"347.5\" y=\"-235.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-229 372.5,-250 419.5,-250 419.5,-229 372.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"372.5,-229 419.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-235.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"419.5,-229 419.5,-250 462.5,-250 462.5,-229 419.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"419.5,-229 462.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"437.5\" y=\"-235.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"462.5,-229 462.5,-250 499.5,-250 499.5,-229 462.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"462.5,-229 499.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-235.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"499.5,-229 499.5,-250 519.5,-250 519.5,-229 499.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"499.5,-229 519.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"506\" y=\"-235.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"519.5,-229 519.5,-250 546.5,-250 546.5,-229 519.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"519.5,-229 546.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"529.5\" y=\"-235.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"546.5,-229 546.5,-250 573.5,-250 573.5,-229 546.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"546.5,-229 573.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"556.5\" y=\"-235.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"573.5,-229 573.5,-250 601.5,-250 601.5,-229 573.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"573.5,-229 601.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"580.5\" y=\"-235.8\">10</text>\n",
"<polygon fill=\"none\" points=\"178.5,-208 178.5,-229 239.5,-229 239.5,-208 178.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"195.5\" y=\"-214.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"239.5,-208 239.5,-229 282.5,-229 282.5,-208 239.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"282.5,-208 282.5,-229 329.5,-229 329.5,-208 282.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"329.5,-208 329.5,-229 372.5,-229 372.5,-208 329.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"372.5,-208 372.5,-229 419.5,-229 419.5,-208 372.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"375.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"419.5,-208 419.5,-229 462.5,-229 462.5,-208 419.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422.5\" y=\"-214.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"462.5,-208 462.5,-229 499.5,-229 499.5,-208 462.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"499.5,-208 499.5,-229 519.5,-229 519.5,-208 499.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"506\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"519.5,-208 519.5,-229 546.5,-229 546.5,-208 519.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"529.5\" y=\"-214.8\">a</text>\n",
"<polygon fill=\"none\" points=\"546.5,-208 546.5,-229 573.5,-229 573.5,-208 546.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"554.5\" y=\"-214.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"573.5,-208 573.5,-229 601.5,-229 601.5,-208 573.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"584\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"178.5,-187 178.5,-208 239.5,-208 239.5,-187 178.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"199.5\" y=\"-193.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"239.5,-187 239.5,-208 282.5,-208 282.5,-187 239.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"250.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"282.5,-187 282.5,-208 329.5,-208 329.5,-187 282.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"329.5,-187 329.5,-208 372.5,-208 372.5,-187 329.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"372.5,-187 372.5,-208 419.5,-208 419.5,-187 372.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"385.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"419.5,-187 419.5,-208 462.5,-208 462.5,-187 419.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"462.5,-187 462.5,-208 499.5,-208 499.5,-187 462.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"465.5\" y=\"-193.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"499.5,-187 499.5,-208 519.5,-208 519.5,-187 499.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"502.5\" y=\"-193.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"519.5,-187 519.5,-208 546.5,-208 546.5,-187 519.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"522.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"546.5,-187 546.5,-208 573.5,-208 573.5,-187 546.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"549.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"573.5,-187 573.5,-208 601.5,-208 601.5,-187 573.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"577\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"178.5,-166 178.5,-187 239.5,-187 239.5,-166 178.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-172.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"239.5,-166 239.5,-187 282.5,-187 282.5,-166 239.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-166 239.5,-187 282.5,-187 282.5,-166 239.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"257.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-166 282.5,-187 329.5,-187 329.5,-166 282.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-166 282.5,-187 329.5,-187 329.5,-166 282.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"302.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"329.5,-166 329.5,-187 372.5,-187 372.5,-166 329.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"329.5,-166 329.5,-187 372.5,-187 372.5,-166 329.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"347.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-166 372.5,-187 419.5,-187 419.5,-166 372.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-166 372.5,-187 419.5,-187 419.5,-166 372.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"419.5,-166 419.5,-187 462.5,-187 462.5,-166 419.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"419.5,-166 419.5,-187 462.5,-187 462.5,-166 419.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"437.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"462.5,-166 462.5,-187 499.5,-187 499.5,-166 462.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"462.5,-166 462.5,-187 499.5,-187 499.5,-166 462.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"499.5,-166 499.5,-187 519.5,-187 519.5,-166 499.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"499.5,-166 499.5,-187 519.5,-187 519.5,-166 499.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"506\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"519.5,-166 519.5,-187 546.5,-187 546.5,-166 519.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"519.5,-166 519.5,-187 546.5,-187 546.5,-166 519.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-172.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"546.5,-166 546.5,-187 573.5,-187 573.5,-166 546.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"546.5,-166 546.5,-187 573.5,-187 573.5,-166 546.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552.5\" y=\"-172.8\">~3</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"573.5,-166 573.5,-187 601.5,-187 601.5,-166 573.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"573.5,-166 573.5,-187 601.5,-187 601.5,-166 573.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"576.5\" y=\"-172.8\">~10</text>\n",
"<polygon fill=\"none\" points=\"178.5,-145 178.5,-166 239.5,-166 239.5,-145 178.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"181.5\" y=\"-151.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"239.5,-145 239.5,-166 282.5,-166 282.5,-145 239.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-145 239.5,-166 282.5,-166 282.5,-145 239.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"257.5\" y=\"-151.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-145 282.5,-166 329.5,-166 329.5,-145 282.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-145 282.5,-166 329.5,-166 329.5,-145 282.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"302.5\" y=\"-151.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"329.5,-145 329.5,-166 372.5,-166 372.5,-145 329.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"329.5,-145 329.5,-166 372.5,-166 372.5,-145 329.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"347.5\" y=\"-151.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-145 372.5,-166 419.5,-166 419.5,-145 372.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-145 372.5,-166 419.5,-166 419.5,-145 372.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-151.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"419.5,-145 419.5,-166 462.5,-166 462.5,-145 419.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"419.5,-145 419.5,-166 462.5,-166 462.5,-145 419.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"437.5\" y=\"-151.8\">6</text>\n",
"<polygon fill=\"none\" points=\"462.5,-145 462.5,-166 499.5,-166 499.5,-145 462.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"499.5,-145 499.5,-166 519.5,-166 519.5,-145 499.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"506\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"519.5,-145 519.5,-166 546.5,-166 546.5,-145 519.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"529.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"546.5,-145 546.5,-166 573.5,-166 573.5,-145 546.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"546.5,-145 546.5,-166 573.5,-166 573.5,-145 546.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"553\" y=\"-151.8\">10</text>\n",
"<polygon fill=\"none\" points=\"573.5,-145 573.5,-166 601.5,-166 601.5,-145 573.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"584\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"178.5,-124 178.5,-145 239.5,-145 239.5,-124 178.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-130.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"239.5,-124 239.5,-145 282.5,-145 282.5,-124 239.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-124 239.5,-145 282.5,-145 282.5,-124 239.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"257.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-124 282.5,-145 329.5,-145 329.5,-124 282.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-124 282.5,-145 329.5,-145 329.5,-124 282.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"302.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"329.5,-124 329.5,-145 372.5,-145 372.5,-124 329.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"329.5,-124 329.5,-145 372.5,-145 372.5,-124 329.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"347.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-124 372.5,-145 419.5,-145 419.5,-124 372.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-124 372.5,-145 419.5,-145 419.5,-124 372.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"419.5,-124 419.5,-145 462.5,-145 462.5,-124 419.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"419.5,-124 419.5,-145 462.5,-145 462.5,-124 419.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"437.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"462.5,-124 462.5,-145 499.5,-145 499.5,-124 462.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"462.5,-124 462.5,-145 499.5,-145 499.5,-124 462.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"499.5,-124 499.5,-145 519.5,-145 519.5,-124 499.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"499.5,-124 499.5,-145 519.5,-145 519.5,-124 499.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"506\" y=\"-130.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"519.5,-124 519.5,-145 546.5,-145 546.5,-124 519.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"519.5,-124 519.5,-145 546.5,-145 546.5,-124 519.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"529.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"546.5,-124 546.5,-145 573.5,-145 573.5,-124 546.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"546.5,-124 546.5,-145 573.5,-145 573.5,-124 546.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"556.5\" y=\"-130.8\">3</text>\n",
"<polygon fill=\"#ffff00\" points=\"573.5,-124 573.5,-145 601.5,-145 601.5,-124 573.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"573.5,-124 573.5,-145 601.5,-145 601.5,-124 573.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"584\" y=\"-130.8\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>dests</title>\n",
"<polygon fill=\"#ffc0cb\" points=\"635.5,-187 635.5,-208 684.5,-208 684.5,-187 635.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"635.5,-187 684.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"646\" y=\"-193.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"684.5,-187 684.5,-208 705.5,-208 705.5,-187 684.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"684.5,-187 705.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"687.5\" y=\"-193.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"705.5,-187 718.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"718.5,-187 731.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"731.5,-187 731.5,-208 752.5,-208 752.5,-187 731.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"731.5,-187 752.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"734.5\" y=\"-193.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"752.5,-187 765.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"765.5,-187 778.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"778.5,-187 778.5,-208 799.5,-208 799.5,-187 778.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"778.5,-187 799.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"781.5\" y=\"-193.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"799.5,-187 812.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"812.5,-187 825.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"825.5,-187 838.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"838.5,-187 838.5,-208 866.5,-208 866.5,-187 838.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"838.5,-187 866.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"841.5\" y=\"-193.8\">~10</text>\n",
"<polyline fill=\"none\" points=\"866.5,-187 879.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"879.5,-187 892.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"635.5,-166 635.5,-187 684.5,-187 684.5,-166 635.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"638.5\" y=\"-172.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"684.5,-166 684.5,-187 705.5,-187 705.5,-166 684.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"688\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"705.5,-166 705.5,-187 718.5,-187 718.5,-166 705.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"705.5,-166 705.5,-187 718.5,-187 718.5,-166 705.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"708.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"718.5,-166 718.5,-187 731.5,-187 731.5,-166 718.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"718.5,-166 718.5,-187 731.5,-187 731.5,-166 718.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"721.5\" y=\"-172.8\">3</text>\n",
"<polygon fill=\"none\" points=\"731.5,-166 731.5,-187 752.5,-187 752.5,-166 731.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"735\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"752.5,-166 752.5,-187 765.5,-187 765.5,-166 752.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"752.5,-166 752.5,-187 765.5,-187 765.5,-166 752.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"755.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"765.5,-166 765.5,-187 778.5,-187 778.5,-166 765.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"765.5,-166 765.5,-187 778.5,-187 778.5,-166 765.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"768.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"none\" points=\"778.5,-166 778.5,-187 799.5,-187 799.5,-166 778.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"782\" y=\"-172.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"799.5,-166 799.5,-187 812.5,-187 812.5,-166 799.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"799.5,-166 799.5,-187 812.5,-187 812.5,-166 799.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"802.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"812.5,-166 812.5,-187 825.5,-187 825.5,-166 812.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"812.5,-166 812.5,-187 825.5,-187 825.5,-166 812.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"815.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"825.5,-166 825.5,-187 838.5,-187 838.5,-166 825.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"825.5,-166 825.5,-187 838.5,-187 838.5,-166 825.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"828.5\" y=\"-172.8\">2</text>\n",
"<polygon fill=\"none\" points=\"838.5,-166 838.5,-187 866.5,-187 866.5,-166 838.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"845.5\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"866.5,-166 866.5,-187 879.5,-187 879.5,-166 866.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"866.5,-166 866.5,-187 879.5,-187 879.5,-166 866.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"869.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"879.5,-166 879.5,-187 892.5,-187 892.5,-166 879.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"879.5,-166 879.5,-187 892.5,-187 892.5,-166 879.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"882.5\" y=\"-172.8\">3</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">init_state:</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"76.5,-61 76.5,-80 165.5,-80 165.5,-61 76.5,-61\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">~6</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-47.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-47.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-28.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-28.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-9.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-9.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"483pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 483.30 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 1) rotate(0) translate(4 274)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-274 479.3,-274 479.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"185.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"210.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"226.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"269.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"285.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"208.65\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
"<!-- I -->\n",
"<!-- &#45;7 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>&#45;7</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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=\"#000000\" d=\"M1.1821,-52C4.6508,-52 20.5694,-52 30.8552,-52\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-54.4501 37.9898,-52 30.9898,-49.5501 30.9898,-54.4501\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.6817,-52.3648C50.2252,-54.0444 86.176,-61.3649 114.6,-71 128.166,-75.5986 142.9035,-81.8422 154.7114,-87.1672\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-90.1769 153.6182,-90.1309 158.1111,-88.7215 154.928,-87.2662 154.928,-87.2662 154.928,-87.2662 158.1111,-88.7215 156.2378,-84.4014 161.2942,-90.1769 161.2942,-90.1769\"/>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"454.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"454.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M40.5959,-50.2699C44.8775,-41.2471 66.1176,0 96.6,0 96.6,0 96.6,0 398,0 421.9769,0 437.7037,-25.1421 446.404,-45.0729\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"449.0869,-51.5884 443.5088,-46.3151 447.7542,-48.352 446.4215,-45.1157 446.4215,-45.1157 446.4215,-45.1157 447.7542,-48.352 449.3343,-43.9162 449.0869,-51.5884 449.0869,-51.5884\"/>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>2</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" 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\" fill=\"#000000\">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=\"#000000\" d=\"M41.2041,-53.1371C46.107,-57.1078 62.9194,-70.7235 76.7491,-81.9235\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-86.5405 75.0277,-84.5829 79.7301,-84.3378 77.0102,-82.135 77.0102,-82.135 77.0102,-82.135 79.7301,-84.3378 78.9927,-79.6871 82.45,-86.5405 82.45,-86.5405\"/>\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=\"#000000\" d=\"M170.5688,-114.6641C169.0063,-124.625 171.35,-134 177.6,-134 182.2875,-134 184.7777,-128.7266 185.0707,-121.8876\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"184.6313,-114.6641 188.2006,-121.4598 184.8438,-118.1576 185.0564,-121.6511 185.0564,-121.6511 185.0564,-121.6511 184.8438,-118.1576 181.9122,-121.8425 184.6313,-114.6641 184.6313,-114.6641\"/>\n",
"<text text-anchor=\"start\" x=\"159.1\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M181.1474,-115.9815C188.2755,-146.2237 207.3907,-204 249.4,-204 249.4,-204 249.4,-204 398,-204 421.6982,-204 440.9991,-132.4288 449.7425,-93.5111\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"451.2509,-86.6489 452.8245,-94.162 450.4994,-90.0673 449.748,-93.4857 449.748,-93.4857 449.748,-93.4857 450.4994,-90.0673 446.6714,-92.8094 451.2509,-86.6489 451.2509,-86.6489\"/>\n",
"<text text-anchor=\"start\" x=\"303.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.7\" 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=\"#000000\" 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=\"#000000\" d=\"M195.7182,-97.4953C209.9987,-97.0975 229.3013,-96.5599 240.4454,-96.2494\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"240.6692,-98.6942 247.5983,-96.0502 240.5327,-93.7961 240.6692,-98.6942\"/>\n",
"<text text-anchor=\"start\" x=\"218.1\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M439.5565,-59.1124C428.4854,-52.8787 412.8944,-46 398,-46 249.4,-46 249.4,-46 249.4,-46 226.8449,-46 206.5844,-63.0403 193.3827,-77.6115\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"188.5096,-83.238 190.7113,-75.8844 190.801,-80.5923 193.0924,-77.9466 193.0924,-77.9466 193.0924,-77.9466 190.801,-80.5923 195.4735,-80.0089 188.5096,-83.238 188.5096,-83.238\"/>\n",
"<text text-anchor=\"start\" x=\"305.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"315.7\" 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=\"#000000\" d=\"M452.6291,-87.1527C452.2951,-96.5391 453.0188,-105 454.8,-105 456.1081,-105 456.8458,-100.437 457.0132,-94.2953\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"456.9709,-87.1527 460.1624,-94.1339 456.9917,-90.6526 457.0124,-94.1526 457.0124,-94.1526 457.0124,-94.1526 456.9917,-90.6526 453.8625,-94.1713 456.9709,-87.1527 456.9709,-87.1527\"/>\n",
"<text text-anchor=\"start\" x=\"434.3\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; !b</text>\n",
"<text text-anchor=\"start\" x=\"446.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=\"#000000\" d=\"M451.425,-86.9063C449.175,-108 450.3,-135 454.8,-135 458.8078,-135 460.1385,-113.5833 458.7922,-93.9965\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"458.175,-86.9063 461.9202,-93.6067 458.4785,-90.3931 458.7821,-93.8799 458.7821,-93.8799 458.7821,-93.8799 458.4785,-90.3931 455.644,-94.1531 458.175,-86.9063 458.175,-86.9063\"/>\n",
"<text text-anchor=\"start\" x=\"436.3\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a &amp; b</text>\n",
"<text text-anchor=\"start\" x=\"446.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=\"#000000\" d=\"M450.6867,-86.7715C446.1164,-117.4688 447.4875,-165 454.8,-165 461.5698,-165 463.2473,-124.2623 459.8327,-93.8583\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"458.9133,-86.7715 462.9378,-93.308 459.3636,-90.2424 459.814,-93.7133 459.814,-93.7133 459.814,-93.7133 459.3636,-90.2424 456.6902,-94.1186 458.9133,-86.7715 458.9133,-86.7715\"/>\n",
"<text text-anchor=\"start\" x=\"450.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
"<text text-anchor=\"start\" x=\"438.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"454.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=\"#000000\" d=\"M114.9802,-98C126.0352,-98 140.2622,-98 152.3609,-98\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-98 152.5716,-101.1501 156.0716,-98 152.5716,-98.0001 152.5716,-98.0001 152.5716,-98.0001 156.0716,-98 152.5716,-94.8501 159.5716,-98 159.5716,-98\"/>\n",
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M247.5625,-95.5006C244.0875,-94.585 236.2999,-92.67 229.6,-92 220.6987,-91.1099 210.9543,-91.7914 202.3314,-92.9676\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.395,-94.0483 201.8266,-89.8581 198.8532,-93.5094 202.3115,-92.9706 202.3115,-92.9706 202.3115,-92.9706 198.8532,-93.5094 202.7965,-96.0831 195.395,-94.0483 195.395,-94.0483\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g id=\"node7\" class=\"node\">\n",
"<title>3</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"323.7\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"323.7\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M251.3713,-95.4123C256.8287,-93.8751 272.5662,-90.0523 285.2,-93 290.8142,-94.3099 296.5502,-96.5626 301.822,-99.0688\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"308.2073,-102.3271 300.5404,-101.9512 305.0897,-100.7363 301.9722,-99.1454 301.9722,-99.1454 301.9722,-99.1454 305.0897,-100.7363 303.404,-96.3396 308.2073,-102.3271 308.2073,-102.3271\"/>\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=\"#000000\" d=\"M305.8797,-108.1625C290.7728,-104.9093 269.7549,-100.3833 258.0854,-97.8703\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"258.5956,-95.4741 251.2366,-96.3955 257.564,-100.2643 258.5956,-95.4741\"/>\n",
"<text text-anchor=\"start\" x=\"272.7\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" cx=\"398\" 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=\"#000000\" d=\"M342.0663,-112C356.9861,-112 377.3911,-112 388.9818,-112\"/>\n",
"<polygon fill=\"none\" stroke=\"#000000\" points=\"389.1146,-114.4501 396.1145,-112 389.1145,-109.5501 389.1146,-114.4501\"/>\n",
"<text text-anchor=\"start\" x=\"364.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
"<text text-anchor=\"start\" x=\"362.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=\"#000000\" d=\"M397.5185,-113.9135C395.9376,-119.7373 390.2987,-137.2587 378.2,-144 371.9881,-147.4613 369.3061,-144.2671 362.2,-144 346.4469,-143.408 229.9624,-137.4239 213.6,-130 206.7464,-126.8904 200.2623,-122.0122 194.735,-116.9932\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.5483,-111.9876 196.7727,-114.5821 192.0668,-114.4182 194.5852,-116.8487 194.5852,-116.8487 194.5852,-116.8487 192.0668,-114.4182 192.3977,-119.1153 189.5483,-111.9876 189.5483,-111.9876\"/>\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=\"#000000\" d=\"M399.8898,-110.5693C405.2649,-106.5001 421.1095,-94.5051 434.4051,-84.4398\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"440.2878,-79.9864 436.608,-86.723 437.4972,-82.0989 434.7067,-84.2115 434.7067,-84.2115 434.7067,-84.2115 437.4972,-82.0989 432.8054,-81.7 440.2878,-79.9864 440.2878,-79.9864\"/>\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 0x7f2950267b40> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"262pt\" viewBox=\"0.00 0.00 853.00 262.00\" width=\"853pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 258)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-258 849,-258 849,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"29.5,-197 29.5,-218 84.5,-218 84.5,-197 29.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"29.5,-197 84.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"41.5\" y=\"-203.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"84.5,-197 84.5,-218 97.5,-218 97.5,-197 84.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"84.5,-197 97.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-203.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"97.5,-197 97.5,-218 110.5,-218 110.5,-197 97.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"97.5,-197 110.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-203.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"110.5,-197 110.5,-218 123.5,-218 123.5,-197 110.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"110.5,-197 123.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-203.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"123.5,-197 123.5,-218 143.5,-218 143.5,-197 123.5,-197\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"123.5,-197 143.5,-197 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130\" y=\"-203.8\">3</text>\n",
"<polygon fill=\"none\" points=\"29.5,-176 29.5,-197 84.5,-197 84.5,-176 29.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"44.5\" y=\"-182.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-182.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-182.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-182.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130\" y=\"-182.8\">9</text>\n",
"<polygon fill=\"none\" points=\"29.5,-155 29.5,-176 84.5,-176 84.5,-155 29.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"32.5\" y=\"-161.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"87.5\" y=\"-161.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"100.5\" y=\"-161.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"113.5\" y=\"-161.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"126.5\" y=\"-161.8\">10</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"177.5,-229 177.5,-250 238.5,-250 238.5,-229 177.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"177.5,-229 238.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"192.5\" y=\"-235.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"238.5,-229 238.5,-250 281.5,-250 281.5,-229 238.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"238.5,-229 281.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-235.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"281.5,-229 281.5,-250 328.5,-250 328.5,-229 281.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"281.5,-229 328.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-235.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"328.5,-229 328.5,-250 355.5,-250 355.5,-229 328.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"328.5,-229 355.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-235.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"355.5,-229 355.5,-250 398.5,-250 398.5,-229 355.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"355.5,-229 398.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"373.5\" y=\"-235.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"398.5,-229 398.5,-250 445.5,-250 445.5,-229 398.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"398.5,-229 445.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-235.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"445.5,-229 445.5,-250 488.5,-250 488.5,-229 445.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"445.5,-229 488.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" y=\"-235.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"488.5,-229 488.5,-250 525.5,-250 525.5,-229 488.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"488.5,-229 525.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"503.5\" y=\"-235.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"525.5,-229 525.5,-250 545.5,-250 545.5,-229 525.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"525.5,-229 545.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-235.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"545.5,-229 545.5,-250 572.5,-250 572.5,-229 545.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"545.5,-229 572.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"555.5\" y=\"-235.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"572.5,-229 572.5,-250 599.5,-250 599.5,-229 572.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"572.5,-229 599.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"579\" y=\"-235.8\">10</text>\n",
"<polygon fill=\"none\" points=\"177.5,-208 177.5,-229 238.5,-229 238.5,-208 177.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"194.5\" y=\"-214.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"238.5,-208 238.5,-229 281.5,-229 281.5,-208 238.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"241.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"281.5,-208 281.5,-229 328.5,-229 328.5,-208 281.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"284.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"328.5,-208 328.5,-229 355.5,-229 355.5,-208 328.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-214.8\">a</text>\n",
"<polygon fill=\"none\" points=\"355.5,-208 355.5,-229 398.5,-229 398.5,-208 355.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"358.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"398.5,-208 398.5,-229 445.5,-229 445.5,-208 398.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"445.5,-208 445.5,-229 488.5,-229 488.5,-208 445.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"448.5\" y=\"-214.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"488.5,-208 488.5,-229 525.5,-229 525.5,-208 488.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"503.5\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"525.5,-208 525.5,-229 545.5,-229 545.5,-208 525.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"545.5,-208 545.5,-229 572.5,-229 572.5,-208 545.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"553.5\" y=\"-214.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"572.5,-208 572.5,-229 599.5,-229 599.5,-208 572.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"582.5\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"177.5,-187 177.5,-208 238.5,-208 238.5,-187 177.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"198.5\" y=\"-193.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"238.5,-187 238.5,-208 281.5,-208 281.5,-187 238.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"249.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"281.5,-187 281.5,-208 328.5,-208 328.5,-187 281.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"328.5,-187 328.5,-208 355.5,-208 355.5,-187 328.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"331.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"355.5,-187 355.5,-208 398.5,-208 398.5,-187 355.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"398.5,-187 398.5,-208 445.5,-208 445.5,-187 398.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"445.5,-187 445.5,-208 488.5,-208 488.5,-187 445.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"488.5,-187 488.5,-208 525.5,-208 525.5,-187 488.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"491.5\" y=\"-193.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"525.5,-187 525.5,-208 545.5,-208 545.5,-187 525.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528.5\" y=\"-193.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"545.5,-187 545.5,-208 572.5,-208 572.5,-187 545.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"572.5,-187 572.5,-208 599.5,-208 599.5,-187 572.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"575.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"177.5,-166 177.5,-187 238.5,-187 238.5,-166 177.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-172.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"238.5,-166 238.5,-187 281.5,-187 281.5,-166 238.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-166 238.5,-187 281.5,-187 281.5,-166 238.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"281.5,-166 281.5,-187 328.5,-187 328.5,-166 281.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281.5,-166 281.5,-187 328.5,-187 328.5,-166 281.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"328.5,-166 328.5,-187 355.5,-187 355.5,-166 328.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"328.5,-166 328.5,-187 355.5,-187 355.5,-166 328.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"334.5\" y=\"-172.8\">~0</text>\n",
"<polygon fill=\"#ffff00\" points=\"355.5,-166 355.5,-187 398.5,-187 398.5,-166 355.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"355.5,-166 355.5,-187 398.5,-187 398.5,-166 355.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"373.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"398.5,-166 398.5,-187 445.5,-187 445.5,-166 398.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398.5,-166 398.5,-187 445.5,-187 445.5,-166 398.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"445.5,-166 445.5,-187 488.5,-187 488.5,-166 445.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"445.5,-166 445.5,-187 488.5,-187 488.5,-166 445.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"488.5,-166 488.5,-187 525.5,-187 525.5,-166 488.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"488.5,-166 488.5,-187 525.5,-187 525.5,-166 488.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"503.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"525.5,-166 525.5,-187 545.5,-187 545.5,-166 525.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"525.5,-166 525.5,-187 545.5,-187 545.5,-166 525.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"545.5,-166 545.5,-187 572.5,-187 572.5,-166 545.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"545.5,-166 545.5,-187 572.5,-187 572.5,-166 545.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-172.8\">~3</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"572.5,-166 572.5,-187 599.5,-187 599.5,-166 572.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"572.5,-166 572.5,-187 599.5,-187 599.5,-166 572.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578.5\" y=\"-172.8\">~0</text>\n",
"<polygon fill=\"none\" points=\"177.5,-145 177.5,-166 238.5,-166 238.5,-145 177.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"180.5\" y=\"-151.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"238.5,-145 238.5,-166 281.5,-166 281.5,-145 238.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-145 238.5,-166 281.5,-166 281.5,-145 238.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-151.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"281.5,-145 281.5,-166 328.5,-166 328.5,-145 281.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281.5,-145 281.5,-166 328.5,-166 328.5,-145 281.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-151.8\">3</text>\n",
"<polygon fill=\"none\" points=\"328.5,-145 328.5,-166 355.5,-166 355.5,-145 328.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"355.5,-145 355.5,-166 398.5,-166 398.5,-145 355.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"355.5,-145 355.5,-166 398.5,-166 398.5,-145 355.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"373.5\" y=\"-151.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"398.5,-145 398.5,-166 445.5,-166 445.5,-145 398.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398.5,-145 398.5,-166 445.5,-166 445.5,-145 398.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-151.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"445.5,-145 445.5,-166 488.5,-166 488.5,-145 445.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"445.5,-145 445.5,-166 488.5,-166 488.5,-145 445.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" y=\"-151.8\">7</text>\n",
"<polygon fill=\"none\" points=\"488.5,-145 488.5,-166 525.5,-166 525.5,-145 488.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"503.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"525.5,-145 525.5,-166 545.5,-166 545.5,-145 525.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"545.5,-145 545.5,-166 572.5,-166 572.5,-145 545.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"545.5,-145 545.5,-166 572.5,-166 572.5,-145 545.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"552\" y=\"-151.8\">10</text>\n",
"<polygon fill=\"none\" points=\"572.5,-145 572.5,-166 599.5,-166 599.5,-145 572.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"582.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"177.5,-124 177.5,-145 238.5,-145 238.5,-124 177.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-130.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"238.5,-124 238.5,-145 281.5,-145 281.5,-124 238.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-124 238.5,-145 281.5,-145 281.5,-124 238.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"281.5,-124 281.5,-145 328.5,-145 328.5,-124 281.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281.5,-124 281.5,-145 328.5,-145 328.5,-124 281.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"328.5,-124 328.5,-145 355.5,-145 355.5,-124 328.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"328.5,-124 328.5,-145 355.5,-145 355.5,-124 328.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"355.5,-124 355.5,-145 398.5,-145 398.5,-124 355.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"355.5,-124 355.5,-145 398.5,-145 398.5,-124 355.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"373.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"398.5,-124 398.5,-145 445.5,-145 445.5,-124 398.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"398.5,-124 398.5,-145 445.5,-145 445.5,-124 398.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"445.5,-124 445.5,-145 488.5,-145 488.5,-124 445.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"445.5,-124 445.5,-145 488.5,-145 488.5,-124 445.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"488.5,-124 488.5,-145 525.5,-145 525.5,-124 488.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"488.5,-124 488.5,-145 525.5,-145 525.5,-124 488.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"503.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"525.5,-124 525.5,-145 545.5,-145 545.5,-124 525.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"525.5,-124 525.5,-145 545.5,-145 545.5,-124 525.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"532\" y=\"-130.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"545.5,-124 545.5,-145 572.5,-145 572.5,-124 545.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"545.5,-124 545.5,-145 572.5,-145 572.5,-124 545.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"555.5\" y=\"-130.8\">3</text>\n",
"<polygon fill=\"#ffff00\" points=\"572.5,-124 572.5,-145 599.5,-145 599.5,-124 572.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"572.5,-124 572.5,-145 599.5,-145 599.5,-124 572.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"582.5\" y=\"-130.8\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>dests</title>\n",
"<polygon fill=\"#ffc0cb\" points=\"634.5,-187 634.5,-208 683.5,-208 683.5,-187 634.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"634.5,-187 683.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"645\" y=\"-193.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"683.5,-187 683.5,-208 704.5,-208 704.5,-187 683.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"683.5,-187 704.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"686.5\" y=\"-193.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"704.5,-187 717.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"717.5,-187 730.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"730.5,-187 730.5,-208 751.5,-208 751.5,-187 730.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"730.5,-187 751.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"733.5\" y=\"-193.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"751.5,-187 764.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"764.5,-187 777.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"777.5,-187 777.5,-208 798.5,-208 798.5,-187 777.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"777.5,-187 798.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"780.5\" y=\"-193.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"798.5,-187 811.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"811.5,-187 824.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"824.5,-187 837.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"634.5,-166 634.5,-187 683.5,-187 683.5,-166 634.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"637.5\" y=\"-172.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"683.5,-166 683.5,-187 704.5,-187 704.5,-166 683.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"687\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"704.5,-166 704.5,-187 717.5,-187 717.5,-166 704.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"704.5,-166 704.5,-187 717.5,-187 717.5,-166 704.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"707.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"717.5,-166 717.5,-187 730.5,-187 730.5,-166 717.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"717.5,-166 717.5,-187 730.5,-187 730.5,-166 717.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"720.5\" y=\"-172.8\">3</text>\n",
"<polygon fill=\"none\" points=\"730.5,-166 730.5,-187 751.5,-187 751.5,-166 730.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"734\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"751.5,-166 751.5,-187 764.5,-187 764.5,-166 751.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"751.5,-166 751.5,-187 764.5,-187 764.5,-166 751.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"754.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"764.5,-166 764.5,-187 777.5,-187 777.5,-166 764.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"764.5,-166 764.5,-187 777.5,-187 777.5,-166 764.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"767.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"none\" points=\"777.5,-166 777.5,-187 798.5,-187 798.5,-166 777.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"781\" y=\"-172.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"798.5,-166 798.5,-187 811.5,-187 811.5,-166 798.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"798.5,-166 798.5,-187 811.5,-187 811.5,-166 798.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"801.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"811.5,-166 811.5,-187 824.5,-187 824.5,-166 811.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"811.5,-166 811.5,-187 824.5,-187 824.5,-166 811.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"814.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"824.5,-166 824.5,-187 837.5,-187 837.5,-166 824.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"824.5,-166 824.5,-187 837.5,-187 837.5,-166 824.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"827.5\" y=\"-172.8\">2</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-66.8\">init_state:</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"76.5,-61 76.5,-80 165.5,-80 165.5,-61 76.5,-61\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-66.8\">~6</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-47.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-47.8\">2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-28.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-28.8\">Fin(0) &amp; Inf(1)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-9.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-9.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Title: aub * gfa Pages: 1 -->\n",
"<svg width=\"227pt\" height=\"178pt\"\n",
" viewBox=\"0.00 0.00 227.00 178.45\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 174.4473)\">\n",
"<title>aub * gfa</title>\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-174.4473 223,-174.4473 223,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"81\" y=\"-156.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">aub * gfa</text>\n",
"<text text-anchor=\"start\" x=\"88.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"110.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"126.5\" y=\"-142.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"86.5\" y=\"-128.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"65\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"55\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.2244,-21.4473C4.383,-21.4473 17.3969,-21.4473 30.8528,-21.4473\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.8798,-21.4473 30.8799,-24.5974 34.3798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 30.8798,-21.4474 34.3798,-21.4474 30.8798,-18.2974 37.8798,-21.4473 37.8798,-21.4473\"/>\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=\"#000000\" d=\"M57.1448,-38.8572C55.6785,-48.5352 58.2969,-57.4473 65,-57.4473 69.9226,-57.4473 72.6423,-52.641 73.1591,-46.2546\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"72.8552,-38.8572 76.2899,-45.722 72.9989,-42.3543 73.1426,-45.8513 73.1426,-45.8513 73.1426,-45.8513 72.9989,-42.3543 69.9953,-45.9806 72.8552,-38.8572 72.8552,-38.8572\"/>\n",
"<text text-anchor=\"start\" x=\"46.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"192\" cy=\"-21.4473\" rx=\"27\" ry=\"18\"/>\n",
"<text text-anchor=\"start\" x=\"182\" y=\"-17.7473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M92.2447,-21.4473C111.4127,-21.4473 137.2089,-21.4473 157.7667,-21.4473\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"164.8004,-21.4473 157.8004,-24.5974 161.3004,-21.4474 157.8004,-21.4474 157.8004,-21.4474 157.8004,-21.4474 161.3004,-21.4474 157.8003,-18.2974 164.8004,-21.4473 164.8004,-21.4473\"/>\n",
"<text text-anchor=\"start\" x=\"110\" y=\"-25.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M86.4111,-10.3522C93.6978,-7.1385 102.0208,-4.0628 110,-2.4473 126.1174,.8158 130.8826,.8158 147,-2.4473 152.6104,-3.5832 158.3907,-5.441 163.8613,-7.5611\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.5889,-10.3522 162.9162,-10.5793 167.3561,-9.0109 164.1233,-7.6697 164.1233,-7.6697 164.1233,-7.6697 167.3561,-9.0109 165.3304,-4.7602 170.5889,-10.3522 170.5889,-10.3522\"/>\n",
"<text text-anchor=\"start\" x=\"111.5\" y=\"-6.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M186.4273,-39.2291C185.4803,-48.7623 187.3379,-57.4473 192,-57.4473 195.4237,-57.4473 197.335,-52.7634 197.7337,-46.4994\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"197.5727,-39.2291 200.877,-46.1576 197.6502,-42.7282 197.7277,-46.2273 197.7277,-46.2273 197.7277,-46.2273 197.6502,-42.7282 194.5785,-46.2971 197.5727,-39.2291 197.5727,-39.2291\"/>\n",
"<text text-anchor=\"start\" x=\"186.5\" y=\"-61.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M182.9293,-38.5891C177.5936,-56.0323 180.6172,-75.4473 192,-75.4473 201.871,-75.4473 205.4558,-60.8469 202.7543,-45.5934\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"201.0707,-38.5891 205.7695,-44.659 201.8887,-41.9922 202.7067,-45.3952 202.7067,-45.3952 202.7067,-45.3952 201.8887,-41.9922 199.644,-46.1315 201.0707,-38.5891 201.0707,-38.5891\"/>\n",
"<text text-anchor=\"start\" x=\"188.5\" y=\"-94.2473\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"184\" y=\"-79.2473\" 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 0x7f2950267270> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 486.50 376.00\" width=\"487pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 482.5,-372 482.5,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"20,-311 20,-332 75,-332 75,-311 20,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"20,-311 75,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"32\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"75,-311 75,-332 88,-332 88,-311 75,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"75,-311 88,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"88,-311 88,-332 101,-332 101,-311 88,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"88,-311 101,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"none\" points=\"20,-290 20,-311 75,-311 75,-290 20,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"35\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-296.8\">4</text>\n",
"<polygon fill=\"none\" points=\"20,-269 20,-290 75,-290 75,-269 20,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-275.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-275.8\">5</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"220,-343 220,-364 281,-364 281,-343 220,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"220,-343 281,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"235\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"281,-343 281,-364 324,-364 324,-343 281,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"281,-343 324,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"324,-343 324,-364 362,-364 362,-343 324,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"324,-343 362,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"362,-343 362,-364 405,-364 405,-343 362,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"362,-343 405,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"380\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"405,-343 405,-364 425,-364 425,-343 405,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"405,-343 425,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"425,-343 425,-364 452,-364 452,-343 425,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"425,-343 452,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"435\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"none\" points=\"220,-322 220,-343 281,-343 281,-322 220,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"237\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"281,-322 281,-343 324,-343 324,-322 281,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"284\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"324,-322 324,-343 362,-343 362,-322 324,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"362,-322 362,-343 405,-343 405,-322 362,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"405,-322 405,-343 425,-343 425,-322 405,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409.5\" y=\"-328.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"425,-322 425,-343 452,-343 452,-322 425,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"435\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"220,-301 220,-322 281,-322 281,-301 220,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"241\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"281,-301 281,-322 324,-322 324,-301 281,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"324,-301 324,-322 362,-322 362,-301 324,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"336\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"362,-301 362,-322 405,-322 405,-301 362,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"376.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"405,-301 405,-322 425,-322 425,-301 405,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"425,-301 425,-322 452,-322 452,-301 425,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"428\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"220,-280 220,-301 281,-301 281,-280 220,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"281,-280 281,-301 324,-301 324,-280 281,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281,-280 281,-301 324,-301 324,-280 281,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"324,-280 324,-301 362,-301 362,-280 324,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"324,-280 324,-301 362,-301 362,-280 324,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"362,-280 362,-301 405,-301 405,-280 362,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"362,-280 362,-301 405,-301 405,-280 362,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"380\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"405,-280 405,-301 425,-301 425,-280 405,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-280 405,-301 425,-301 425,-280 405,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"425,-280 425,-301 452,-301 452,-280 425,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"425,-280 425,-301 452,-301 452,-280 425,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"435\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"220,-259 220,-280 281,-280 281,-259 220,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"223\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"281,-259 281,-280 324,-280 324,-259 281,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281,-259 281,-280 324,-280 324,-259 281,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"324,-259 324,-280 362,-280 362,-259 324,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"324,-259 324,-280 362,-280 362,-259 324,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"none\" points=\"362,-259 362,-280 405,-280 405,-259 362,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"380\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"405,-259 405,-280 425,-280 425,-259 405,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-259 405,-280 425,-280 425,-259 405,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"none\" points=\"425,-259 425,-280 452,-280 452,-259 425,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"435\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"220,-238 220,-259 281,-259 281,-238 220,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"281,-238 281,-259 324,-259 324,-238 281,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"281,-238 281,-259 324,-259 324,-238 281,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"324,-238 324,-259 362,-259 362,-238 324,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"324,-238 324,-259 362,-259 362,-238 324,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"362,-238 362,-259 405,-259 405,-238 362,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"362,-238 362,-259 405,-259 405,-238 362,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"380\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"405,-238 405,-259 425,-259 425,-238 405,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-238 405,-259 425,-259 425,-238 405,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"425,-238 425,-259 452,-259 452,-238 425,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"425,-238 425,-259 452,-259 452,-238 425,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"435\" y=\"-244.8\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-118 76,-137 112,-137 112,-118 76,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-123.8\">0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-104.8\">1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-85.8\">Inf(0)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-66.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-47.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-28.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"155\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"299\" y=\"-9.8\">yes</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"<!-- namedprops -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>namedprops</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"421\" y=\"-110.3\">named properties:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"421\" y=\"-95.3\">automaton-name</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"421\" y=\"-80.3\">product-states</text>\n",
"</g>\n",
"<!-- namedprops&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.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.40.1 (20161225.0304)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"191pt\" height=\"165pt\"\n",
" viewBox=\"0.00 0.00 191.00 164.97\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 160.9653)\">\n",
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-160.9653 187,-160.9653 187,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"70.5\" y=\"-142.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"92.5\" y=\"-142.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"108.5\" y=\"-142.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"68.5\" y=\"-128.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 0 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>0</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-21.9653\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-18.2653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M1.1233,-21.9653C4.178,-21.9653 17.9448,-21.9653 30.9241,-21.9653\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-21.9653 30.9808,-25.1154 34.4807,-21.9654 30.9807,-21.9654 30.9807,-21.9654 30.9807,-21.9654 34.4807,-21.9654 30.9807,-18.8154 37.9807,-21.9653 37.9807,-21.9653\"/>\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=\"#000000\" d=\"M49.6208,-39.0026C48.3189,-48.8232 50.4453,-57.9653 56,-57.9653 60.166,-57.9653 62.4036,-52.8229 62.7128,-46.1086\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-39.0026 65.8541,-45.8472 62.5434,-42.4988 62.7076,-45.9949 62.7076,-45.9949 62.7076,-45.9949 62.5434,-42.4988 59.561,-46.1427 62.3792,-39.0026 62.3792,-39.0026\"/>\n",
"<text text-anchor=\"start\" x=\"37.5\" y=\"-61.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a &amp; !b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>1</title>\n",
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"165\" cy=\"-21.9653\" rx=\"18\" ry=\"18\"/>\n",
"<text text-anchor=\"middle\" x=\"165\" y=\"-18.2653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M74.4904,-21.9653C92.3712,-21.9653 119.6126,-21.9653 139.5388,-21.9653\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.7827,-21.9653 139.7828,-25.1154 143.2827,-21.9654 139.7827,-21.9654 139.7827,-21.9654 139.7827,-21.9654 143.2827,-21.9654 139.7827,-18.8154 146.7827,-21.9653 146.7827,-21.9653\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-25.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M71.1057,-11.8953C77.3068,-8.3335 84.7287,-4.7664 92,-2.9653 107.9621,.9884 113.0379,.9884 129,-2.9653 133.8854,-4.1754 138.8388,-6.1827 143.4442,-8.45\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"149.8943,-11.8953 142.2358,-11.3757 146.8071,-10.2463 143.7199,-8.5972 143.7199,-8.5972 143.7199,-8.5972 146.8071,-10.2463 145.2041,-5.8188 149.8943,-11.8953 149.8943,-11.8953\"/>\n",
"<text text-anchor=\"start\" x=\"93.5\" y=\"-6.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">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=\"#000000\" d=\"M160.1797,-39.3752C159.28,-49.0532 160.8867,-57.9653 165,-57.9653 168.0207,-57.9653 169.6896,-53.159 170.0067,-46.7726\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"169.8203,-39.3752 173.1457,-46.2936 169.9085,-42.8741 169.9967,-46.373 169.9967,-46.373 169.9967,-46.373 169.9085,-42.8741 166.8477,-46.4524 169.8203,-39.3752 169.8203,-39.3752\"/>\n",
"<text text-anchor=\"start\" x=\"159.5\" y=\"-61.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!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=\"#000000\" d=\"M157.3278,-38.2736C152.3703,-55.9257 154.9277,-75.9653 165,-75.9653 173.7345,-75.9653 176.8178,-60.8953 174.2498,-45.3807\"/>\n",
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"172.6722,-38.2736 177.2643,-44.4247 173.4307,-41.6905 174.1892,-45.1073 174.1892,-45.1073 174.1892,-45.1073 173.4307,-41.6905 171.114,-45.7899 172.6722,-38.2736 172.6722,-38.2736\"/>\n",
"<text text-anchor=\"start\" x=\"161.5\" y=\"-94.7653\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
"<text text-anchor=\"start\" x=\"157\" y=\"-79.7653\" 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 0x7f2950267270> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"376pt\" viewBox=\"0.00 0.00 383.00 376.00\" width=\"383pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 372)\">\n",
"<title>g</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-372 379,-372 379,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- states -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>states</title>\n",
"<polygon fill=\"#ffff00\" points=\"20,-311 20,-332 75,-332 75,-311 20,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"20,-311 75,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"32\" y=\"-317.8\">states</text>\n",
"<polygon fill=\"#ffff00\" points=\"75,-311 75,-332 88,-332 88,-311 75,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"75,-311 88,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-317.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"88,-311 88,-332 101,-332 101,-311 88,-311\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"88,-311 101,-311 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-317.8\">1</text>\n",
"<polygon fill=\"none\" points=\"20,-290 20,-311 75,-311 75,-290 20,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"35\" y=\"-296.8\">succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-296.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-296.8\">4</text>\n",
"<polygon fill=\"none\" points=\"20,-269 20,-290 75,-290 75,-269 20,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"23\" y=\"-275.8\">succ_tail</text>\n",
"<polygon fill=\"#00ffff\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-275.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91\" y=\"-275.8\">5</text>\n",
"</g>\n",
"<!-- edges -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>edges</title>\n",
"<polygon fill=\"#00ffff\" points=\"135,-343 135,-364 196,-364 196,-343 135,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"135,-343 196,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"150\" y=\"-349.8\">edges</text>\n",
"<polygon fill=\"#00ffff\" points=\"196,-343 196,-364 239,-364 239,-343 196,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"196,-343 239,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"214\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"239,-343 239,-364 277,-364 277,-343 239,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"239,-343 277,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"277,-343 277,-364 320,-364 320,-343 277,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"277,-343 320,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"320,-343 320,-364 340,-364 340,-343 320,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"320,-343 340,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"340,-343 340,-364 367,-364 367,-343 340,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"340,-343 367,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"none\" points=\"135,-322 135,-343 196,-343 196,-322 135,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"152\" y=\"-328.8\">cond</text>\n",
"<polygon fill=\"none\" points=\"196,-322 196,-343 239,-343 239,-322 196,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"199\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"239,-322 239,-343 277,-343 277,-322 239,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"277,-322 277,-343 320,-343 320,-322 277,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"320,-322 320,-343 340,-343 340,-322 320,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"324.5\" y=\"-328.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"340,-322 340,-343 367,-343 367,-322 340,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"135,-301 135,-322 196,-322 196,-301 135,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"156\" y=\"-307.8\">acc</text>\n",
"<polygon fill=\"none\" points=\"196,-301 196,-322 239,-322 239,-301 196,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"210.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"239,-301 239,-322 277,-322 277,-301 239,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"277,-301 277,-322 320,-322 320,-301 277,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"291.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"320,-301 320,-322 340,-322 340,-301 320,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"323\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"340,-301 340,-322 367,-322 367,-301 340,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"343\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"135,-280 135,-301 196,-301 196,-280 135,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-286.8\">dst</text>\n",
"<polygon fill=\"#ffff00\" points=\"196,-280 196,-301 239,-301 239,-280 196,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"196,-280 196,-301 239,-301 239,-280 196,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"214\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"239,-280 239,-301 277,-301 277,-280 239,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239,-280 239,-301 277,-301 277,-280 239,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"277,-280 277,-301 320,-301 320,-280 277,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"277,-280 277,-301 320,-301 320,-280 277,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"320,-280 320,-301 340,-301 340,-280 320,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"320,-280 320,-301 340,-301 340,-280 320,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"340,-280 340,-301 367,-301 367,-280 340,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"340,-280 340,-301 367,-301 367,-280 340,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"135,-259 135,-280 196,-280 196,-259 135,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"138\" y=\"-265.8\">next_succ</text>\n",
"<polygon fill=\"#00ffff\" points=\"196,-259 196,-280 239,-280 239,-259 196,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"196,-259 196,-280 239,-280 239,-259 196,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"214\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"239,-259 239,-280 277,-280 277,-259 239,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239,-259 239,-280 277,-280 277,-259 239,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"none\" points=\"277,-259 277,-280 320,-280 320,-259 277,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"320,-259 320,-280 340,-280 340,-259 320,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"320,-259 320,-280 340,-280 340,-259 320,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"none\" points=\"340,-259 340,-280 367,-280 367,-259 340,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"135,-238 135,-259 196,-259 196,-238 135,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"157.5\" y=\"-244.8\">src</text>\n",
"<polygon fill=\"#ffff00\" points=\"196,-238 196,-259 239,-259 239,-238 196,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"196,-238 196,-259 239,-259 239,-238 196,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"214\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"239,-238 239,-259 277,-259 277,-238 239,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239,-238 239,-259 277,-259 277,-238 239,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"277,-238 277,-259 320,-259 320,-238 277,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"277,-238 277,-259 320,-259 320,-238 277,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"295\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"320,-238 320,-259 340,-259 340,-238 320,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"320,-238 320,-259 340,-259 340,-238 320,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"340,-238 340,-259 367,-259 367,-238 340,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"340,-238 340,-259 367,-259 367,-238 340,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350\" y=\"-244.8\">1</text>\n",
"</g>\n",
"<!-- meta -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>meta</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-123.8\">init_state:</text>\n",
"<polygon fill=\"#ffff00\" points=\"76,-118 76,-137 112,-137 112,-118 76,-118\" stroke=\"transparent\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-123.8\">0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-104.8\">num_sets:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-104.8\">1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-85.8\">acceptance:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-85.8\">Inf(0)</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10\" y=\"-66.8\">ap_vars:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78\" y=\"-66.8\">b a</text>\n",
"</g>\n",
"<!-- meta&#45;&gt;states -->\n",
"<!-- props -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>props</title>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-66.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-47.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-28.8\">yes</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"161\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305\" y=\"-9.8\">yes</text>\n",
"</g>\n",
"<!-- props&#45;&gt;edges -->\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"prod.release_named_properties()\n",
"display(prod, prod.show_storage())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}