* spot/graph/graph.hh, spot/twa/twagraph.hh, spot/twa/twagraph.cc: Implement a dump_storage_as_dot() method. * python/spot/__init__.py (twa_graph.show_storage): New method, above dump_storage_as_dot(). * tests/python/twagraph-internals.ipynb: New file, with documentation about the twa_graph internals, using show_storage() to illustrate everything. * tests/Makefile.am, doc/org/tut.org: Add it. * python/spot/impl.i: Add bindings for out_iterasor, demonstrated in the Python notebook. * spot/twa/twa.hh: Add prop_reset(). Used in the notebook. * NEWS: Mention the new notebook and function. * doc/org/tut50.org: Link to the notebook. * tests/python/ipnbdoctest.py: Adjust for twa_graph_ptr being redefined in the spot namespace.
5519 lines
499 KiB
Text
5519 lines
499 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"This notebook discusses how explicit automata (the `spot::twa_graph_ptr` objects in C++) are stored by Spot. The Python bindings do not expose all of the internals available in C++, however they have some graphical representation that are convenient to present those inner workings."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import buddy\n",
|
|
"import spot\n",
|
|
"spot.setup(show_default='.n')\n",
|
|
"from IPython.display import display"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# The two-vector representation"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Let's consider a small automaton, generated from an LTL formula."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"aut = spot.translate('GF(a <-> Xa) & FGb', 'det', 'gen')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"198pt\" height=\"220pt\"\n",
|
|
" viewBox=\"0.00 0.00 197.50 219.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 215.597)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-215.597 193.5,-215.597 193.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"42.75\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"67.75\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"83.75\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"126.75\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"142.75\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"65.75\" y=\"-183.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->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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=\"39\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"48\" y=\"-103.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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=\"-147.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"40\" y=\"-133.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"56\" 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->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M63.0163,-80.3922C68.8835,-92.0457 78.4814,-106.6723 92,-113.597 108.2183,-121.9045 116.7817,-121.9045 133,-113.597 144.1951,-107.8624 152.7014,-96.8461 158.6268,-86.6103\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.9837,-80.3922 161.4302,-88.0483 160.321,-83.472 158.6583,-86.5519 158.6583,-86.5519 158.6583,-86.5519 160.321,-83.472 155.8865,-85.0555 161.9837,-80.3922 161.9837,-80.3922\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-123.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.1554,-63.597C93.0184,-63.597 122.6779,-63.597 143.8045,-63.597\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"150.8897,-63.597 143.8897,-66.7471 147.3897,-63.597 143.8897,-63.5971 143.8897,-63.5971 143.8897,-63.5971 147.3897,-63.597 143.8896,-60.4471 150.8897,-63.597 150.8897,-63.597\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-82.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !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->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.8943,-53.5269C147.6932,-49.9651 140.2713,-46.3981 133,-44.597 115.3123,-40.2158 109.6877,-40.2158 92,-44.597 87.1146,-45.8071 82.1612,-47.8144 77.5558,-50.0817\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.1057,-53.5269 75.7959,-47.4504 74.1929,-51.8779 77.2801,-50.2289 77.2801,-50.2289 77.2801,-50.2289 74.1929,-51.8779 78.7642,-53.0073 71.1057,-53.5269 71.1057,-53.5269\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"95.5\" y=\"-48.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.3945,-46.4596C157.9627,-32.9433 148.2731,-15.015 133,-6.597 117.0413,2.199 107.9587,2.199 92,-6.597 79.1133,-13.6997 70.2016,-27.5729 64.4686,-39.8538\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.6055,-46.4596 61.499,-38.7842 62.9974,-43.2482 64.3893,-40.0368 64.3893,-40.0368 64.3893,-40.0368 62.9974,-43.2482 67.2795,-41.2895 61.6055,-46.4596 61.6055,-46.4596\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-25.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !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->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->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 & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"161\" y=\"-103.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->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=\"148.5\" y=\"-147.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"153\" y=\"-133.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"169\" 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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 260.5,-364 260.5,-343 222.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"222.5,-343 260.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-349.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"260.5,-343 260.5,-364 303.5,-364 303.5,-343 260.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"260.5,-343 303.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"278.5\" y=\"-349.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"303.5,-343 303.5,-364 346.5,-364 346.5,-343 303.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"303.5,-343 346.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-349.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"346.5,-343 346.5,-364 393.5,-364 393.5,-343 346.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"346.5,-343 393.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-349.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"393.5,-343 393.5,-364 431.5,-364 431.5,-343 393.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"393.5,-343 431.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-349.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"431.5,-343 431.5,-364 474.5,-364 474.5,-343 431.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"431.5,-343 474.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-349.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"474.5,-343 474.5,-364 517.5,-364 517.5,-343 474.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"474.5,-343 517.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-349.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"517.5,-343 517.5,-364 564.5,-364 564.5,-343 517.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"517.5,-343 564.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"537.5\" y=\"-349.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"161.5,-322 161.5,-343 222.5,-343 222.5,-322 161.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"178.5\" y=\"-328.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"222.5,-322 222.5,-343 260.5,-343 260.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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"260.5,-322 260.5,-343 303.5,-343 303.5,-322 260.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"263.5\" y=\"-328.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"303.5,-322 303.5,-343 346.5,-343 346.5,-322 303.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"306.5\" y=\"-328.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"346.5,-322 346.5,-343 393.5,-343 393.5,-322 346.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"349.5\" y=\"-328.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"393.5,-322 393.5,-343 431.5,-343 431.5,-322 393.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"396.5\" y=\"-328.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"431.5,-322 431.5,-343 474.5,-343 474.5,-322 431.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434.5\" y=\"-328.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-322 474.5,-343 517.5,-343 517.5,-322 474.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-328.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"517.5,-322 517.5,-343 564.5,-343 564.5,-322 517.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 & !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 260.5,-322 260.5,-301 222.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"231\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"260.5,-301 260.5,-322 303.5,-322 303.5,-301 260.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"266.5\" y=\"-307.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"303.5,-301 303.5,-322 346.5,-322 346.5,-301 303.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318\" y=\"-307.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"346.5,-301 346.5,-322 393.5,-322 393.5,-301 346.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"359.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"393.5,-301 393.5,-322 431.5,-322 431.5,-301 393.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-307.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"431.5,-301 431.5,-322 474.5,-322 474.5,-301 431.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"442.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-301 474.5,-322 517.5,-322 517.5,-301 474.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"485.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"517.5,-301 517.5,-322 564.5,-322 564.5,-301 517.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"525.5\" y=\"-307.8\">{0,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 260.5,-301 260.5,-280 222.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"222.5,-280 222.5,-301 260.5,-301 260.5,-280 222.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"260.5,-280 260.5,-301 303.5,-301 303.5,-280 260.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"260.5,-280 260.5,-301 303.5,-301 303.5,-280 260.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"278.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"474.5,-280 474.5,-301 517.5,-301 517.5,-280 474.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-280 474.5,-301 517.5,-301 517.5,-280 474.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"517.5,-280 517.5,-301 564.5,-301 564.5,-280 517.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"517.5,-280 517.5,-301 564.5,-301 564.5,-280 517.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"537.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"161.5,-259 161.5,-280 222.5,-280 222.5,-259 161.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"164.5\" y=\"-265.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"222.5,-259 222.5,-280 260.5,-280 260.5,-259 222.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"222.5,-259 222.5,-280 260.5,-280 260.5,-259 222.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-265.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"260.5,-259 260.5,-280 303.5,-280 303.5,-259 260.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"260.5,-259 260.5,-280 303.5,-280 303.5,-259 260.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"278.5\" y=\"-265.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-265.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"346.5,-259 346.5,-280 393.5,-280 393.5,-259 346.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-265.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-265.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"474.5,-259 474.5,-280 517.5,-280 517.5,-259 474.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-259 474.5,-280 517.5,-280 517.5,-259 474.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-265.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"517.5,-259 517.5,-280 564.5,-280 564.5,-259 517.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"537.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"161.5,-238 161.5,-259 222.5,-259 222.5,-238 161.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"184\" y=\"-244.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"222.5,-238 222.5,-259 260.5,-259 260.5,-238 222.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"222.5,-238 222.5,-259 260.5,-259 260.5,-238 222.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"260.5,-238 260.5,-259 303.5,-259 303.5,-238 260.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"260.5,-238 260.5,-259 303.5,-259 303.5,-238 260.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"278.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"449.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"474.5,-238 474.5,-259 517.5,-259 517.5,-238 474.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-238 474.5,-259 517.5,-259 517.5,-238 474.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"517.5,-238 517.5,-259 564.5,-259 564.5,-238 517.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"517.5,-238 517.5,-259 564.5,-259 564.5,-238 517.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"537.5\" y=\"-244.8\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- meta -->\n",
|
|
"<g class=\"node\" id=\"node3\">\n",
|
|
"<title>meta</title>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">0</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) & 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->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->edges -->\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"aut.show_storage()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Each state is represented by an integer that is a 0-based index into the `states` array. Each edge is also represented by an integer that is a 1-based index into the `edges` array. In the above picture, yellow and cyan denote state and edge indices respectively.\n",
|
|
"\n",
|
|
"Adding a new edge, for instance, will augment the size of the `edges` array and return the index of the newly added edge:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"9"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"s = aut.new_state()\n",
|
|
"aut.set_init_state(s)\n",
|
|
"aut.new_edge(s, 0, buddy.bddtrue)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"279pt\" height=\"220pt\"\n",
|
|
" viewBox=\"0.00 0.00 278.50 219.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 215.597)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-215.597 274.5,-215.597 274.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"83.25\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"108.25\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"124.25\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"167.25\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"183.25\" y=\"-197.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"106.25\" y=\"-183.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->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->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->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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=\"120\" y=\"-118.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"129\" y=\"-103.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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=\"-147.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"121\" y=\"-133.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"137\" 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->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M144.0163,-80.3922C149.8835,-92.0457 159.4814,-106.6723 173,-113.597 189.2183,-121.9045 197.7817,-121.9045 214,-113.597 225.1951,-107.8624 233.7014,-96.8461 239.6268,-86.6103\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"242.9837,-80.3922 242.4302,-88.0483 241.321,-83.472 239.6583,-86.5519 239.6583,-86.5519 239.6583,-86.5519 241.321,-83.472 236.8865,-85.0555 242.9837,-80.3922 242.9837,-80.3922\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-123.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M155.1554,-63.597C174.0184,-63.597 203.6779,-63.597 224.8045,-63.597\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"231.8897,-63.597 224.8897,-66.7471 228.3897,-63.597 224.8897,-63.5971 224.8897,-63.5971 224.8897,-63.5971 228.3897,-63.597 224.8896,-60.4471 231.8897,-63.597 231.8897,-63.597\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-82.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !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->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M234.8943,-53.5269C228.6932,-49.9651 221.2713,-46.3981 214,-44.597 196.3123,-40.2158 190.6877,-40.2158 173,-44.597 168.1146,-45.8071 163.1612,-47.8144 158.5558,-50.0817\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.1057,-53.5269 156.7959,-47.4504 155.1929,-51.8779 158.2801,-50.2289 158.2801,-50.2289 158.2801,-50.2289 155.1929,-51.8779 159.7642,-53.0073 152.1057,-53.5269 152.1057,-53.5269\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.5\" y=\"-48.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M244.3945,-46.4596C238.9627,-32.9433 229.2731,-15.015 214,-6.597 198.0413,2.199 188.9587,2.199 173,-6.597 160.1133,-13.6997 151.2016,-27.5729 145.4686,-39.8538\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"142.6055,-46.4596 142.499,-38.7842 143.9974,-43.2482 145.3893,-40.0368 145.3893,-40.0368 145.3893,-40.0368 143.9974,-43.2482 148.2795,-41.2895 142.6055,-46.4596 142.6055,-46.4596\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-25.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !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->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->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 & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"242\" y=\"-103.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->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=\"229.5\" y=\"-147.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234\" y=\"-133.397\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"250\" 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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 236,-130 236,-109 198,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"198,-109 236,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-115.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"236,-109 236,-130 279,-130 279,-109 236,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"236,-109 279,-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=\"279,-109 279,-130 322,-130 322,-109 279,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"279,-109 322,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"322,-109 369,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-115.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"369,-109 407,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"407,-109 450,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-115.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"450,-109 450,-130 493,-130 493,-109 450,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"450,-109 493,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-115.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"493,-109 493,-130 540,-130 540,-109 493,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"493,-109 540,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-109 236,-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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"236,-88 236,-109 279,-109 279,-88 236,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"239\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"282\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-94.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-94.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"410\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"450,-88 450,-109 493,-109 493,-88 450,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-88 493,-109 540,-109 540,-88 493,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"496\" y=\"-94.8\">!a & !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 236,-88 236,-67 198,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"206.5\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"236,-67 236,-88 279,-88 279,-67 236,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293.5\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"335\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"450,-67 450,-88 493,-88 493,-67 450,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-67 493,-88 540,-88 540,-67 493,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501\" y=\"-73.8\">{0,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 236,-67 236,-46 198,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-46 198,-67 236,-67 236,-46 198,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"236,-46 236,-67 279,-67 279,-46 236,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-46 236,-67 279,-67 279,-46 236,-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=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"450,-46 450,-67 493,-67 493,-46 450,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-46 450,-67 493,-67 493,-46 450,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"493,-46 493,-67 540,-67 540,-46 493,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"493,-46 493,-67 540,-67 540,-46 493,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-46 236,-25 198,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-25 198,-46 236,-46 236,-25 198,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-31.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"236,-25 236,-46 279,-46 279,-25 236,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-25 236,-46 279,-46 279,-25 236,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-31.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-31.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-31.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"450,-25 450,-46 493,-46 493,-25 450,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-25 450,-46 493,-46 493,-25 450,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-31.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-25 493,-46 540,-46 540,-25 493,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-25 236,-4 198,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-4 198,-25 236,-25 236,-4 198,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"236,-4 236,-25 279,-25 279,-4 236,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-4 236,-25 279,-25 279,-4 236,-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=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"450,-4 450,-25 493,-25 493,-4 450,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-4 450,-25 493,-25 493,-4 450,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"493,-4 493,-25 540,-25 540,-4 493,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"493,-4 493,-25 540,-25 540,-4 493,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-10.8\">2</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(aut, aut.show_storage(\"v\")) # \"v\" displays only the states and edges Vectors"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"For each state, the `states` vector stores two edge indices: `succ` is the index of the first outgoing edge, and `succ_tail` is the index of the last outgoing edge. Since there is no edge at index `0`, that value is used to indicate that there is no outgoing edge.\n",
|
|
"\n",
|
|
"In the `edges` vector, the field `next_succ` is used to organize the outgoing edges of a state as a linked list. For instance to iterate over all successors of state `0`, we would start at the edge `e = states[0].succ` (if it's not `0`),\n",
|
|
"then move to the next successor with `e = edges[e].next_succ`, and repeat until `e` becomes `0`. This code cannot be executed in Python because the automaton class won't let us access the `states` vector. However this iteration mechanism is what is used into the `out()` method: `out()` simply provides an iterator over some columns of the `edges` vector, following the `next_succ` links. When we have a reference to a column of `edges` as returned by `out()`, we can convert it into an edge index with the `edge_number()` method."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"edges[1].src=0, edges[1].dst=0\n",
|
|
"edges[2].src=0, edges[2].dst=0\n",
|
|
"edges[3].src=0, edges[3].dst=1\n",
|
|
"edges[4].src=0, edges[4].dst=1\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for ed in aut.out(0):\n",
|
|
" print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(ed), src=ed.src, dst=ed.dst))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The other fields of the `edges` vector probably speak for themselves. `cond` is a BDD representing the boolean combination of atomic propositions expected by the edge, `acc` is an instance of `spot::acc_cond::mark_t`, i.e., a bit set representing the set of acceptance sets the edge belongs to, `src` and `dst` are the source and destination of the transition. Of course when iterating over the successors of a state with `aut.out(src)`, the source is well known, but there are other situations where it is convenient to retrieve the source from the edge (e.g., when iterating over all edges of an automaton, or when storing edges indices for later processing).\n",
|
|
"\n",
|
|
"You can access one column of the `edges` vector using the `edge_storage()` method. For instance let's modify edge 3:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"279pt\" height=\"247pt\"\n",
|
|
" viewBox=\"0.00 0.00 278.50 247.40\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 243.4001)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-243.4001 274.5,-243.4001 274.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"83.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"108.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"124.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"167.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"183.25\" y=\"-225.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"106.25\" y=\"-211.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-43.4001\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-39.7001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->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->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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=\"120\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"121\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"137\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M132.4297,-60.987C127.3516,-91.1892 128.875,-137.4001 137,-137.4001 144.522,-137.4001 146.3859,-97.7941 142.5919,-67.9508\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"141.5703,-60.987 145.7031,-67.4557 142.0784,-64.45 142.5864,-67.9129 142.5864,-67.9129 142.5864,-67.9129 142.0784,-64.45 139.4698,-68.3701 141.5703,-60.987 141.5703,-60.987\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"118.5\" y=\"-156.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"129\" y=\"-141.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->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !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->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !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->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->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 & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->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=\"229.5\" y=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"250\" 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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 236,-130 236,-109 198,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"198,-109 236,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-115.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"236,-109 236,-130 279,-130 279,-109 236,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"236,-109 279,-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=\"279,-109 279,-130 322,-130 322,-109 279,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"279,-109 322,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"322,-109 369,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-115.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"369,-109 407,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"407,-109 450,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-115.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"450,-109 450,-130 493,-130 493,-109 450,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"450,-109 493,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-115.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"493,-109 493,-130 540,-130 540,-109 493,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"493,-109 540,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-109 236,-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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"236,-88 236,-109 279,-109 279,-88 236,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"239\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"282\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-94.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-94.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"410\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"450,-88 450,-109 493,-109 493,-88 450,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-88 493,-109 540,-109 540,-88 493,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"496\" y=\"-94.8\">!a & !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 236,-88 236,-67 198,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"206.5\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"236,-67 236,-88 279,-88 279,-67 236,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"290\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"335\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"381\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"418\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"450,-67 450,-88 493,-88 493,-67 450,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"461\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-67 493,-88 540,-88 540,-67 493,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"501\" y=\"-73.8\">{0,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 236,-67 236,-46 198,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-46 198,-67 236,-67 236,-46 198,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"236,-46 236,-67 279,-67 279,-46 236,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-46 236,-67 279,-67 279,-46 236,-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=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"450,-46 450,-67 493,-67 493,-46 450,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-46 450,-67 493,-67 493,-46 450,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"493,-46 493,-67 540,-67 540,-46 493,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"493,-46 493,-67 540,-67 540,-46 493,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-46 236,-25 198,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-25 198,-46 236,-46 236,-25 198,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-31.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"236,-25 236,-46 279,-46 279,-25 236,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-25 236,-46 279,-46 279,-25 236,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-31.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-31.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-31.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"450,-25 450,-46 493,-46 493,-25 450,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-25 450,-46 493,-46 493,-25 450,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-31.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"493,-25 493,-46 540,-46 540,-25 493,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" 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 236,-25 236,-4 198,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-4 198,-25 236,-25 236,-4 198,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"213.5\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"236,-4 236,-25 279,-25 279,-4 236,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"236,-4 236,-25 279,-25 279,-4 236,-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=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"342\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"450,-4 450,-25 493,-25 493,-4 450,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"450,-4 450,-25 493,-25 493,-4 450,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"468\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"493,-4 493,-25 540,-25 540,-4 493,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"493,-4 493,-25 540,-25 540,-4 493,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"513\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546.5\" y=\"-10.8\">2</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"aut.edge_storage(3).acc.set(1)\n",
|
|
"aut.edge_storage(3).dst = 0\n",
|
|
"display(aut)\n",
|
|
"aut.show_storage(\"v\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Having the source into the `edges` vector also allows us to easily sort that vector to put all sibling transitions (i.e., transition leaving the same state) together to improve data locality. The `merge_edges()` method will do that and a bit more: edges are first sorted by (`src`, `dst`, `acc`) making possible to merge the `cond` field of edges with identical (`src`, `dst`, `acc`). On Fin-less automata (not our example), the a second pass is perform to sort the edge (`src`, `dst`, `cond`) and then merge the `acc` fields of edges that share the other fields.\n",
|
|
"\n",
|
|
"In our example, `merge_edges()` will merge edges 1 and 3."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"279pt\" height=\"199pt\"\n",
|
|
" viewBox=\"0.00 0.00 278.50 199.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 195.4001)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-195.4001 274.5,-195.4001 274.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"83.25\" y=\"-177.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"108.25\" y=\"-177.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"124.25\" y=\"-177.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"167.25\" y=\"-177.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"183.25\" y=\"-177.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"106.25\" y=\"-163.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->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->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->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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=\"132.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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=\"118.5\" y=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"121\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"137\" 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->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !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->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !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->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->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 & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->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=\"229.5\" y=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"250\" 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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 225,-130 225,-109 198,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"198,-109 225,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-115.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"225,-109 225,-130 268,-130 268,-109 225,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"225,-109 268,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"243\" y=\"-115.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"268,-109 268,-130 315,-130 315,-109 268,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"268,-109 315,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"315,-109 315,-130 353,-130 353,-109 315,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"315,-109 353,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-115.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"353,-109 353,-130 396,-130 396,-109 353,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"353,-109 396,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"396,-109 396,-130 439,-130 439,-109 396,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"396,-109 439,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"414\" y=\"-115.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"439,-109 439,-130 486,-130 486,-109 439,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"439,-109 486,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"459\" 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 225,-109 225,-88 198,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-94.8\">b</text>\n",
|
|
"<polygon fill=\"none\" points=\"225,-88 225,-109 268,-109 268,-88 225,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"228\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"268,-88 268,-109 315,-109 315,-88 268,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"271\" y=\"-94.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"315,-88 315,-109 353,-109 353,-88 315,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318\" y=\"-94.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"353,-88 353,-109 396,-109 396,-88 353,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"356\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"396,-88 396,-109 439,-109 439,-88 396,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"399\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"439,-88 439,-109 486,-109 486,-88 439,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"442\" y=\"-94.8\">!a & !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 225,-88 225,-67 198,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"201\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"225,-67 225,-88 268,-88 268,-67 225,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"231\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"268,-67 268,-88 315,-88 315,-67 268,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"281\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"315,-67 315,-88 353,-88 353,-67 315,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"353,-67 353,-88 396,-88 396,-67 353,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"364\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"396,-67 396,-88 439,-88 439,-67 396,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"439,-67 439,-88 486,-88 486,-67 439,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"447\" y=\"-73.8\">{0,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 225,-67 225,-46 198,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-46 198,-67 225,-67 225,-46 198,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"225,-46 225,-67 268,-67 268,-46 225,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"225,-46 225,-67 268,-67 268,-46 225,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"243\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"396,-46 396,-67 439,-67 439,-46 396,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"396,-46 396,-67 439,-67 439,-46 396,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"414\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"439,-46 439,-67 486,-67 486,-46 439,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"439,-46 439,-67 486,-67 486,-46 439,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"459\" 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 225,-46 225,-25 198,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-25 198,-46 225,-46 225,-25 198,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-31.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"225,-25 225,-46 268,-46 268,-25 225,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"225,-25 225,-46 268,-46 268,-25 225,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"243\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"268,-25 268,-46 315,-46 315,-25 268,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-31.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-31.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"396,-25 396,-46 439,-46 439,-25 396,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"396,-25 396,-46 439,-46 439,-25 396,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"414\" y=\"-31.8\">7</text>\n",
|
|
"<polygon fill=\"none\" points=\"439,-25 439,-46 486,-46 486,-25 439,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"459\" 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 225,-25 225,-4 198,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"198,-4 198,-25 225,-25 225,-4 198,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"208\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"225,-4 225,-25 268,-25 268,-4 225,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"225,-4 225,-25 268,-25 268,-4 225,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"243\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"371\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"396,-4 396,-25 439,-25 439,-4 396,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"396,-4 396,-25 439,-25 439,-4 396,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"414\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"439,-4 439,-25 486,-25 486,-4 439,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"439,-4 439,-25 486,-25 486,-4 439,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"459\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"492.5\" y=\"-10.8\">2</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"aut.merge_edges()\n",
|
|
"display(aut, aut.show_storage(\"v\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Note that the `succ_tail` field of the `states` vector is seldom used when reading automata as the linked list of edges ends when `next_succ` (or `succ`) equals `0`. Its main use is during calls to `new_edge()`: new edges are always created at the end of the list (otherwise it would be hard to preserve the order of edges when parsing and automaton and printing it)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# The property-update issue\n",
|
|
"\n",
|
|
"Properties like `prop_complete()`, `prop_universal()`, and the like are normally updated by algorithms that modify the automaton in place. They are not updated when we modify the automaton using low-level methods like `new_state()` or `new_edges()` as we have done so far.\n",
|
|
"\n",
|
|
"For instance we could add a new edge to the automaton to introduce some non-determinism, and the automaton would still pretend it is universal."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"279pt\" height=\"245pt\"\n",
|
|
" viewBox=\"0.00 0.00 278.50 245.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 241.4001)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-241.4001 274.5,-241.4001 274.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"83.25\" y=\"-223.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"108.25\" y=\"-223.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"124.25\" y=\"-223.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"167.25\" y=\"-223.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"183.25\" y=\"-223.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"106.25\" y=\"-209.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->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->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->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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=\"132.5\" y=\"-98.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"129\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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=\"118.5\" y=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"121\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"137\" 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->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M153.0003,-52.2319C159.0744,-55.1177 166.1757,-57.9519 173,-59.4001 190.8253,-63.1829 196.1747,-63.1829 214,-59.4001 218.4784,-58.4497 223.0762,-56.9024 227.4246,-55.1354\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"233.9997,-52.2319 228.8688,-57.9412 230.798,-53.6457 227.5963,-55.0596 227.5963,-55.0596 227.5963,-55.0596 230.798,-53.6457 226.3238,-52.1781 233.9997,-52.2319 233.9997,-52.2319\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"173\" y=\"-80.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !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->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M232.0731,-41.6108C226.3086,-41.1147 219.8903,-40.6451 214,-40.4001 195.7935,-39.6428 191.2065,-39.6428 173,-40.4001 169.4106,-40.5494 165.6251,-40.7821 161.911,-41.0534\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.9269,-41.6108 161.654,-37.9138 158.4158,-41.3323 161.9047,-41.0538 161.9047,-41.0538 161.9047,-41.0538 158.4158,-41.3323 162.1554,-44.1938 154.9269,-41.6108 154.9269,-41.6108\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"176.5\" y=\"-44.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M240.0142,-27.8473C233.6857,-19.4963 224.6857,-9.9963 214,-5.4001 197.2606,1.8 189.7394,1.8 173,-5.4001 164.6518,-8.9909 157.3325,-15.5748 151.5121,-22.2654\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.9858,-27.8473 148.948,-20.4262 149.1902,-25.1287 151.3947,-22.4102 151.3947,-22.4102 151.3947,-22.4102 149.1902,-25.1287 153.8414,-24.3942 146.9858,-27.8473 146.9858,-27.8473\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"175\" y=\"-24.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & !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->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->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 & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"242\" y=\"-83.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->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=\"229.5\" y=\"-127.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"250\" y=\"-113.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M243.7047,-60.5525C236.4719,-90.7438 238.5703,-137.4001 250,-137.4001 260.5814,-137.4001 263.1652,-97.4123 257.7515,-67.5211\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"256.2953,-60.5525 260.8106,-66.7601 257.0112,-63.9785 257.7272,-67.4045 257.7272,-67.4045 257.7272,-67.4045 257.0112,-63.9785 254.6438,-68.0489 256.2953,-60.5525 256.2953,-60.5525\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"245.5\" y=\"-155.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234\" y=\"-141.2001\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"250\" y=\"-141.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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 255.5,-364 255.5,-343 228.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"228.5,-343 255.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-349.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"255.5,-343 255.5,-364 298.5,-364 298.5,-343 255.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"255.5,-343 298.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"273.5\" y=\"-349.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"298.5,-343 298.5,-364 345.5,-364 345.5,-343 298.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"298.5,-343 345.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-349.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"345.5,-343 345.5,-364 383.5,-364 383.5,-343 345.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"345.5,-343 383.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-349.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"383.5,-343 383.5,-364 426.5,-364 426.5,-343 383.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"383.5,-343 426.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-349.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"426.5,-343 426.5,-364 469.5,-364 469.5,-343 426.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"426.5,-343 469.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"444.5\" y=\"-349.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"469.5,-343 469.5,-364 516.5,-364 516.5,-343 469.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"469.5,-343 516.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"489.5\" y=\"-349.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"516.5,-343 516.5,-364 536.5,-364 536.5,-343 516.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"516.5,-343 536.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-349.8\">8</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"536.5,-343 536.5,-364 573.5,-364 573.5,-343 536.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"536.5,-343 573.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-349.8\">9</text>\n",
|
|
"<polygon fill=\"none\" points=\"167.5,-322 167.5,-343 228.5,-343 228.5,-322 167.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"184.5\" y=\"-328.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"228.5,-322 228.5,-343 255.5,-343 255.5,-322 228.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\">b</text>\n",
|
|
"<polygon fill=\"none\" points=\"255.5,-322 255.5,-343 298.5,-343 298.5,-322 255.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"258.5\" y=\"-328.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"298.5,-322 298.5,-343 345.5,-343 345.5,-322 298.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301.5\" y=\"-328.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"345.5,-322 345.5,-343 383.5,-343 383.5,-322 345.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"348.5\" y=\"-328.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"383.5,-322 383.5,-343 426.5,-343 426.5,-322 383.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"386.5\" y=\"-328.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"426.5,-322 426.5,-343 469.5,-343 469.5,-322 426.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-328.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"469.5,-322 469.5,-343 516.5,-343 516.5,-322 469.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"472.5\" y=\"-328.8\">!a & !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 255.5,-322 255.5,-301 228.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"231.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"255.5,-301 255.5,-322 298.5,-322 298.5,-301 255.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"261.5\" y=\"-307.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"298.5,-301 298.5,-322 345.5,-322 345.5,-301 298.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"311.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"345.5,-301 345.5,-322 383.5,-322 383.5,-301 345.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"357.5\" y=\"-307.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"383.5,-301 383.5,-322 426.5,-322 426.5,-301 383.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"394.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"426.5,-301 426.5,-322 469.5,-322 469.5,-301 426.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"437.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"469.5,-301 469.5,-322 516.5,-322 516.5,-301 469.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-307.8\">{0,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 255.5,-301 255.5,-280 228.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"228.5,-280 228.5,-301 255.5,-301 255.5,-280 228.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"255.5,-280 255.5,-301 298.5,-301 298.5,-280 255.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"255.5,-280 255.5,-301 298.5,-301 298.5,-280 255.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"273.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"426.5,-280 426.5,-301 469.5,-301 469.5,-280 426.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"426.5,-280 426.5,-301 469.5,-301 469.5,-280 426.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"444.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"469.5,-280 469.5,-301 516.5,-301 516.5,-280 469.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"469.5,-280 469.5,-301 516.5,-301 516.5,-280 469.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"489.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"167.5,-259 167.5,-280 228.5,-280 228.5,-259 167.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"170.5\" y=\"-265.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"228.5,-259 228.5,-280 255.5,-280 255.5,-259 228.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"228.5,-259 228.5,-280 255.5,-280 255.5,-259 228.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-265.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"255.5,-259 255.5,-280 298.5,-280 298.5,-259 255.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"255.5,-259 255.5,-280 298.5,-280 298.5,-259 255.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"273.5\" y=\"-265.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"298.5,-259 298.5,-280 345.5,-280 345.5,-259 298.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-265.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-265.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"426.5,-259 426.5,-280 469.5,-280 469.5,-259 426.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"426.5,-259 426.5,-280 469.5,-280 469.5,-259 426.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"444.5\" y=\"-265.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"469.5,-259 469.5,-280 516.5,-280 516.5,-259 469.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"469.5,-259 469.5,-280 516.5,-280 516.5,-259 469.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"489.5\" y=\"-265.8\">9</text>\n",
|
|
"<polygon fill=\"none\" points=\"516.5,-259 516.5,-280 536.5,-280 536.5,-259 516.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"536.5,-259 536.5,-280 573.5,-280 573.5,-259 536.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"167.5,-238 167.5,-259 228.5,-259 228.5,-238 167.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"190\" y=\"-244.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"228.5,-238 228.5,-259 255.5,-259 255.5,-238 228.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"228.5,-238 228.5,-259 255.5,-259 255.5,-238 228.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"255.5,-238 255.5,-259 298.5,-259 298.5,-238 255.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"255.5,-238 255.5,-259 298.5,-259 298.5,-238 255.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"273.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"318.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"361\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"401.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"426.5,-238 426.5,-259 469.5,-259 469.5,-238 426.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"426.5,-238 426.5,-259 469.5,-259 469.5,-238 426.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"444.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"469.5,-238 469.5,-259 516.5,-259 516.5,-238 469.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"469.5,-238 469.5,-259 516.5,-259 516.5,-238 469.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"489.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"523\" y=\"-244.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"551.5\" y=\"-244.8\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- meta -->\n",
|
|
"<g class=\"node\" id=\"node3\">\n",
|
|
"<title>meta</title>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-123.8\">init_state:</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\" stroke=\"transparent\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-123.8\">2</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-104.8\">num_sets:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-104.8\">2</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"10.5\" y=\"-85.8\">acceptance:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"78.5\" y=\"-85.8\">Fin(0) & 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->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->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={1}, toerase=True\n",
|
|
"pos=2, acc={0,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\">3</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=\"#c0c0c0\" points=\"197,-109 197,-130 224,-130 224,-109 197,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"197,-109 224,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-115.8\">1</text>\n",
|
|
"<polygon fill=\"#c0c0c0\" points=\"224,-109 224,-130 267,-130 267,-109 224,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"224,-109 267,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-115.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"267,-109 267,-130 314,-130 314,-109 267,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"267,-109 314,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"314,-109 314,-130 352,-130 352,-109 314,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"314,-109 352,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-115.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"352,-109 352,-130 395,-130 395,-109 352,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"352,-109 395,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"395,-109 395,-130 438,-130 438,-109 395,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"395,-109 438,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"413\" y=\"-115.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"438,-109 438,-130 485,-130 485,-109 438,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"438,-109 485,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458\" 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 224,-109 224,-88 197,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-94.8\">b</text>\n",
|
|
"<polygon fill=\"none\" points=\"224,-88 224,-109 267,-109 267,-88 224,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"227\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"267,-88 267,-109 314,-109 314,-88 267,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"270\" y=\"-94.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"314,-88 314,-109 352,-109 352,-88 314,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"317\" y=\"-94.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"352,-88 352,-109 395,-109 395,-88 352,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"355\" y=\"-94.8\">a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"395,-88 395,-109 438,-109 438,-88 395,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"398\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"438,-88 438,-109 485,-109 485,-88 438,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"441\" y=\"-94.8\">!a & !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 224,-88 224,-67 197,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"200\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"224,-67 224,-88 267,-88 267,-67 224,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"230\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"267,-67 267,-88 314,-88 314,-67 267,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"280\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"314,-67 314,-88 352,-88 352,-67 314,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"326\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"352,-67 352,-88 395,-88 395,-67 352,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"363\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"395,-67 395,-88 438,-88 438,-67 395,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"438,-67 438,-88 485,-88 485,-67 438,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"446\" y=\"-73.8\">{0,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 224,-67 224,-46 197,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"197,-46 197,-67 224,-67 224,-46 197,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"224,-46 224,-67 267,-67 267,-46 224,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"224,-46 224,-67 267,-67 267,-46 224,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"395,-46 395,-67 438,-67 438,-46 395,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"395,-46 395,-67 438,-67 438,-46 395,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"413\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"438,-46 438,-67 485,-67 485,-46 438,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"438,-46 438,-67 485,-67 485,-46 438,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458\" 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=\"#c0c0c0\" points=\"197,-25 197,-46 224,-46 224,-25 197,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"197,-25 197,-46 224,-46 224,-25 197,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-31.8\">1</text>\n",
|
|
"<polygon fill=\"#c0c0c0\" points=\"224,-25 224,-46 267,-46 267,-25 224,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"224,-25 224,-46 267,-46 267,-25 224,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-31.8\">2</text>\n",
|
|
"<polygon fill=\"none\" points=\"267,-25 267,-46 314,-46 314,-25 267,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-31.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-31.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"395,-25 395,-46 438,-46 438,-25 395,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"395,-25 395,-46 438,-46 438,-25 395,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"413\" y=\"-31.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"438,-25 438,-46 485,-46 485,-25 438,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"438,-25 438,-46 485,-46 485,-25 438,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458\" 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 224,-25 224,-4 197,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"197,-4 197,-25 224,-25 224,-4 197,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"207\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"224,-4 224,-25 267,-25 267,-4 224,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"224,-4 224,-25 267,-25 267,-4 224,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"242\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"287\" y=\"-10.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"329.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"370\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"395,-4 395,-25 438,-25 438,-4 395,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"395,-4 395,-25 438,-25 438,-4 395,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"413\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"438,-4 438,-25 485,-25 485,-4 438,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"438,-4 438,-25 485,-25 485,-4 438,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"458\" 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[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": [
|
|
"7"
|
|
]
|
|
},
|
|
"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 441.50 142.00\" width=\"442pt\" 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 437.5,-138 437.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\">2</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\">6</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\">1</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\">5</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\">6</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 283,-130 283,-109 245,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"245,-109 283,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"260.5\" y=\"-115.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"283,-109 283,-130 326,-130 326,-109 283,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"283,-109 326,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" 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 406,-130 406,-109 369,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"369,-109 406,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"406,-109 406,-130 426,-130 426,-109 406,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"406,-109 426,-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=\"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 & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"245,-88 245,-109 283,-109 283,-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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"283,-88 283,-109 326,-109 326,-88 283,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"286\" y=\"-94.8\">a & !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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-88 369,-109 406,-109 406,-88 369,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384\" y=\"-94.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"406,-88 406,-109 426,-109 426,-88 406,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.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 283,-88 283,-67 245,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"257\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"283,-67 283,-88 326,-88 326,-67 283,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294\" y=\"-73.8\">{0}</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\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-67 369,-88 406,-88 406,-67 369,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"372\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"406,-67 406,-88 426,-88 426,-67 406,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"409\" 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\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"245,-46 245,-67 283,-67 283,-46 245,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"245,-46 245,-67 283,-67 283,-46 245,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"260.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"283,-46 283,-67 326,-67 326,-46 283,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"283,-46 283,-67 326,-67 326,-46 283,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" 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 406,-67 406,-46 369,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-46 369,-67 406,-67 406,-46 369,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"406,-46 406,-67 426,-67 426,-46 406,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"406,-46 406,-67 426,-67 426,-46 406,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.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=\"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\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"245,-25 245,-46 283,-46 283,-25 245,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"245,-25 245,-46 283,-46 283,-25 245,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"260.5\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"283,-25 283,-46 326,-46 326,-25 283,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"283,-25 283,-46 326,-46 326,-25 283,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" y=\"-31.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-31.8\">5</text>\n",
|
|
"<polygon fill=\"none\" points=\"369,-25 369,-46 406,-46 406,-25 369,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"406,-25 406,-46 426,-46 426,-25 406,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.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 283,-25 283,-4 245,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"245,-4 245,-25 283,-25 283,-4 245,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"260.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"283,-4 283,-25 326,-25 326,-4 283,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"283,-4 283,-25 326,-25 326,-4 283,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"301\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"344\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"369,-4 369,-25 406,-25 406,-4 369,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"369,-4 369,-25 406,-25 406,-4 369,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"384\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"406,-4 406,-25 426,-25 426,-4 406,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"406,-4 406,-25 426,-25 426,-4 406,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"412.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 424.50 142.00\" width=\"425pt\" 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 420.5,-138 420.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\">2</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\">6</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\">1</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\">5</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\">6</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 282,-130 282,-109 244,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"244,-109 282,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-115.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282,-109 282,-130 309,-130 309,-109 282,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"282,-109 309,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"309,-109 309,-130 352,-130 352,-109 309,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"309,-109 352,-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=\"352,-109 352,-130 389,-130 389,-109 352,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"352,-109 389,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"367\" y=\"-115.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"389,-109 389,-130 409,-130 409,-109 389,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"389,-109 409,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"395.5\" y=\"-115.8\">6</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 & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"244,-88 244,-109 282,-109 282,-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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"282,-88 282,-109 309,-109 309,-88 282,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292\" y=\"-94.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"309,-88 309,-109 352,-109 352,-88 309,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"312\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"352,-88 352,-109 389,-109 389,-88 352,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"367\" y=\"-94.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"389,-88 389,-109 409,-109 409,-88 389,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"395.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 282,-88 282,-67 244,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"282,-67 282,-88 309,-88 309,-67 282,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285\" y=\"-73.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"309,-67 309,-88 352,-88 352,-67 309,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"320\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"352,-67 352,-88 389,-88 389,-67 352,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"355\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"389,-67 389,-88 409,-88 409,-67 389,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"392\" 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\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"244,-46 244,-67 282,-67 282,-46 244,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-46 244,-67 282,-67 282,-46 244,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282,-46 282,-67 309,-67 309,-46 282,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-46 282,-67 309,-67 309,-46 282,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"309,-46 309,-67 352,-67 352,-46 309,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309,-46 309,-67 352,-67 352,-46 309,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"327\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"352,-46 352,-67 389,-67 389,-46 352,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"352,-46 352,-67 389,-67 389,-46 352,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"367\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"389,-46 389,-67 409,-67 409,-46 389,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"389,-46 389,-67 409,-67 409,-46 389,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"395.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=\"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\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"244,-25 244,-46 282,-46 282,-25 244,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-25 244,-46 282,-46 282,-25 244,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282,-25 282,-46 309,-46 309,-25 282,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-25 282,-46 309,-46 309,-25 282,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292\" y=\"-31.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"309,-25 309,-46 352,-46 352,-25 309,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309,-25 309,-46 352,-46 352,-25 309,-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=\"none\" points=\"352,-25 352,-46 389,-46 389,-25 352,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"367\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"389,-25 389,-46 409,-46 409,-25 389,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"395.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 282,-25 282,-4 244,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-4 244,-25 282,-25 282,-4 244,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282,-4 282,-25 309,-25 309,-4 282,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-4 282,-25 309,-25 309,-4 282,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"309,-4 309,-25 352,-25 352,-4 309,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309,-4 309,-25 352,-25 352,-4 309,-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=\"352,-4 352,-25 389,-25 389,-4 352,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"352,-4 352,-25 389,-25 389,-4 352,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"367\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"389,-4 389,-25 409,-25 409,-4 389,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"389,-4 389,-25 409,-25 409,-4 389,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"395.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=1\n",
|
|
"edges[2].src=1, edges[2].dst=0\n",
|
|
"edges[3].src=1, edges[3].dst=0\n",
|
|
"edges[4].src=1, edges[4].dst=1\n",
|
|
"edges[5].src=1, edges[5].dst=1\n",
|
|
"edges[6].src=2, edges[6].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 398.00 142.00\" width=\"398pt\" 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 394,-138 394,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\">2</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\">5</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\">1</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\">4</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\">5</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 282,-130 282,-109 244,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"244,-109 282,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-115.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282,-109 282,-130 325,-130 325,-109 282,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"282,-109 325,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-115.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"325,-109 325,-130 362,-130 362,-109 325,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"325,-109 362,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-115.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"362,-109 362,-130 382,-130 382,-109 362,-109\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"362,-109 382,-109 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.5\" y=\"-115.8\">5</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 & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"244,-88 244,-109 282,-109 282,-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 & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"282,-88 282,-109 325,-109 325,-88 282,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285\" y=\"-94.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"325,-88 325,-109 362,-109 362,-88 325,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-94.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"362,-88 362,-109 382,-109 382,-88 362,-88\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.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 282,-88 282,-67 244,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"256\" y=\"-73.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"282,-67 282,-88 325,-88 325,-67 282,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"293\" y=\"-73.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"325,-67 325,-88 362,-88 362,-67 325,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"328\" y=\"-73.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"362,-67 362,-88 382,-88 382,-67 362,-67\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365\" 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\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"244,-46 244,-67 282,-67 282,-46 244,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-46 244,-67 282,-67 282,-46 244,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-52.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282,-46 282,-67 325,-67 325,-46 282,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-46 282,-67 325,-67 325,-46 282,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"325,-46 325,-67 362,-67 362,-46 325,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"325,-46 325,-67 362,-67 362,-46 325,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-52.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362,-46 362,-67 382,-67 382,-46 362,-46\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362,-46 362,-67 382,-67 382,-46 362,-46\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.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=\"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\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"244,-25 244,-46 282,-46 282,-25 244,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-25 244,-46 282,-46 282,-25 244,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-31.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282,-25 282,-46 325,-46 325,-25 282,-25\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-25 282,-46 325,-46 325,-25 282,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-31.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"325,-25 325,-46 362,-46 362,-25 325,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-31.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"362,-25 362,-46 382,-46 382,-25 362,-25\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.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 282,-25 282,-4 244,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"244,-4 244,-25 282,-25 282,-4 244,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"259.5\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282,-4 282,-25 325,-25 325,-4 282,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282,-4 282,-25 325,-25 325,-4 282,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"300\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"325,-4 325,-25 362,-25 362,-4 325,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"325,-4 325,-25 362,-25 362,-4 325,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"340\" y=\"-10.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362,-4 362,-25 382,-25 382,-4 362,-4\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362,-4 362,-25 382,-25 382,-4 362,-4\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"368.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=\"274pt\"\n",
|
|
" viewBox=\"0.00 0.00 425.70 273.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 269.5843)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-269.5843 421.7,-269.5843 421.7,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"156.85\" y=\"-251.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"181.85\" y=\"-251.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"197.85\" y=\"-251.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"240.85\" y=\"-251.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"256.85\" y=\"-251.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"179.85\" y=\"-237.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->2 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>2->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",
|
|
"<!-- 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->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M141.428,-89.3755C149.5854,-117.3786 169.8296,-168.5843 208.8,-168.5843 208.8,-168.5843 208.8,-168.5843 342.4,-168.5843 361.0699,-168.5843 376.3923,-153.1403 386.3977,-139.2498\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"390.3545,-133.4414 389.0168,-141.0001 388.384,-136.334 386.4135,-139.2266 386.4135,-139.2266 386.4135,-139.2266 388.384,-136.334 383.8101,-137.4532 390.3545,-133.4414 390.3545,-133.4414\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"247.6\" y=\"-187.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"260.1\" y=\"-172.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>-1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"208.8\" cy=\"-25.5843\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->-1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->-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->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->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=\"251.1\" y=\"-121.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M395.9643,-135.366C395.4144,-144.8992 396.493,-153.5843 399.2,-153.5843 401.188,-153.5843 402.2977,-148.9003 402.5292,-142.6364\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"402.4357,-135.366 405.6756,-142.3249 402.4808,-138.8657 402.5258,-142.3654 402.5258,-142.3654 402.5258,-142.3654 402.4808,-138.8657 399.3761,-142.4059 402.4357,-135.366 402.4357,-135.366\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"380.7\" y=\"-172.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"391.2\" y=\"-157.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M394.1906,-135.1614C390.7451,-156.3023 392.4148,-183.5843 399.2,-183.5843 405.243,-183.5843 407.2285,-161.9438 405.1564,-142.2749\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"404.2094,-135.1614 408.2556,-141.6845 404.6713,-138.6308 405.1332,-142.1002 405.1332,-142.1002 405.1332,-142.1002 404.6713,-138.6308 402.0107,-142.5159 404.2094,-135.1614 404.2094,-135.1614\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"394.7\" y=\"-201.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"383.2\" y=\"-187.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"399.2\" y=\"-187.3843\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>-1->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",
|
|
"<!-- -1->3 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>-1->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",
|
|
"<!-- -4 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>-4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"342.4\" cy=\"-71.5843\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-4 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->-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",
|
|
"<!-- -4->0 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>-4->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",
|
|
"<!-- -4->1 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>-4->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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 666.00 376.00\" width=\"666pt\" 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 662,-372 662,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\">2</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=\"#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\">7</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\">6</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\">5</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\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- edges -->\n",
|
|
"<g class=\"node\" id=\"node2\">\n",
|
|
"<title>edges</title>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"173.5,-343 173.5,-364 234.5,-364 234.5,-343 173.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"173.5,-343 234.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"188.5\" y=\"-349.8\">edges</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"234.5,-343 234.5,-364 281.5,-364 281.5,-343 234.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"234.5,-343 281.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-349.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"281.5,-343 281.5,-364 319.5,-364 319.5,-343 281.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"281.5,-343 319.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-349.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"319.5,-343 319.5,-364 362.5,-364 362.5,-343 319.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"319.5,-343 362.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-349.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"362.5,-343 362.5,-364 399.5,-364 399.5,-343 362.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"362.5,-343 399.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-349.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"399.5,-343 399.5,-364 419.5,-364 419.5,-343 399.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"399.5,-343 419.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-349.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"419.5,-343 419.5,-364 446.5,-364 446.5,-343 419.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"419.5,-343 446.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-349.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"446.5,-343 446.5,-364 473.5,-364 473.5,-343 446.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"446.5,-343 473.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\">7</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-322 173.5,-343 234.5,-343 234.5,-322 173.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"190.5\" y=\"-328.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-322 234.5,-343 281.5,-343 281.5,-322 234.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"237.5\" y=\"-328.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-322 281.5,-343 319.5,-343 319.5,-322 281.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"284.5\" y=\"-328.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-322 319.5,-343 362.5,-343 362.5,-322 319.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"322.5\" y=\"-328.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-322 362.5,-343 399.5,-343 399.5,-322 362.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-328.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-322 399.5,-343 419.5,-343 419.5,-322 399.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-328.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-322 419.5,-343 446.5,-343 446.5,-322 419.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-328.8\">a</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-322 446.5,-343 473.5,-343 473.5,-322 446.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"454.5\" y=\"-328.8\">!a</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-301 173.5,-322 234.5,-322 234.5,-301 173.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"194.5\" y=\"-307.8\">acc</text>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-301 234.5,-322 281.5,-322 281.5,-301 234.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"247.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-301 281.5,-322 319.5,-322 319.5,-301 281.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\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-301 319.5,-322 362.5,-322 362.5,-301 319.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-301 362.5,-322 399.5,-322 399.5,-301 362.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-307.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-301 399.5,-322 419.5,-322 419.5,-301 399.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"402.5\" y=\"-307.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-301 419.5,-322 446.5,-322 446.5,-301 419.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-301 446.5,-322 473.5,-322 473.5,-301 446.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=\"173.5,-280 173.5,-301 234.5,-301 234.5,-280 173.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"196\" y=\"-286.8\">dst</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"234.5,-280 234.5,-301 281.5,-301 281.5,-280 234.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-280 234.5,-301 281.5,-301 281.5,-280 234.5,-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=\"281.5,-280 281.5,-301 319.5,-301 319.5,-280 281.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-280 281.5,-301 319.5,-301 319.5,-280 281.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"319.5,-280 319.5,-301 362.5,-301 362.5,-280 319.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-280 319.5,-301 362.5,-301 362.5,-280 319.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362.5,-280 362.5,-301 399.5,-301 399.5,-280 362.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-280 362.5,-301 399.5,-301 399.5,-280 362.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"399.5,-280 399.5,-301 419.5,-301 419.5,-280 399.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-280 399.5,-301 419.5,-301 419.5,-280 399.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"419.5,-280 419.5,-301 446.5,-301 446.5,-280 419.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-280 419.5,-301 446.5,-301 446.5,-280 419.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-286.8\">~0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"446.5,-280 446.5,-301 473.5,-301 473.5,-280 446.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-280 446.5,-301 473.5,-301 473.5,-280 446.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"452.5\" y=\"-286.8\">~3</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-259 173.5,-280 234.5,-280 234.5,-259 173.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"176.5\" y=\"-265.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"234.5,-259 234.5,-280 281.5,-280 281.5,-259 234.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-259 234.5,-280 281.5,-280 281.5,-259 234.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-265.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"281.5,-259 281.5,-280 319.5,-280 319.5,-259 281.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-259 281.5,-280 319.5,-280 319.5,-259 281.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-265.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"319.5,-259 319.5,-280 362.5,-280 362.5,-259 319.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-259 319.5,-280 362.5,-280 362.5,-259 319.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-265.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-259 362.5,-280 399.5,-280 399.5,-259 362.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-259 399.5,-280 419.5,-280 419.5,-259 399.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-259 419.5,-280 446.5,-280 446.5,-259 419.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-259 446.5,-280 473.5,-280 473.5,-259 446.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\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-238 173.5,-259 234.5,-259 234.5,-238 173.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"196\" y=\"-244.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"234.5,-238 234.5,-259 281.5,-259 281.5,-238 234.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-238 234.5,-259 281.5,-259 281.5,-238 234.5,-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=\"281.5,-238 281.5,-259 319.5,-259 319.5,-238 281.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-238 281.5,-259 319.5,-259 319.5,-238 281.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"319.5,-238 319.5,-259 362.5,-259 362.5,-238 319.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-238 319.5,-259 362.5,-259 362.5,-238 319.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362.5,-238 362.5,-259 399.5,-259 399.5,-238 362.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-238 362.5,-259 399.5,-259 399.5,-238 362.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"399.5,-238 399.5,-259 419.5,-259 419.5,-238 399.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-238 399.5,-259 419.5,-259 419.5,-238 399.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-244.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"419.5,-238 419.5,-259 446.5,-259 446.5,-238 419.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-238 419.5,-259 446.5,-259 446.5,-238 419.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"446.5,-238 446.5,-259 473.5,-259 473.5,-238 446.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-238 446.5,-259 473.5,-259 473.5,-238 446.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\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- dests -->\n",
|
|
"<g class=\"node\" id=\"node3\">\n",
|
|
"<title>dests</title>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"507.5,-301 507.5,-322 556.5,-322 556.5,-301 507.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"507.5,-301 556.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"518\" y=\"-307.8\">dests</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"556.5,-301 556.5,-322 577.5,-322 577.5,-301 556.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"556.5,-301 577.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"559.5\" y=\"-307.8\">~0</text>\n",
|
|
"<polyline fill=\"none\" points=\"577.5,-301 590.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"590.5,-301 603.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"603.5,-301 603.5,-322 624.5,-322 624.5,-301 603.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"603.5,-301 624.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"606.5\" y=\"-307.8\">~3</text>\n",
|
|
"<polyline fill=\"none\" points=\"624.5,-301 637.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"637.5,-301 650.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"none\" points=\"507.5,-280 507.5,-301 556.5,-301 556.5,-280 507.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"510.5\" y=\"-286.8\">#cnt/dst</text>\n",
|
|
"<polygon fill=\"none\" points=\"556.5,-280 556.5,-301 577.5,-301 577.5,-280 556.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"560\" y=\"-286.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"577.5,-280 577.5,-301 590.5,-301 590.5,-280 577.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"577.5,-280 577.5,-301 590.5,-301 590.5,-280 577.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"580.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"590.5,-280 590.5,-301 603.5,-301 603.5,-280 590.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"590.5,-280 590.5,-301 603.5,-301 603.5,-280 590.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"593.5\" y=\"-286.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"603.5,-280 603.5,-301 624.5,-301 624.5,-280 603.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"607\" y=\"-286.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"624.5,-280 624.5,-301 637.5,-301 637.5,-280 624.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"624.5,-280 624.5,-301 637.5,-301 637.5,-280 624.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"627.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"637.5,-280 637.5,-301 650.5,-301 650.5,-280 637.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"637.5,-280 637.5,-301 650.5,-301 650.5,-280 637.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"640.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) & 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->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=\"233.5\" y=\"-180.8\">prop_state_acc:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-180.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-161.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-142.8\">prop_terminal:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-142.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-123.8\">prop_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-123.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-104.8\">prop_very_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-104.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-85.8\">prop_complete:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-85.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-66.8\">prop_universal:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-66.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-47.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-28.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-9.8\">maybe</text>\n",
|
|
"</g>\n",
|
|
"<!-- props->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": [
|
|
"1\n",
|
|
"0\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": [
|
|
"[1]\n",
|
|
"[0]\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": [
|
|
"[1]\n",
|
|
"[0]\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=\"269pt\"\n",
|
|
" viewBox=\"0.00 0.00 466.30 269.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 265)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-265 462.3,-265 462.3,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"177.15\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"202.15\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"218.15\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"261.15\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"277.15\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"200.15\" y=\"-232.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- -7 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>-7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"39.8\" cy=\"-48\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- I->-7 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->-7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1821,-48C4.6508,-48 20.5694,-48 30.8552,-48\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-50.4501 37.9898,-48 30.9898,-45.5501 30.9898,-50.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=\"-94\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>-7->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.6817,-48.3648C50.2252,-50.0444 86.176,-57.3649 114.6,-67 128.166,-71.5986 142.9035,-77.8422 154.7114,-83.1672\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-86.1769 153.6182,-86.1309 158.1111,-84.7215 154.928,-83.2662 154.928,-83.2662 154.928,-83.2662 158.1111,-84.7215 156.2378,-80.4014 161.2942,-86.1769 161.2942,-86.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=\"-66\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"439.8\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>-7->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M40.6334,-46.403C45.1063,-38.0742 67.1636,0 96.6,0 96.6,0 96.6,0 383,0 406.0233,0 421.7555,-23.3586 430.7234,-42.2832\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"433.7223,-49.0034 427.9931,-43.8947 432.296,-45.8072 430.8696,-42.611 430.8696,-42.611 430.8696,-42.611 432.296,-45.8072 433.7462,-41.3273 433.7223,-49.0034 433.7223,-49.0034\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"96.6\" cy=\"-94\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>-7->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.2041,-49.1371C46.107,-53.1078 62.9194,-66.7235 76.7491,-77.9235\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-82.5405 75.0277,-80.5829 79.7301,-80.3378 77.0102,-78.135 77.0102,-78.135 77.0102,-78.135 79.7301,-80.3378 78.9927,-75.6871 82.45,-82.5405 82.45,-82.5405\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.5454,-111.5929C189.1907,-140.53 208.9538,-195 249.4,-195 249.4,-195 249.4,-195 383,-195 405.5398,-195 425.0529,-128.1998 434.2236,-90.7389\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"435.9176,-83.6664 437.3503,-91.2076 435.1023,-87.0701 434.287,-90.4739 434.287,-90.4739 434.287,-90.4739 435.1023,-87.0701 431.2236,-89.7401 435.9176,-83.6664 435.9176,-83.6664\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"288.2\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"300.7\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>-1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"249.4\" cy=\"-100\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->-1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>0->-1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M195.7182,-95.5141C209.9987,-96.7074 229.3013,-98.3204 240.4454,-99.2517\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"240.4185,-101.7079 247.5983,-99.8494 240.8266,-96.8249 240.4185,-101.7079\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"218.1\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"213.6\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M423.9172,-57.1695C412.8056,-51.8118 397.4273,-46 383,-46 249.4,-46 249.4,-46 249.4,-46 227.6911,-46 207.5721,-61.3527 194.1882,-74.6927\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.2264,-79.858 191.804,-72.6276 191.651,-77.3339 194.0757,-74.8098 194.0757,-74.8098 194.0757,-74.8098 191.651,-77.3339 196.3474,-76.992 189.2264,-79.858 189.2264,-79.858\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"291.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M436.5643,-83.7817C436.0144,-93.3149 437.093,-102 439.8,-102 441.788,-102 442.8977,-97.3161 443.1292,-91.0521\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.0357,-83.7817 446.2756,-90.7406 443.0808,-87.2814 443.1258,-90.7812 443.1258,-90.7812 443.1258,-90.7812 443.0808,-87.2814 439.9761,-90.8217 443.0357,-83.7817 443.0357,-83.7817\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"421.3\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"431.8\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M434.7906,-83.5771C431.3451,-104.718 433.0148,-132 439.8,-132 445.843,-132 447.8285,-110.3596 445.7564,-90.6907\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"444.8094,-83.5771 448.8556,-90.1002 445.2713,-87.0465 445.7332,-90.5159 445.7332,-90.5159 445.7332,-90.5159 445.2713,-87.0465 442.6107,-90.9316 444.8094,-83.5771 444.8094,-83.5771\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"435.3\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"423.8\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"439.8\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M114.9802,-94C126.0352,-94 140.2622,-94 152.3609,-94\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-94 152.5716,-97.1501 156.0716,-94 152.5716,-94.0001 152.5716,-94.0001 152.5716,-94.0001 156.0716,-94 152.5716,-90.8501 159.5716,-94 159.5716,-94\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>-1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M247.5999,-99.1282C244.1873,-97.5294 236.4995,-94.1837 229.6,-93 220.9272,-91.5121 211.322,-91.3019 202.7509,-91.6123\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.5345,-92 202.3554,-88.4789 199.0295,-91.8122 202.5244,-91.6243 202.5244,-91.6243 202.5244,-91.6243 199.0295,-91.8122 202.6935,-94.7698 195.5345,-92 195.5345,-92\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"308.7\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"308.7\" y=\"-96.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->3 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>-1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.373,-100C256.4129,-100 270.269,-100 283.0957,-100\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"290.4545,-100 283.4546,-103.1501 286.9545,-100 283.4545,-100.0001 283.4545,-100.0001 283.4545,-100.0001 286.9545,-100 283.4545,-96.8501 290.4545,-100 290.4545,-100\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -4 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>-4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" cy=\"-100\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-4 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>3->-4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M327.0663,-100C341.9861,-100 362.3911,-100 373.9818,-100\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"374.1146,-102.4501 381.1145,-100 374.1145,-97.5501 374.1146,-102.4501\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"349.7\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"347.2\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -4->0 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>-4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M382.559,-102.0283C381.0943,-108.2022 375.7546,-126.7829 363.2,-134 305.5517,-167.1396 274.4855,-158.7305 213.6,-132 205.2789,-128.3468 197.9655,-121.7493 192.1423,-115.0652\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"187.6118,-109.4929 194.4719,-112.9371 189.8198,-112.2086 192.0277,-114.9243 192.0277,-114.9243 192.0277,-114.9243 189.8198,-112.2086 189.5836,-116.9115 187.6118,-109.4929 187.6118,-109.4929\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -4->1 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>-4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M384.8898,-98.8688C390.0842,-95.7595 405.0556,-86.7977 418.0556,-79.016\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"424.2275,-75.3216 419.8392,-81.6196 421.2244,-77.1192 418.2213,-78.9169 418.2213,-78.9169 418.2213,-78.9169 421.2244,-77.1192 416.6034,-76.2141 424.2275,-75.3216 424.2275,-75.3216\"/>\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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"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 727.00 376.00\" width=\"727pt\" 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 723,-372 723,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\">2</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=\"#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\">7</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\">6</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\">5</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\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- edges -->\n",
|
|
"<g class=\"node\" id=\"node2\">\n",
|
|
"<title>edges</title>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"173.5,-343 173.5,-364 234.5,-364 234.5,-343 173.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"173.5,-343 234.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"188.5\" y=\"-349.8\">edges</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"234.5,-343 234.5,-364 281.5,-364 281.5,-343 234.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"234.5,-343 281.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-349.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"281.5,-343 281.5,-364 319.5,-364 319.5,-343 281.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"281.5,-343 319.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-349.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"319.5,-343 319.5,-364 362.5,-364 362.5,-343 319.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"319.5,-343 362.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-349.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"362.5,-343 362.5,-364 399.5,-364 399.5,-343 362.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"362.5,-343 399.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-349.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"399.5,-343 399.5,-364 419.5,-364 419.5,-343 399.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"399.5,-343 419.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-349.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"419.5,-343 419.5,-364 446.5,-364 446.5,-343 419.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"419.5,-343 446.5,-343 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-349.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"446.5,-343 446.5,-364 473.5,-364 473.5,-343 446.5,-343\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"446.5,-343 473.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\">7</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-322 173.5,-343 234.5,-343 234.5,-322 173.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"190.5\" y=\"-328.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-322 234.5,-343 281.5,-343 281.5,-322 234.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"237.5\" y=\"-328.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-322 281.5,-343 319.5,-343 319.5,-322 281.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"284.5\" y=\"-328.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-322 319.5,-343 362.5,-343 362.5,-322 319.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"322.5\" y=\"-328.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-322 362.5,-343 399.5,-343 399.5,-322 362.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-328.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-322 399.5,-343 419.5,-343 419.5,-322 399.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-328.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-322 419.5,-343 446.5,-343 446.5,-322 419.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-328.8\">a</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-322 446.5,-343 473.5,-343 473.5,-322 446.5,-322\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"454.5\" y=\"-328.8\">!a</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-301 173.5,-322 234.5,-322 234.5,-301 173.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"194.5\" y=\"-307.8\">acc</text>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-301 234.5,-322 281.5,-322 281.5,-301 234.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"247.5\" y=\"-307.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-301 281.5,-322 319.5,-322 319.5,-301 281.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\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-301 319.5,-322 362.5,-322 362.5,-301 319.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"330.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-301 362.5,-322 399.5,-322 399.5,-301 362.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-307.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-301 399.5,-322 419.5,-322 419.5,-301 399.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"402.5\" y=\"-307.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-301 419.5,-322 446.5,-322 446.5,-301 419.5,-301\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"422.5\" y=\"-307.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-301 446.5,-322 473.5,-322 473.5,-301 446.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=\"173.5,-280 173.5,-301 234.5,-301 234.5,-280 173.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"196\" y=\"-286.8\">dst</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"234.5,-280 234.5,-301 281.5,-301 281.5,-280 234.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-280 234.5,-301 281.5,-301 281.5,-280 234.5,-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=\"281.5,-280 281.5,-301 319.5,-301 319.5,-280 281.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-280 281.5,-301 319.5,-301 319.5,-280 281.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"319.5,-280 319.5,-301 362.5,-301 362.5,-280 319.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-280 319.5,-301 362.5,-301 362.5,-280 319.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362.5,-280 362.5,-301 399.5,-301 399.5,-280 362.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-280 362.5,-301 399.5,-301 399.5,-280 362.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"399.5,-280 399.5,-301 419.5,-301 419.5,-280 399.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-280 399.5,-301 419.5,-301 419.5,-280 399.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"419.5,-280 419.5,-301 446.5,-301 446.5,-280 419.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-280 419.5,-301 446.5,-301 446.5,-280 419.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"425.5\" y=\"-286.8\">~0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"446.5,-280 446.5,-301 473.5,-301 473.5,-280 446.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-280 446.5,-301 473.5,-301 473.5,-280 446.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"452.5\" y=\"-286.8\">~3</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-259 173.5,-280 234.5,-280 234.5,-259 173.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"176.5\" y=\"-265.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"234.5,-259 234.5,-280 281.5,-280 281.5,-259 234.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-259 234.5,-280 281.5,-280 281.5,-259 234.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"254.5\" y=\"-265.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"281.5,-259 281.5,-280 319.5,-280 319.5,-259 281.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-259 281.5,-280 319.5,-280 319.5,-259 281.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-265.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"319.5,-259 319.5,-280 362.5,-280 362.5,-259 319.5,-259\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-259 319.5,-280 362.5,-280 362.5,-259 319.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-265.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-259 362.5,-280 399.5,-280 399.5,-259 362.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-259 399.5,-280 419.5,-280 419.5,-259 399.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-259 419.5,-280 446.5,-280 446.5,-259 419.5,-259\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-265.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-259 446.5,-280 473.5,-280 473.5,-259 446.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\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"173.5,-238 173.5,-259 234.5,-259 234.5,-238 173.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"196\" y=\"-244.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"234.5,-238 234.5,-259 281.5,-259 281.5,-238 234.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"234.5,-238 234.5,-259 281.5,-259 281.5,-238 234.5,-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=\"281.5,-238 281.5,-259 319.5,-259 319.5,-238 281.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"281.5,-238 281.5,-259 319.5,-259 319.5,-238 281.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"297\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"319.5,-238 319.5,-259 362.5,-259 362.5,-238 319.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"319.5,-238 319.5,-259 362.5,-259 362.5,-238 319.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"337.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"362.5,-238 362.5,-259 399.5,-259 399.5,-238 362.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"362.5,-238 362.5,-259 399.5,-259 399.5,-238 362.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-244.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"399.5,-238 399.5,-259 419.5,-259 419.5,-238 399.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"399.5,-238 399.5,-259 419.5,-259 419.5,-238 399.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"406\" y=\"-244.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"419.5,-238 419.5,-259 446.5,-259 446.5,-238 419.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"419.5,-238 419.5,-259 446.5,-259 446.5,-238 419.5,-238\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"429.5\" y=\"-244.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"446.5,-238 446.5,-259 473.5,-259 473.5,-238 446.5,-238\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"446.5,-238 446.5,-259 473.5,-259 473.5,-238 446.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\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- dests -->\n",
|
|
"<g class=\"node\" id=\"node3\">\n",
|
|
"<title>dests</title>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"508.5,-301 508.5,-322 557.5,-322 557.5,-301 508.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"508.5,-301 557.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"519\" y=\"-307.8\">dests</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"557.5,-301 557.5,-322 578.5,-322 578.5,-301 557.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"557.5,-301 578.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"560.5\" y=\"-307.8\">~0</text>\n",
|
|
"<polyline fill=\"none\" points=\"578.5,-301 591.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"591.5,-301 604.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"604.5,-301 604.5,-322 625.5,-322 625.5,-301 604.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"604.5,-301 625.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"607.5\" y=\"-307.8\">~3</text>\n",
|
|
"<polyline fill=\"none\" points=\"625.5,-301 638.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"638.5,-301 651.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"651.5,-301 651.5,-322 672.5,-322 672.5,-301 651.5,-301\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"651.5,-301 672.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"654.5\" y=\"-307.8\">~6</text>\n",
|
|
"<polyline fill=\"none\" points=\"672.5,-301 685.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"685.5,-301 698.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"698.5,-301 711.5,-301 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"none\" points=\"508.5,-280 508.5,-301 557.5,-301 557.5,-280 508.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"511.5\" y=\"-286.8\">#cnt/dst</text>\n",
|
|
"<polygon fill=\"none\" points=\"557.5,-280 557.5,-301 578.5,-301 578.5,-280 557.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"561\" y=\"-286.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"578.5,-280 578.5,-301 591.5,-301 591.5,-280 578.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"578.5,-280 578.5,-301 591.5,-301 591.5,-280 578.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"581.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"591.5,-280 591.5,-301 604.5,-301 604.5,-280 591.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"591.5,-280 591.5,-301 604.5,-301 604.5,-280 591.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"594.5\" y=\"-286.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"604.5,-280 604.5,-301 625.5,-301 625.5,-280 604.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"608\" y=\"-286.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"625.5,-280 625.5,-301 638.5,-301 638.5,-280 625.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"625.5,-280 625.5,-301 638.5,-301 638.5,-280 625.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"628.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"638.5,-280 638.5,-301 651.5,-301 651.5,-280 638.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"638.5,-280 638.5,-301 651.5,-301 651.5,-280 638.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"641.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"651.5,-280 651.5,-301 672.5,-301 672.5,-280 651.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"655\" y=\"-286.8\">#3</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"672.5,-280 672.5,-301 685.5,-301 685.5,-280 672.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"672.5,-280 672.5,-301 685.5,-301 685.5,-280 672.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"675.5\" y=\"-286.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"685.5,-280 685.5,-301 698.5,-301 698.5,-280 685.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"685.5,-280 685.5,-301 698.5,-301 698.5,-280 685.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"688.5\" y=\"-286.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"698.5,-280 698.5,-301 711.5,-301 711.5,-280 698.5,-280\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"698.5,-280 698.5,-301 711.5,-301 711.5,-280 698.5,-280\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"701.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) & 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->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=\"233.5\" y=\"-180.8\">prop_state_acc:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-180.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-161.8\">prop_inherently_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-161.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-142.8\">prop_terminal:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-142.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-123.8\">prop_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-123.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-104.8\">prop_very_weak:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-104.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-85.8\">prop_complete:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-85.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-66.8\">prop_universal:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-66.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-47.8\">prop_unambiguous:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-47.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-28.8\">prop_semi_deterministic:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-28.8\">maybe</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"233.5\" y=\"-9.8\">prop_stutter_invariant:</text>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"377.5\" y=\"-9.8\">maybe</text>\n",
|
|
"</g>\n",
|
|
"<!-- props->edges -->\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 30,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"aut.show_storage()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Adding several transitions with the same destination groups may result in duplicates in the `dests` vector. Those groups get merged during `merge_edges()`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"466pt\" height=\"354pt\"\n",
|
|
" viewBox=\"0.00 0.00 466.30 354.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 350)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-350 462.3,-350 462.3,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"177.15\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"202.15\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"218.15\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"261.15\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"277.15\" y=\"-331.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"200.15\" y=\"-317.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- -7 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>-7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"39.8\" cy=\"-76\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- I->-7 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->-7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1821,-76C4.6508,-76 20.5694,-76 30.8552,-76\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-78.4501 37.9898,-76 30.9898,-73.5501 30.9898,-78.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=\"-122\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-118.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>-7->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.6817,-76.3648C50.2252,-78.0444 86.176,-85.3649 114.6,-95 128.166,-99.5986 142.9035,-105.8422 154.7114,-111.1672\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-114.1769 153.6182,-114.1309 158.1111,-112.7215 154.928,-111.2662 154.928,-111.2662 154.928,-111.2662 158.1111,-112.7215 156.2378,-108.4014 161.2942,-114.1769 161.2942,-114.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=\"-60\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"439.8\" y=\"-56.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>-7->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M40.1964,-74.1213C42.7854,-62.418 58.3844,0 96.6,0 96.6,0 96.6,0 383,0 404.1472,0 419.7753,-19.8995 429.2276,-36.7783\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.6638,-43.2867 426.6099,-38.5671 431.0296,-40.1915 429.3955,-37.0964 429.3955,-37.0964 429.3955,-37.0964 431.0296,-40.1915 432.1811,-35.6257 432.6638,-43.2867 432.6638,-43.2867\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"96.6\" cy=\"-122\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-118.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>-7->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.2041,-77.1371C46.107,-81.1078 62.9194,-94.7235 76.7491,-105.9235\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-110.5405 75.0277,-108.5829 79.7301,-108.3378 77.0102,-106.135 77.0102,-106.135 77.0102,-106.135 79.7301,-108.3378 78.9927,-103.6871 82.45,-110.5405 82.45,-110.5405\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.6997,-139.8175C191.7235,-181.1385 218.8933,-280 249.4,-280 249.4,-280 249.4,-280 383,-280 422.8283,-280 435.1648,-143.1137 438.5991,-85.2938\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.0095,-78.0035 441.761,-85.1696 438.8128,-81.498 438.616,-84.9925 438.616,-84.9925 438.616,-84.9925 438.8128,-81.498 435.471,-84.8154 439.0095,-78.0035 439.0095,-78.0035\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"288.2\" y=\"-298.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"300.7\" y=\"-283.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>-1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"249.4\" cy=\"-164\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->-1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>0->-1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M195.3191,-117.949C206.0543,-116.5027 219.5659,-116.5676 229.6,-123 240.6051,-130.0549 245.6545,-145.1047 247.8503,-154.8759\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"245.4814,-155.5414 249.1537,-161.9848 250.301,-154.6577 245.4814,-155.5414\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"218.1\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"213.6\" y=\"-126.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M422.9166,-53.5736C411.7567,-49.8933 396.7109,-46 383,-46 249.4,-46 249.4,-46 249.4,-46 219.9932,-46 199.051,-76.4373 187.637,-98.7878\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"184.5364,-105.1331 184.7794,-97.4608 186.073,-101.9885 187.6096,-98.8438 187.6096,-98.8438 187.6096,-98.8438 186.073,-101.9885 190.4398,-100.2268 184.5364,-105.1331 184.5364,-105.1331\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"291.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M436.5643,-77.7817C436.0144,-87.3149 437.093,-96 439.8,-96 441.788,-96 442.8977,-91.3161 443.1292,-85.0521\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"443.0357,-77.7817 446.2756,-84.7406 443.0808,-81.2814 443.1258,-84.7812 443.1258,-84.7812 443.1258,-84.7812 443.0808,-81.2814 439.9761,-84.8217 443.0357,-77.7817 443.0357,-77.7817\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"421.3\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"431.8\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M434.7906,-77.5771C431.3451,-98.718 433.0148,-126 439.8,-126 445.843,-126 447.8285,-104.3596 445.7564,-84.6907\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"444.8094,-77.5771 448.8556,-84.1002 445.2713,-81.0465 445.7332,-84.5159 445.7332,-84.5159 445.7332,-84.5159 445.2713,-81.0465 442.6107,-84.9316 444.8094,-77.5771 444.8094,-77.5771\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"435.3\" y=\"-143.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"423.8\" y=\"-129.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"439.8\" y=\"-129.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M114.9802,-122C126.0352,-122 140.2622,-122 152.3609,-122\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-122 152.5716,-125.1501 156.0716,-122 152.5716,-122.0001 152.5716,-122.0001 152.5716,-122.0001 156.0716,-122 152.5716,-118.8501 159.5716,-122 159.5716,-122\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>-1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M247.3449,-163.6743C241.6733,-162.7132 225.4393,-159.5373 213.6,-153 207.3431,-149.5452 201.1972,-144.8772 195.804,-140.2132\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"190.2777,-135.2115 197.5814,-137.5733 192.8727,-137.5602 195.4677,-139.9088 195.4677,-139.9088 195.4677,-139.9088 192.8727,-137.5602 193.3539,-142.2443 190.2777,-135.2115 190.2777,-135.2115\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"308.7\" cy=\"-164\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"308.7\" y=\"-160.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->3 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>-1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.373,-164C256.4129,-164 270.269,-164 283.0957,-164\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"290.4545,-164 283.4546,-167.1501 286.9545,-164 283.4545,-164.0001 283.4545,-164.0001 283.4545,-164.0001 286.9545,-164 283.4545,-160.8501 290.4545,-164 290.4545,-164\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -4 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>-4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" cy=\"-78\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-4 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>3->-4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M320.6376,-150.1826C336.7128,-131.576 364.7131,-99.1666 376.967,-84.983\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"378.874,-86.5233 381.5964,-79.6246 375.1661,-83.3198 378.874,-86.5233\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"349.7\" y=\"-136.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"347.2\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -11 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>-11</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"383\" cy=\"-209\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-11 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>3->-11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M326.3169,-159.7816C337.7469,-158.0737 352.4568,-157.913 363.2,-165 374.9995,-172.7838 379.8465,-189.4246 381.7798,-199.8634\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"379.3637,-200.2742 382.8071,-206.8428 384.2115,-199.5606 379.3637,-200.2742\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"350.7\" y=\"-183.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"347.2\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -4->0 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>-4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M380.9851,-78.4208C366.9519,-81.3532 282.3502,-99.0562 213.6,-114 209.94,-114.7955 206.0729,-115.6453 202.2844,-116.4828\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.171,-118.0611 201.3224,-113.4696 198.5879,-117.303 202.0048,-116.5448 202.0048,-116.5448 202.0048,-116.5448 198.5879,-117.303 202.6871,-119.62 195.171,-118.0611 195.171,-118.0611\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -4->1 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>-4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M384.8898,-77.4011C389.7948,-75.8467 403.418,-71.5295 415.8668,-67.5845\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"422.5992,-65.451 416.8778,-70.5685 419.2627,-66.5083 415.9262,-67.5657 415.9262,-67.5657 415.9262,-67.5657 419.2627,-66.5083 414.9746,-64.5629 422.5992,-65.451 422.5992,-65.451\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -11->0 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>-11->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M381.0486,-209.4844C375.6422,-210.7576 360.0229,-213.9681 347.2,-212 285.6776,-202.5574 264.4044,-205.9594 213.6,-170 204.2049,-163.3501 196.2131,-153.4979 190.1636,-144.4468\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"186.2924,-138.3579 192.7064,-142.5751 188.1703,-141.3115 190.0481,-144.2651 190.0481,-144.2651 190.0481,-144.2651 188.1703,-141.3115 187.3899,-145.9552 186.2924,-138.3579 186.2924,-138.3579\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -11->3 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>-11->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M380.9628,-208.4422C375.3371,-206.8527 359.2093,-201.9615 347.2,-195 340.5181,-191.1267 333.776,-186.1453 327.8418,-181.3137\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"322.2091,-176.5786 329.5944,-178.6718 324.8883,-178.8309 327.5674,-181.0831 327.5674,-181.0831 327.5674,-181.0831 324.8883,-178.8309 325.5404,-183.4943 322.2091,-176.5786 322.2091,-176.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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<svg height=\"262pt\" viewBox=\"0.00 0.00 810.00 262.00\" width=\"810pt\" 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 806,-258 806,4 -4,4\" stroke=\"transparent\"/>\n",
|
|
"<!-- states -->\n",
|
|
"<g class=\"node\" id=\"node1\">\n",
|
|
"<title>states</title>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"33.5,-197 33.5,-218 88.5,-218 88.5,-197 33.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"33.5,-197 88.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"45.5\" y=\"-203.8\">states</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"88.5,-197 88.5,-218 101.5,-218 101.5,-197 88.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"88.5,-197 101.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-203.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"101.5,-197 101.5,-218 114.5,-218 114.5,-197 101.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"101.5,-197 114.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-203.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"114.5,-197 114.5,-218 127.5,-218 127.5,-197 114.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"114.5,-197 127.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-203.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"127.5,-197 127.5,-218 140.5,-218 140.5,-197 127.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"127.5,-197 140.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-203.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"33.5,-176 33.5,-197 88.5,-197 88.5,-176 33.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"48.5\" y=\"-182.8\">succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"88.5,-176 88.5,-197 101.5,-197 101.5,-176 88.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"88.5,-176 88.5,-197 101.5,-197 101.5,-176 88.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-182.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"101.5,-176 101.5,-197 114.5,-197 114.5,-176 101.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"101.5,-176 101.5,-197 114.5,-197 114.5,-176 101.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-182.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"114.5,-176 114.5,-197 127.5,-197 127.5,-176 114.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"114.5,-176 114.5,-197 127.5,-197 127.5,-176 114.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-182.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"127.5,-176 127.5,-197 140.5,-197 140.5,-176 127.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"127.5,-176 127.5,-197 140.5,-197 140.5,-176 127.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-182.8\">7</text>\n",
|
|
"<polygon fill=\"none\" points=\"33.5,-155 33.5,-176 88.5,-176 88.5,-155 33.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"36.5\" y=\"-161.8\">succ_tail</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"88.5,-155 88.5,-176 101.5,-176 101.5,-155 88.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"88.5,-155 88.5,-176 101.5,-176 101.5,-155 88.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-161.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"101.5,-155 101.5,-176 114.5,-176 114.5,-155 101.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"101.5,-155 101.5,-176 114.5,-176 114.5,-155 101.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-161.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"114.5,-155 114.5,-176 127.5,-176 127.5,-155 114.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"114.5,-155 114.5,-176 127.5,-176 127.5,-155 114.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-161.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"127.5,-155 127.5,-176 140.5,-176 140.5,-155 127.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"127.5,-155 127.5,-176 140.5,-176 140.5,-155 127.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-161.8\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- edges -->\n",
|
|
"<g class=\"node\" id=\"node2\">\n",
|
|
"<title>edges</title>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"174.5,-229 174.5,-250 235.5,-250 235.5,-229 174.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"174.5,-229 235.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"189.5\" y=\"-235.8\">edges</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"235.5,-229 235.5,-250 282.5,-250 282.5,-229 235.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"235.5,-229 282.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-235.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282.5,-229 282.5,-250 320.5,-250 320.5,-229 282.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"282.5,-229 320.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298\" y=\"-235.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"320.5,-229 320.5,-250 363.5,-250 363.5,-229 320.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"320.5,-229 363.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-235.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"363.5,-229 363.5,-250 400.5,-250 400.5,-229 363.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"363.5,-229 400.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378.5\" y=\"-235.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"400.5,-229 400.5,-250 420.5,-250 420.5,-229 400.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"400.5,-229 420.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-235.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"420.5,-229 420.5,-250 447.5,-250 447.5,-229 420.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"420.5,-229 447.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-235.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"447.5,-229 447.5,-250 474.5,-250 474.5,-229 447.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"447.5,-229 474.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-235.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"474.5,-229 474.5,-250 502.5,-250 502.5,-229 474.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"474.5,-229 502.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"485\" y=\"-235.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-208 174.5,-229 235.5,-229 235.5,-208 174.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"191.5\" y=\"-214.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-208 235.5,-229 282.5,-229 282.5,-208 235.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-214.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-208 282.5,-229 320.5,-229 320.5,-208 282.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-214.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"320.5,-208 320.5,-229 363.5,-229 363.5,-208 320.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"323.5\" y=\"-214.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"363.5,-208 363.5,-229 400.5,-229 400.5,-208 363.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\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"400.5,-208 400.5,-229 420.5,-229 420.5,-208 400.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-214.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"420.5,-208 420.5,-229 447.5,-229 447.5,-208 420.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-214.8\">a</text>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-208 447.5,-229 474.5,-229 474.5,-208 447.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"455.5\" y=\"-214.8\">!a</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-208 474.5,-229 502.5,-229 502.5,-208 474.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"485\" y=\"-214.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-187 174.5,-208 235.5,-208 235.5,-187 174.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"195.5\" y=\"-193.8\">acc</text>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-187 235.5,-208 282.5,-208 282.5,-187 235.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-187 282.5,-208 320.5,-208 320.5,-187 282.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"294.5\" y=\"-193.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"320.5,-187 320.5,-208 363.5,-208 363.5,-187 320.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"331.5\" y=\"-193.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"363.5,-187 363.5,-208 400.5,-208 400.5,-187 363.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"366.5\" y=\"-193.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"400.5,-187 400.5,-208 420.5,-208 420.5,-187 400.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"403.5\" y=\"-193.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"420.5,-187 420.5,-208 447.5,-208 447.5,-187 420.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"423.5\" y=\"-193.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-187 447.5,-208 474.5,-208 474.5,-187 447.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450.5\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-187 474.5,-208 502.5,-208 502.5,-187 474.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"478\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-166 174.5,-187 235.5,-187 235.5,-166 174.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-172.8\">dst</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"235.5,-166 235.5,-187 282.5,-187 282.5,-166 235.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-166 235.5,-187 282.5,-187 282.5,-166 235.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282.5,-166 282.5,-187 320.5,-187 320.5,-166 282.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-166 282.5,-187 320.5,-187 320.5,-166 282.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"320.5,-166 320.5,-187 363.5,-187 363.5,-166 320.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"320.5,-166 320.5,-187 363.5,-187 363.5,-166 320.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"363.5,-166 363.5,-187 400.5,-187 400.5,-166 363.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"363.5,-166 363.5,-187 400.5,-187 400.5,-166 363.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"400.5,-166 400.5,-187 420.5,-187 420.5,-166 400.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"400.5,-166 400.5,-187 420.5,-187 420.5,-166 400.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"420.5,-166 420.5,-187 447.5,-187 447.5,-166 420.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"420.5,-166 420.5,-187 447.5,-187 447.5,-166 420.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"426.5\" y=\"-172.8\">~0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"447.5,-166 447.5,-187 474.5,-187 474.5,-166 447.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-166 447.5,-187 474.5,-187 474.5,-166 447.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-172.8\">~3</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"474.5,-166 474.5,-187 502.5,-187 502.5,-166 474.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-166 474.5,-187 502.5,-187 502.5,-166 474.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-172.8\">~10</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-145 174.5,-166 235.5,-166 235.5,-145 174.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-151.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"235.5,-145 235.5,-166 282.5,-166 282.5,-145 235.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-145 235.5,-166 282.5,-166 282.5,-145 235.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-151.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282.5,-145 282.5,-166 320.5,-166 320.5,-145 282.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-145 282.5,-166 320.5,-166 320.5,-145 282.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298\" y=\"-151.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"320.5,-145 320.5,-166 363.5,-166 363.5,-145 320.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"320.5,-145 320.5,-166 363.5,-166 363.5,-145 320.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-151.8\">4</text>\n",
|
|
"<polygon fill=\"none\" points=\"363.5,-145 363.5,-166 400.5,-166 400.5,-145 363.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378.5\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"400.5,-145 400.5,-166 420.5,-166 420.5,-145 400.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"420.5,-145 420.5,-166 447.5,-166 447.5,-145 420.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"447.5,-145 447.5,-166 474.5,-166 474.5,-145 447.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-145 447.5,-166 474.5,-166 474.5,-145 447.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-151.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-145 474.5,-166 502.5,-166 502.5,-145 474.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"485\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-124 174.5,-145 235.5,-145 235.5,-124 174.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-130.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"235.5,-124 235.5,-145 282.5,-145 282.5,-124 235.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-124 235.5,-145 282.5,-145 282.5,-124 235.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-130.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282.5,-124 282.5,-145 320.5,-145 320.5,-124 282.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-124 282.5,-145 320.5,-145 320.5,-124 282.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"298\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"320.5,-124 320.5,-145 363.5,-145 363.5,-124 320.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"320.5,-124 320.5,-145 363.5,-145 363.5,-124 320.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"338.5\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"363.5,-124 363.5,-145 400.5,-145 400.5,-124 363.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"363.5,-124 363.5,-145 400.5,-145 400.5,-124 363.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"378.5\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"400.5,-124 400.5,-145 420.5,-145 420.5,-124 400.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"400.5,-124 400.5,-145 420.5,-145 420.5,-124 400.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"407\" y=\"-130.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"420.5,-124 420.5,-145 447.5,-145 447.5,-124 420.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"420.5,-124 420.5,-145 447.5,-145 447.5,-124 420.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-130.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"447.5,-124 447.5,-145 474.5,-145 474.5,-124 447.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-124 447.5,-145 474.5,-145 474.5,-124 447.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-130.8\">3</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"474.5,-124 474.5,-145 502.5,-145 502.5,-124 474.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-124 474.5,-145 502.5,-145 502.5,-124 474.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"485\" y=\"-130.8\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- dests -->\n",
|
|
"<g class=\"node\" id=\"node3\">\n",
|
|
"<title>dests</title>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"537.5,-187 537.5,-208 586.5,-208 586.5,-187 537.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"537.5,-187 586.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"548\" y=\"-193.8\">dests</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"586.5,-187 586.5,-208 607.5,-208 607.5,-187 586.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"586.5,-187 607.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"589.5\" y=\"-193.8\">~0</text>\n",
|
|
"<polyline fill=\"none\" points=\"607.5,-187 620.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"620.5,-187 633.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"633.5,-187 633.5,-208 654.5,-208 654.5,-187 633.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"633.5,-187 654.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"636.5\" y=\"-193.8\">~3</text>\n",
|
|
"<polyline fill=\"none\" points=\"654.5,-187 667.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"667.5,-187 680.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"680.5,-187 680.5,-208 701.5,-208 701.5,-187 680.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"680.5,-187 701.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"683.5\" y=\"-193.8\">~6</text>\n",
|
|
"<polyline fill=\"none\" points=\"701.5,-187 714.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"714.5,-187 727.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"727.5,-187 740.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"740.5,-187 740.5,-208 768.5,-208 768.5,-187 740.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"740.5,-187 768.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"743.5\" y=\"-193.8\">~10</text>\n",
|
|
"<polyline fill=\"none\" points=\"768.5,-187 781.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"781.5,-187 794.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"none\" points=\"537.5,-166 537.5,-187 586.5,-187 586.5,-166 537.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"540.5\" y=\"-172.8\">#cnt/dst</text>\n",
|
|
"<polygon fill=\"none\" points=\"586.5,-166 586.5,-187 607.5,-187 607.5,-166 586.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"590\" y=\"-172.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"607.5,-166 607.5,-187 620.5,-187 620.5,-166 607.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"607.5,-166 607.5,-187 620.5,-187 620.5,-166 607.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"610.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"620.5,-166 620.5,-187 633.5,-187 633.5,-166 620.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"620.5,-166 620.5,-187 633.5,-187 633.5,-166 620.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"623.5\" y=\"-172.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"633.5,-166 633.5,-187 654.5,-187 654.5,-166 633.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"637\" y=\"-172.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"654.5,-166 654.5,-187 667.5,-187 667.5,-166 654.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"654.5,-166 654.5,-187 667.5,-187 667.5,-166 654.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"657.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"667.5,-166 667.5,-187 680.5,-187 680.5,-166 667.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"667.5,-166 667.5,-187 680.5,-187 680.5,-166 667.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"670.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"680.5,-166 680.5,-187 701.5,-187 701.5,-166 680.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"684\" y=\"-172.8\">#3</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"701.5,-166 701.5,-187 714.5,-187 714.5,-166 701.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"701.5,-166 701.5,-187 714.5,-187 714.5,-166 701.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"704.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"714.5,-166 714.5,-187 727.5,-187 727.5,-166 714.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"714.5,-166 714.5,-187 727.5,-187 727.5,-166 714.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"717.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"727.5,-166 727.5,-187 740.5,-187 740.5,-166 727.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"727.5,-166 727.5,-187 740.5,-187 740.5,-166 727.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"730.5\" y=\"-172.8\">2</text>\n",
|
|
"<polygon fill=\"none\" points=\"740.5,-166 740.5,-187 768.5,-187 768.5,-166 740.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"747.5\" y=\"-172.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"768.5,-166 768.5,-187 781.5,-187 781.5,-166 768.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"768.5,-166 768.5,-187 781.5,-187 781.5,-166 768.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"771.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"781.5,-166 781.5,-187 794.5,-187 794.5,-166 781.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"781.5,-166 781.5,-187 794.5,-187 794.5,-166 781.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"784.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) & 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->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=\"269pt\"\n",
|
|
" viewBox=\"0.00 0.00 481.30 269.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 265)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-265 477.3,-265 477.3,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"184.65\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"209.65\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"225.65\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"268.65\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"284.65\" y=\"-246.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)</text>\n",
|
|
"<text text-anchor=\"start\" x=\"207.65\" y=\"-232.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[Rabin 1]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- -7 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>-7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"39.8\" cy=\"-48\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- I->-7 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->-7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1821,-48C4.6508,-48 20.5694,-48 30.8552,-48\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"30.9898,-50.4501 37.9898,-48 30.9898,-45.5501 30.9898,-50.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=\"-94\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"177.6\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>-7->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.6817,-48.3648C50.2252,-50.0444 86.176,-57.3649 114.6,-67 128.166,-71.5986 142.9035,-77.8422 154.7114,-83.1672\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"161.2942,-86.1769 153.6182,-86.1309 158.1111,-84.7215 154.928,-83.2662 154.928,-83.2662 154.928,-83.2662 158.1111,-84.7215 156.2378,-80.4014 161.2942,-86.1769 161.2942,-86.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=\"-66\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"454.8\" y=\"-62.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>-7->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M40.6334,-46.403C45.1063,-38.0742 67.1636,0 96.6,0 96.6,0 96.6,0 398,0 421.0233,0 436.7555,-23.3586 445.7234,-42.2832\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"448.7223,-49.0034 442.9931,-43.8947 447.296,-45.8072 445.8696,-42.611 445.8696,-42.611 445.8696,-42.611 447.296,-45.8072 448.7462,-41.3273 448.7223,-49.0034 448.7223,-49.0034\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"96.6\" cy=\"-94\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"96.6\" y=\"-90.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- -7->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>-7->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M41.2041,-49.1371C46.107,-53.1078 62.9194,-66.7235 76.7491,-77.9235\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.45,-82.5405 75.0277,-80.5829 79.7301,-80.3378 77.0102,-78.135 77.0102,-78.135 77.0102,-78.135 79.7301,-80.3378 78.9927,-75.6871 82.45,-82.5405 82.45,-82.5405\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M181.5454,-111.5929C189.1907,-140.53 208.9538,-195 249.4,-195 249.4,-195 249.4,-195 398,-195 420.5398,-195 440.0529,-128.1998 449.2236,-90.7389\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"450.9176,-83.6664 452.3503,-91.2076 450.1023,-87.0701 449.287,-90.4739 449.287,-90.4739 449.287,-90.4739 450.1023,-87.0701 446.2236,-89.7401 450.9176,-83.6664 450.9176,-83.6664\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"303.2\" y=\"-213.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & !b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"315.7\" y=\"-198.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>-1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"249.4\" cy=\"-90\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->-1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>0->-1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M195.7182,-92.9906C209.9987,-92.1951 229.3013,-91.1197 240.4454,-90.4989\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"240.7454,-92.936 247.5983,-90.1004 240.4728,-88.0436 240.7454,-92.936\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"218.1\" y=\"-109.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"213.6\" y=\"-94.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M438.9172,-57.1695C427.8056,-51.8118 412.4273,-46 398,-46 249.4,-46 249.4,-46 249.4,-46 227.6911,-46 207.5721,-61.3527 194.1882,-74.6927\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.2264,-79.858 191.804,-72.6276 191.651,-77.3339 194.0757,-74.8098 194.0757,-74.8098 194.0757,-74.8098 191.651,-77.3339 196.3474,-76.992 189.2264,-79.858 189.2264,-79.858\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"306.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M451.5643,-83.7817C451.0144,-93.3149 452.093,-102 454.8,-102 456.788,-102 457.8977,-97.3161 458.1292,-91.0521\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"458.0357,-83.7817 461.2756,-90.7406 458.0808,-87.2814 458.1258,-90.7812 458.1258,-90.7812 458.1258,-90.7812 458.0808,-87.2814 454.9761,-90.8217 458.0357,-83.7817 458.0357,-83.7817\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"436.3\" y=\"-120.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a & b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"446.8\" y=\"-105.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M449.7906,-83.5771C446.3451,-104.718 448.0148,-132 454.8,-132 460.843,-132 462.8285,-110.3596 460.7564,-90.6907\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"459.8094,-83.5771 463.8556,-90.1002 460.2713,-87.0465 460.7332,-90.5159 460.7332,-90.5159 460.7332,-90.5159 460.2713,-87.0465 457.6107,-90.9316 459.8094,-83.5771 459.8094,-83.5771\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"450.3\" y=\"-149.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"438.8\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"454.8\" y=\"-135.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M114.9802,-94C126.0352,-94 140.2622,-94 152.3609,-94\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"159.5716,-94 152.5716,-97.1501 156.0716,-94 152.5716,-94.0001 152.5716,-94.0001 152.5716,-94.0001 156.0716,-94 152.5716,-90.8501 159.5716,-94 159.5716,-94\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"137.1\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>-1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M247.5543,-89.6253C244.0657,-88.9382 236.2565,-87.5014 229.6,-87 222.509,-86.4658 220.6784,-86.3182 213.6,-87 209.9697,-87.3497 206.1616,-87.8933 202.437,-88.5267\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"195.4462,-89.8276 201.7517,-85.45 198.8871,-89.1872 202.328,-88.5469 202.328,-88.5469 202.328,-88.5469 198.8871,-89.1872 202.9044,-91.6437 195.4462,-89.8276 195.4462,-89.8276\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"323.7\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"323.7\" y=\"-96.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- -1->3 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>-1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M251.2272,-89.3762C254.6849,-88.2324 262.4448,-85.8397 269.2,-85 276.2568,-84.1228 278.2112,-83.6866 285.2,-85 290.3377,-85.9655 295.6702,-87.5968 300.6703,-89.4367\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"307.2329,-92.0319 299.565,-92.387 303.9782,-90.7448 300.7234,-89.4577 300.7234,-89.4577 300.7234,-89.4577 303.9782,-90.7448 301.8818,-86.5284 307.2329,-92.0319 307.2329,-92.0319\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-1 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>3->-1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M305.5361,-97.5553C290.5803,-95.5424 270.0102,-92.7739 258.3747,-91.2079\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"258.5009,-88.7529 251.2366,-90.2472 257.8473,-93.6091 258.5009,-88.7529\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"272.7\" y=\"-112.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"269.2\" y=\"-97.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -4 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>-4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"398\" cy=\"-100\" rx=\"1.8\" ry=\"1.8\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->-4 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>3->-4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M342.0663,-100C356.9861,-100 377.3911,-100 388.9818,-100\"/>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"389.1146,-102.4501 396.1145,-100 389.1145,-97.5501 389.1146,-102.4501\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"364.7\" y=\"-118.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"362.2\" y=\"-103.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"</g>\n",
|
|
"<!-- -4->0 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>-4->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M397.559,-102.0283C396.0943,-108.2022 390.7546,-126.7829 378.2,-134 372.035,-137.544 369.3079,-134.215 362.2,-134 296.0648,-131.9991 274.9046,-149.892 213.6,-125 206.7222,-122.2074 200.2309,-117.5468 194.7044,-112.6769\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.5209,-107.7986 196.7774,-110.3021 192.0697,-110.1973 194.6185,-112.596 194.6185,-112.596 194.6185,-112.596 192.0697,-110.1973 192.4597,-114.89 189.5209,-107.7986 189.5209,-107.7986\"/>\n",
|
|
"</g>\n",
|
|
"<!-- -4->1 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>-4->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M399.8898,-98.8688C405.0842,-95.7595 420.0556,-86.7977 433.0556,-79.016\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.2275,-75.3216 434.8392,-81.6196 436.2244,-77.1192 433.2213,-78.9169 433.2213,-78.9169 433.2213,-78.9169 436.2244,-77.1192 431.6034,-76.2141 439.2275,-75.3216 439.2275,-75.3216\"/>\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 0x7f616c1788a0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<svg height=\"262pt\" viewBox=\"0.00 0.00 754.00 262.00\" width=\"754pt\" 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 750,-258 750,4 -4,4\" stroke=\"transparent\"/>\n",
|
|
"<!-- states -->\n",
|
|
"<g class=\"node\" id=\"node1\">\n",
|
|
"<title>states</title>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"33.5,-197 33.5,-218 88.5,-218 88.5,-197 33.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"33.5,-197 88.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"45.5\" y=\"-203.8\">states</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"88.5,-197 88.5,-218 101.5,-218 101.5,-197 88.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"88.5,-197 101.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-203.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"101.5,-197 101.5,-218 114.5,-218 114.5,-197 101.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"101.5,-197 114.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-203.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"114.5,-197 114.5,-218 127.5,-218 127.5,-197 114.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"114.5,-197 127.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-203.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"127.5,-197 127.5,-218 140.5,-218 140.5,-197 127.5,-197\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"127.5,-197 140.5,-197 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-203.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"33.5,-176 33.5,-197 88.5,-197 88.5,-176 33.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"48.5\" y=\"-182.8\">succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"88.5,-176 88.5,-197 101.5,-197 101.5,-176 88.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"88.5,-176 88.5,-197 101.5,-197 101.5,-176 88.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-182.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"101.5,-176 101.5,-197 114.5,-197 114.5,-176 101.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"101.5,-176 101.5,-197 114.5,-197 114.5,-176 101.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-182.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"114.5,-176 114.5,-197 127.5,-197 127.5,-176 114.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"114.5,-176 114.5,-197 127.5,-197 127.5,-176 114.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-182.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"127.5,-176 127.5,-197 140.5,-197 140.5,-176 127.5,-176\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"127.5,-176 127.5,-197 140.5,-197 140.5,-176 127.5,-176\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-182.8\">7</text>\n",
|
|
"<polygon fill=\"none\" points=\"33.5,-155 33.5,-176 88.5,-176 88.5,-155 33.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"36.5\" y=\"-161.8\">succ_tail</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"88.5,-155 88.5,-176 101.5,-176 101.5,-155 88.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"88.5,-155 88.5,-176 101.5,-176 101.5,-155 88.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"91.5\" y=\"-161.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"101.5,-155 101.5,-176 114.5,-176 114.5,-155 101.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"101.5,-155 101.5,-176 114.5,-176 114.5,-155 101.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"104.5\" y=\"-161.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"114.5,-155 114.5,-176 127.5,-176 127.5,-155 114.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"114.5,-155 114.5,-176 127.5,-176 127.5,-155 114.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"117.5\" y=\"-161.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"127.5,-155 127.5,-176 140.5,-176 140.5,-155 127.5,-155\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"127.5,-155 127.5,-176 140.5,-176 140.5,-155 127.5,-155\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"130.5\" y=\"-161.8\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- edges -->\n",
|
|
"<g class=\"node\" id=\"node2\">\n",
|
|
"<title>edges</title>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"174.5,-229 174.5,-250 235.5,-250 235.5,-229 174.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"174.5,-229 235.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"189.5\" y=\"-235.8\">edges</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"235.5,-229 235.5,-250 282.5,-250 282.5,-229 235.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"235.5,-229 282.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-235.8\">1</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"282.5,-229 282.5,-250 309.5,-250 309.5,-229 282.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"282.5,-229 309.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292.5\" y=\"-235.8\">2</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"309.5,-229 309.5,-250 347.5,-250 347.5,-229 309.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"309.5,-229 347.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-235.8\">3</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"347.5,-229 347.5,-250 390.5,-250 390.5,-229 347.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"347.5,-229 390.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-235.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"390.5,-229 390.5,-250 427.5,-250 427.5,-229 390.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"390.5,-229 427.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-235.8\">5</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"427.5,-229 427.5,-250 447.5,-250 447.5,-229 427.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"427.5,-229 447.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-235.8\">6</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"447.5,-229 447.5,-250 474.5,-250 474.5,-229 447.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"447.5,-229 474.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-235.8\">7</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"474.5,-229 474.5,-250 501.5,-250 501.5,-229 474.5,-229\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"474.5,-229 501.5,-229 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-235.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-208 174.5,-229 235.5,-229 235.5,-208 174.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"191.5\" y=\"-214.8\">cond</text>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-208 235.5,-229 282.5,-229 282.5,-208 235.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"238.5\" y=\"-214.8\">!a & !b</text>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-208 282.5,-229 309.5,-229 309.5,-208 282.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292.5\" y=\"-214.8\">a</text>\n",
|
|
"<polygon fill=\"none\" points=\"309.5,-208 309.5,-229 347.5,-229 347.5,-208 309.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"312.5\" y=\"-214.8\">a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"347.5,-208 347.5,-229 390.5,-229 390.5,-208 347.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"350.5\" y=\"-214.8\">!a & b</text>\n",
|
|
"<polygon fill=\"none\" points=\"390.5,-208 390.5,-229 427.5,-229 427.5,-208 390.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-214.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"427.5,-208 427.5,-229 447.5,-229 447.5,-208 427.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-214.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-208 447.5,-229 474.5,-229 474.5,-208 447.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"455.5\" y=\"-214.8\">!a</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-208 474.5,-229 501.5,-229 501.5,-208 474.5,-208\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-214.8\">1</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-187 174.5,-208 235.5,-208 235.5,-187 174.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"195.5\" y=\"-193.8\">acc</text>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-187 235.5,-208 282.5,-208 282.5,-187 235.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"248.5\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-187 282.5,-208 309.5,-208 309.5,-187 282.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"285.5\" y=\"-193.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"309.5,-187 309.5,-208 347.5,-208 347.5,-187 309.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"321.5\" y=\"-193.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"347.5,-187 347.5,-208 390.5,-208 390.5,-187 347.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"358.5\" y=\"-193.8\">{1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"390.5,-187 390.5,-208 427.5,-208 427.5,-187 390.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"393.5\" y=\"-193.8\">{0,1}</text>\n",
|
|
"<polygon fill=\"none\" points=\"427.5,-187 427.5,-208 447.5,-208 447.5,-187 427.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"430.5\" y=\"-193.8\">{}</text>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-187 447.5,-208 474.5,-208 474.5,-187 447.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"450.5\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-187 474.5,-208 501.5,-208 501.5,-187 474.5,-187\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"477.5\" y=\"-193.8\">{0}</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-166 174.5,-187 235.5,-187 235.5,-166 174.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-172.8\">dst</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"235.5,-166 235.5,-187 282.5,-187 282.5,-166 235.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-166 235.5,-187 282.5,-187 282.5,-166 235.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"282.5,-166 282.5,-187 309.5,-187 309.5,-166 282.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-166 282.5,-187 309.5,-187 309.5,-166 282.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"288.5\" y=\"-172.8\">~0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"309.5,-166 309.5,-187 347.5,-187 347.5,-166 309.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309.5,-166 309.5,-187 347.5,-187 347.5,-166 309.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"347.5,-166 347.5,-187 390.5,-187 390.5,-166 347.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"347.5,-166 347.5,-187 390.5,-187 390.5,-166 347.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"390.5,-166 390.5,-187 427.5,-187 427.5,-166 390.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"390.5,-166 390.5,-187 427.5,-187 427.5,-166 390.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-172.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"427.5,-166 427.5,-187 447.5,-187 447.5,-166 427.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"427.5,-166 427.5,-187 447.5,-187 447.5,-166 427.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"447.5,-166 447.5,-187 474.5,-187 474.5,-166 447.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-166 447.5,-187 474.5,-187 474.5,-166 447.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"453.5\" y=\"-172.8\">~3</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"474.5,-166 474.5,-187 501.5,-187 501.5,-166 474.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-166 474.5,-187 501.5,-187 501.5,-166 474.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"480.5\" y=\"-172.8\">~0</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-145 174.5,-166 235.5,-166 235.5,-145 174.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"177.5\" y=\"-151.8\">next_succ</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"235.5,-145 235.5,-166 282.5,-166 282.5,-145 235.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-145 235.5,-166 282.5,-166 282.5,-145 235.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-151.8\">2</text>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-145 282.5,-166 309.5,-166 309.5,-145 282.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292.5\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"309.5,-145 309.5,-166 347.5,-166 347.5,-145 309.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309.5,-145 309.5,-166 347.5,-166 347.5,-145 309.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-151.8\">4</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"347.5,-145 347.5,-166 390.5,-166 390.5,-145 347.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"347.5,-145 347.5,-166 390.5,-166 390.5,-145 347.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-151.8\">5</text>\n",
|
|
"<polygon fill=\"none\" points=\"390.5,-145 390.5,-166 427.5,-166 427.5,-145 390.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"427.5,-145 427.5,-166 447.5,-166 447.5,-145 427.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"#00ffff\" points=\"447.5,-145 447.5,-166 474.5,-166 474.5,-145 447.5,-145\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-145 447.5,-166 474.5,-166 474.5,-145 447.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-151.8\">8</text>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-145 474.5,-166 501.5,-166 501.5,-145 474.5,-145\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.5\" y=\"-151.8\">0</text>\n",
|
|
"<polygon fill=\"none\" points=\"174.5,-124 174.5,-145 235.5,-145 235.5,-124 174.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"197\" y=\"-130.8\">src</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"235.5,-124 235.5,-145 282.5,-145 282.5,-124 235.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"235.5,-124 235.5,-145 282.5,-145 282.5,-124 235.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"255.5\" y=\"-130.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"282.5,-124 282.5,-145 309.5,-145 309.5,-124 282.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"282.5,-124 282.5,-145 309.5,-145 309.5,-124 282.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"292.5\" y=\"-130.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"309.5,-124 309.5,-145 347.5,-145 347.5,-124 309.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"309.5,-124 309.5,-145 347.5,-145 347.5,-124 309.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"325\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"347.5,-124 347.5,-145 390.5,-145 390.5,-124 347.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"347.5,-124 347.5,-145 390.5,-145 390.5,-124 347.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"365.5\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"390.5,-124 390.5,-145 427.5,-145 427.5,-124 390.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"390.5,-124 390.5,-145 427.5,-145 427.5,-124 390.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"405.5\" y=\"-130.8\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"427.5,-124 427.5,-145 447.5,-145 447.5,-124 427.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"427.5,-124 427.5,-145 447.5,-145 447.5,-124 427.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"434\" y=\"-130.8\">2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"447.5,-124 447.5,-145 474.5,-145 474.5,-124 447.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"447.5,-124 447.5,-145 474.5,-145 474.5,-124 447.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"457.5\" y=\"-130.8\">3</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"474.5,-124 474.5,-145 501.5,-145 501.5,-124 474.5,-124\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"474.5,-124 474.5,-145 501.5,-145 501.5,-124 474.5,-124\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"484.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=\"535.5,-187 535.5,-208 584.5,-208 584.5,-187 535.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"535.5,-187 584.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"546\" y=\"-193.8\">dests</text>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"584.5,-187 584.5,-208 605.5,-208 605.5,-187 584.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"584.5,-187 605.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"587.5\" y=\"-193.8\">~0</text>\n",
|
|
"<polyline fill=\"none\" points=\"605.5,-187 618.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"618.5,-187 631.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"#ffc0cb\" points=\"631.5,-187 631.5,-208 652.5,-208 652.5,-187 631.5,-187\" stroke=\"transparent\"/>\n",
|
|
"<polyline fill=\"none\" points=\"631.5,-187 652.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"634.5\" y=\"-193.8\">~3</text>\n",
|
|
"<polyline fill=\"none\" points=\"652.5,-187 665.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polyline fill=\"none\" points=\"665.5,-187 678.5,-187 \" stroke=\"#000000\"/>\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\">~6</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",
|
|
"<polyline fill=\"none\" points=\"725.5,-187 738.5,-187 \" stroke=\"#000000\"/>\n",
|
|
"<polygon fill=\"none\" points=\"535.5,-166 535.5,-187 584.5,-187 584.5,-166 535.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"538.5\" y=\"-172.8\">#cnt/dst</text>\n",
|
|
"<polygon fill=\"none\" points=\"584.5,-166 584.5,-187 605.5,-187 605.5,-166 584.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"588\" y=\"-172.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"605.5,-166 605.5,-187 618.5,-187 618.5,-166 605.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"605.5,-166 605.5,-187 618.5,-187 618.5,-166 605.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"608.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"618.5,-166 618.5,-187 631.5,-187 631.5,-166 618.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"618.5,-166 618.5,-187 631.5,-187 631.5,-166 618.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"621.5\" y=\"-172.8\">3</text>\n",
|
|
"<polygon fill=\"none\" points=\"631.5,-166 631.5,-187 652.5,-187 652.5,-166 631.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"635\" y=\"-172.8\">#2</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"652.5,-166 652.5,-187 665.5,-187 665.5,-166 652.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"652.5,-166 652.5,-187 665.5,-187 665.5,-166 652.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"655.5\" y=\"-172.8\">0</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"665.5,-166 665.5,-187 678.5,-187 678.5,-166 665.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"665.5,-166 665.5,-187 678.5,-187 678.5,-166 665.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"668.5\" y=\"-172.8\">1</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\">#3</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\">1</text>\n",
|
|
"<polygon fill=\"#ffff00\" points=\"725.5,-166 725.5,-187 738.5,-187 738.5,-166 725.5,-166\" stroke=\"transparent\"/>\n",
|
|
"<polygon fill=\"none\" points=\"725.5,-166 725.5,-187 738.5,-187 738.5,-166 725.5,-166\" stroke=\"#000000\"/>\n",
|
|
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"start\" x=\"728.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) & 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->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->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->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 & !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->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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 & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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 & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->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->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->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 0x7f616c0b3bd0> >"
|
|
]
|
|
},
|
|
"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 & 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 & 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 & !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->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->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->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": [
|
|
"This 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->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->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->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->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 & !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->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->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 & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->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 & b</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->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->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->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 0x7f616c0b3bd0> >"
|
|
]
|
|
},
|
|
"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 & 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 & 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 & !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->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->edges -->\n",
|
|
"</g>\n",
|
|
"</svg>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"prod.release_named_properties()\n",
|
|
"display(prod, prod.show_storage())"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.6.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|