spot/tests/python/twagraph-internals.ipynb
Alexandre Duret-Lutz da5d23f0a2 simplify: GF(f)=GF(dnf(f)) FG(f)=FG(cnf(f))
These rules come from Delag's paper, and help some cases
in issue #385.

* spot/tl/simplify.cc: Implement the simplification.
* doc/tl/tl.tex, NEWS: Document it.
* tests/core/385.test: New file.
* tests/Makefile.am: Add it.
* tests/core/reduccmp.test: More tests.
* tests/core/ltl2tgba2.test: Adjust one improved case.
* tests/python/automata.ipynb, tests/python/twagraph-internals.ipynb:
Adjust expected output, as the cnf/dnf reorder some subformulas.
2019-06-18 10:03:56 +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=\"196pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 195.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 191.5,-217.597 191.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"41.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"66.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"82.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"125.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"141.75\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"64.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=\"35.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=\"37.5\" 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=\"95.5\" 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=\"94\" 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=\"94\" 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=\"92\" 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=\"150.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=\"152\" 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 0x7f7e3c439b10> >"
]
},
"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 269.5,-364 269.5,-343 222.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"222.5,-343 269.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"269.5,-343 269.5,-364 312.5,-364 312.5,-343 269.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"269.5,-343 312.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"312.5,-343 312.5,-364 350.5,-364 350.5,-343 312.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"312.5,-343 350.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"350.5,-343 350.5,-364 393.5,-364 393.5,-343 350.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"350.5,-343 393.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"393.5,-343 393.5,-364 436.5,-364 436.5,-343 393.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"393.5,-343 436.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"436.5,-343 436.5,-364 483.5,-364 483.5,-343 436.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"436.5,-343 483.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"483.5,-343 483.5,-364 526.5,-364 526.5,-343 483.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"483.5,-343 526.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501.5\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"526.5,-343 526.5,-364 564.5,-364 564.5,-343 526.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"526.5,-343 564.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"542\" 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 269.5,-343 269.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=\"269.5,-322 269.5,-343 312.5,-343 312.5,-322 269.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"272.5\" y=\"-328.8\">!a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"312.5,-322 312.5,-343 350.5,-343 350.5,-322 312.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"315.5\" y=\"-328.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"350.5,-322 350.5,-343 393.5,-343 393.5,-322 350.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"353.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"393.5,-322 393.5,-343 436.5,-343 436.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=\"436.5,-322 436.5,-343 483.5,-343 483.5,-322 436.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"439.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"483.5,-322 483.5,-343 526.5,-343 526.5,-322 483.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"486.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"526.5,-322 526.5,-343 564.5,-343 564.5,-322 526.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"529.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 269.5,-322 269.5,-301 222.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"235.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"269.5,-301 269.5,-322 312.5,-322 312.5,-301 269.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"312.5,-301 312.5,-322 350.5,-322 350.5,-301 312.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"324.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"350.5,-301 350.5,-322 393.5,-322 393.5,-301 350.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"393.5,-301 393.5,-322 436.5,-322 436.5,-301 393.5,-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=\"436.5,-301 436.5,-322 483.5,-322 483.5,-301 436.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"483.5,-301 483.5,-322 526.5,-322 526.5,-301 483.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"526.5,-301 526.5,-322 564.5,-322 564.5,-301 526.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"535\" 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 269.5,-301 269.5,-280 222.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-280 222.5,-301 269.5,-301 269.5,-280 222.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"269.5,-280 269.5,-301 312.5,-301 312.5,-280 269.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"269.5,-280 269.5,-301 312.5,-301 312.5,-280 269.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"312.5,-280 312.5,-301 350.5,-301 350.5,-280 312.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"312.5,-280 312.5,-301 350.5,-301 350.5,-280 312.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"350.5,-280 350.5,-301 393.5,-301 393.5,-280 350.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"350.5,-280 350.5,-301 393.5,-301 393.5,-280 350.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"393.5,-280 393.5,-301 436.5,-301 436.5,-280 393.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-280 393.5,-301 436.5,-301 436.5,-280 393.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"436.5,-280 436.5,-301 483.5,-301 483.5,-280 436.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"436.5,-280 436.5,-301 483.5,-301 483.5,-280 436.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"483.5,-280 483.5,-301 526.5,-301 526.5,-280 483.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"483.5,-280 483.5,-301 526.5,-301 526.5,-280 483.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"526.5,-280 526.5,-301 564.5,-301 564.5,-280 526.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"526.5,-280 526.5,-301 564.5,-301 564.5,-280 526.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"542\" 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 269.5,-280 269.5,-259 222.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-259 222.5,-280 269.5,-280 269.5,-259 222.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"269.5,-259 269.5,-280 312.5,-280 312.5,-259 269.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"269.5,-259 269.5,-280 312.5,-280 312.5,-259 269.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287.5\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"312.5,-259 312.5,-280 350.5,-280 350.5,-259 312.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"312.5,-259 312.5,-280 350.5,-280 350.5,-259 312.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"none\" points=\"350.5,-259 350.5,-280 393.5,-280 393.5,-259 350.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"393.5,-259 393.5,-280 436.5,-280 436.5,-259 393.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-259 393.5,-280 436.5,-280 436.5,-259 393.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"411.5\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"436.5,-259 436.5,-280 483.5,-280 483.5,-259 436.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"436.5,-259 436.5,-280 483.5,-280 483.5,-259 436.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-265.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"483.5,-259 483.5,-280 526.5,-280 526.5,-259 483.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"483.5,-259 483.5,-280 526.5,-280 526.5,-259 483.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"none\" points=\"526.5,-259 526.5,-280 564.5,-280 564.5,-259 526.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"542\" 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 269.5,-259 269.5,-238 222.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"222.5,-238 222.5,-259 269.5,-259 269.5,-238 222.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"269.5,-238 269.5,-259 312.5,-259 312.5,-238 269.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"269.5,-238 269.5,-259 312.5,-259 312.5,-238 269.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"312.5,-238 312.5,-259 350.5,-259 350.5,-238 312.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"312.5,-238 312.5,-259 350.5,-259 350.5,-238 312.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"350.5,-238 350.5,-259 393.5,-259 393.5,-238 350.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"350.5,-238 350.5,-259 393.5,-259 393.5,-238 350.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"393.5,-238 393.5,-259 436.5,-259 436.5,-238 393.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"393.5,-238 393.5,-259 436.5,-259 436.5,-238 393.5,-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=\"436.5,-238 436.5,-259 483.5,-259 483.5,-238 436.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"436.5,-238 436.5,-259 483.5,-259 483.5,-238 436.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"483.5,-238 483.5,-259 526.5,-259 526.5,-238 483.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"483.5,-238 483.5,-259 526.5,-259 526.5,-238 483.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"526.5,-238 526.5,-259 564.5,-259 564.5,-238 526.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"526.5,-238 526.5,-259 564.5,-259 564.5,-238 526.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"542\" 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=\"277pt\" height=\"222pt\"\n",
" viewBox=\"0.00 0.00 276.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 272.5,-217.597 272.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"82.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"182.25\" y=\"-199.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"105.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=\"116.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=\"118.5\" 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=\"176.5\" 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=\"175\" 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=\"175\" 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=\"173\" 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=\"231.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=\"233\" 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 0x7f7e3c439b10> >"
]
},
"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 245,-130 245,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 245,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-109 245,-130 288,-130 288,-109 245,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"245,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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 412,-130 412,-109 369,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"369,-109 412,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"412,-109 412,-130 459,-130 459,-109 412,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"412,-109 459,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"459,-109 459,-130 502,-130 502,-109 459,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"459,-109 502,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"502,-109 502,-130 540,-130 540,-109 502,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"502,-109 540,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-109 245,-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=\"245,-88 245,-109 288,-109 288,-88 245,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248\" 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 412,-109 412,-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=\"412,-88 412,-109 459,-109 459,-88 412,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"459,-88 459,-109 502,-109 502,-88 459,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"502,-88 502,-109 540,-109 540,-88 502,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"505\" 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 245,-88 245,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"245,-67 245,-88 288,-88 288,-67 245,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256\" y=\"-73.8\">{1}</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 412,-88 412,-67 369,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"383.5\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"412,-67 412,-88 459,-88 459,-67 412,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"459,-67 459,-88 502,-88 502,-67 459,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"502,-67 502,-88 540,-88 540,-67 502,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"510.5\" 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 245,-67 245,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 245,-67 245,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" y=\"-52.8\">0</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\">1</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\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 412,-67 412,-46 369,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-46 369,-67 412,-67 412,-46 369,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"412,-46 412,-67 459,-67 459,-46 412,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-46 412,-67 459,-67 459,-46 412,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-46 459,-67 502,-67 502,-46 459,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-46 459,-67 502,-67 502,-46 459,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"502,-46 502,-67 540,-67 540,-46 502,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"502,-46 502,-67 540,-67 540,-46 502,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-46 245,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 245,-46 245,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-25 245,-46 288,-46 288,-25 245,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-25 245,-46 288,-46 288,-25 245,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" y=\"-31.8\">3</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=\"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\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 412,-46 412,-25 369,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-25 369,-46 412,-46 412,-25 369,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"412,-25 412,-46 459,-46 459,-25 412,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-25 412,-46 459,-46 459,-25 412,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"459,-25 459,-46 502,-46 502,-25 459,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-25 459,-46 502,-46 502,-25 459,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-31.8\">8</text>\n",
"<polygon fill=\"none\" points=\"502,-25 502,-46 540,-46 540,-25 502,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-25 245,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 245,-25 245,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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\">0</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\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 412,-25 412,-4 369,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-4 369,-25 412,-25 412,-4 369,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"412,-4 412,-25 459,-25 459,-4 412,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-4 412,-25 459,-25 459,-4 412,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-4 459,-25 502,-25 502,-4 459,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-4 459,-25 502,-25 502,-4 459,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"502,-4 502,-25 540,-25 540,-4 502,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"502,-4 502,-25 540,-25 540,-4 502,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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=\"277pt\" height=\"249pt\"\n",
" viewBox=\"0.00 0.00 276.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 272.5,-245.4001 272.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"82.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"182.25\" y=\"-227.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"105.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=\"116.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=\"118.5\" 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=\"120\" 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=\"175\" 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=\"175\" 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=\"173\" 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=\"231.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=\"233\" 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 0x7f7e3c439b10> >"
]
},
"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 245,-130 245,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 245,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-109 245,-130 288,-130 288,-109 245,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"245,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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 412,-130 412,-109 369,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"369,-109 412,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"412,-109 412,-130 459,-130 459,-109 412,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"412,-109 459,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"459,-109 459,-130 502,-130 502,-109 459,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"459,-109 502,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"502,-109 502,-130 540,-130 540,-109 502,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"502,-109 540,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-109 245,-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=\"245,-88 245,-109 288,-109 288,-88 245,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248\" 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 412,-109 412,-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=\"412,-88 412,-109 459,-109 459,-88 412,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"459,-88 459,-109 502,-109 502,-88 459,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"502,-88 502,-109 540,-109 540,-88 502,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"505\" 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 245,-88 245,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"245,-67 245,-88 288,-88 288,-67 245,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256\" y=\"-73.8\">{1}</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=\"296.5\" y=\"-73.8\">{1}</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 412,-88 412,-67 369,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"383.5\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"412,-67 412,-88 459,-88 459,-67 412,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"459,-67 459,-88 502,-88 502,-67 459,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"470\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"502,-67 502,-88 540,-88 540,-67 502,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"510.5\" 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 245,-67 245,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 245,-67 245,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" y=\"-52.8\">0</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\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 412,-67 412,-46 369,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-46 369,-67 412,-67 412,-46 369,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"412,-46 412,-67 459,-67 459,-46 412,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-46 412,-67 459,-67 459,-46 412,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-46 459,-67 502,-67 502,-46 459,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-46 459,-67 502,-67 502,-46 459,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"502,-46 502,-67 540,-67 540,-46 502,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"502,-46 502,-67 540,-67 540,-46 502,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-46 245,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 245,-46 245,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-25 245,-46 288,-46 288,-25 245,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-25 245,-46 288,-46 288,-25 245,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" y=\"-31.8\">3</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=\"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\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 412,-46 412,-25 369,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-25 369,-46 412,-46 412,-25 369,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"412,-25 412,-46 459,-46 459,-25 412,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-25 412,-46 459,-46 459,-25 412,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"459,-25 459,-46 502,-46 502,-25 459,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-25 459,-46 502,-46 502,-25 459,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-31.8\">8</text>\n",
"<polygon fill=\"none\" points=\"502,-25 502,-46 540,-46 540,-25 502,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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 245,-25 245,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 245,-25 245,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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\">0</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\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 412,-25 412,-4 369,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"369,-4 369,-25 412,-25 412,-4 369,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"387\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"412,-4 412,-25 459,-25 459,-4 412,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"412,-4 412,-25 459,-25 459,-4 412,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"432\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"459,-4 459,-25 502,-25 502,-4 459,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"459,-4 459,-25 502,-25 502,-4 459,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"502,-4 502,-25 540,-25 540,-4 502,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"502,-4 502,-25 540,-25 540,-4 502,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"517.5\" 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=\"277pt\" height=\"201pt\"\n",
" viewBox=\"0.00 0.00 276.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 272.5,-197.4001 272.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"82.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"182.25\" y=\"-179.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"105.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=\"116.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=\"175\" 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=\"175\" 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=\"173\" 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=\"231.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=\"233\" 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 0x7f7e3c439b10> >"
]
},
"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 245,-130 245,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 245,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-109 245,-130 272,-130 272,-109 245,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"245,-109 272,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"272,-109 272,-130 315,-130 315,-109 272,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"272,-109 315,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"315,-109 315,-130 358,-130 358,-109 315,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"315,-109 358,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"333\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"358,-109 358,-130 405,-130 405,-109 358,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"358,-109 405,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"405,-109 405,-130 448,-130 448,-109 405,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"405,-109 448,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"448,-109 448,-130 486,-130 486,-109 448,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"448,-109 486,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" 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 245,-109 245,-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=\"245,-88 245,-109 272,-109 272,-88 245,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-94.8\">b</text>\n",
"<polygon fill=\"none\" points=\"272,-88 272,-109 315,-109 315,-88 272,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"275\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"315,-88 315,-109 358,-109 358,-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=\"358,-88 358,-109 405,-109 405,-88 358,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"405,-88 405,-109 448,-109 448,-88 405,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"448,-88 448,-109 486,-109 486,-88 448,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"451\" 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 245,-88 245,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"245,-67 245,-88 272,-88 272,-67 245,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"272,-67 272,-88 315,-88 315,-67 272,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"283\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"315,-67 315,-88 358,-88 358,-67 315,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"358,-67 358,-88 405,-88 405,-67 358,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"405,-67 405,-88 448,-88 448,-67 405,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"416\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"448,-67 448,-88 486,-88 486,-67 448,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" 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 245,-67 245,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 245,-67 245,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-46 245,-67 272,-67 272,-46 245,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-46 245,-67 272,-67 272,-46 245,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"272,-46 272,-67 315,-67 315,-46 272,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"272,-46 272,-67 315,-67 315,-46 272,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"315,-46 315,-67 358,-67 358,-46 315,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-46 315,-67 358,-67 358,-46 315,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"333\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"358,-46 358,-67 405,-67 405,-46 358,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"358,-46 358,-67 405,-67 405,-46 358,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"405,-46 405,-67 448,-67 448,-46 405,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-46 405,-67 448,-67 448,-46 405,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"448,-46 448,-67 486,-67 486,-46 448,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"448,-46 448,-67 486,-67 486,-46 448,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" 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 245,-46 245,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 245,-46 245,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-25 245,-46 272,-46 272,-25 245,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-25 245,-46 272,-46 272,-25 245,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"none\" points=\"272,-25 272,-46 315,-46 315,-25 272,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"315,-25 315,-46 358,-46 358,-25 315,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-25 315,-46 358,-46 358,-25 315,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"333\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"358,-25 358,-46 405,-46 405,-25 358,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"358,-25 358,-46 405,-46 405,-25 358,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"405,-25 405,-46 448,-46 448,-25 405,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-25 405,-46 448,-46 448,-25 405,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"none\" points=\"448,-25 448,-46 486,-46 486,-25 448,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" 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 245,-25 245,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 245,-25 245,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-4 245,-25 272,-25 272,-4 245,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-4 245,-25 272,-25 272,-4 245,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"272,-4 272,-25 315,-25 315,-4 272,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"272,-4 272,-25 315,-25 315,-4 272,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"315,-4 315,-25 358,-25 358,-4 315,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"315,-4 315,-25 358,-25 358,-4 315,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"333\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"358,-4 358,-25 405,-25 405,-4 358,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"358,-4 358,-25 405,-25 405,-4 358,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"405,-4 405,-25 448,-25 448,-4 405,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"405,-4 405,-25 448,-25 448,-4 405,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"448,-4 448,-25 486,-25 486,-4 448,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"448,-4 448,-25 486,-25 486,-4 448,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"463.5\" 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=\"277pt\" height=\"247pt\"\n",
" viewBox=\"0.00 0.00 276.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 272.5,-243.4001 272.5,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"82.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"107.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"123.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"166.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"182.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"105.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=\"116.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=\"175\" 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=\"175\" 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=\"173\" 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=\"231.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=\"233\" 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 0x7f7e3c439b10> >"
]
},
"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 275.5,-364 275.5,-343 228.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"228.5,-343 275.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"275.5,-343 275.5,-364 302.5,-364 302.5,-343 275.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"275.5,-343 302.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"302.5,-343 302.5,-364 345.5,-364 345.5,-343 302.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"302.5,-343 345.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"345.5,-343 345.5,-364 388.5,-364 388.5,-343 345.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"345.5,-343 388.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"388.5,-343 388.5,-364 435.5,-364 435.5,-343 388.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"388.5,-343 435.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408.5\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"435.5,-343 435.5,-364 478.5,-364 478.5,-343 435.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"435.5,-343 478.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"478.5,-343 478.5,-364 516.5,-364 516.5,-343 478.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"478.5,-343 516.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494\" 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 275.5,-343 275.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=\"275.5,-322 275.5,-343 302.5,-343 302.5,-322 275.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-328.8\">b</text>\n",
"<polygon fill=\"none\" points=\"302.5,-322 302.5,-343 345.5,-343 345.5,-322 302.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"305.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"345.5,-322 345.5,-343 388.5,-343 388.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=\"388.5,-322 388.5,-343 435.5,-343 435.5,-322 388.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"391.5\" y=\"-328.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"435.5,-322 435.5,-343 478.5,-343 478.5,-322 435.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"438.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"478.5,-322 478.5,-343 516.5,-343 516.5,-322 478.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"481.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 275.5,-322 275.5,-301 228.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"241.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"275.5,-301 275.5,-322 302.5,-322 302.5,-301 275.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"278.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"302.5,-301 302.5,-322 345.5,-322 345.5,-301 302.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"313.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"345.5,-301 345.5,-322 388.5,-322 388.5,-301 345.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"360\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"388.5,-301 388.5,-322 435.5,-322 435.5,-301 388.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"435.5,-301 435.5,-322 478.5,-322 478.5,-301 435.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"478.5,-301 478.5,-322 516.5,-322 516.5,-301 478.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"487\" 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 275.5,-301 275.5,-280 228.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-280 228.5,-301 275.5,-301 275.5,-280 228.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"275.5,-280 275.5,-301 302.5,-301 302.5,-280 275.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"275.5,-280 275.5,-301 302.5,-301 302.5,-280 275.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"302.5,-280 302.5,-301 345.5,-301 345.5,-280 302.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"302.5,-280 302.5,-301 345.5,-301 345.5,-280 302.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"345.5,-280 345.5,-301 388.5,-301 388.5,-280 345.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-280 345.5,-301 388.5,-301 388.5,-280 345.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"388.5,-280 388.5,-301 435.5,-301 435.5,-280 388.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"388.5,-280 388.5,-301 435.5,-301 435.5,-280 388.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"435.5,-280 435.5,-301 478.5,-301 478.5,-280 435.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"435.5,-280 435.5,-301 478.5,-301 478.5,-280 435.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"478.5,-280 478.5,-301 516.5,-301 516.5,-280 478.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"478.5,-280 478.5,-301 516.5,-301 516.5,-280 478.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494\" 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 275.5,-280 275.5,-259 228.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-259 228.5,-280 275.5,-280 275.5,-259 228.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"275.5,-259 275.5,-280 302.5,-280 302.5,-259 275.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"275.5,-259 275.5,-280 302.5,-280 302.5,-259 275.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-265.8\">3</text>\n",
"<polygon fill=\"none\" points=\"302.5,-259 302.5,-280 345.5,-280 345.5,-259 302.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"345.5,-259 345.5,-280 388.5,-280 388.5,-259 345.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-259 345.5,-280 388.5,-280 388.5,-259 345.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"388.5,-259 388.5,-280 435.5,-280 435.5,-259 388.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"388.5,-259 388.5,-280 435.5,-280 435.5,-259 388.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408.5\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"435.5,-259 435.5,-280 478.5,-280 478.5,-259 435.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"435.5,-259 435.5,-280 478.5,-280 478.5,-259 435.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-265.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"478.5,-259 478.5,-280 516.5,-280 516.5,-259 478.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"478.5,-259 478.5,-280 516.5,-280 516.5,-259 478.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494\" 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 275.5,-259 275.5,-238 228.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"228.5,-238 228.5,-259 275.5,-259 275.5,-238 228.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"275.5,-238 275.5,-259 302.5,-259 302.5,-238 275.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"275.5,-238 275.5,-259 302.5,-259 302.5,-238 275.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"302.5,-238 302.5,-259 345.5,-259 345.5,-238 302.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"302.5,-238 302.5,-259 345.5,-259 345.5,-238 302.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"345.5,-238 345.5,-259 388.5,-259 388.5,-238 345.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"345.5,-238 345.5,-259 388.5,-259 388.5,-238 345.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"388.5,-238 388.5,-259 435.5,-259 435.5,-238 388.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"388.5,-238 388.5,-259 435.5,-259 435.5,-238 388.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"408.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"435.5,-238 435.5,-259 478.5,-259 478.5,-238 435.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"435.5,-238 435.5,-259 478.5,-259 478.5,-238 435.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"478.5,-238 478.5,-259 516.5,-259 516.5,-238 478.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"478.5,-238 478.5,-259 516.5,-259 516.5,-238 478.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"494\" 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 244,-130 244,-109 197,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"197,-109 244,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#c0c0c0\" points=\"244,-109 244,-130 271,-130 271,-109 244,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"244,-109 271,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"271,-109 271,-130 314,-130 314,-109 271,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"271,-109 314,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"289\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"314,-109 314,-130 357,-130 357,-109 314,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"314,-109 357,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"357,-109 357,-130 404,-130 404,-109 357,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"357,-109 404,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"404,-109 404,-130 447,-130 447,-109 404,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"404,-109 447,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"447,-109 447,-130 485,-130 485,-109 447,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"447,-109 485,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462.5\" 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 244,-109 244,-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=\"244,-88 244,-109 271,-109 271,-88 244,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-94.8\">b</text>\n",
"<polygon fill=\"none\" points=\"271,-88 271,-109 314,-109 314,-88 271,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"274\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"314,-88 314,-109 357,-109 357,-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=\"357,-88 357,-109 404,-109 404,-88 357,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"360\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"404,-88 404,-109 447,-109 447,-88 404,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"447,-88 447,-109 485,-109 485,-88 447,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" 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 244,-88 244,-67 197,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"210\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"244,-67 244,-88 271,-88 271,-67 244,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"247\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"271,-67 271,-88 314,-88 314,-67 271,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"282\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"314,-67 314,-88 357,-88 357,-67 314,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328.5\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"357,-67 357,-88 404,-88 404,-67 357,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"404,-67 404,-88 447,-88 447,-67 404,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"415\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"447,-67 447,-88 485,-88 485,-67 447,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"455.5\" 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 244,-67 244,-46 197,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-46 197,-67 244,-67 244,-46 197,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-46 244,-67 271,-67 271,-46 244,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-46 244,-67 271,-67 271,-46 244,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"271,-46 271,-67 314,-67 314,-46 271,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"271,-46 271,-67 314,-67 314,-46 271,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"289\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"314,-46 314,-67 357,-67 357,-46 314,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-46 314,-67 357,-67 357,-46 314,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"357,-46 357,-67 404,-67 404,-46 357,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"357,-46 357,-67 404,-67 404,-46 357,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"404,-46 404,-67 447,-67 447,-46 404,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"404,-46 404,-67 447,-67 447,-46 404,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"447,-46 447,-67 485,-67 485,-46 447,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"447,-46 447,-67 485,-67 485,-46 447,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462.5\" 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 244,-46 244,-25 197,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-25 197,-46 244,-46 244,-25 197,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-31.8\">3</text>\n",
"<polygon fill=\"#c0c0c0\" points=\"244,-25 244,-46 271,-46 271,-25 244,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-25 244,-46 271,-46 271,-25 244,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"271,-25 271,-46 314,-46 314,-25 271,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"289\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"314,-25 314,-46 357,-46 357,-25 314,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-25 314,-46 357,-46 357,-25 314,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"357,-25 357,-46 404,-46 404,-25 357,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"357,-25 357,-46 404,-46 404,-25 357,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"404,-25 404,-46 447,-46 447,-25 404,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"404,-25 404,-46 447,-46 447,-25 404,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"447,-25 447,-46 485,-46 485,-25 447,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"447,-25 447,-46 485,-46 485,-25 447,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462.5\" 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 244,-25 244,-4 197,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-4 197,-25 244,-25 244,-4 197,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-4 244,-25 271,-25 271,-4 244,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-4 244,-25 271,-25 271,-4 244,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"271,-4 271,-25 314,-25 314,-4 271,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"271,-4 271,-25 314,-25 314,-4 271,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"289\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"314,-4 314,-25 357,-25 357,-4 314,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"314,-4 314,-25 357,-25 357,-4 314,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"357,-4 357,-25 404,-25 404,-4 357,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"357,-4 357,-25 404,-25 404,-4 357,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"404,-4 404,-25 447,-25 447,-4 404,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"404,-4 404,-25 447,-25 447,-4 404,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"447,-4 447,-25 485,-25 485,-4 447,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"447,-4 447,-25 485,-25 485,-4 447,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462.5\" 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 245,-130 245,-109 198,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"198,-109 245,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"245,-109 245,-130 288,-130 288,-109 245,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"245,-109 288,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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 459,-130 459,-109 421,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"421,-109 459,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436.5\" 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 245,-109 245,-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=\"245,-88 245,-109 288,-109 288,-88 245,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248\" 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 459,-109 459,-88 421,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424\" 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 245,-88 245,-67 198,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"211\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"245,-67 245,-88 288,-88 288,-67 245,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256\" 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=\"302.5\" y=\"-73.8\">{}</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\">{0}</text>\n",
"<polygon fill=\"none\" points=\"421,-67 421,-88 459,-88 459,-67 421,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" 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 245,-67 245,-46 198,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-46 198,-67 245,-67 245,-46 198,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-46 245,-67 288,-67 288,-46 245,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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\">0</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 459,-67 459,-46 421,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"421,-46 421,-67 459,-67 459,-46 421,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436.5\" 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 245,-46 245,-25 198,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-25 198,-46 245,-46 245,-25 198,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"245,-25 245,-46 288,-46 288,-25 245,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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=\"#00ffff\" points=\"421,-25 421,-46 459,-46 459,-25 421,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"421,-25 421,-46 459,-46 459,-25 421,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436.5\" 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 245,-25 245,-4 198,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"198,-4 198,-25 245,-25 245,-4 198,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"218\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"245,-4 245,-25 288,-25 288,-4 245,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263\" 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 459,-25 459,-4 421,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"421,-4 421,-25 459,-25 459,-4 421,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"436.5\" 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 508.00 142.00\" width=\"508pt\" 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 504,-138 504,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=\"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 244,-130 244,-109 197,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"197,-109 244,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"244,-109 244,-130 287,-130 287,-109 244,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"244,-109 287,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"287,-109 287,-130 307,-130 307,-109 287,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"287,-109 307,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"307,-109 307,-130 354,-130 354,-109 307,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"307,-109 354,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"354,-109 354,-130 397,-130 397,-109 354,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"354,-109 397,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"397,-109 397,-130 435,-130 435,-109 397,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"397,-109 435,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.5\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"435,-109 435,-130 472,-130 472,-109 435,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"435,-109 472,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" y=\"-115.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"472,-109 472,-130 492,-130 492,-109 472,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"472,-109 492,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478.5\" y=\"-115.8\">8</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 244,-109 244,-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=\"244,-88 244,-109 287,-109 287,-88 244,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"247\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"287,-88 287,-109 307,-109 307,-88 287,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-94.8\">0</text>\n",
"<polygon fill=\"none\" points=\"307,-88 307,-109 354,-109 354,-88 307,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"310\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"354,-88 354,-109 397,-109 397,-88 354,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"357\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"397,-88 397,-109 435,-109 435,-88 397,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"400\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"435,-88 435,-109 472,-109 472,-88 435,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"472,-88 472,-109 492,-109 492,-88 472,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478.5\" 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 244,-88 244,-67 197,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"210\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"244,-67 244,-88 287,-88 287,-67 244,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"287,-67 287,-88 307,-88 307,-67 287,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-73.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"307,-67 307,-88 354,-88 354,-67 307,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"354,-67 354,-88 397,-88 397,-67 354,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"397,-67 397,-88 435,-88 435,-67 397,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"435,-67 435,-88 472,-88 472,-67 435,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"438\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"472,-67 472,-88 492,-88 492,-67 472,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"475\" y=\"-73.8\">{}</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 244,-67 244,-46 197,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-46 197,-67 244,-67 244,-46 197,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-46 244,-67 287,-67 287,-46 244,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-46 244,-67 287,-67 287,-46 244,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"287,-46 287,-67 307,-67 307,-46 287,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-46 287,-67 307,-67 307,-46 287,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"307,-46 307,-67 354,-67 354,-46 307,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"307,-46 307,-67 354,-67 354,-46 307,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"354,-46 354,-67 397,-67 397,-46 354,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"354,-46 354,-67 397,-67 397,-46 354,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"397,-46 397,-67 435,-67 435,-46 397,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"397,-46 397,-67 435,-67 435,-46 397,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.5\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"435,-46 435,-67 472,-67 472,-46 435,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"435,-46 435,-67 472,-67 472,-46 435,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"472,-46 472,-67 492,-67 492,-46 472,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"472,-46 472,-67 492,-67 492,-46 472,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478.5\" y=\"-52.8\">0</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 244,-46 244,-25 197,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-25 197,-46 244,-46 244,-25 197,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"244,-25 244,-46 287,-46 287,-25 244,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"287,-25 287,-46 307,-46 307,-25 287,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-25 287,-46 307,-46 307,-25 287,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"307,-25 307,-46 354,-46 354,-25 307,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"307,-25 307,-46 354,-46 354,-25 307,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"354,-25 354,-46 397,-46 397,-25 354,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"354,-25 354,-46 397,-46 397,-25 354,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"397,-25 397,-46 435,-46 435,-25 397,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"397,-25 397,-46 435,-46 435,-25 397,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.5\" y=\"-31.8\">7</text>\n",
"<polygon fill=\"none\" points=\"435,-25 435,-46 472,-46 472,-25 435,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"472,-25 472,-46 492,-46 492,-25 472,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478.5\" 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 244,-25 244,-4 197,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-4 197,-25 244,-25 244,-4 197,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-4 244,-25 287,-25 287,-4 244,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-4 244,-25 287,-25 287,-4 244,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"287,-4 287,-25 307,-25 307,-4 287,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-4 287,-25 307,-25 307,-4 287,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"307,-4 307,-25 354,-25 354,-4 307,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"307,-4 307,-25 354,-25 354,-4 307,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"354,-4 354,-25 397,-25 397,-4 354,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"354,-4 354,-25 397,-25 397,-4 354,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"397,-4 397,-25 435,-25 435,-4 397,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"397,-4 397,-25 435,-25 435,-4 397,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"435,-4 435,-25 472,-25 472,-4 435,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"435,-4 435,-25 472,-25 472,-4 435,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"472,-4 472,-25 492,-25 492,-4 472,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"472,-4 472,-25 492,-25 492,-4 472,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478.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 488.00 142.00\" width=\"488pt\" 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 484,-138 484,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=\"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 244,-130 244,-109 197,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"197,-109 244,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-115.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"244,-109 244,-130 287,-130 287,-109 244,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"244,-109 287,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-115.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"287,-109 287,-130 334,-130 334,-109 287,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"287,-109 334,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"307\" y=\"-115.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"334,-109 334,-130 377,-130 377,-109 334,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"334,-109 377,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"352\" y=\"-115.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"377,-109 377,-130 415,-130 415,-109 377,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"377,-109 415,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-115.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"415,-109 415,-130 452,-130 452,-109 415,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"415,-109 452,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-115.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"452,-109 452,-130 472,-130 472,-109 452,-109\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"452,-109 472,-109 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458.5\" y=\"-115.8\">7</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 244,-109 244,-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=\"244,-88 244,-109 287,-109 287,-88 244,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"247\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"287,-88 287,-109 334,-109 334,-88 287,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-94.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"334,-88 334,-109 377,-109 377,-88 334,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337\" y=\"-94.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"377,-88 377,-109 415,-109 415,-88 377,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"380\" y=\"-94.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"415,-88 415,-109 452,-109 452,-88 415,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-94.8\">1</text>\n",
"<polygon fill=\"none\" points=\"452,-88 452,-109 472,-109 472,-88 452,-88\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458.5\" 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 244,-88 244,-67 197,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"210\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"244,-67 244,-88 287,-88 287,-67 244,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"287,-67 287,-88 334,-88 334,-67 287,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"334,-67 334,-88 377,-88 377,-67 334,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345\" y=\"-73.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"377,-67 377,-88 415,-88 415,-67 377,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"385.5\" y=\"-73.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"415,-67 415,-88 452,-88 452,-67 415,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418\" y=\"-73.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"452,-67 452,-88 472,-88 472,-67 452,-67\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"455\" y=\"-73.8\">{}</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 244,-67 244,-46 197,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-46 197,-67 244,-67 244,-46 197,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-46 244,-67 287,-67 287,-46 244,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-46 244,-67 287,-67 287,-46 244,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"287,-46 287,-67 334,-67 334,-46 287,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-46 287,-67 334,-67 334,-46 287,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"307\" y=\"-52.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"334,-46 334,-67 377,-67 377,-46 334,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"334,-46 334,-67 377,-67 377,-46 334,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"352\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"377,-46 377,-67 415,-67 415,-46 377,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"377,-46 377,-67 415,-67 415,-46 377,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415,-46 415,-67 452,-67 452,-46 415,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415,-46 415,-67 452,-67 452,-46 415,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-52.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"452,-46 452,-67 472,-67 472,-46 452,-46\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"452,-46 452,-67 472,-67 472,-46 452,-46\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458.5\" y=\"-52.8\">0</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 244,-46 244,-25 197,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-25 197,-46 244,-46 244,-25 197,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-31.8\">2</text>\n",
"<polygon fill=\"none\" points=\"244,-25 244,-46 287,-46 287,-25 244,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"287,-25 287,-46 334,-46 334,-25 287,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-25 287,-46 334,-46 334,-25 287,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"307\" y=\"-31.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"334,-25 334,-46 377,-46 377,-25 334,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"334,-25 334,-46 377,-46 377,-25 334,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"352\" y=\"-31.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"377,-25 377,-46 415,-46 415,-25 377,-25\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"377,-25 377,-46 415,-46 415,-25 377,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-31.8\">6</text>\n",
"<polygon fill=\"none\" points=\"415,-25 415,-46 452,-46 452,-25 415,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-31.8\">0</text>\n",
"<polygon fill=\"none\" points=\"452,-25 452,-46 472,-46 472,-25 452,-25\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458.5\" 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 244,-25 244,-4 197,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"197,-4 197,-25 244,-25 244,-4 197,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"217\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"244,-4 244,-25 287,-25 287,-4 244,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"244,-4 244,-25 287,-25 287,-4 244,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"262\" y=\"-10.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"287,-4 287,-25 334,-25 334,-4 287,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"287,-4 287,-25 334,-25 334,-4 287,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"307\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"334,-4 334,-25 377,-25 377,-4 334,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"334,-4 334,-25 377,-25 377,-4 334,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"352\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"377,-4 377,-25 415,-25 415,-4 377,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"377,-4 377,-25 415,-25 415,-4 377,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392.5\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415,-4 415,-25 452,-25 452,-4 415,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415,-4 415,-25 452,-25 452,-4 415,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430\" y=\"-10.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"452,-4 452,-25 472,-25 472,-4 452,-4\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"452,-4 452,-25 472,-25 472,-4 452,-4\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458.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=\"426pt\" height=\"322pt\"\n",
" viewBox=\"0.00 0.00 425.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 421.7,-317.5843 421.7,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"156.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"181.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"197.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"240.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"256.85\" y=\"-299.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"179.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=\"116.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=\"249.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=\"247.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=\"380.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=\"382.2\" 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 0x7f7e3c439b10> >"
]
},
"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 757.00 376.00\" width=\"757pt\" 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 753,-372 753,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 282.5,-364 282.5,-343 235.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"235.5,-343 282.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-343 282.5,-364 325.5,-364 325.5,-343 282.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"282.5,-343 325.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-343 325.5,-364 372.5,-364 372.5,-343 325.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"325.5,-343 372.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-343 372.5,-364 415.5,-364 415.5,-343 372.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"372.5,-343 415.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-343 415.5,-364 453.5,-364 453.5,-343 415.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"415.5,-343 453.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"453.5,-343 453.5,-364 490.5,-364 490.5,-343 453.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"453.5,-343 490.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"490.5,-343 490.5,-364 510.5,-364 510.5,-343 490.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"490.5,-343 510.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"510.5,-343 510.5,-364 537.5,-364 537.5,-343 510.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"510.5,-343 537.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"537.5,-343 537.5,-364 564.5,-364 564.5,-343 537.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"537.5,-343 564.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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 282.5,-343 282.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=\"282.5,-322 282.5,-343 325.5,-343 325.5,-322 282.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"325.5,-322 325.5,-343 372.5,-343 372.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=\"372.5,-322 372.5,-343 415.5,-343 415.5,-322 372.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"375.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"415.5,-322 415.5,-343 453.5,-343 453.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=\"453.5,-322 453.5,-343 490.5,-343 490.5,-322 453.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"490.5,-322 490.5,-343 510.5,-343 510.5,-322 490.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"510.5,-322 510.5,-343 537.5,-343 537.5,-322 510.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"537.5,-322 537.5,-343 564.5,-343 564.5,-322 537.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"545.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 282.5,-322 282.5,-301 235.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"282.5,-301 282.5,-322 325.5,-322 325.5,-301 282.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"325.5,-301 325.5,-322 372.5,-322 372.5,-301 325.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"372.5,-301 372.5,-322 415.5,-322 415.5,-301 372.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"383.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"415.5,-301 415.5,-322 453.5,-322 453.5,-301 415.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"453.5,-301 453.5,-322 490.5,-322 490.5,-301 453.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-307.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"490.5,-301 490.5,-322 510.5,-322 510.5,-301 490.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"493.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"510.5,-301 510.5,-322 537.5,-322 537.5,-301 510.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"537.5,-301 537.5,-322 564.5,-322 564.5,-301 537.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"540.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 282.5,-301 282.5,-280 235.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-280 235.5,-301 282.5,-301 282.5,-280 235.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-280 282.5,-301 325.5,-301 325.5,-280 282.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-280 282.5,-301 325.5,-301 325.5,-280 282.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-280 325.5,-301 372.5,-301 372.5,-280 325.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-280 325.5,-301 372.5,-301 372.5,-280 325.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-280 372.5,-301 415.5,-301 415.5,-280 372.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-280 372.5,-301 415.5,-301 415.5,-280 372.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-280 415.5,-301 453.5,-301 453.5,-280 415.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-280 415.5,-301 453.5,-301 453.5,-280 415.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"453.5,-280 453.5,-301 490.5,-301 490.5,-280 453.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"453.5,-280 453.5,-301 490.5,-301 490.5,-280 453.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"490.5,-280 490.5,-301 510.5,-301 510.5,-280 490.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"490.5,-280 490.5,-301 510.5,-301 510.5,-280 490.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"510.5,-280 510.5,-301 537.5,-301 537.5,-280 510.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"510.5,-280 510.5,-301 537.5,-301 537.5,-280 510.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"516.5\" y=\"-286.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"537.5,-280 537.5,-301 564.5,-301 564.5,-280 537.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"537.5,-280 537.5,-301 564.5,-301 564.5,-280 537.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"543.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 282.5,-280 282.5,-259 235.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-259 235.5,-280 282.5,-280 282.5,-259 235.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-259 282.5,-280 325.5,-280 325.5,-259 282.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-259 282.5,-280 325.5,-280 325.5,-259 282.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-259 325.5,-280 372.5,-280 372.5,-259 325.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-259 325.5,-280 372.5,-280 372.5,-259 325.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-259 372.5,-280 415.5,-280 415.5,-259 372.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-259 372.5,-280 415.5,-280 415.5,-259 372.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-259 415.5,-280 453.5,-280 453.5,-259 415.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-259 415.5,-280 453.5,-280 453.5,-259 415.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"none\" points=\"453.5,-259 453.5,-280 490.5,-280 490.5,-259 453.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"490.5,-259 490.5,-280 510.5,-280 510.5,-259 490.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"510.5,-259 510.5,-280 537.5,-280 537.5,-259 510.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"537.5,-259 537.5,-280 564.5,-280 564.5,-259 537.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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 282.5,-259 282.5,-238 235.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-238 235.5,-259 282.5,-259 282.5,-238 235.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-238 282.5,-259 325.5,-259 325.5,-238 282.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-238 282.5,-259 325.5,-259 325.5,-238 282.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-238 325.5,-259 372.5,-259 372.5,-238 325.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-238 325.5,-259 372.5,-259 372.5,-238 325.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-238 372.5,-259 415.5,-259 415.5,-238 372.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-238 372.5,-259 415.5,-259 415.5,-238 372.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-238 415.5,-259 453.5,-259 453.5,-238 415.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-238 415.5,-259 453.5,-259 453.5,-238 415.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"453.5,-238 453.5,-259 490.5,-259 490.5,-238 453.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"453.5,-238 453.5,-259 490.5,-259 490.5,-238 453.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"490.5,-238 490.5,-259 510.5,-259 510.5,-238 490.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"490.5,-238 490.5,-259 510.5,-259 510.5,-238 490.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-244.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"510.5,-238 510.5,-259 537.5,-259 537.5,-238 510.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"510.5,-238 510.5,-259 537.5,-259 537.5,-238 510.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"537.5,-238 537.5,-259 564.5,-259 564.5,-238 537.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"537.5,-238 537.5,-259 564.5,-259 564.5,-238 537.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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=\"598.5,-301 598.5,-322 647.5,-322 647.5,-301 598.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"598.5,-301 647.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"609\" y=\"-307.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"647.5,-301 647.5,-322 668.5,-322 668.5,-301 647.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"647.5,-301 668.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"650.5\" y=\"-307.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"668.5,-301 681.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"681.5,-301 694.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"694.5,-301 694.5,-322 715.5,-322 715.5,-301 694.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"694.5,-301 715.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"697.5\" y=\"-307.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"715.5,-301 728.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"728.5,-301 741.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"598.5,-280 598.5,-301 647.5,-301 647.5,-280 598.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"601.5\" y=\"-286.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"647.5,-280 647.5,-301 668.5,-301 668.5,-280 647.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"651\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"668.5,-280 668.5,-301 681.5,-301 681.5,-280 668.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"668.5,-280 668.5,-301 681.5,-301 681.5,-280 668.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"671.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"681.5,-280 681.5,-301 694.5,-301 694.5,-280 681.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"681.5,-280 681.5,-301 694.5,-301 694.5,-280 681.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"684.5\" y=\"-286.8\">3</text>\n",
"<polygon fill=\"none\" points=\"694.5,-280 694.5,-301 715.5,-301 715.5,-280 694.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"698\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"715.5,-280 715.5,-301 728.5,-301 728.5,-280 715.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"715.5,-280 715.5,-301 728.5,-301 728.5,-280 715.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"718.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"728.5,-280 728.5,-301 741.5,-301 741.5,-280 728.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"728.5,-280 728.5,-301 741.5,-301 741.5,-280 728.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"731.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=\"279.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-66.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-47.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-28.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.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=\"466pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 466.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 462.3,-274 462.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"177.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"202.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"218.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"261.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"277.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"200.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=\"157.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=\"290.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=\"288.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=\"421.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=\"422.8\" 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 0x7f7e3c439b10> >"
]
},
"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 818.00 376.00\" width=\"818pt\" 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 814,-372 814,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 282.5,-364 282.5,-343 235.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"235.5,-343 282.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-349.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-343 282.5,-364 325.5,-364 325.5,-343 282.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"282.5,-343 325.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-349.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-343 325.5,-364 372.5,-364 372.5,-343 325.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"325.5,-343 372.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-349.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-343 372.5,-364 415.5,-364 415.5,-343 372.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"372.5,-343 415.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-349.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-343 415.5,-364 453.5,-364 453.5,-343 415.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"415.5,-343 453.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-349.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"453.5,-343 453.5,-364 490.5,-364 490.5,-343 453.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"453.5,-343 490.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-349.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"490.5,-343 490.5,-364 510.5,-364 510.5,-343 490.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"490.5,-343 510.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-349.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"510.5,-343 510.5,-364 537.5,-364 537.5,-343 510.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"510.5,-343 537.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-349.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"537.5,-343 537.5,-364 564.5,-364 564.5,-343 537.5,-343\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"537.5,-343 564.5,-343 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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 282.5,-343 282.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=\"282.5,-322 282.5,-343 325.5,-343 325.5,-322 282.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"325.5,-322 325.5,-343 372.5,-343 372.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=\"372.5,-322 372.5,-343 415.5,-343 415.5,-322 372.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"375.5\" y=\"-328.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"415.5,-322 415.5,-343 453.5,-343 453.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=\"453.5,-322 453.5,-343 490.5,-343 490.5,-322 453.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"490.5,-322 490.5,-343 510.5,-343 510.5,-322 490.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-328.8\">1</text>\n",
"<polygon fill=\"none\" points=\"510.5,-322 510.5,-343 537.5,-343 537.5,-322 510.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-328.8\">a</text>\n",
"<polygon fill=\"none\" points=\"537.5,-322 537.5,-343 564.5,-343 564.5,-322 537.5,-322\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"545.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 282.5,-322 282.5,-301 235.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"282.5,-301 282.5,-322 325.5,-322 325.5,-301 282.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"325.5,-301 325.5,-322 372.5,-322 372.5,-301 325.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"372.5,-301 372.5,-322 415.5,-322 415.5,-301 372.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"383.5\" y=\"-307.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"415.5,-301 415.5,-322 453.5,-322 453.5,-301 415.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"424\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"453.5,-301 453.5,-322 490.5,-322 490.5,-301 453.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"456.5\" y=\"-307.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"490.5,-301 490.5,-322 510.5,-322 510.5,-301 490.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"493.5\" y=\"-307.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"510.5,-301 510.5,-322 537.5,-322 537.5,-301 510.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513.5\" y=\"-307.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"537.5,-301 537.5,-322 564.5,-322 564.5,-301 537.5,-301\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"540.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 282.5,-301 282.5,-280 235.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-280 235.5,-301 282.5,-301 282.5,-280 235.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-280 282.5,-301 325.5,-301 325.5,-280 282.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-280 282.5,-301 325.5,-301 325.5,-280 282.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-280 325.5,-301 372.5,-301 372.5,-280 325.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-280 325.5,-301 372.5,-301 372.5,-280 325.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-280 372.5,-301 415.5,-301 415.5,-280 372.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-280 372.5,-301 415.5,-301 415.5,-280 372.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-280 415.5,-301 453.5,-301 453.5,-280 415.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-280 415.5,-301 453.5,-301 453.5,-280 415.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"453.5,-280 453.5,-301 490.5,-301 490.5,-280 453.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"453.5,-280 453.5,-301 490.5,-301 490.5,-280 453.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"490.5,-280 490.5,-301 510.5,-301 510.5,-280 490.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"490.5,-280 490.5,-301 510.5,-301 510.5,-280 490.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"510.5,-280 510.5,-301 537.5,-301 537.5,-280 510.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"510.5,-280 510.5,-301 537.5,-301 537.5,-280 510.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"516.5\" y=\"-286.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"537.5,-280 537.5,-301 564.5,-301 564.5,-280 537.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"537.5,-280 537.5,-301 564.5,-301 564.5,-280 537.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"543.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 282.5,-280 282.5,-259 235.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-259 235.5,-280 282.5,-280 282.5,-259 235.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-265.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"282.5,-259 282.5,-280 325.5,-280 325.5,-259 282.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-259 282.5,-280 325.5,-280 325.5,-259 282.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-265.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"325.5,-259 325.5,-280 372.5,-280 372.5,-259 325.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-259 325.5,-280 372.5,-280 372.5,-259 325.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-265.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"372.5,-259 372.5,-280 415.5,-280 415.5,-259 372.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-259 372.5,-280 415.5,-280 415.5,-259 372.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-265.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"415.5,-259 415.5,-280 453.5,-280 453.5,-259 415.5,-259\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-259 415.5,-280 453.5,-280 453.5,-259 415.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-265.8\">6</text>\n",
"<polygon fill=\"none\" points=\"453.5,-259 453.5,-280 490.5,-280 490.5,-259 453.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"490.5,-259 490.5,-280 510.5,-280 510.5,-259 490.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"510.5,-259 510.5,-280 537.5,-280 537.5,-259 510.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-265.8\">0</text>\n",
"<polygon fill=\"none\" points=\"537.5,-259 537.5,-280 564.5,-280 564.5,-259 537.5,-259\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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 282.5,-259 282.5,-238 235.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"235.5,-238 235.5,-259 282.5,-259 282.5,-238 235.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"282.5,-238 282.5,-259 325.5,-259 325.5,-238 282.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"282.5,-238 282.5,-259 325.5,-259 325.5,-238 282.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"325.5,-238 325.5,-259 372.5,-259 372.5,-238 325.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"325.5,-238 325.5,-259 372.5,-259 372.5,-238 325.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"345.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"372.5,-238 372.5,-259 415.5,-259 415.5,-238 372.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"372.5,-238 372.5,-259 415.5,-259 415.5,-238 372.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"390.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"415.5,-238 415.5,-259 453.5,-259 453.5,-238 415.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"415.5,-238 415.5,-259 453.5,-259 453.5,-238 415.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"431\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"453.5,-238 453.5,-259 490.5,-259 490.5,-238 453.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"453.5,-238 453.5,-259 490.5,-259 490.5,-238 453.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468.5\" y=\"-244.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"490.5,-238 490.5,-259 510.5,-259 510.5,-238 490.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"490.5,-238 490.5,-259 510.5,-259 510.5,-238 490.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"497\" y=\"-244.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"510.5,-238 510.5,-259 537.5,-259 537.5,-238 510.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"510.5,-238 510.5,-259 537.5,-259 537.5,-238 510.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"520.5\" y=\"-244.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"537.5,-238 537.5,-259 564.5,-259 564.5,-238 537.5,-238\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"537.5,-238 537.5,-259 564.5,-259 564.5,-238 537.5,-238\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.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=\"599.5,-301 599.5,-322 648.5,-322 648.5,-301 599.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"599.5,-301 648.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"610\" y=\"-307.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"648.5,-301 648.5,-322 669.5,-322 669.5,-301 648.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"648.5,-301 669.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"651.5\" y=\"-307.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"669.5,-301 682.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"682.5,-301 695.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"695.5,-301 695.5,-322 716.5,-322 716.5,-301 695.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"695.5,-301 716.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"698.5\" y=\"-307.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"716.5,-301 729.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"729.5,-301 742.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"742.5,-301 742.5,-322 763.5,-322 763.5,-301 742.5,-301\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"742.5,-301 763.5,-301 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"745.5\" y=\"-307.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"763.5,-301 776.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"776.5,-301 789.5,-301 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"789.5,-301 802.5,-301 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"599.5,-280 599.5,-301 648.5,-301 648.5,-280 599.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"602.5\" y=\"-286.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"648.5,-280 648.5,-301 669.5,-301 669.5,-280 648.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"652\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"669.5,-280 669.5,-301 682.5,-301 682.5,-280 669.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"669.5,-280 669.5,-301 682.5,-301 682.5,-280 669.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"672.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"682.5,-280 682.5,-301 695.5,-301 695.5,-280 682.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"682.5,-280 682.5,-301 695.5,-301 695.5,-280 682.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"685.5\" y=\"-286.8\">3</text>\n",
"<polygon fill=\"none\" points=\"695.5,-280 695.5,-301 716.5,-301 716.5,-280 695.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"699\" y=\"-286.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"716.5,-280 716.5,-301 729.5,-301 729.5,-280 716.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"716.5,-280 716.5,-301 729.5,-301 729.5,-280 716.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"719.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"729.5,-280 729.5,-301 742.5,-301 742.5,-280 729.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"729.5,-280 729.5,-301 742.5,-301 742.5,-280 729.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"732.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"none\" points=\"742.5,-280 742.5,-301 763.5,-301 763.5,-280 742.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"746\" y=\"-286.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"763.5,-280 763.5,-301 776.5,-301 776.5,-280 763.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"763.5,-280 763.5,-301 776.5,-301 776.5,-280 763.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"766.5\" y=\"-286.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"776.5,-280 776.5,-301 789.5,-301 789.5,-280 776.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"776.5,-280 776.5,-301 789.5,-301 789.5,-280 776.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"779.5\" y=\"-286.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"789.5,-280 789.5,-301 802.5,-301 802.5,-280 789.5,-280\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"789.5,-280 789.5,-301 802.5,-301 802.5,-280 789.5,-280\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"792.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=\"279.5\" y=\"-180.8\">prop_state_acc:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-180.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-161.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-142.8\">prop_terminal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-142.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-123.8\">prop_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-123.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-104.8\">prop_very_weak:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-104.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-85.8\">prop_complete:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-85.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-66.8\">prop_universal:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-66.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-47.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-28.8\">maybe</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"279.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.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=\"464pt\" height=\"360pt\"\n",
" viewBox=\"0.00 0.00 463.72 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 462.3,-358 462.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"177.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"202.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"218.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"261.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"277.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"200.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=\"157.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=\"290.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=\"288.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=\"421.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=\"422.8\" 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 0x7f7e3c439b10> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"262pt\" viewBox=\"0.00 0.00 903.00 262.00\" width=\"903pt\" 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 899,-258 899,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=\"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 285.5,-250 285.5,-229 238.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"238.5,-229 285.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.5\" y=\"-235.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"285.5,-229 285.5,-250 328.5,-250 328.5,-229 285.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"285.5,-229 328.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-235.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"328.5,-229 328.5,-250 375.5,-250 375.5,-229 328.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"328.5,-229 375.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-235.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"375.5,-229 375.5,-250 418.5,-250 418.5,-229 375.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"375.5,-229 418.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"393.5\" y=\"-235.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"418.5,-229 418.5,-250 456.5,-250 456.5,-229 418.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"418.5,-229 456.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-235.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"456.5,-229 456.5,-250 493.5,-250 493.5,-229 456.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"456.5,-229 493.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"471.5\" y=\"-235.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"493.5,-229 493.5,-250 513.5,-250 513.5,-229 493.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"493.5,-229 513.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-235.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"513.5,-229 513.5,-250 540.5,-250 540.5,-229 513.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"513.5,-229 540.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523.5\" y=\"-235.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"540.5,-229 540.5,-250 567.5,-250 567.5,-229 540.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"540.5,-229 567.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"550.5\" y=\"-235.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"567.5,-229 567.5,-250 595.5,-250 595.5,-229 567.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"567.5,-229 595.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"574.5\" 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 285.5,-229 285.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=\"285.5,-208 285.5,-229 328.5,-229 328.5,-208 285.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"328.5,-208 328.5,-229 375.5,-229 375.5,-208 328.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"331.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"375.5,-208 375.5,-229 418.5,-229 418.5,-208 375.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"418.5,-208 418.5,-229 456.5,-229 456.5,-208 418.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"421.5\" y=\"-214.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"456.5,-208 456.5,-229 493.5,-229 493.5,-208 456.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"471.5\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"493.5,-208 493.5,-229 513.5,-229 513.5,-208 493.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"513.5,-208 513.5,-229 540.5,-229 540.5,-208 513.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523.5\" y=\"-214.8\">a</text>\n",
"<polygon fill=\"none\" points=\"540.5,-208 540.5,-229 567.5,-229 567.5,-208 540.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548.5\" y=\"-214.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"567.5,-208 567.5,-229 595.5,-229 595.5,-208 567.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578\" 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 285.5,-208 285.5,-187 238.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"251.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"285.5,-187 285.5,-208 328.5,-208 328.5,-187 285.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"296.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"328.5,-187 328.5,-208 375.5,-208 375.5,-187 328.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"341.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"375.5,-187 375.5,-208 418.5,-208 418.5,-187 375.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"386.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"418.5,-187 418.5,-208 456.5,-208 456.5,-187 418.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"427\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"456.5,-187 456.5,-208 493.5,-208 493.5,-187 456.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"459.5\" y=\"-193.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"493.5,-187 493.5,-208 513.5,-208 513.5,-187 493.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"496.5\" y=\"-193.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"513.5,-187 513.5,-208 540.5,-208 540.5,-187 513.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"516.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"540.5,-187 540.5,-208 567.5,-208 567.5,-187 540.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"543.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"567.5,-187 567.5,-208 595.5,-208 595.5,-187 567.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"571\" 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 285.5,-187 285.5,-166 238.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-166 238.5,-187 285.5,-187 285.5,-166 238.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"285.5,-166 285.5,-187 328.5,-187 328.5,-166 285.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"285.5,-166 285.5,-187 328.5,-187 328.5,-166 285.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"328.5,-166 328.5,-187 375.5,-187 375.5,-166 328.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"328.5,-166 328.5,-187 375.5,-187 375.5,-166 328.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"375.5,-166 375.5,-187 418.5,-187 418.5,-166 375.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"375.5,-166 375.5,-187 418.5,-187 418.5,-166 375.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"393.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"418.5,-166 418.5,-187 456.5,-187 456.5,-166 418.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"418.5,-166 418.5,-187 456.5,-187 456.5,-166 418.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"456.5,-166 456.5,-187 493.5,-187 493.5,-166 456.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"456.5,-166 456.5,-187 493.5,-187 493.5,-166 456.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"471.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"493.5,-166 493.5,-187 513.5,-187 513.5,-166 493.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"493.5,-166 493.5,-187 513.5,-187 513.5,-166 493.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"513.5,-166 513.5,-187 540.5,-187 540.5,-166 513.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"513.5,-166 513.5,-187 540.5,-187 540.5,-166 513.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"519.5\" y=\"-172.8\">~0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"540.5,-166 540.5,-187 567.5,-187 567.5,-166 540.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540.5,-166 540.5,-187 567.5,-187 567.5,-166 540.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-172.8\">~3</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"567.5,-166 567.5,-187 595.5,-187 595.5,-166 567.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"567.5,-166 567.5,-187 595.5,-187 595.5,-166 567.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"570.5\" y=\"-172.8\">~10</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 285.5,-166 285.5,-145 238.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-145 238.5,-166 285.5,-166 285.5,-145 238.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.5\" y=\"-151.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"285.5,-145 285.5,-166 328.5,-166 328.5,-145 285.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"285.5,-145 285.5,-166 328.5,-166 328.5,-145 285.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-151.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"328.5,-145 328.5,-166 375.5,-166 375.5,-145 328.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"328.5,-145 328.5,-166 375.5,-166 375.5,-145 328.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-151.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"375.5,-145 375.5,-166 418.5,-166 418.5,-145 375.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"375.5,-145 375.5,-166 418.5,-166 418.5,-145 375.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"393.5\" y=\"-151.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"418.5,-145 418.5,-166 456.5,-166 456.5,-145 418.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"418.5,-145 418.5,-166 456.5,-166 456.5,-145 418.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-151.8\">6</text>\n",
"<polygon fill=\"none\" points=\"456.5,-145 456.5,-166 493.5,-166 493.5,-145 456.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"471.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"493.5,-145 493.5,-166 513.5,-166 513.5,-145 493.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"513.5,-145 513.5,-166 540.5,-166 540.5,-145 513.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"540.5,-145 540.5,-166 567.5,-166 567.5,-145 540.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540.5,-145 540.5,-166 567.5,-166 567.5,-145 540.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547\" y=\"-151.8\">10</text>\n",
"<polygon fill=\"none\" points=\"567.5,-145 567.5,-166 595.5,-166 595.5,-145 567.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578\" 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 285.5,-145 285.5,-124 238.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"238.5,-124 238.5,-145 285.5,-145 285.5,-124 238.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"285.5,-124 285.5,-145 328.5,-145 328.5,-124 285.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"285.5,-124 285.5,-145 328.5,-145 328.5,-124 285.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"303.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"328.5,-124 328.5,-145 375.5,-145 375.5,-124 328.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"328.5,-124 328.5,-145 375.5,-145 375.5,-124 328.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"375.5,-124 375.5,-145 418.5,-145 418.5,-124 375.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"375.5,-124 375.5,-145 418.5,-145 418.5,-124 375.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"393.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"418.5,-124 418.5,-145 456.5,-145 456.5,-124 418.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"418.5,-124 418.5,-145 456.5,-145 456.5,-124 418.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"456.5,-124 456.5,-145 493.5,-145 493.5,-124 456.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"456.5,-124 456.5,-145 493.5,-145 493.5,-124 456.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"471.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"493.5,-124 493.5,-145 513.5,-145 513.5,-124 493.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"493.5,-124 493.5,-145 513.5,-145 513.5,-124 493.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"500\" y=\"-130.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"513.5,-124 513.5,-145 540.5,-145 540.5,-124 513.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"513.5,-124 513.5,-145 540.5,-145 540.5,-124 513.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"540.5,-124 540.5,-145 567.5,-145 567.5,-124 540.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"540.5,-124 540.5,-145 567.5,-145 567.5,-124 540.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"550.5\" y=\"-130.8\">3</text>\n",
"<polygon fill=\"#ffff00\" points=\"567.5,-124 567.5,-145 595.5,-145 595.5,-124 567.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"567.5,-124 567.5,-145 595.5,-145 595.5,-124 567.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578\" y=\"-130.8\">3</text>\n",
"</g>\n",
"<!-- dests -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>dests</title>\n",
"<polygon fill=\"#ffc0cb\" points=\"630.5,-187 630.5,-208 679.5,-208 679.5,-187 630.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"630.5,-187 679.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"641\" y=\"-193.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"679.5,-187 679.5,-208 700.5,-208 700.5,-187 679.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"679.5,-187 700.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"682.5\" y=\"-193.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"700.5,-187 713.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"713.5,-187 726.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"726.5,-187 726.5,-208 747.5,-208 747.5,-187 726.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"726.5,-187 747.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"729.5\" y=\"-193.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"747.5,-187 760.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"760.5,-187 773.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"773.5,-187 773.5,-208 794.5,-208 794.5,-187 773.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"773.5,-187 794.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"776.5\" y=\"-193.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"794.5,-187 807.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"807.5,-187 820.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"820.5,-187 833.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"833.5,-187 833.5,-208 861.5,-208 861.5,-187 833.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"833.5,-187 861.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"836.5\" y=\"-193.8\">~10</text>\n",
"<polyline fill=\"none\" points=\"861.5,-187 874.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"874.5,-187 887.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"630.5,-166 630.5,-187 679.5,-187 679.5,-166 630.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"633.5\" y=\"-172.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"679.5,-166 679.5,-187 700.5,-187 700.5,-166 679.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"683\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"700.5,-166 700.5,-187 713.5,-187 713.5,-166 700.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"700.5,-166 700.5,-187 713.5,-187 713.5,-166 700.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"703.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"713.5,-166 713.5,-187 726.5,-187 726.5,-166 713.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"713.5,-166 713.5,-187 726.5,-187 726.5,-166 713.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"716.5\" y=\"-172.8\">3</text>\n",
"<polygon fill=\"none\" points=\"726.5,-166 726.5,-187 747.5,-187 747.5,-166 726.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"730\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"747.5,-166 747.5,-187 760.5,-187 760.5,-166 747.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"747.5,-166 747.5,-187 760.5,-187 760.5,-166 747.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"750.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"760.5,-166 760.5,-187 773.5,-187 773.5,-166 760.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"760.5,-166 760.5,-187 773.5,-187 773.5,-166 760.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"763.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"none\" points=\"773.5,-166 773.5,-187 794.5,-187 794.5,-166 773.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"777\" y=\"-172.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"794.5,-166 794.5,-187 807.5,-187 807.5,-166 794.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"794.5,-166 794.5,-187 807.5,-187 807.5,-166 794.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"797.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"807.5,-166 807.5,-187 820.5,-187 820.5,-166 807.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"807.5,-166 807.5,-187 820.5,-187 820.5,-166 807.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"810.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"820.5,-166 820.5,-187 833.5,-187 833.5,-166 820.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"820.5,-166 820.5,-187 833.5,-187 833.5,-166 820.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"823.5\" y=\"-172.8\">2</text>\n",
"<polygon fill=\"none\" points=\"833.5,-166 833.5,-187 861.5,-187 861.5,-166 833.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"840.5\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"861.5,-166 861.5,-187 874.5,-187 874.5,-166 861.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"861.5,-166 861.5,-187 874.5,-187 874.5,-166 861.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"864.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"874.5,-166 874.5,-187 887.5,-187 887.5,-166 874.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"874.5,-166 874.5,-187 887.5,-187 887.5,-166 874.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"877.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=\"481pt\" height=\"278pt\"\n",
" viewBox=\"0.00 0.00 481.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 477.3,-274 477.3,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"184.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
"<text text-anchor=\"start\" x=\"209.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"225.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) &amp; Inf(</text>\n",
"<text text-anchor=\"start\" x=\"268.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"284.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
"<text text-anchor=\"start\" x=\"207.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=\"157.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=\"305.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=\"303.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=\"436.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=\"437.8\" 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 0x7f7e3c439b10> >"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/svg+xml": [
"<svg height=\"262pt\" viewBox=\"0.00 0.00 848.00 262.00\" width=\"848pt\" 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 844,-258 844,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=\"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 286.5,-250 286.5,-229 239.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"239.5,-229 286.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-235.8\">1</text>\n",
"<polygon fill=\"#00ffff\" points=\"286.5,-229 286.5,-250 329.5,-250 329.5,-229 286.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"286.5,-229 329.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"304.5\" y=\"-235.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"329.5,-229 329.5,-250 356.5,-250 356.5,-229 329.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"329.5,-229 356.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-235.8\">3</text>\n",
"<polygon fill=\"#00ffff\" points=\"356.5,-229 356.5,-250 403.5,-250 403.5,-229 356.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"356.5,-229 403.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"376.5\" y=\"-235.8\">4</text>\n",
"<polygon fill=\"#00ffff\" points=\"403.5,-229 403.5,-250 446.5,-250 446.5,-229 403.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"403.5,-229 446.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"421.5\" y=\"-235.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"446.5,-229 446.5,-250 484.5,-250 484.5,-229 446.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"446.5,-229 484.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-235.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"484.5,-229 484.5,-250 521.5,-250 521.5,-229 484.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"484.5,-229 521.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499.5\" y=\"-235.8\">7</text>\n",
"<polygon fill=\"#00ffff\" points=\"521.5,-229 521.5,-250 541.5,-250 541.5,-229 521.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"521.5,-229 541.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528\" y=\"-235.8\">8</text>\n",
"<polygon fill=\"#00ffff\" points=\"541.5,-229 541.5,-250 568.5,-250 568.5,-229 541.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"541.5,-229 568.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-235.8\">9</text>\n",
"<polygon fill=\"#00ffff\" points=\"568.5,-229 568.5,-250 595.5,-250 595.5,-229 568.5,-229\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"568.5,-229 595.5,-229 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"575\" 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 286.5,-229 286.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=\"286.5,-208 286.5,-229 329.5,-229 329.5,-208 286.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"289.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"329.5,-208 329.5,-229 356.5,-229 356.5,-208 329.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-214.8\">a</text>\n",
"<polygon fill=\"none\" points=\"356.5,-208 356.5,-229 403.5,-229 403.5,-208 356.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"359.5\" y=\"-214.8\">!a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"403.5,-208 403.5,-229 446.5,-229 446.5,-208 403.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406.5\" y=\"-214.8\">a &amp; !b</text>\n",
"<polygon fill=\"none\" points=\"446.5,-208 446.5,-229 484.5,-229 484.5,-208 446.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-214.8\">a &amp; b</text>\n",
"<polygon fill=\"none\" points=\"484.5,-208 484.5,-229 521.5,-229 521.5,-208 484.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499.5\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"521.5,-208 521.5,-229 541.5,-229 541.5,-208 521.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528\" y=\"-214.8\">1</text>\n",
"<polygon fill=\"none\" points=\"541.5,-208 541.5,-229 568.5,-229 568.5,-208 541.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"549.5\" y=\"-214.8\">!a</text>\n",
"<polygon fill=\"none\" points=\"568.5,-208 568.5,-229 595.5,-229 595.5,-208 568.5,-208\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578.5\" 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 286.5,-208 286.5,-187 239.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"252.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"286.5,-187 286.5,-208 329.5,-208 329.5,-187 286.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"329.5,-187 329.5,-208 356.5,-208 356.5,-187 329.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"332.5\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"356.5,-187 356.5,-208 403.5,-208 403.5,-187 356.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"369.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"403.5,-187 403.5,-208 446.5,-208 446.5,-187 403.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"414.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"446.5,-187 446.5,-208 484.5,-208 484.5,-187 446.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"455\" y=\"-193.8\">{1}</text>\n",
"<polygon fill=\"none\" points=\"484.5,-187 484.5,-208 521.5,-208 521.5,-187 484.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"487.5\" y=\"-193.8\">{0,1}</text>\n",
"<polygon fill=\"none\" points=\"521.5,-187 521.5,-208 541.5,-208 541.5,-187 521.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"524.5\" y=\"-193.8\">{}</text>\n",
"<polygon fill=\"none\" points=\"541.5,-187 541.5,-208 568.5,-208 568.5,-187 541.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"544.5\" y=\"-193.8\">{0}</text>\n",
"<polygon fill=\"none\" points=\"568.5,-187 568.5,-208 595.5,-208 595.5,-187 568.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"571.5\" 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 286.5,-187 286.5,-166 239.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-166 239.5,-187 286.5,-187 286.5,-166 239.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"286.5,-166 286.5,-187 329.5,-187 329.5,-166 286.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"286.5,-166 286.5,-187 329.5,-187 329.5,-166 286.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"304.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"329.5,-166 329.5,-187 356.5,-187 356.5,-166 329.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"329.5,-166 329.5,-187 356.5,-187 356.5,-166 329.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"335.5\" y=\"-172.8\">~0</text>\n",
"<polygon fill=\"#ffff00\" points=\"356.5,-166 356.5,-187 403.5,-187 403.5,-166 356.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"356.5,-166 356.5,-187 403.5,-187 403.5,-166 356.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"376.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"403.5,-166 403.5,-187 446.5,-187 446.5,-166 403.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"403.5,-166 403.5,-187 446.5,-187 446.5,-166 403.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"421.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"446.5,-166 446.5,-187 484.5,-187 484.5,-166 446.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"446.5,-166 446.5,-187 484.5,-187 484.5,-166 446.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"484.5,-166 484.5,-187 521.5,-187 521.5,-166 484.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"484.5,-166 484.5,-187 521.5,-187 521.5,-166 484.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"521.5,-166 521.5,-187 541.5,-187 541.5,-166 521.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"521.5,-166 521.5,-187 541.5,-187 541.5,-166 521.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"541.5,-166 541.5,-187 568.5,-187 568.5,-166 541.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"541.5,-166 541.5,-187 568.5,-187 568.5,-166 541.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"547.5\" y=\"-172.8\">~3</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"568.5,-166 568.5,-187 595.5,-187 595.5,-166 568.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"568.5,-166 568.5,-187 595.5,-187 595.5,-166 568.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"574.5\" y=\"-172.8\">~0</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 286.5,-166 286.5,-145 239.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-145 239.5,-166 286.5,-166 286.5,-145 239.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-151.8\">2</text>\n",
"<polygon fill=\"#00ffff\" points=\"286.5,-145 286.5,-166 329.5,-166 329.5,-145 286.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"286.5,-145 286.5,-166 329.5,-166 329.5,-145 286.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"304.5\" y=\"-151.8\">3</text>\n",
"<polygon fill=\"none\" points=\"329.5,-145 329.5,-166 356.5,-166 356.5,-145 329.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"356.5,-145 356.5,-166 403.5,-166 403.5,-145 356.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"356.5,-145 356.5,-166 403.5,-166 403.5,-145 356.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"376.5\" y=\"-151.8\">5</text>\n",
"<polygon fill=\"#00ffff\" points=\"403.5,-145 403.5,-166 446.5,-166 446.5,-145 403.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"403.5,-145 403.5,-166 446.5,-166 446.5,-145 403.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"421.5\" y=\"-151.8\">6</text>\n",
"<polygon fill=\"#00ffff\" points=\"446.5,-145 446.5,-166 484.5,-166 484.5,-145 446.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"446.5,-145 446.5,-166 484.5,-166 484.5,-145 446.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-151.8\">7</text>\n",
"<polygon fill=\"none\" points=\"484.5,-145 484.5,-166 521.5,-166 521.5,-145 484.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499.5\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"none\" points=\"521.5,-145 521.5,-166 541.5,-166 541.5,-145 521.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528\" y=\"-151.8\">0</text>\n",
"<polygon fill=\"#00ffff\" points=\"541.5,-145 541.5,-166 568.5,-166 568.5,-145 541.5,-145\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"541.5,-145 541.5,-166 568.5,-166 568.5,-145 541.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548\" y=\"-151.8\">10</text>\n",
"<polygon fill=\"none\" points=\"568.5,-145 568.5,-166 595.5,-166 595.5,-145 568.5,-145\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578.5\" 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 286.5,-145 286.5,-124 239.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"239.5,-124 239.5,-145 286.5,-145 286.5,-124 239.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"286.5,-124 286.5,-145 329.5,-145 329.5,-124 286.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"286.5,-124 286.5,-145 329.5,-145 329.5,-124 286.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"304.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"329.5,-124 329.5,-145 356.5,-145 356.5,-124 329.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"329.5,-124 329.5,-145 356.5,-145 356.5,-124 329.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"339.5\" y=\"-130.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"356.5,-124 356.5,-145 403.5,-145 403.5,-124 356.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"356.5,-124 356.5,-145 403.5,-145 403.5,-124 356.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"376.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"403.5,-124 403.5,-145 446.5,-145 446.5,-124 403.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"403.5,-124 403.5,-145 446.5,-145 446.5,-124 403.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"421.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"446.5,-124 446.5,-145 484.5,-145 484.5,-124 446.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"446.5,-124 446.5,-145 484.5,-145 484.5,-124 446.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"462\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"484.5,-124 484.5,-145 521.5,-145 521.5,-124 484.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"484.5,-124 484.5,-145 521.5,-145 521.5,-124 484.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"499.5\" y=\"-130.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"521.5,-124 521.5,-145 541.5,-145 541.5,-124 521.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"521.5,-124 521.5,-145 541.5,-145 541.5,-124 521.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"528\" y=\"-130.8\">2</text>\n",
"<polygon fill=\"#ffff00\" points=\"541.5,-124 541.5,-145 568.5,-145 568.5,-124 541.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"541.5,-124 541.5,-145 568.5,-145 568.5,-124 541.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-130.8\">3</text>\n",
"<polygon fill=\"#ffff00\" points=\"568.5,-124 568.5,-145 595.5,-145 595.5,-124 568.5,-124\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"568.5,-124 568.5,-145 595.5,-145 595.5,-124 568.5,-124\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"578.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=\"629.5,-187 629.5,-208 678.5,-208 678.5,-187 629.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"629.5,-187 678.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"640\" y=\"-193.8\">dests</text>\n",
"<polygon fill=\"#ffc0cb\" points=\"678.5,-187 678.5,-208 699.5,-208 699.5,-187 678.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"678.5,-187 699.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"681.5\" y=\"-193.8\">~0</text>\n",
"<polyline fill=\"none\" points=\"699.5,-187 712.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"712.5,-187 725.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"725.5,-187 725.5,-208 746.5,-208 746.5,-187 725.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"725.5,-187 746.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"728.5\" y=\"-193.8\">~3</text>\n",
"<polyline fill=\"none\" points=\"746.5,-187 759.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"759.5,-187 772.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"#ffc0cb\" points=\"772.5,-187 772.5,-208 793.5,-208 793.5,-187 772.5,-187\" stroke=\"transparent\"/>\n",
"<polyline fill=\"none\" points=\"772.5,-187 793.5,-187 \" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"775.5\" y=\"-193.8\">~6</text>\n",
"<polyline fill=\"none\" points=\"793.5,-187 806.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"806.5,-187 819.5,-187 \" stroke=\"#000000\"/>\n",
"<polyline fill=\"none\" points=\"819.5,-187 832.5,-187 \" stroke=\"#000000\"/>\n",
"<polygon fill=\"none\" points=\"629.5,-166 629.5,-187 678.5,-187 678.5,-166 629.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"632.5\" y=\"-172.8\">#cnt/dst</text>\n",
"<polygon fill=\"none\" points=\"678.5,-166 678.5,-187 699.5,-187 699.5,-166 678.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"682\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"699.5,-166 699.5,-187 712.5,-187 712.5,-166 699.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"699.5,-166 699.5,-187 712.5,-187 712.5,-166 699.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"702.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"712.5,-166 712.5,-187 725.5,-187 725.5,-166 712.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"712.5,-166 712.5,-187 725.5,-187 725.5,-166 712.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"715.5\" y=\"-172.8\">3</text>\n",
"<polygon fill=\"none\" points=\"725.5,-166 725.5,-187 746.5,-187 746.5,-166 725.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"729\" y=\"-172.8\">#2</text>\n",
"<polygon fill=\"#ffff00\" points=\"746.5,-166 746.5,-187 759.5,-187 759.5,-166 746.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"746.5,-166 746.5,-187 759.5,-187 759.5,-166 746.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"749.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"759.5,-166 759.5,-187 772.5,-187 772.5,-166 759.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"759.5,-166 759.5,-187 772.5,-187 772.5,-166 759.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"762.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"none\" points=\"772.5,-166 772.5,-187 793.5,-187 793.5,-166 772.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"776\" y=\"-172.8\">#3</text>\n",
"<polygon fill=\"#ffff00\" points=\"793.5,-166 793.5,-187 806.5,-187 806.5,-166 793.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"793.5,-166 793.5,-187 806.5,-187 806.5,-166 793.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"796.5\" y=\"-172.8\">0</text>\n",
"<polygon fill=\"#ffff00\" points=\"806.5,-166 806.5,-187 819.5,-187 819.5,-166 806.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"806.5,-166 806.5,-187 819.5,-187 819.5,-166 806.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"809.5\" y=\"-172.8\">1</text>\n",
"<polygon fill=\"#ffff00\" points=\"819.5,-166 819.5,-187 832.5,-187 832.5,-166 819.5,-166\" stroke=\"transparent\"/>\n",
"<polygon fill=\"none\" points=\"819.5,-166 819.5,-187 832.5,-187 832.5,-166 819.5,-166\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"822.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 0x7f7e3c3cf030> >"
]
},
"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 0x7f7e3c3cf030> >"
]
},
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}