1{ 2 "cells": [ 3 { 4 "cell_type": "markdown", 5 "metadata": {}, 6 "source": [ 7 "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." 8 ] 9 }, 10 { 11 "cell_type": "code", 12 "execution_count": 1, 13 "metadata": {}, 14 "outputs": [], 15 "source": [ 16 "import buddy\n", 17 "import spot\n", 18 "spot.setup(show_default='.n')\n", 19 "from IPython.display import display" 20 ] 21 }, 22 { 23 "cell_type": "markdown", 24 "metadata": {}, 25 "source": [ 26 "# The two-vector representation" 27 ] 28 }, 29 { 30 "cell_type": "markdown", 31 "metadata": {}, 32 "source": [ 33 "Let's consider a small automaton, generated from an LTL formula." 34 ] 35 }, 36 { 37 "cell_type": "code", 38 "execution_count": 2, 39 "metadata": {}, 40 "outputs": [], 41 "source": [ 42 "aut = spot.translate('GF(a <-> Xa) & FGb', 'det', 'gen')" 43 ] 44 }, 45 { 46 "cell_type": "code", 47 "execution_count": 3, 48 "metadata": {}, 49 "outputs": [ 50 { 51 "data": { 52 "image/svg+xml": [ 53 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 54 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 55 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 56 "<!-- Generated by graphviz version 2.43.0 (0)\n", 57 " -->\n", 58 "<!-- Pages: 1 -->\n", 59 "<svg width=\"198pt\" height=\"222pt\"\n", 60 " viewBox=\"0.00 0.00 197.50 221.67\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 61 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.67)\">\n", 62 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.67 193.5,-217.67 193.5,4 -4,4\"/>\n", 63 "<text text-anchor=\"start\" x=\"42.75\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 64 "<text text-anchor=\"start\" x=\"67.75\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 65 "<text text-anchor=\"start\" x=\"83.75\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 66 "<text text-anchor=\"start\" x=\"126.75\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 67 "<text text-anchor=\"start\" x=\"142.75\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 68 "<text text-anchor=\"start\" x=\"65.75\" y=\"-185.47\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 69 "<!-- I -->\n", 70 "<!-- 0 -->\n", 71 "<g id=\"node2\" class=\"node\">\n", 72 "<title>0</title>\n", 73 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.67\" rx=\"18\" ry=\"18\"/>\n", 74 "<text text-anchor=\"middle\" x=\"56\" y=\"-59.97\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 75 "</g>\n", 76 "<!-- I->0 -->\n", 77 "<g id=\"edge1\" class=\"edge\">\n", 78 "<title>I->0</title>\n", 79 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.67C2.79,-63.67 17.15,-63.67 30.63,-63.67\"/>\n", 80 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.67 30.94,-66.82 34.44,-63.67 30.94,-63.67 30.94,-63.67 30.94,-63.67 34.44,-63.67 30.94,-60.52 37.94,-63.67 37.94,-63.67\"/>\n", 81 "</g>\n", 82 "<!-- 0->0 -->\n", 83 "<g id=\"edge2\" class=\"edge\">\n", 84 "<title>0->0</title>\n", 85 "<path fill=\"none\" stroke=\"black\" d=\"M52.76,-81.45C52.21,-90.99 53.29,-99.67 56,-99.67 57.99,-99.67 59.1,-94.99 59.33,-88.72\"/>\n", 86 "<polygon fill=\"black\" stroke=\"black\" points=\"59.24,-81.45 62.48,-88.41 59.28,-84.95 59.33,-88.45 59.33,-88.45 59.33,-88.45 59.28,-84.95 56.18,-88.49 59.24,-81.45 59.24,-81.45\"/>\n", 87 "<text text-anchor=\"start\" x=\"37.5\" y=\"-118.47\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 88 "<text text-anchor=\"start\" x=\"48\" y=\"-103.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 89 "</g>\n", 90 "<!-- 0->0 -->\n", 91 "<g id=\"edge3\" class=\"edge\">\n", 92 "<title>0->0</title>\n", 93 "<path fill=\"none\" stroke=\"black\" d=\"M50.99,-81.25C47.55,-102.39 49.21,-129.67 56,-129.67 62.04,-129.67 64.03,-108.03 61.96,-88.36\"/>\n", 94 "<polygon fill=\"black\" stroke=\"black\" points=\"61.01,-81.25 65.06,-87.77 61.47,-84.72 61.93,-88.19 61.93,-88.19 61.93,-88.19 61.47,-84.72 58.81,-88.6 61.01,-81.25 61.01,-81.25\"/>\n", 95 "<text text-anchor=\"start\" x=\"39\" y=\"-148.47\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 96 "<text text-anchor=\"start\" x=\"48\" y=\"-133.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 97 "</g>\n", 98 "<!-- 1 -->\n", 99 "<g id=\"node3\" class=\"node\">\n", 100 "<title>1</title>\n", 101 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"169\" cy=\"-63.67\" rx=\"18\" ry=\"18\"/>\n", 102 "<text text-anchor=\"middle\" x=\"169\" y=\"-59.97\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 103 "</g>\n", 104 "<!-- 0->1 -->\n", 105 "<g id=\"edge4\" class=\"edge\">\n", 106 "<title>0->1</title>\n", 107 "<path fill=\"none\" stroke=\"black\" d=\"M63.7,-80.45C69.35,-92.1 78.65,-106.72 92,-113.67 108.16,-122.09 116.84,-122.09 133,-113.67 144.05,-107.92 152.34,-96.9 158.06,-86.67\"/>\n", 108 "<polygon fill=\"black\" stroke=\"black\" points=\"161.3,-80.45 160.86,-88.12 159.68,-83.56 158.07,-86.66 158.07,-86.66 158.07,-86.66 159.68,-83.56 155.27,-85.21 161.3,-80.45 161.3,-80.45\"/>\n", 109 "<text text-anchor=\"start\" x=\"94\" y=\"-123.47\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 110 "</g>\n", 111 "<!-- 0->1 -->\n", 112 "<g id=\"edge5\" class=\"edge\">\n", 113 "<title>0->1</title>\n", 114 "<path fill=\"none\" stroke=\"black\" d=\"M74.34,-63.67C93,-63.67 122.8,-63.67 143.76,-63.67\"/>\n", 115 "<polygon fill=\"black\" stroke=\"black\" points=\"150.78,-63.67 143.78,-66.82 147.28,-63.67 143.78,-63.67 143.78,-63.67 143.78,-63.67 147.28,-63.67 143.78,-60.52 150.78,-63.67 150.78,-63.67\"/>\n", 116 "<text text-anchor=\"start\" x=\"92\" y=\"-82.47\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 117 "<text text-anchor=\"start\" x=\"104.5\" y=\"-67.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 118 "</g>\n", 119 "<!-- 1->0 -->\n", 120 "<g id=\"edge6\" class=\"edge\">\n", 121 "<title>1->0</title>\n", 122 "<path fill=\"none\" stroke=\"black\" d=\"M153.69,-53.81C147.6,-50.18 140.24,-46.51 133,-44.67 115.34,-40.19 109.66,-40.19 92,-44.67 87.14,-45.91 82.22,-47.97 77.67,-50.29\"/>\n", 123 "<polygon fill=\"black\" stroke=\"black\" points=\"71.31,-53.81 75.91,-47.66 74.37,-52.11 77.44,-50.42 77.44,-50.42 77.44,-50.42 74.37,-52.11 78.96,-53.17 71.31,-53.81 71.31,-53.81\"/>\n", 124 "<text text-anchor=\"start\" x=\"95.5\" y=\"-48.47\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 125 "</g>\n", 126 "<!-- 1->0 -->\n", 127 "<g id=\"edge7\" class=\"edge\">\n", 128 "<title>1->0</title>\n", 129 "<path fill=\"none\" stroke=\"black\" d=\"M162.68,-46.55C157.48,-33.04 148.1,-15.12 133,-6.67 117.1,2.22 107.9,2.22 92,-6.67 79.26,-13.8 70.59,-27.67 65.07,-39.95\"/>\n", 130 "<polygon fill=\"black\" stroke=\"black\" points=\"62.32,-46.55 62.1,-38.88 63.66,-43.32 65.01,-40.09 65.01,-40.09 65.01,-40.09 63.66,-43.32 67.92,-41.3 62.32,-46.55 62.32,-46.55\"/>\n", 131 "<text text-anchor=\"start\" x=\"94\" y=\"-25.47\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 132 "<text text-anchor=\"start\" x=\"104.5\" y=\"-10.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 133 "</g>\n", 134 "<!-- 1->1 -->\n", 135 "<g id=\"edge8\" class=\"edge\">\n", 136 "<title>1->1</title>\n", 137 "<path fill=\"none\" stroke=\"black\" d=\"M164,-81.08C163.07,-90.76 164.73,-99.67 169,-99.67 172.13,-99.67 173.86,-94.87 174.19,-88.48\"/>\n", 138 "<polygon fill=\"black\" stroke=\"black\" points=\"174,-81.08 177.33,-88 174.09,-84.58 174.18,-88.08 174.18,-88.08 174.18,-88.08 174.09,-84.58 171.03,-88.16 174,-81.08 174,-81.08\"/>\n", 139 "<text text-anchor=\"start\" x=\"148.5\" y=\"-118.47\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 140 "<text text-anchor=\"start\" x=\"161\" y=\"-103.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 141 "</g>\n", 142 "<!-- 1->1 -->\n", 143 "<g id=\"edge9\" class=\"edge\">\n", 144 "<title>1->1</title>\n", 145 "<path fill=\"none\" stroke=\"black\" d=\"M161.46,-80.27C155.77,-101.54 158.28,-129.67 169,-129.67 178.59,-129.67 181.61,-107.16 178.06,-87.19\"/>\n", 146 "<polygon fill=\"black\" stroke=\"black\" points=\"176.54,-80.27 181.12,-86.42 177.29,-83.69 178.05,-87.1 178.05,-87.1 178.05,-87.1 177.29,-83.69 174.97,-87.78 176.54,-80.27 176.54,-80.27\"/>\n", 147 "<text text-anchor=\"start\" x=\"150.5\" y=\"-148.47\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 148 "<text text-anchor=\"start\" x=\"161\" y=\"-133.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 149 "</g>\n", 150 "</g>\n", 151 "</svg>\n" 152 ], 153 "text/plain": [ 154 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 155 ] 156 }, 157 "execution_count": 3, 158 "metadata": {}, 159 "output_type": "execute_result" 160 } 161 ], 162 "source": [ 163 "aut" 164 ] 165 }, 166 { 167 "cell_type": "markdown", 168 "metadata": {}, 169 "source": [ 170 "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`." 171 ] 172 }, 173 { 174 "cell_type": "code", 175 "execution_count": 4, 176 "metadata": {}, 177 "outputs": [ 178 { 179 "data": { 180 "image/svg+xml": [ 181 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 182 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 183 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 184 "<!-- Generated by graphviz version 2.43.0 (0)\n", 185 " -->\n", 186 "<!-- Title: g Pages: 1 -->\n", 187 "<svg width=\"580pt\" height=\"376pt\"\n", 188 " viewBox=\"0.00 0.00 580.00 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 189 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 190 "<title>g</title>\n", 191 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 576,-372 576,4 -4,4\"/>\n", 192 "<!-- states -->\n", 193 "<g id=\"node1\" class=\"node\">\n", 194 "<title>states</title>\n", 195 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"46.5,-311 46.5,-332 101.5,-332 101.5,-311 46.5,-311\"/>\n", 196 "<polyline fill=\"none\" stroke=\"black\" points=\"46.5,-311 101.5,-311 \"/>\n", 197 "<text text-anchor=\"start\" x=\"58.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 198 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\"/>\n", 199 "<polyline fill=\"none\" stroke=\"black\" points=\"101.5,-311 114.5,-311 \"/>\n", 200 "<text text-anchor=\"start\" x=\"104.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 201 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\"/>\n", 202 "<polyline fill=\"none\" stroke=\"black\" points=\"114.5,-311 127.5,-311 \"/>\n", 203 "<text text-anchor=\"start\" x=\"117.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 204 "<polygon fill=\"none\" stroke=\"black\" points=\"46.5,-290 46.5,-311 101.5,-311 101.5,-290 46.5,-290\"/>\n", 205 "<text text-anchor=\"start\" x=\"61.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 206 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 207 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 208 "<text text-anchor=\"start\" x=\"104.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 209 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 210 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 211 "<text text-anchor=\"start\" x=\"117.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 212 "<polygon fill=\"none\" stroke=\"black\" points=\"46.5,-269 46.5,-290 101.5,-290 101.5,-269 46.5,-269\"/>\n", 213 "<text text-anchor=\"start\" x=\"49.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 214 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 215 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 216 "<text text-anchor=\"start\" x=\"104.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 217 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 218 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 219 "<text text-anchor=\"start\" x=\"117.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 220 "</g>\n", 221 "<!-- edges -->\n", 222 "<g id=\"node2\" class=\"node\">\n", 223 "<title>edges</title>\n", 224 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"161.5,-343 161.5,-364 222.5,-364 222.5,-343 161.5,-343\"/>\n", 225 "<polyline fill=\"none\" stroke=\"black\" points=\"161.5,-343 222.5,-343 \"/>\n", 226 "<text text-anchor=\"start\" x=\"176.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 227 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"222.5,-343 222.5,-364 265.5,-364 265.5,-343 222.5,-343\"/>\n", 228 "<polyline fill=\"none\" stroke=\"black\" points=\"222.5,-343 265.5,-343 \"/>\n", 229 "<text text-anchor=\"start\" x=\"240.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 230 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"265.5,-343 265.5,-364 303.5,-364 303.5,-343 265.5,-343\"/>\n", 231 "<polyline fill=\"none\" stroke=\"black\" points=\"265.5,-343 303.5,-343 \"/>\n", 232 "<text text-anchor=\"start\" x=\"281\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 233 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"303.5,-343 303.5,-364 346.5,-364 346.5,-343 303.5,-343\"/>\n", 234 "<polyline fill=\"none\" stroke=\"black\" points=\"303.5,-343 346.5,-343 \"/>\n", 235 "<text text-anchor=\"start\" x=\"321.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 236 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"346.5,-343 346.5,-364 393.5,-364 393.5,-343 346.5,-343\"/>\n", 237 "<polyline fill=\"none\" stroke=\"black\" points=\"346.5,-343 393.5,-343 \"/>\n", 238 "<text text-anchor=\"start\" x=\"366.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 239 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"393.5,-343 393.5,-364 431.5,-364 431.5,-343 393.5,-343\"/>\n", 240 "<polyline fill=\"none\" stroke=\"black\" points=\"393.5,-343 431.5,-343 \"/>\n", 241 "<text text-anchor=\"start\" x=\"409\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 242 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"431.5,-343 431.5,-364 474.5,-364 474.5,-343 431.5,-343\"/>\n", 243 "<polyline fill=\"none\" stroke=\"black\" points=\"431.5,-343 474.5,-343 \"/>\n", 244 "<text text-anchor=\"start\" x=\"449.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 245 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"474.5,-343 474.5,-364 521.5,-364 521.5,-343 474.5,-343\"/>\n", 246 "<polyline fill=\"none\" stroke=\"black\" points=\"474.5,-343 521.5,-343 \"/>\n", 247 "<text text-anchor=\"start\" x=\"494.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 248 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"521.5,-343 521.5,-364 564.5,-364 564.5,-343 521.5,-343\"/>\n", 249 "<polyline fill=\"none\" stroke=\"black\" points=\"521.5,-343 564.5,-343 \"/>\n", 250 "<text text-anchor=\"start\" x=\"539.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 251 "<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-322 161.5,-343 222.5,-343 222.5,-322 161.5,-322\"/>\n", 252 "<text text-anchor=\"start\" x=\"178.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 253 "<polygon fill=\"none\" stroke=\"black\" points=\"222.5,-322 222.5,-343 265.5,-343 265.5,-322 222.5,-322\"/>\n", 254 "<text text-anchor=\"start\" x=\"225.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 255 "<polygon fill=\"none\" stroke=\"black\" points=\"265.5,-322 265.5,-343 303.5,-343 303.5,-322 265.5,-322\"/>\n", 256 "<text text-anchor=\"start\" x=\"268.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 257 "<polygon fill=\"none\" stroke=\"black\" points=\"303.5,-322 303.5,-343 346.5,-343 346.5,-322 303.5,-322\"/>\n", 258 "<text text-anchor=\"start\" x=\"306.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 259 "<polygon fill=\"none\" stroke=\"black\" points=\"346.5,-322 346.5,-343 393.5,-343 393.5,-322 346.5,-322\"/>\n", 260 "<text text-anchor=\"start\" x=\"349.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 261 "<polygon fill=\"none\" stroke=\"black\" points=\"393.5,-322 393.5,-343 431.5,-343 431.5,-322 393.5,-322\"/>\n", 262 "<text text-anchor=\"start\" x=\"396.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 263 "<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-322 431.5,-343 474.5,-343 474.5,-322 431.5,-322\"/>\n", 264 "<text text-anchor=\"start\" x=\"434.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 265 "<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-322 474.5,-343 521.5,-343 521.5,-322 474.5,-322\"/>\n", 266 "<text text-anchor=\"start\" x=\"477.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 267 "<polygon fill=\"none\" stroke=\"black\" points=\"521.5,-322 521.5,-343 564.5,-343 564.5,-322 521.5,-322\"/>\n", 268 "<text text-anchor=\"start\" x=\"524.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 269 "<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-301 161.5,-322 222.5,-322 222.5,-301 161.5,-301\"/>\n", 270 "<text text-anchor=\"start\" x=\"182.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 271 "<polygon fill=\"none\" stroke=\"black\" points=\"222.5,-301 222.5,-322 265.5,-322 265.5,-301 222.5,-301\"/>\n", 272 "<text text-anchor=\"start\" x=\"233.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 273 "<polygon fill=\"none\" stroke=\"black\" points=\"265.5,-301 265.5,-322 303.5,-322 303.5,-301 265.5,-301\"/>\n", 274 "<text text-anchor=\"start\" x=\"274\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 275 "<polygon fill=\"none\" stroke=\"black\" points=\"303.5,-301 303.5,-322 346.5,-322 346.5,-301 303.5,-301\"/>\n", 276 "<text text-anchor=\"start\" x=\"318\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 277 "<polygon fill=\"none\" stroke=\"black\" points=\"346.5,-301 346.5,-322 393.5,-322 393.5,-301 346.5,-301\"/>\n", 278 "<text text-anchor=\"start\" x=\"359.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 279 "<polygon fill=\"none\" stroke=\"black\" points=\"393.5,-301 393.5,-322 431.5,-322 431.5,-301 393.5,-301\"/>\n", 280 "<text text-anchor=\"start\" x=\"405.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 281 "<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-301 431.5,-322 474.5,-322 474.5,-301 431.5,-301\"/>\n", 282 "<text text-anchor=\"start\" x=\"442.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 283 "<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-301 474.5,-322 521.5,-322 521.5,-301 474.5,-301\"/>\n", 284 "<text text-anchor=\"start\" x=\"487.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 285 "<polygon fill=\"none\" stroke=\"black\" points=\"521.5,-301 521.5,-322 564.5,-322 564.5,-301 521.5,-301\"/>\n", 286 "<text text-anchor=\"start\" x=\"532.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 287 "<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-280 161.5,-301 222.5,-301 222.5,-280 161.5,-280\"/>\n", 288 "<text text-anchor=\"start\" x=\"184\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 289 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"222.5,-280 222.5,-301 265.5,-301 265.5,-280 222.5,-280\"/>\n", 290 "<polygon fill=\"none\" stroke=\"black\" points=\"222.5,-280 222.5,-301 265.5,-301 265.5,-280 222.5,-280\"/>\n", 291 "<text text-anchor=\"start\" x=\"240.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 292 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"265.5,-280 265.5,-301 303.5,-301 303.5,-280 265.5,-280\"/>\n", 293 "<polygon fill=\"none\" stroke=\"black\" points=\"265.5,-280 265.5,-301 303.5,-301 303.5,-280 265.5,-280\"/>\n", 294 "<text text-anchor=\"start\" x=\"281\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 295 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\"/>\n", 296 "<polygon fill=\"none\" stroke=\"black\" points=\"303.5,-280 303.5,-301 346.5,-301 346.5,-280 303.5,-280\"/>\n", 297 "<text text-anchor=\"start\" x=\"321.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 298 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\"/>\n", 299 "<polygon fill=\"none\" stroke=\"black\" points=\"346.5,-280 346.5,-301 393.5,-301 393.5,-280 346.5,-280\"/>\n", 300 "<text text-anchor=\"start\" x=\"366.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 301 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\"/>\n", 302 "<polygon fill=\"none\" stroke=\"black\" points=\"393.5,-280 393.5,-301 431.5,-301 431.5,-280 393.5,-280\"/>\n", 303 "<text text-anchor=\"start\" x=\"409\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 304 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\"/>\n", 305 "<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-280 431.5,-301 474.5,-301 474.5,-280 431.5,-280\"/>\n", 306 "<text text-anchor=\"start\" x=\"449.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 307 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"474.5,-280 474.5,-301 521.5,-301 521.5,-280 474.5,-280\"/>\n", 308 "<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-280 474.5,-301 521.5,-301 521.5,-280 474.5,-280\"/>\n", 309 "<text text-anchor=\"start\" x=\"494.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 310 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"521.5,-280 521.5,-301 564.5,-301 564.5,-280 521.5,-280\"/>\n", 311 "<polygon fill=\"none\" stroke=\"black\" points=\"521.5,-280 521.5,-301 564.5,-301 564.5,-280 521.5,-280\"/>\n", 312 "<text text-anchor=\"start\" x=\"539.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 313 "<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-259 161.5,-280 222.5,-280 222.5,-259 161.5,-259\"/>\n", 314 "<text text-anchor=\"start\" x=\"164.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 315 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"222.5,-259 222.5,-280 265.5,-280 265.5,-259 222.5,-259\"/>\n", 316 "<polygon fill=\"none\" stroke=\"black\" points=\"222.5,-259 222.5,-280 265.5,-280 265.5,-259 222.5,-259\"/>\n", 317 "<text text-anchor=\"start\" x=\"240.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 318 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"265.5,-259 265.5,-280 303.5,-280 303.5,-259 265.5,-259\"/>\n", 319 "<polygon fill=\"none\" stroke=\"black\" points=\"265.5,-259 265.5,-280 303.5,-280 303.5,-259 265.5,-259\"/>\n", 320 "<text text-anchor=\"start\" x=\"281\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 321 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\"/>\n", 322 "<polygon fill=\"none\" stroke=\"black\" points=\"303.5,-259 303.5,-280 346.5,-280 346.5,-259 303.5,-259\"/>\n", 323 "<text text-anchor=\"start\" x=\"321.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 324 "<polygon fill=\"none\" stroke=\"black\" points=\"346.5,-259 346.5,-280 393.5,-280 393.5,-259 346.5,-259\"/>\n", 325 "<text text-anchor=\"start\" x=\"366.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 326 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\"/>\n", 327 "<polygon fill=\"none\" stroke=\"black\" points=\"393.5,-259 393.5,-280 431.5,-280 431.5,-259 393.5,-259\"/>\n", 328 "<text text-anchor=\"start\" x=\"409\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 329 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\"/>\n", 330 "<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-259 431.5,-280 474.5,-280 474.5,-259 431.5,-259\"/>\n", 331 "<text text-anchor=\"start\" x=\"449.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 332 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"474.5,-259 474.5,-280 521.5,-280 521.5,-259 474.5,-259\"/>\n", 333 "<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-259 474.5,-280 521.5,-280 521.5,-259 474.5,-259\"/>\n", 334 "<text text-anchor=\"start\" x=\"494.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 335 "<polygon fill=\"none\" stroke=\"black\" points=\"521.5,-259 521.5,-280 564.5,-280 564.5,-259 521.5,-259\"/>\n", 336 "<text text-anchor=\"start\" x=\"539.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 337 "<polygon fill=\"none\" stroke=\"black\" points=\"161.5,-238 161.5,-259 222.5,-259 222.5,-238 161.5,-238\"/>\n", 338 "<text text-anchor=\"start\" x=\"184\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 339 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"222.5,-238 222.5,-259 265.5,-259 265.5,-238 222.5,-238\"/>\n", 340 "<polygon fill=\"none\" stroke=\"black\" points=\"222.5,-238 222.5,-259 265.5,-259 265.5,-238 222.5,-238\"/>\n", 341 "<text text-anchor=\"start\" x=\"240.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 342 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"265.5,-238 265.5,-259 303.5,-259 303.5,-238 265.5,-238\"/>\n", 343 "<polygon fill=\"none\" stroke=\"black\" points=\"265.5,-238 265.5,-259 303.5,-259 303.5,-238 265.5,-238\"/>\n", 344 "<text text-anchor=\"start\" x=\"281\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 345 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\"/>\n", 346 "<polygon fill=\"none\" stroke=\"black\" points=\"303.5,-238 303.5,-259 346.5,-259 346.5,-238 303.5,-238\"/>\n", 347 "<text text-anchor=\"start\" x=\"321.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 348 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\"/>\n", 349 "<polygon fill=\"none\" stroke=\"black\" points=\"346.5,-238 346.5,-259 393.5,-259 393.5,-238 346.5,-238\"/>\n", 350 "<text text-anchor=\"start\" x=\"366.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 351 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\"/>\n", 352 "<polygon fill=\"none\" stroke=\"black\" points=\"393.5,-238 393.5,-259 431.5,-259 431.5,-238 393.5,-238\"/>\n", 353 "<text text-anchor=\"start\" x=\"409\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 354 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\"/>\n", 355 "<polygon fill=\"none\" stroke=\"black\" points=\"431.5,-238 431.5,-259 474.5,-259 474.5,-238 431.5,-238\"/>\n", 356 "<text text-anchor=\"start\" x=\"449.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 357 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"474.5,-238 474.5,-259 521.5,-259 521.5,-238 474.5,-238\"/>\n", 358 "<polygon fill=\"none\" stroke=\"black\" points=\"474.5,-238 474.5,-259 521.5,-259 521.5,-238 474.5,-238\"/>\n", 359 "<text text-anchor=\"start\" x=\"494.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 360 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"521.5,-238 521.5,-259 564.5,-259 564.5,-238 521.5,-238\"/>\n", 361 "<polygon fill=\"none\" stroke=\"black\" points=\"521.5,-238 521.5,-259 564.5,-259 564.5,-238 521.5,-238\"/>\n", 362 "<text text-anchor=\"start\" x=\"539.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 363 "</g>\n", 364 "<!-- meta -->\n", 365 "<g id=\"node3\" class=\"node\">\n", 366 "<title>meta</title>\n", 367 "<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 368 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\"/>\n", 369 "<text text-anchor=\"start\" x=\"78.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 370 "<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 371 "<text text-anchor=\"start\" x=\"78.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 372 "<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 373 "<text text-anchor=\"start\" x=\"78.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 374 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 375 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 376 "</g>\n", 377 "<!-- meta->states -->\n", 378 "<!-- props -->\n", 379 "<g id=\"node4\" class=\"node\">\n", 380 "<title>props</title>\n", 381 "<text text-anchor=\"start\" x=\"272.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 382 "<text text-anchor=\"start\" x=\"416.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 383 "<text text-anchor=\"start\" x=\"272.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 384 "<text text-anchor=\"start\" x=\"416.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 385 "<text text-anchor=\"start\" x=\"272.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 386 "<text text-anchor=\"start\" x=\"416.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">no</text>\n", 387 "<text text-anchor=\"start\" x=\"272.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 388 "<text text-anchor=\"start\" x=\"416.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 389 "<text text-anchor=\"start\" x=\"272.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 390 "<text text-anchor=\"start\" x=\"416.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 391 "<text text-anchor=\"start\" x=\"272.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 392 "<text text-anchor=\"start\" x=\"416.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 393 "<text text-anchor=\"start\" x=\"272.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 394 "<text text-anchor=\"start\" x=\"416.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 395 "<text text-anchor=\"start\" x=\"272.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 396 "<text text-anchor=\"start\" x=\"416.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 397 "<text text-anchor=\"start\" x=\"272.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 398 "<text text-anchor=\"start\" x=\"416.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 399 "<text text-anchor=\"start\" x=\"272.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 400 "<text text-anchor=\"start\" x=\"416.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 401 "</g>\n", 402 "<!-- props->edges -->\n", 403 "</g>\n", 404 "</svg>\n" 405 ], 406 "text/plain": [ 407 "<spot.jupyter.SVG object>" 408 ] 409 }, 410 "execution_count": 4, 411 "metadata": {}, 412 "output_type": "execute_result" 413 } 414 ], 415 "source": [ 416 "aut.show_storage()" 417 ] 418 }, 419 { 420 "cell_type": "markdown", 421 "metadata": {}, 422 "source": [ 423 "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", 424 "\n", 425 "Adding a new edge, for instance, will augment the size of the `edges` array and return the index of the newly added edge:" 426 ] 427 }, 428 { 429 "cell_type": "code", 430 "execution_count": 5, 431 "metadata": {}, 432 "outputs": [ 433 { 434 "data": { 435 "text/plain": [ 436 "9" 437 ] 438 }, 439 "execution_count": 5, 440 "metadata": {}, 441 "output_type": "execute_result" 442 } 443 ], 444 "source": [ 445 "s = aut.new_state()\n", 446 "aut.set_init_state(s)\n", 447 "aut.new_edge(s, 0, buddy.bddtrue)" 448 ] 449 }, 450 { 451 "cell_type": "code", 452 "execution_count": 6, 453 "metadata": {}, 454 "outputs": [ 455 { 456 "data": { 457 "image/svg+xml": [ 458 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 459 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 460 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 461 "<!-- Generated by graphviz version 2.43.0 (0)\n", 462 " -->\n", 463 "<!-- Pages: 1 -->\n", 464 "<svg width=\"279pt\" height=\"222pt\"\n", 465 " viewBox=\"0.00 0.00 278.50 221.67\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 466 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 217.67)\">\n", 467 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-217.67 274.5,-217.67 274.5,4 -4,4\"/>\n", 468 "<text text-anchor=\"start\" x=\"83.25\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 469 "<text text-anchor=\"start\" x=\"108.25\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 470 "<text text-anchor=\"start\" x=\"124.25\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 471 "<text text-anchor=\"start\" x=\"167.25\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 472 "<text text-anchor=\"start\" x=\"183.25\" y=\"-199.47\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 473 "<text text-anchor=\"start\" x=\"106.25\" y=\"-185.47\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 474 "<!-- I -->\n", 475 "<!-- 2 -->\n", 476 "<g id=\"node2\" class=\"node\">\n", 477 "<title>2</title>\n", 478 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-63.67\" rx=\"18\" ry=\"18\"/>\n", 479 "<text text-anchor=\"middle\" x=\"56\" y=\"-59.97\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 480 "</g>\n", 481 "<!-- I->2 -->\n", 482 "<g id=\"edge1\" class=\"edge\">\n", 483 "<title>I->2</title>\n", 484 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63.67C2.79,-63.67 17.15,-63.67 30.63,-63.67\"/>\n", 485 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63.67 30.94,-66.82 34.44,-63.67 30.94,-63.67 30.94,-63.67 30.94,-63.67 34.44,-63.67 30.94,-60.52 37.94,-63.67 37.94,-63.67\"/>\n", 486 "</g>\n", 487 "<!-- 0 -->\n", 488 "<g id=\"node3\" class=\"node\">\n", 489 "<title>0</title>\n", 490 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-63.67\" rx=\"18\" ry=\"18\"/>\n", 491 "<text text-anchor=\"middle\" x=\"137\" y=\"-59.97\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 492 "</g>\n", 493 "<!-- 2->0 -->\n", 494 "<g id=\"edge10\" class=\"edge\">\n", 495 "<title>2->0</title>\n", 496 "<path fill=\"none\" stroke=\"black\" d=\"M74.14,-63.67C85.12,-63.67 99.52,-63.67 111.67,-63.67\"/>\n", 497 "<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-63.67 111.89,-66.82 115.39,-63.67 111.89,-63.67 111.89,-63.67 111.89,-63.67 115.39,-63.67 111.89,-60.52 118.89,-63.67 118.89,-63.67\"/>\n", 498 "<text text-anchor=\"middle\" x=\"96.5\" y=\"-67.47\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 499 "</g>\n", 500 "<!-- 0->0 -->\n", 501 "<g id=\"edge2\" class=\"edge\">\n", 502 "<title>0->0</title>\n", 503 "<path fill=\"none\" stroke=\"black\" d=\"M133.4,-81.45C132.79,-90.99 133.99,-99.67 137,-99.67 139.21,-99.67 140.44,-94.99 140.7,-88.72\"/>\n", 504 "<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-81.45 143.85,-88.41 140.65,-84.95 140.7,-88.45 140.7,-88.45 140.7,-88.45 140.65,-84.95 137.55,-88.5 140.6,-81.45 140.6,-81.45\"/>\n", 505 "<text text-anchor=\"start\" x=\"118.5\" y=\"-118.47\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 506 "<text text-anchor=\"start\" x=\"129\" y=\"-103.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 507 "</g>\n", 508 "<!-- 0->0 -->\n", 509 "<g id=\"edge3\" class=\"edge\">\n", 510 "<title>0->0</title>\n", 511 "<path fill=\"none\" stroke=\"black\" d=\"M131.49,-80.92C127.59,-102.11 129.42,-129.67 137,-129.67 143.75,-129.67 145.94,-107.81 143.58,-88.06\"/>\n", 512 "<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-80.92 146.66,-87.37 143.03,-84.38 143.55,-87.84 143.55,-87.84 143.55,-87.84 143.03,-84.38 140.43,-88.31 142.51,-80.92 142.51,-80.92\"/>\n", 513 "<text text-anchor=\"start\" x=\"120\" y=\"-148.47\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 514 "<text text-anchor=\"start\" x=\"129\" y=\"-133.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 515 "</g>\n", 516 "<!-- 1 -->\n", 517 "<g id=\"node4\" class=\"node\">\n", 518 "<title>1</title>\n", 519 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"250\" cy=\"-63.67\" rx=\"18\" ry=\"18\"/>\n", 520 "<text text-anchor=\"middle\" x=\"250\" y=\"-59.97\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 521 "</g>\n", 522 "<!-- 0->1 -->\n", 523 "<g id=\"edge4\" class=\"edge\">\n", 524 "<title>0->1</title>\n", 525 "<path fill=\"none\" stroke=\"black\" d=\"M144.7,-80.45C150.35,-92.1 159.65,-106.72 173,-113.67 189.16,-122.09 197.84,-122.09 214,-113.67 225.05,-107.92 233.34,-96.9 239.06,-86.67\"/>\n", 526 "<polygon fill=\"black\" stroke=\"black\" points=\"242.3,-80.45 241.86,-88.12 240.68,-83.56 239.07,-86.66 239.07,-86.66 239.07,-86.66 240.68,-83.56 236.27,-85.21 242.3,-80.45 242.3,-80.45\"/>\n", 527 "<text text-anchor=\"start\" x=\"175\" y=\"-123.47\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 528 "</g>\n", 529 "<!-- 0->1 -->\n", 530 "<g id=\"edge5\" class=\"edge\">\n", 531 "<title>0->1</title>\n", 532 "<path fill=\"none\" stroke=\"black\" d=\"M155.34,-63.67C174,-63.67 203.8,-63.67 224.76,-63.67\"/>\n", 533 "<polygon fill=\"black\" stroke=\"black\" points=\"231.78,-63.67 224.78,-66.82 228.28,-63.67 224.78,-63.67 224.78,-63.67 224.78,-63.67 228.28,-63.67 224.78,-60.52 231.78,-63.67 231.78,-63.67\"/>\n", 534 "<text text-anchor=\"start\" x=\"173\" y=\"-82.47\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 535 "<text text-anchor=\"start\" x=\"185.5\" y=\"-67.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 536 "</g>\n", 537 "<!-- 1->0 -->\n", 538 "<g id=\"edge6\" class=\"edge\">\n", 539 "<title>1->0</title>\n", 540 "<path fill=\"none\" stroke=\"black\" d=\"M234.69,-53.81C228.6,-50.18 221.24,-46.51 214,-44.67 196.34,-40.19 190.66,-40.19 173,-44.67 168.14,-45.91 163.22,-47.97 158.67,-50.29\"/>\n", 541 "<polygon fill=\"black\" stroke=\"black\" points=\"152.31,-53.81 156.91,-47.66 155.37,-52.11 158.44,-50.42 158.44,-50.42 158.44,-50.42 155.37,-52.11 159.96,-53.17 152.31,-53.81 152.31,-53.81\"/>\n", 542 "<text text-anchor=\"start\" x=\"176.5\" y=\"-48.47\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 543 "</g>\n", 544 "<!-- 1->0 -->\n", 545 "<g id=\"edge7\" class=\"edge\">\n", 546 "<title>1->0</title>\n", 547 "<path fill=\"none\" stroke=\"black\" d=\"M243.68,-46.55C238.48,-33.04 229.1,-15.12 214,-6.67 198.1,2.22 188.9,2.22 173,-6.67 160.26,-13.8 151.59,-27.67 146.07,-39.95\"/>\n", 548 "<polygon fill=\"black\" stroke=\"black\" points=\"143.32,-46.55 143.1,-38.88 144.66,-43.32 146.01,-40.09 146.01,-40.09 146.01,-40.09 144.66,-43.32 148.92,-41.3 143.32,-46.55 143.32,-46.55\"/>\n", 549 "<text text-anchor=\"start\" x=\"175\" y=\"-25.47\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 550 "<text text-anchor=\"start\" x=\"185.5\" y=\"-10.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 551 "</g>\n", 552 "<!-- 1->1 -->\n", 553 "<g id=\"edge8\" class=\"edge\">\n", 554 "<title>1->1</title>\n", 555 "<path fill=\"none\" stroke=\"black\" d=\"M245,-81.08C244.07,-90.76 245.73,-99.67 250,-99.67 253.13,-99.67 254.86,-94.87 255.19,-88.48\"/>\n", 556 "<polygon fill=\"black\" stroke=\"black\" points=\"255,-81.08 258.33,-88 255.09,-84.58 255.18,-88.08 255.18,-88.08 255.18,-88.08 255.09,-84.58 252.03,-88.16 255,-81.08 255,-81.08\"/>\n", 557 "<text text-anchor=\"start\" x=\"229.5\" y=\"-118.47\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 558 "<text text-anchor=\"start\" x=\"242\" y=\"-103.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 559 "</g>\n", 560 "<!-- 1->1 -->\n", 561 "<g id=\"edge9\" class=\"edge\">\n", 562 "<title>1->1</title>\n", 563 "<path fill=\"none\" stroke=\"black\" d=\"M242.46,-80.27C236.77,-101.54 239.28,-129.67 250,-129.67 259.59,-129.67 262.61,-107.16 259.06,-87.19\"/>\n", 564 "<polygon fill=\"black\" stroke=\"black\" points=\"257.54,-80.27 262.12,-86.42 258.29,-83.69 259.05,-87.1 259.05,-87.1 259.05,-87.1 258.29,-83.69 255.97,-87.78 257.54,-80.27 257.54,-80.27\"/>\n", 565 "<text text-anchor=\"start\" x=\"231.5\" y=\"-148.47\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 566 "<text text-anchor=\"start\" x=\"242\" y=\"-133.47\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 567 "</g>\n", 568 "</g>\n", 569 "</svg>\n" 570 ], 571 "text/plain": [ 572 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 573 ] 574 }, 575 "metadata": {}, 576 "output_type": "display_data" 577 }, 578 { 579 "data": { 580 "image/svg+xml": [ 581 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 582 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 583 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 584 "<!-- Generated by graphviz version 2.43.0 (0)\n", 585 " -->\n", 586 "<!-- Title: g Pages: 1 -->\n", 587 "<svg width=\"576pt\" height=\"142pt\"\n", 588 " viewBox=\"0.00 0.00 575.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 589 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 590 "<title>g</title>\n", 591 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 571.5,-138 571.5,4 -4,4\"/>\n", 592 "<!-- states -->\n", 593 "<g id=\"node1\" class=\"node\">\n", 594 "<title>states</title>\n", 595 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 596 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 597 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 598 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 599 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 600 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 601 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 602 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 603 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 604 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 605 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 606 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 607 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 608 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 609 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 610 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 611 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 612 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 613 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 614 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 615 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 616 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 617 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 618 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 619 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 620 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 621 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 622 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 623 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 624 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 625 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 626 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 627 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 628 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 629 "</g>\n", 630 "<!-- edges -->\n", 631 "<g id=\"node2\" class=\"node\">\n", 632 "<title>edges</title>\n", 633 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 634 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 635 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 636 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 637 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 638 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 639 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 279,-130 279,-109 241,-109\"/>\n", 640 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 279,-109 \"/>\n", 641 "<text text-anchor=\"start\" x=\"256.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 642 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"279,-109 279,-130 322,-130 322,-109 279,-109\"/>\n", 643 "<polyline fill=\"none\" stroke=\"black\" points=\"279,-109 322,-109 \"/>\n", 644 "<text text-anchor=\"start\" x=\"297\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 645 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\"/>\n", 646 "<polyline fill=\"none\" stroke=\"black\" points=\"322,-109 369,-109 \"/>\n", 647 "<text text-anchor=\"start\" x=\"342\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 648 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\"/>\n", 649 "<polyline fill=\"none\" stroke=\"black\" points=\"369,-109 407,-109 \"/>\n", 650 "<text text-anchor=\"start\" x=\"384.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 651 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\"/>\n", 652 "<polyline fill=\"none\" stroke=\"black\" points=\"407,-109 450,-109 \"/>\n", 653 "<text text-anchor=\"start\" x=\"425\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 654 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"450,-109 450,-130 497,-130 497,-109 450,-109\"/>\n", 655 "<polyline fill=\"none\" stroke=\"black\" points=\"450,-109 497,-109 \"/>\n", 656 "<text text-anchor=\"start\" x=\"470\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 657 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"497,-109 497,-130 540,-130 540,-109 497,-109\"/>\n", 658 "<polyline fill=\"none\" stroke=\"black\" points=\"497,-109 540,-109 \"/>\n", 659 "<text text-anchor=\"start\" x=\"515\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 660 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"540,-109 540,-130 560,-130 560,-109 540,-109\"/>\n", 661 "<polyline fill=\"none\" stroke=\"black\" points=\"540,-109 560,-109 \"/>\n", 662 "<text text-anchor=\"start\" x=\"546.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 663 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 664 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 665 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 666 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 667 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 279,-109 279,-88 241,-88\"/>\n", 668 "<text text-anchor=\"start\" x=\"244\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 669 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\"/>\n", 670 "<text text-anchor=\"start\" x=\"282\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 671 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\"/>\n", 672 "<text text-anchor=\"start\" x=\"325\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 673 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\"/>\n", 674 "<text text-anchor=\"start\" x=\"372\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 675 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\"/>\n", 676 "<text text-anchor=\"start\" x=\"410\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 677 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-88 450,-109 497,-109 497,-88 450,-88\"/>\n", 678 "<text text-anchor=\"start\" x=\"453\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 679 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-88 497,-109 540,-109 540,-88 497,-88\"/>\n", 680 "<text text-anchor=\"start\" x=\"500\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 681 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-88 540,-109 560,-109 560,-88 540,-88\"/>\n", 682 "<text text-anchor=\"start\" x=\"546.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 683 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 684 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 685 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 686 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 687 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 279,-88 279,-67 241,-67\"/>\n", 688 "<text text-anchor=\"start\" x=\"249.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 689 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\"/>\n", 690 "<text text-anchor=\"start\" x=\"293.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 691 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\"/>\n", 692 "<text text-anchor=\"start\" x=\"335\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 693 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\"/>\n", 694 "<text text-anchor=\"start\" x=\"381\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 695 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\"/>\n", 696 "<text text-anchor=\"start\" x=\"418\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 697 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-67 450,-88 497,-88 497,-67 450,-67\"/>\n", 698 "<text text-anchor=\"start\" x=\"463\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 699 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-67 497,-88 540,-88 540,-67 497,-67\"/>\n", 700 "<text text-anchor=\"start\" x=\"508\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 701 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-67 540,-88 560,-88 560,-67 540,-67\"/>\n", 702 "<text text-anchor=\"start\" x=\"543\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 703 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 704 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 705 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 706 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 707 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 708 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\"/>\n", 709 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\"/>\n", 710 "<text text-anchor=\"start\" x=\"256.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 711 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\"/>\n", 712 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\"/>\n", 713 "<text text-anchor=\"start\" x=\"297\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 714 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\"/>\n", 715 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\"/>\n", 716 "<text text-anchor=\"start\" x=\"342\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 717 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\"/>\n", 718 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\"/>\n", 719 "<text text-anchor=\"start\" x=\"384.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 720 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\"/>\n", 721 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\"/>\n", 722 "<text text-anchor=\"start\" x=\"425\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 723 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\"/>\n", 724 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\"/>\n", 725 "<text text-anchor=\"start\" x=\"470\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 726 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\"/>\n", 727 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\"/>\n", 728 "<text text-anchor=\"start\" x=\"515\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 729 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\"/>\n", 730 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\"/>\n", 731 "<text text-anchor=\"start\" x=\"546.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 732 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 733 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 734 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 735 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 736 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 737 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\"/>\n", 738 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\"/>\n", 739 "<text text-anchor=\"start\" x=\"256.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 740 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\"/>\n", 741 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\"/>\n", 742 "<text text-anchor=\"start\" x=\"297\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 743 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\"/>\n", 744 "<text text-anchor=\"start\" x=\"342\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 745 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\"/>\n", 746 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\"/>\n", 747 "<text text-anchor=\"start\" x=\"384.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 748 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\"/>\n", 749 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\"/>\n", 750 "<text text-anchor=\"start\" x=\"425\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 751 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\"/>\n", 752 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\"/>\n", 753 "<text text-anchor=\"start\" x=\"470\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 754 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-25 497,-46 540,-46 540,-25 497,-25\"/>\n", 755 "<text text-anchor=\"start\" x=\"515\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 756 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-25 540,-46 560,-46 560,-25 540,-25\"/>\n", 757 "<text text-anchor=\"start\" x=\"546.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 758 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 759 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 760 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 761 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 762 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 763 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\"/>\n", 764 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\"/>\n", 765 "<text text-anchor=\"start\" x=\"256.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 766 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\"/>\n", 767 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\"/>\n", 768 "<text text-anchor=\"start\" x=\"297\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 769 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\"/>\n", 770 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\"/>\n", 771 "<text text-anchor=\"start\" x=\"342\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 772 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\"/>\n", 773 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\"/>\n", 774 "<text text-anchor=\"start\" x=\"384.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 775 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\"/>\n", 776 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\"/>\n", 777 "<text text-anchor=\"start\" x=\"425\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 778 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\"/>\n", 779 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\"/>\n", 780 "<text text-anchor=\"start\" x=\"470\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 781 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\"/>\n", 782 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\"/>\n", 783 "<text text-anchor=\"start\" x=\"515\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 784 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\"/>\n", 785 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\"/>\n", 786 "<text text-anchor=\"start\" x=\"546.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 787 "</g>\n", 788 "</g>\n", 789 "</svg>\n" 790 ], 791 "text/plain": [ 792 "<spot.jupyter.SVG object>" 793 ] 794 }, 795 "metadata": {}, 796 "output_type": "display_data" 797 } 798 ], 799 "source": [ 800 "display(aut, aut.show_storage(\"v\")) # \"v\" displays only the states and edges Vectors" 801 ] 802 }, 803 { 804 "cell_type": "markdown", 805 "metadata": {}, 806 "source": [ 807 "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", 808 "\n", 809 "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", 810 "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." 811 ] 812 }, 813 { 814 "cell_type": "code", 815 "execution_count": 7, 816 "metadata": {}, 817 "outputs": [ 818 { 819 "name": "stdout", 820 "output_type": "stream", 821 "text": [ 822 "edges[1].src=0, edges[1].dst=0\n", 823 "edges[2].src=0, edges[2].dst=0\n", 824 "edges[3].src=0, edges[3].dst=1\n", 825 "edges[4].src=0, edges[4].dst=1\n" 826 ] 827 } 828 ], 829 "source": [ 830 "for ed in aut.out(0):\n", 831 " print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(ed), src=ed.src, dst=ed.dst))" 832 ] 833 }, 834 { 835 "cell_type": "markdown", 836 "metadata": {}, 837 "source": [ 838 "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", 839 "\n", 840 "You can access one column of the `edges` vector using the `edge_storage()` method. For instance let's modify edge 3:" 841 ] 842 }, 843 { 844 "cell_type": "code", 845 "execution_count": 8, 846 "metadata": {}, 847 "outputs": [ 848 { 849 "data": { 850 "image/svg+xml": [ 851 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 852 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 853 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 854 "<!-- Generated by graphviz version 2.43.0 (0)\n", 855 " -->\n", 856 "<!-- Pages: 1 -->\n", 857 "<svg width=\"279pt\" height=\"249pt\"\n", 858 " viewBox=\"0.00 0.00 278.50 249.49\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 859 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 245.49)\">\n", 860 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-245.49 274.5,-245.49 274.5,4 -4,4\"/>\n", 861 "<text text-anchor=\"start\" x=\"83.25\" y=\"-227.29\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 862 "<text text-anchor=\"start\" x=\"108.25\" y=\"-227.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 863 "<text text-anchor=\"start\" x=\"124.25\" y=\"-227.29\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 864 "<text text-anchor=\"start\" x=\"167.25\" y=\"-227.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 865 "<text text-anchor=\"start\" x=\"183.25\" y=\"-227.29\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 866 "<text text-anchor=\"start\" x=\"106.25\" y=\"-213.29\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 867 "<!-- I -->\n", 868 "<!-- 2 -->\n", 869 "<g id=\"node2\" class=\"node\">\n", 870 "<title>2</title>\n", 871 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 872 "<text text-anchor=\"middle\" x=\"56\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 873 "</g>\n", 874 "<!-- I->2 -->\n", 875 "<g id=\"edge1\" class=\"edge\">\n", 876 "<title>I->2</title>\n", 877 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.49C2.79,-43.49 17.15,-43.49 30.63,-43.49\"/>\n", 878 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.49 30.94,-46.64 34.44,-43.49 30.94,-43.49 30.94,-43.49 30.94,-43.49 34.44,-43.49 30.94,-40.34 37.94,-43.49 37.94,-43.49\"/>\n", 879 "</g>\n", 880 "<!-- 0 -->\n", 881 "<g id=\"node3\" class=\"node\">\n", 882 "<title>0</title>\n", 883 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 884 "<text text-anchor=\"middle\" x=\"137\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 885 "</g>\n", 886 "<!-- 2->0 -->\n", 887 "<g id=\"edge10\" class=\"edge\">\n", 888 "<title>2->0</title>\n", 889 "<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.49C85.12,-43.49 99.52,-43.49 111.67,-43.49\"/>\n", 890 "<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.49 111.89,-46.64 115.39,-43.49 111.89,-43.49 111.89,-43.49 111.89,-43.49 115.39,-43.49 111.89,-40.34 118.89,-43.49 118.89,-43.49\"/>\n", 891 "<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.29\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 892 "</g>\n", 893 "<!-- 0->0 -->\n", 894 "<g id=\"edge2\" class=\"edge\">\n", 895 "<title>0->0</title>\n", 896 "<path fill=\"none\" stroke=\"black\" d=\"M134.59,-61.64C134.22,-71.03 135.02,-79.49 137,-79.49 138.45,-79.49 139.27,-74.93 139.46,-68.78\"/>\n", 897 "<polygon fill=\"black\" stroke=\"black\" points=\"139.41,-61.64 142.61,-68.62 139.44,-65.14 139.46,-68.64 139.46,-68.64 139.46,-68.64 139.44,-65.14 136.31,-68.66 139.41,-61.64 139.41,-61.64\"/>\n", 898 "<text text-anchor=\"start\" x=\"118.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 899 "<text text-anchor=\"start\" x=\"129\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 900 "</g>\n", 901 "<!-- 0->0 -->\n", 902 "<g id=\"edge3\" class=\"edge\">\n", 903 "<title>0->0</title>\n", 904 "<path fill=\"none\" stroke=\"black\" d=\"M133.25,-61.39C130.75,-82.49 132,-109.49 137,-109.49 141.45,-109.49 142.93,-88.07 141.44,-68.48\"/>\n", 905 "<polygon fill=\"black\" stroke=\"black\" points=\"140.75,-61.39 144.56,-68.06 141.09,-64.88 141.42,-68.36 141.42,-68.36 141.42,-68.36 141.09,-64.88 138.29,-68.67 140.75,-61.39 140.75,-61.39\"/>\n", 906 "<text text-anchor=\"start\" x=\"120\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 907 "<text text-anchor=\"start\" x=\"129\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 908 "</g>\n", 909 "<!-- 0->0 -->\n", 910 "<g id=\"edge4\" class=\"edge\">\n", 911 "<title>0->0</title>\n", 912 "<path fill=\"none\" stroke=\"black\" d=\"M132.43,-61.26C127.35,-91.96 128.88,-139.49 137,-139.49 144.52,-139.49 146.39,-98.75 142.59,-68.35\"/>\n", 913 "<polygon fill=\"black\" stroke=\"black\" points=\"141.57,-61.26 145.69,-67.74 142.07,-64.72 142.57,-68.19 142.57,-68.19 142.57,-68.19 142.07,-64.72 139.45,-68.64 141.57,-61.26 141.57,-61.26\"/>\n", 914 "<text text-anchor=\"start\" x=\"118.5\" y=\"-158.29\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 915 "<text text-anchor=\"start\" x=\"129\" y=\"-143.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 916 "</g>\n", 917 "<!-- 1 -->\n", 918 "<g id=\"node4\" class=\"node\">\n", 919 "<title>1</title>\n", 920 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"250\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 921 "<text text-anchor=\"middle\" x=\"250\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 922 "</g>\n", 923 "<!-- 0->1 -->\n", 924 "<g id=\"edge5\" class=\"edge\">\n", 925 "<title>0->1</title>\n", 926 "<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.15C159.16,-55.09 166.21,-58.01 173,-59.49 190.81,-63.36 196.19,-63.36 214,-59.49 218.46,-58.52 223.02,-56.93 227.33,-55.12\"/>\n", 927 "<polygon fill=\"black\" stroke=\"black\" points=\"233.82,-52.15 228.76,-57.92 230.63,-53.6 227.45,-55.06 227.45,-55.06 227.45,-55.06 230.63,-53.6 226.14,-52.2 233.82,-52.15 233.82,-52.15\"/>\n", 928 "<text text-anchor=\"start\" x=\"173\" y=\"-80.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 929 "<text text-anchor=\"start\" x=\"185.5\" y=\"-65.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 930 "</g>\n", 931 "<!-- 1->0 -->\n", 932 "<g id=\"edge6\" class=\"edge\">\n", 933 "<title>1->0</title>\n", 934 "<path fill=\"none\" stroke=\"black\" d=\"M231.93,-41.73C226.23,-41.22 219.85,-40.74 214,-40.49 195.79,-39.71 191.21,-39.71 173,-40.49 169.53,-40.64 165.87,-40.87 162.27,-41.14\"/>\n", 935 "<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.73 161.79,-38.02 158.56,-41.44 162.05,-41.16 162.05,-41.16 162.05,-41.16 158.56,-41.44 162.31,-44.3 155.07,-41.73 155.07,-41.73\"/>\n", 936 "<text text-anchor=\"start\" x=\"176.5\" y=\"-44.29\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 937 "</g>\n", 938 "<!-- 1->0 -->\n", 939 "<g id=\"edge7\" class=\"edge\">\n", 940 "<title>1->0</title>\n", 941 "<path fill=\"none\" stroke=\"black\" d=\"M239.67,-28.34C233.54,-19.9 224.68,-10.17 214,-5.49 197.31,1.83 189.69,1.83 173,-5.49 164.66,-9.15 157.43,-15.88 151.74,-22.68\"/>\n", 942 "<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.34 149.15,-20.88 149.48,-25.58 151.63,-22.81 151.63,-22.81 151.63,-22.81 149.48,-25.58 154.12,-24.75 147.33,-28.34 147.33,-28.34\"/>\n", 943 "<text text-anchor=\"start\" x=\"175\" y=\"-24.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 944 "<text text-anchor=\"start\" x=\"185.5\" y=\"-9.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 945 "</g>\n", 946 "<!-- 1->1 -->\n", 947 "<g id=\"edge8\" class=\"edge\">\n", 948 "<title>1->1</title>\n", 949 "<path fill=\"none\" stroke=\"black\" d=\"M245,-60.9C244.07,-70.58 245.73,-79.49 250,-79.49 253.13,-79.49 254.86,-74.68 255.19,-68.3\"/>\n", 950 "<polygon fill=\"black\" stroke=\"black\" points=\"255,-60.9 258.33,-67.81 255.09,-64.4 255.18,-67.9 255.18,-67.9 255.18,-67.9 255.09,-64.4 252.03,-67.98 255,-60.9 255,-60.9\"/>\n", 951 "<text text-anchor=\"start\" x=\"229.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 952 "<text text-anchor=\"start\" x=\"242\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 953 "</g>\n", 954 "<!-- 1->1 -->\n", 955 "<g id=\"edge9\" class=\"edge\">\n", 956 "<title>1->1</title>\n", 957 "<path fill=\"none\" stroke=\"black\" d=\"M242.46,-60.08C236.77,-81.35 239.28,-109.49 250,-109.49 259.59,-109.49 262.61,-86.97 259.06,-67\"/>\n", 958 "<polygon fill=\"black\" stroke=\"black\" points=\"257.54,-60.08 262.12,-66.24 258.29,-63.5 259.05,-66.92 259.05,-66.92 259.05,-66.92 258.29,-63.5 255.97,-67.6 257.54,-60.08 257.54,-60.08\"/>\n", 959 "<text text-anchor=\"start\" x=\"231.5\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 960 "<text text-anchor=\"start\" x=\"242\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 961 "</g>\n", 962 "</g>\n", 963 "</svg>\n" 964 ], 965 "text/plain": [ 966 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 967 ] 968 }, 969 "metadata": {}, 970 "output_type": "display_data" 971 }, 972 { 973 "data": { 974 "image/svg+xml": [ 975 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 976 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 977 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 978 "<!-- Generated by graphviz version 2.43.0 (0)\n", 979 " -->\n", 980 "<!-- Title: g Pages: 1 -->\n", 981 "<svg width=\"576pt\" height=\"142pt\"\n", 982 " viewBox=\"0.00 0.00 575.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 983 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 984 "<title>g</title>\n", 985 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 571.5,-138 571.5,4 -4,4\"/>\n", 986 "<!-- states -->\n", 987 "<g id=\"node1\" class=\"node\">\n", 988 "<title>states</title>\n", 989 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 990 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 991 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 992 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 993 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 994 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 995 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 996 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 997 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 998 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 999 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 1000 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1001 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 1002 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 1003 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 1004 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 1005 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1006 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 1007 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 1008 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1009 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 1010 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 1011 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1012 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 1013 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 1014 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 1015 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 1016 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1017 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 1018 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 1019 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1020 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 1021 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 1022 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1023 "</g>\n", 1024 "<!-- edges -->\n", 1025 "<g id=\"node2\" class=\"node\">\n", 1026 "<title>edges</title>\n", 1027 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 1028 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 1029 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 1030 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 1031 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 1032 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1033 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 279,-130 279,-109 241,-109\"/>\n", 1034 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 279,-109 \"/>\n", 1035 "<text text-anchor=\"start\" x=\"256.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1036 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"279,-109 279,-130 322,-130 322,-109 279,-109\"/>\n", 1037 "<polyline fill=\"none\" stroke=\"black\" points=\"279,-109 322,-109 \"/>\n", 1038 "<text text-anchor=\"start\" x=\"297\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1039 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"322,-109 322,-130 369,-130 369,-109 322,-109\"/>\n", 1040 "<polyline fill=\"none\" stroke=\"black\" points=\"322,-109 369,-109 \"/>\n", 1041 "<text text-anchor=\"start\" x=\"342\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1042 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-109 369,-130 407,-130 407,-109 369,-109\"/>\n", 1043 "<polyline fill=\"none\" stroke=\"black\" points=\"369,-109 407,-109 \"/>\n", 1044 "<text text-anchor=\"start\" x=\"384.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1045 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"407,-109 407,-130 450,-130 450,-109 407,-109\"/>\n", 1046 "<polyline fill=\"none\" stroke=\"black\" points=\"407,-109 450,-109 \"/>\n", 1047 "<text text-anchor=\"start\" x=\"425\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1048 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"450,-109 450,-130 497,-130 497,-109 450,-109\"/>\n", 1049 "<polyline fill=\"none\" stroke=\"black\" points=\"450,-109 497,-109 \"/>\n", 1050 "<text text-anchor=\"start\" x=\"470\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1051 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"497,-109 497,-130 540,-130 540,-109 497,-109\"/>\n", 1052 "<polyline fill=\"none\" stroke=\"black\" points=\"497,-109 540,-109 \"/>\n", 1053 "<text text-anchor=\"start\" x=\"515\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1054 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"540,-109 540,-130 560,-130 560,-109 540,-109\"/>\n", 1055 "<polyline fill=\"none\" stroke=\"black\" points=\"540,-109 560,-109 \"/>\n", 1056 "<text text-anchor=\"start\" x=\"546.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1057 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 1058 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 1059 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 1060 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1061 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 279,-109 279,-88 241,-88\"/>\n", 1062 "<text text-anchor=\"start\" x=\"244\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 1063 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-88 279,-109 322,-109 322,-88 279,-88\"/>\n", 1064 "<text text-anchor=\"start\" x=\"282\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 1065 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-88 322,-109 369,-109 369,-88 322,-88\"/>\n", 1066 "<text text-anchor=\"start\" x=\"325\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1067 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-88 369,-109 407,-109 407,-88 369,-88\"/>\n", 1068 "<text text-anchor=\"start\" x=\"372\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 1069 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-88 407,-109 450,-109 450,-88 407,-88\"/>\n", 1070 "<text text-anchor=\"start\" x=\"410\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1071 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-88 450,-109 497,-109 497,-88 450,-88\"/>\n", 1072 "<text text-anchor=\"start\" x=\"453\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1073 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-88 497,-109 540,-109 540,-88 497,-88\"/>\n", 1074 "<text text-anchor=\"start\" x=\"500\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 1075 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-88 540,-109 560,-109 560,-88 540,-88\"/>\n", 1076 "<text text-anchor=\"start\" x=\"546.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1077 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 1078 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 1079 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 1080 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1081 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 279,-88 279,-67 241,-67\"/>\n", 1082 "<text text-anchor=\"start\" x=\"249.5\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1083 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-67 279,-88 322,-88 322,-67 279,-67\"/>\n", 1084 "<text text-anchor=\"start\" x=\"290\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1085 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-67 322,-88 369,-88 369,-67 322,-67\"/>\n", 1086 "<text text-anchor=\"start\" x=\"335\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1087 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-67 369,-88 407,-88 407,-67 369,-67\"/>\n", 1088 "<text text-anchor=\"start\" x=\"381\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1089 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-67 407,-88 450,-88 450,-67 407,-67\"/>\n", 1090 "<text text-anchor=\"start\" x=\"418\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1091 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-67 450,-88 497,-88 497,-67 450,-67\"/>\n", 1092 "<text text-anchor=\"start\" x=\"463\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1093 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-67 497,-88 540,-88 540,-67 497,-67\"/>\n", 1094 "<text text-anchor=\"start\" x=\"508\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1095 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-67 540,-88 560,-88 560,-67 540,-67\"/>\n", 1096 "<text text-anchor=\"start\" x=\"543\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1097 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 1098 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 1099 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 1100 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 1101 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1102 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\"/>\n", 1103 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 279,-67 279,-46 241,-46\"/>\n", 1104 "<text text-anchor=\"start\" x=\"256.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1105 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\"/>\n", 1106 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-46 279,-67 322,-67 322,-46 279,-46\"/>\n", 1107 "<text text-anchor=\"start\" x=\"297\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1108 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\"/>\n", 1109 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-46 322,-67 369,-67 369,-46 322,-46\"/>\n", 1110 "<text text-anchor=\"start\" x=\"342\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1111 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\"/>\n", 1112 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-46 369,-67 407,-67 407,-46 369,-46\"/>\n", 1113 "<text text-anchor=\"start\" x=\"384.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1114 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\"/>\n", 1115 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-46 407,-67 450,-67 450,-46 407,-46\"/>\n", 1116 "<text text-anchor=\"start\" x=\"425\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1117 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\"/>\n", 1118 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-46 450,-67 497,-67 497,-46 450,-46\"/>\n", 1119 "<text text-anchor=\"start\" x=\"470\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1120 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\"/>\n", 1121 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-46 497,-67 540,-67 540,-46 497,-46\"/>\n", 1122 "<text text-anchor=\"start\" x=\"515\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1123 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\"/>\n", 1124 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-46 540,-67 560,-67 560,-46 540,-46\"/>\n", 1125 "<text text-anchor=\"start\" x=\"546.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1126 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 1127 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 1128 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 1129 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 1130 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1131 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\"/>\n", 1132 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 279,-46 279,-25 241,-25\"/>\n", 1133 "<text text-anchor=\"start\" x=\"256.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1134 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\"/>\n", 1135 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-25 279,-46 322,-46 322,-25 279,-25\"/>\n", 1136 "<text text-anchor=\"start\" x=\"297\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1137 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-25 322,-46 369,-46 369,-25 322,-25\"/>\n", 1138 "<text text-anchor=\"start\" x=\"342\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1139 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\"/>\n", 1140 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-25 369,-46 407,-46 407,-25 369,-25\"/>\n", 1141 "<text text-anchor=\"start\" x=\"384.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1142 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\"/>\n", 1143 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-25 407,-46 450,-46 450,-25 407,-25\"/>\n", 1144 "<text text-anchor=\"start\" x=\"425\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1145 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\"/>\n", 1146 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-25 450,-46 497,-46 497,-25 450,-25\"/>\n", 1147 "<text text-anchor=\"start\" x=\"470\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1148 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-25 497,-46 540,-46 540,-25 497,-25\"/>\n", 1149 "<text text-anchor=\"start\" x=\"515\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1150 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-25 540,-46 560,-46 560,-25 540,-25\"/>\n", 1151 "<text text-anchor=\"start\" x=\"546.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1152 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 1153 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 1154 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 1155 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 1156 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1157 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\"/>\n", 1158 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 279,-25 279,-4 241,-4\"/>\n", 1159 "<text text-anchor=\"start\" x=\"256.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1160 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\"/>\n", 1161 "<polygon fill=\"none\" stroke=\"black\" points=\"279,-4 279,-25 322,-25 322,-4 279,-4\"/>\n", 1162 "<text text-anchor=\"start\" x=\"297\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1163 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\"/>\n", 1164 "<polygon fill=\"none\" stroke=\"black\" points=\"322,-4 322,-25 369,-25 369,-4 322,-4\"/>\n", 1165 "<text text-anchor=\"start\" x=\"342\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1166 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\"/>\n", 1167 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-4 369,-25 407,-25 407,-4 369,-4\"/>\n", 1168 "<text text-anchor=\"start\" x=\"384.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1169 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\"/>\n", 1170 "<polygon fill=\"none\" stroke=\"black\" points=\"407,-4 407,-25 450,-25 450,-4 407,-4\"/>\n", 1171 "<text text-anchor=\"start\" x=\"425\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1172 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\"/>\n", 1173 "<polygon fill=\"none\" stroke=\"black\" points=\"450,-4 450,-25 497,-25 497,-4 450,-4\"/>\n", 1174 "<text text-anchor=\"start\" x=\"470\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1175 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\"/>\n", 1176 "<polygon fill=\"none\" stroke=\"black\" points=\"497,-4 497,-25 540,-25 540,-4 497,-4\"/>\n", 1177 "<text text-anchor=\"start\" x=\"515\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1178 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\"/>\n", 1179 "<polygon fill=\"none\" stroke=\"black\" points=\"540,-4 540,-25 560,-25 560,-4 540,-4\"/>\n", 1180 "<text text-anchor=\"start\" x=\"546.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1181 "</g>\n", 1182 "</g>\n", 1183 "</svg>\n" 1184 ], 1185 "text/plain": [ 1186 "<spot.jupyter.SVG object>" 1187 ] 1188 }, 1189 "execution_count": 8, 1190 "metadata": {}, 1191 "output_type": "execute_result" 1192 } 1193 ], 1194 "source": [ 1195 "aut.edge_storage(3).acc.set(1)\n", 1196 "aut.edge_storage(3).dst = 0\n", 1197 "display(aut)\n", 1198 "aut.show_storage(\"v\")" 1199 ] 1200 }, 1201 { 1202 "cell_type": "markdown", 1203 "metadata": {}, 1204 "source": [ 1205 "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", 1206 "\n", 1207 "In our example, `merge_edges()` will merge edges 1 and 3." 1208 ] 1209 }, 1210 { 1211 "cell_type": "code", 1212 "execution_count": 9, 1213 "metadata": {}, 1214 "outputs": [ 1215 { 1216 "data": { 1217 "image/svg+xml": [ 1218 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1219 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1220 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1221 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1222 " -->\n", 1223 "<!-- Pages: 1 -->\n", 1224 "<svg width=\"279pt\" height=\"201pt\"\n", 1225 " viewBox=\"0.00 0.00 278.50 201.49\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1226 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 197.49)\">\n", 1227 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-197.49 274.5,-197.49 274.5,4 -4,4\"/>\n", 1228 "<text text-anchor=\"start\" x=\"83.25\" y=\"-179.29\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 1229 "<text text-anchor=\"start\" x=\"108.25\" y=\"-179.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1230 "<text text-anchor=\"start\" x=\"124.25\" y=\"-179.29\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 1231 "<text text-anchor=\"start\" x=\"167.25\" y=\"-179.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1232 "<text text-anchor=\"start\" x=\"183.25\" y=\"-179.29\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 1233 "<text text-anchor=\"start\" x=\"106.25\" y=\"-165.29\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 1234 "<!-- I -->\n", 1235 "<!-- 2 -->\n", 1236 "<g id=\"node2\" class=\"node\">\n", 1237 "<title>2</title>\n", 1238 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1239 "<text text-anchor=\"middle\" x=\"56\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1240 "</g>\n", 1241 "<!-- I->2 -->\n", 1242 "<g id=\"edge1\" class=\"edge\">\n", 1243 "<title>I->2</title>\n", 1244 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.49C2.79,-43.49 17.15,-43.49 30.63,-43.49\"/>\n", 1245 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.49 30.94,-46.64 34.44,-43.49 30.94,-43.49 30.94,-43.49 30.94,-43.49 34.44,-43.49 30.94,-40.34 37.94,-43.49 37.94,-43.49\"/>\n", 1246 "</g>\n", 1247 "<!-- 0 -->\n", 1248 "<g id=\"node3\" class=\"node\">\n", 1249 "<title>0</title>\n", 1250 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1251 "<text text-anchor=\"middle\" x=\"137\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1252 "</g>\n", 1253 "<!-- 2->0 -->\n", 1254 "<g id=\"edge9\" class=\"edge\">\n", 1255 "<title>2->0</title>\n", 1256 "<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.49C85.12,-43.49 99.52,-43.49 111.67,-43.49\"/>\n", 1257 "<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.49 111.89,-46.64 115.39,-43.49 111.89,-43.49 111.89,-43.49 111.89,-43.49 115.39,-43.49 111.89,-40.34 118.89,-43.49 118.89,-43.49\"/>\n", 1258 "<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.29\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1259 "</g>\n", 1260 "<!-- 0->0 -->\n", 1261 "<g id=\"edge2\" class=\"edge\">\n", 1262 "<title>0->0</title>\n", 1263 "<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.27C132.79,-70.8 133.99,-79.49 137,-79.49 139.21,-79.49 140.44,-74.8 140.7,-68.54\"/>\n", 1264 "<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.27 143.85,-68.22 140.65,-64.77 140.7,-68.27 140.7,-68.27 140.7,-68.27 140.65,-64.77 137.55,-68.31 140.6,-61.27 140.6,-61.27\"/>\n", 1265 "<text text-anchor=\"start\" x=\"118.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 1266 "<text text-anchor=\"start\" x=\"129\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1267 "</g>\n", 1268 "<!-- 0->0 -->\n", 1269 "<g id=\"edge3\" class=\"edge\">\n", 1270 "<title>0->0</title>\n", 1271 "<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.74C127.59,-81.92 129.42,-109.49 137,-109.49 143.75,-109.49 145.94,-87.62 143.58,-67.87\"/>\n", 1272 "<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.74 146.66,-67.19 143.03,-64.2 143.55,-67.66 143.55,-67.66 143.55,-67.66 143.03,-64.2 140.43,-68.13 142.51,-60.74 142.51,-60.74\"/>\n", 1273 "<text text-anchor=\"start\" x=\"132.5\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", 1274 "<text text-anchor=\"start\" x=\"129\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1275 "</g>\n", 1276 "<!-- 1 -->\n", 1277 "<g id=\"node4\" class=\"node\">\n", 1278 "<title>1</title>\n", 1279 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"250\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1280 "<text text-anchor=\"middle\" x=\"250\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1281 "</g>\n", 1282 "<!-- 0->1 -->\n", 1283 "<g id=\"edge4\" class=\"edge\">\n", 1284 "<title>0->1</title>\n", 1285 "<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.15C159.16,-55.09 166.21,-58.01 173,-59.49 190.81,-63.36 196.19,-63.36 214,-59.49 218.46,-58.52 223.02,-56.93 227.33,-55.12\"/>\n", 1286 "<polygon fill=\"black\" stroke=\"black\" points=\"233.82,-52.15 228.76,-57.92 230.63,-53.6 227.45,-55.06 227.45,-55.06 227.45,-55.06 230.63,-53.6 226.14,-52.2 233.82,-52.15 233.82,-52.15\"/>\n", 1287 "<text text-anchor=\"start\" x=\"173\" y=\"-80.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 1288 "<text text-anchor=\"start\" x=\"185.5\" y=\"-65.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1289 "</g>\n", 1290 "<!-- 1->0 -->\n", 1291 "<g id=\"edge5\" class=\"edge\">\n", 1292 "<title>1->0</title>\n", 1293 "<path fill=\"none\" stroke=\"black\" d=\"M231.93,-41.73C226.23,-41.22 219.85,-40.74 214,-40.49 195.79,-39.71 191.21,-39.71 173,-40.49 169.53,-40.64 165.87,-40.87 162.27,-41.14\"/>\n", 1294 "<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.73 161.79,-38.02 158.56,-41.44 162.05,-41.16 162.05,-41.16 162.05,-41.16 158.56,-41.44 162.31,-44.3 155.07,-41.73 155.07,-41.73\"/>\n", 1295 "<text text-anchor=\"start\" x=\"176.5\" y=\"-44.29\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 1296 "</g>\n", 1297 "<!-- 1->0 -->\n", 1298 "<g id=\"edge6\" class=\"edge\">\n", 1299 "<title>1->0</title>\n", 1300 "<path fill=\"none\" stroke=\"black\" d=\"M239.67,-28.34C233.54,-19.9 224.68,-10.17 214,-5.49 197.31,1.83 189.69,1.83 173,-5.49 164.66,-9.15 157.43,-15.88 151.74,-22.68\"/>\n", 1301 "<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.34 149.15,-20.88 149.48,-25.58 151.63,-22.81 151.63,-22.81 151.63,-22.81 149.48,-25.58 154.12,-24.75 147.33,-28.34 147.33,-28.34\"/>\n", 1302 "<text text-anchor=\"start\" x=\"175\" y=\"-24.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 1303 "<text text-anchor=\"start\" x=\"185.5\" y=\"-9.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1304 "</g>\n", 1305 "<!-- 1->1 -->\n", 1306 "<g id=\"edge7\" class=\"edge\">\n", 1307 "<title>1->1</title>\n", 1308 "<path fill=\"none\" stroke=\"black\" d=\"M245,-60.9C244.07,-70.58 245.73,-79.49 250,-79.49 253.13,-79.49 254.86,-74.68 255.19,-68.3\"/>\n", 1309 "<polygon fill=\"black\" stroke=\"black\" points=\"255,-60.9 258.33,-67.81 255.09,-64.4 255.18,-67.9 255.18,-67.9 255.18,-67.9 255.09,-64.4 252.03,-67.98 255,-60.9 255,-60.9\"/>\n", 1310 "<text text-anchor=\"start\" x=\"229.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 1311 "<text text-anchor=\"start\" x=\"242\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1312 "</g>\n", 1313 "<!-- 1->1 -->\n", 1314 "<g id=\"edge8\" class=\"edge\">\n", 1315 "<title>1->1</title>\n", 1316 "<path fill=\"none\" stroke=\"black\" d=\"M242.46,-60.08C236.77,-81.35 239.28,-109.49 250,-109.49 259.59,-109.49 262.61,-86.97 259.06,-67\"/>\n", 1317 "<polygon fill=\"black\" stroke=\"black\" points=\"257.54,-60.08 262.12,-66.24 258.29,-63.5 259.05,-66.92 259.05,-66.92 259.05,-66.92 258.29,-63.5 255.97,-67.6 257.54,-60.08 257.54,-60.08\"/>\n", 1318 "<text text-anchor=\"start\" x=\"231.5\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 1319 "<text text-anchor=\"start\" x=\"242\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1320 "</g>\n", 1321 "</g>\n", 1322 "</svg>\n" 1323 ], 1324 "text/plain": [ 1325 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 1326 ] 1327 }, 1328 "metadata": {}, 1329 "output_type": "display_data" 1330 }, 1331 { 1332 "data": { 1333 "image/svg+xml": [ 1334 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1335 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1336 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1337 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1338 " -->\n", 1339 "<!-- Title: g Pages: 1 -->\n", 1340 "<svg width=\"522pt\" height=\"142pt\"\n", 1341 " viewBox=\"0.00 0.00 521.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1342 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 1343 "<title>g</title>\n", 1344 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 517.5,-138 517.5,4 -4,4\"/>\n", 1345 "<!-- states -->\n", 1346 "<g id=\"node1\" class=\"node\">\n", 1347 "<title>states</title>\n", 1348 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 1349 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 1350 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 1351 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 1352 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 1353 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1354 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 1355 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 1356 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1357 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 1358 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 1359 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1360 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 1361 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 1362 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 1363 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 1364 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1365 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 1366 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 1367 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1368 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 1369 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 1370 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1371 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 1372 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 1373 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 1374 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 1375 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1376 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 1377 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 1378 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1379 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 1380 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 1381 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1382 "</g>\n", 1383 "<!-- edges -->\n", 1384 "<g id=\"node2\" class=\"node\">\n", 1385 "<title>edges</title>\n", 1386 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 1387 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 1388 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 1389 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 1390 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 1391 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1392 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 268,-130 268,-109 241,-109\"/>\n", 1393 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 268,-109 \"/>\n", 1394 "<text text-anchor=\"start\" x=\"251\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1395 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"268,-109 268,-130 315,-130 315,-109 268,-109\"/>\n", 1396 "<polyline fill=\"none\" stroke=\"black\" points=\"268,-109 315,-109 \"/>\n", 1397 "<text text-anchor=\"start\" x=\"288\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1398 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"315,-109 315,-130 353,-130 353,-109 315,-109\"/>\n", 1399 "<polyline fill=\"none\" stroke=\"black\" points=\"315,-109 353,-109 \"/>\n", 1400 "<text text-anchor=\"start\" x=\"330.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1401 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"353,-109 353,-130 396,-130 396,-109 353,-109\"/>\n", 1402 "<polyline fill=\"none\" stroke=\"black\" points=\"353,-109 396,-109 \"/>\n", 1403 "<text text-anchor=\"start\" x=\"371\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1404 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"396,-109 396,-130 443,-130 443,-109 396,-109\"/>\n", 1405 "<polyline fill=\"none\" stroke=\"black\" points=\"396,-109 443,-109 \"/>\n", 1406 "<text text-anchor=\"start\" x=\"416\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1407 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"443,-109 443,-130 486,-130 486,-109 443,-109\"/>\n", 1408 "<polyline fill=\"none\" stroke=\"black\" points=\"443,-109 486,-109 \"/>\n", 1409 "<text text-anchor=\"start\" x=\"461\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1410 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"486,-109 486,-130 506,-130 506,-109 486,-109\"/>\n", 1411 "<polyline fill=\"none\" stroke=\"black\" points=\"486,-109 506,-109 \"/>\n", 1412 "<text text-anchor=\"start\" x=\"492.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1413 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 1414 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 1415 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 1416 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1417 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 268,-109 268,-88 241,-88\"/>\n", 1418 "<text text-anchor=\"start\" x=\"251\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n", 1419 "<polygon fill=\"none\" stroke=\"black\" points=\"268,-88 268,-109 315,-109 315,-88 268,-88\"/>\n", 1420 "<text text-anchor=\"start\" x=\"271\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1421 "<polygon fill=\"none\" stroke=\"black\" points=\"315,-88 315,-109 353,-109 353,-88 315,-88\"/>\n", 1422 "<text text-anchor=\"start\" x=\"318\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 1423 "<polygon fill=\"none\" stroke=\"black\" points=\"353,-88 353,-109 396,-109 396,-88 353,-88\"/>\n", 1424 "<text text-anchor=\"start\" x=\"356\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1425 "<polygon fill=\"none\" stroke=\"black\" points=\"396,-88 396,-109 443,-109 443,-88 396,-88\"/>\n", 1426 "<text text-anchor=\"start\" x=\"399\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1427 "<polygon fill=\"none\" stroke=\"black\" points=\"443,-88 443,-109 486,-109 486,-88 443,-88\"/>\n", 1428 "<text text-anchor=\"start\" x=\"446\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 1429 "<polygon fill=\"none\" stroke=\"black\" points=\"486,-88 486,-109 506,-109 506,-88 486,-88\"/>\n", 1430 "<text text-anchor=\"start\" x=\"492.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1431 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 1432 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 1433 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 1434 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1435 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 268,-88 268,-67 241,-67\"/>\n", 1436 "<text text-anchor=\"start\" x=\"244\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1437 "<polygon fill=\"none\" stroke=\"black\" points=\"268,-67 268,-88 315,-88 315,-67 268,-67\"/>\n", 1438 "<text text-anchor=\"start\" x=\"281\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1439 "<polygon fill=\"none\" stroke=\"black\" points=\"315,-67 315,-88 353,-88 353,-67 315,-67\"/>\n", 1440 "<text text-anchor=\"start\" x=\"327\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1441 "<polygon fill=\"none\" stroke=\"black\" points=\"353,-67 353,-88 396,-88 396,-67 353,-67\"/>\n", 1442 "<text text-anchor=\"start\" x=\"364\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1443 "<polygon fill=\"none\" stroke=\"black\" points=\"396,-67 396,-88 443,-88 443,-67 396,-67\"/>\n", 1444 "<text text-anchor=\"start\" x=\"409\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1445 "<polygon fill=\"none\" stroke=\"black\" points=\"443,-67 443,-88 486,-88 486,-67 443,-67\"/>\n", 1446 "<text text-anchor=\"start\" x=\"454\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1447 "<polygon fill=\"none\" stroke=\"black\" points=\"486,-67 486,-88 506,-88 506,-67 486,-67\"/>\n", 1448 "<text text-anchor=\"start\" x=\"489\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1449 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 1450 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 1451 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 1452 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 1453 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1454 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 268,-67 268,-46 241,-46\"/>\n", 1455 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 268,-67 268,-46 241,-46\"/>\n", 1456 "<text text-anchor=\"start\" x=\"251\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1457 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\"/>\n", 1458 "<polygon fill=\"none\" stroke=\"black\" points=\"268,-46 268,-67 315,-67 315,-46 268,-46\"/>\n", 1459 "<text text-anchor=\"start\" x=\"288\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1460 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\"/>\n", 1461 "<polygon fill=\"none\" stroke=\"black\" points=\"315,-46 315,-67 353,-67 353,-46 315,-46\"/>\n", 1462 "<text text-anchor=\"start\" x=\"330.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1463 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\"/>\n", 1464 "<polygon fill=\"none\" stroke=\"black\" points=\"353,-46 353,-67 396,-67 396,-46 353,-46\"/>\n", 1465 "<text text-anchor=\"start\" x=\"371\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1466 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"396,-46 396,-67 443,-67 443,-46 396,-46\"/>\n", 1467 "<polygon fill=\"none\" stroke=\"black\" points=\"396,-46 396,-67 443,-67 443,-46 396,-46\"/>\n", 1468 "<text text-anchor=\"start\" x=\"416\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1469 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-46 443,-67 486,-67 486,-46 443,-46\"/>\n", 1470 "<polygon fill=\"none\" stroke=\"black\" points=\"443,-46 443,-67 486,-67 486,-46 443,-46\"/>\n", 1471 "<text text-anchor=\"start\" x=\"461\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1472 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"486,-46 486,-67 506,-67 506,-46 486,-46\"/>\n", 1473 "<polygon fill=\"none\" stroke=\"black\" points=\"486,-46 486,-67 506,-67 506,-46 486,-46\"/>\n", 1474 "<text text-anchor=\"start\" x=\"492.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1475 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 1476 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 1477 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 1478 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 1479 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1480 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-25 241,-46 268,-46 268,-25 241,-25\"/>\n", 1481 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 268,-46 268,-25 241,-25\"/>\n", 1482 "<text text-anchor=\"start\" x=\"251\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1483 "<polygon fill=\"none\" stroke=\"black\" points=\"268,-25 268,-46 315,-46 315,-25 268,-25\"/>\n", 1484 "<text text-anchor=\"start\" x=\"288\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1485 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\"/>\n", 1486 "<polygon fill=\"none\" stroke=\"black\" points=\"315,-25 315,-46 353,-46 353,-25 315,-25\"/>\n", 1487 "<text text-anchor=\"start\" x=\"330.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1488 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\"/>\n", 1489 "<polygon fill=\"none\" stroke=\"black\" points=\"353,-25 353,-46 396,-46 396,-25 353,-25\"/>\n", 1490 "<text text-anchor=\"start\" x=\"371\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1491 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"396,-25 396,-46 443,-46 443,-25 396,-25\"/>\n", 1492 "<polygon fill=\"none\" stroke=\"black\" points=\"396,-25 396,-46 443,-46 443,-25 396,-25\"/>\n", 1493 "<text text-anchor=\"start\" x=\"416\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1494 "<polygon fill=\"none\" stroke=\"black\" points=\"443,-25 443,-46 486,-46 486,-25 443,-25\"/>\n", 1495 "<text text-anchor=\"start\" x=\"461\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1496 "<polygon fill=\"none\" stroke=\"black\" points=\"486,-25 486,-46 506,-46 506,-25 486,-25\"/>\n", 1497 "<text text-anchor=\"start\" x=\"492.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1498 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 1499 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 1500 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 1501 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 1502 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1503 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 268,-25 268,-4 241,-4\"/>\n", 1504 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 268,-25 268,-4 241,-4\"/>\n", 1505 "<text text-anchor=\"start\" x=\"251\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1506 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\"/>\n", 1507 "<polygon fill=\"none\" stroke=\"black\" points=\"268,-4 268,-25 315,-25 315,-4 268,-4\"/>\n", 1508 "<text text-anchor=\"start\" x=\"288\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1509 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\"/>\n", 1510 "<polygon fill=\"none\" stroke=\"black\" points=\"315,-4 315,-25 353,-25 353,-4 315,-4\"/>\n", 1511 "<text text-anchor=\"start\" x=\"330.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1512 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\"/>\n", 1513 "<polygon fill=\"none\" stroke=\"black\" points=\"353,-4 353,-25 396,-25 396,-4 353,-4\"/>\n", 1514 "<text text-anchor=\"start\" x=\"371\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1515 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"396,-4 396,-25 443,-25 443,-4 396,-4\"/>\n", 1516 "<polygon fill=\"none\" stroke=\"black\" points=\"396,-4 396,-25 443,-25 443,-4 396,-4\"/>\n", 1517 "<text text-anchor=\"start\" x=\"416\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1518 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"443,-4 443,-25 486,-25 486,-4 443,-4\"/>\n", 1519 "<polygon fill=\"none\" stroke=\"black\" points=\"443,-4 443,-25 486,-25 486,-4 443,-4\"/>\n", 1520 "<text text-anchor=\"start\" x=\"461\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1521 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\"/>\n", 1522 "<polygon fill=\"none\" stroke=\"black\" points=\"486,-4 486,-25 506,-25 506,-4 486,-4\"/>\n", 1523 "<text text-anchor=\"start\" x=\"492.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1524 "</g>\n", 1525 "</g>\n", 1526 "</svg>\n" 1527 ], 1528 "text/plain": [ 1529 "<spot.jupyter.SVG object>" 1530 ] 1531 }, 1532 "metadata": {}, 1533 "output_type": "display_data" 1534 } 1535 ], 1536 "source": [ 1537 "aut.merge_edges()\n", 1538 "display(aut, aut.show_storage(\"v\"))" 1539 ] 1540 }, 1541 { 1542 "cell_type": "markdown", 1543 "metadata": {}, 1544 "source": [ 1545 "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)." 1546 ] 1547 }, 1548 { 1549 "cell_type": "markdown", 1550 "metadata": {}, 1551 "source": [ 1552 "# The property-update issue\n", 1553 "\n", 1554 "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", 1555 "\n", 1556 "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." 1557 ] 1558 }, 1559 { 1560 "cell_type": "code", 1561 "execution_count": 10, 1562 "metadata": {}, 1563 "outputs": [ 1564 { 1565 "data": { 1566 "image/svg+xml": [ 1567 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1568 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1569 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1570 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1571 " -->\n", 1572 "<!-- Pages: 1 -->\n", 1573 "<svg width=\"279pt\" height=\"247pt\"\n", 1574 " viewBox=\"0.00 0.00 278.50 247.49\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1575 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 243.49)\">\n", 1576 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-243.49 274.5,-243.49 274.5,4 -4,4\"/>\n", 1577 "<text text-anchor=\"start\" x=\"83.25\" y=\"-225.29\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 1578 "<text text-anchor=\"start\" x=\"108.25\" y=\"-225.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1579 "<text text-anchor=\"start\" x=\"124.25\" y=\"-225.29\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 1580 "<text text-anchor=\"start\" x=\"167.25\" y=\"-225.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1581 "<text text-anchor=\"start\" x=\"183.25\" y=\"-225.29\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 1582 "<text text-anchor=\"start\" x=\"106.25\" y=\"-211.29\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 1583 "<!-- I -->\n", 1584 "<!-- 2 -->\n", 1585 "<g id=\"node2\" class=\"node\">\n", 1586 "<title>2</title>\n", 1587 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1588 "<text text-anchor=\"middle\" x=\"56\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 1589 "</g>\n", 1590 "<!-- I->2 -->\n", 1591 "<g id=\"edge1\" class=\"edge\">\n", 1592 "<title>I->2</title>\n", 1593 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-43.49C2.79,-43.49 17.15,-43.49 30.63,-43.49\"/>\n", 1594 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-43.49 30.94,-46.64 34.44,-43.49 30.94,-43.49 30.94,-43.49 30.94,-43.49 34.44,-43.49 30.94,-40.34 37.94,-43.49 37.94,-43.49\"/>\n", 1595 "</g>\n", 1596 "<!-- 0 -->\n", 1597 "<g id=\"node3\" class=\"node\">\n", 1598 "<title>0</title>\n", 1599 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1600 "<text text-anchor=\"middle\" x=\"137\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 1601 "</g>\n", 1602 "<!-- 2->0 -->\n", 1603 "<g id=\"edge10\" class=\"edge\">\n", 1604 "<title>2->0</title>\n", 1605 "<path fill=\"none\" stroke=\"black\" d=\"M74.14,-43.49C85.12,-43.49 99.52,-43.49 111.67,-43.49\"/>\n", 1606 "<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-43.49 111.89,-46.64 115.39,-43.49 111.89,-43.49 111.89,-43.49 111.89,-43.49 115.39,-43.49 111.89,-40.34 118.89,-43.49 118.89,-43.49\"/>\n", 1607 "<text text-anchor=\"middle\" x=\"96.5\" y=\"-47.29\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1608 "</g>\n", 1609 "<!-- 0->0 -->\n", 1610 "<g id=\"edge2\" class=\"edge\">\n", 1611 "<title>0->0</title>\n", 1612 "<path fill=\"none\" stroke=\"black\" d=\"M133.4,-61.27C132.79,-70.8 133.99,-79.49 137,-79.49 139.21,-79.49 140.44,-74.8 140.7,-68.54\"/>\n", 1613 "<polygon fill=\"black\" stroke=\"black\" points=\"140.6,-61.27 143.85,-68.22 140.65,-64.77 140.7,-68.27 140.7,-68.27 140.7,-68.27 140.65,-64.77 137.55,-68.31 140.6,-61.27 140.6,-61.27\"/>\n", 1614 "<text text-anchor=\"start\" x=\"118.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 1615 "<text text-anchor=\"start\" x=\"129\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1616 "</g>\n", 1617 "<!-- 0->0 -->\n", 1618 "<g id=\"edge3\" class=\"edge\">\n", 1619 "<title>0->0</title>\n", 1620 "<path fill=\"none\" stroke=\"black\" d=\"M131.49,-60.74C127.59,-81.92 129.42,-109.49 137,-109.49 143.75,-109.49 145.94,-87.62 143.58,-67.87\"/>\n", 1621 "<polygon fill=\"black\" stroke=\"black\" points=\"142.51,-60.74 146.66,-67.19 143.03,-64.2 143.55,-67.66 143.55,-67.66 143.55,-67.66 143.03,-64.2 140.43,-68.13 142.51,-60.74 142.51,-60.74\"/>\n", 1622 "<text text-anchor=\"start\" x=\"132.5\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n", 1623 "<text text-anchor=\"start\" x=\"129\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1624 "</g>\n", 1625 "<!-- 1 -->\n", 1626 "<g id=\"node4\" class=\"node\">\n", 1627 "<title>1</title>\n", 1628 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"250\" cy=\"-43.49\" rx=\"18\" ry=\"18\"/>\n", 1629 "<text text-anchor=\"middle\" x=\"250\" y=\"-39.79\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1630 "</g>\n", 1631 "<!-- 0->1 -->\n", 1632 "<g id=\"edge4\" class=\"edge\">\n", 1633 "<title>0->1</title>\n", 1634 "<path fill=\"none\" stroke=\"black\" d=\"M153.18,-52.15C159.16,-55.09 166.21,-58.01 173,-59.49 190.81,-63.36 196.19,-63.36 214,-59.49 218.46,-58.52 223.02,-56.93 227.33,-55.12\"/>\n", 1635 "<polygon fill=\"black\" stroke=\"black\" points=\"233.82,-52.15 228.76,-57.92 230.63,-53.6 227.45,-55.06 227.45,-55.06 227.45,-55.06 230.63,-53.6 226.14,-52.2 233.82,-52.15 233.82,-52.15\"/>\n", 1636 "<text text-anchor=\"start\" x=\"173\" y=\"-80.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 1637 "<text text-anchor=\"start\" x=\"185.5\" y=\"-65.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1638 "</g>\n", 1639 "<!-- 1->0 -->\n", 1640 "<g id=\"edge5\" class=\"edge\">\n", 1641 "<title>1->0</title>\n", 1642 "<path fill=\"none\" stroke=\"black\" d=\"M231.93,-41.73C226.23,-41.22 219.85,-40.74 214,-40.49 195.79,-39.71 191.21,-39.71 173,-40.49 169.53,-40.64 165.87,-40.87 162.27,-41.14\"/>\n", 1643 "<polygon fill=\"black\" stroke=\"black\" points=\"155.07,-41.73 161.79,-38.02 158.56,-41.44 162.05,-41.16 162.05,-41.16 162.05,-41.16 158.56,-41.44 162.31,-44.3 155.07,-41.73 155.07,-41.73\"/>\n", 1644 "<text text-anchor=\"start\" x=\"176.5\" y=\"-44.29\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 1645 "</g>\n", 1646 "<!-- 1->0 -->\n", 1647 "<g id=\"edge6\" class=\"edge\">\n", 1648 "<title>1->0</title>\n", 1649 "<path fill=\"none\" stroke=\"black\" d=\"M239.67,-28.34C233.54,-19.9 224.68,-10.17 214,-5.49 197.31,1.83 189.69,1.83 173,-5.49 164.66,-9.15 157.43,-15.88 151.74,-22.68\"/>\n", 1650 "<polygon fill=\"black\" stroke=\"black\" points=\"147.33,-28.34 149.15,-20.88 149.48,-25.58 151.63,-22.81 151.63,-22.81 151.63,-22.81 149.48,-25.58 154.12,-24.75 147.33,-28.34 147.33,-28.34\"/>\n", 1651 "<text text-anchor=\"start\" x=\"175\" y=\"-24.29\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 1652 "<text text-anchor=\"start\" x=\"185.5\" y=\"-9.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1653 "</g>\n", 1654 "<!-- 1->1 -->\n", 1655 "<g id=\"edge7\" class=\"edge\">\n", 1656 "<title>1->1</title>\n", 1657 "<path fill=\"none\" stroke=\"black\" d=\"M246.64,-61.27C246.07,-70.8 247.19,-79.49 250,-79.49 252.06,-79.49 253.21,-74.8 253.45,-68.54\"/>\n", 1658 "<polygon fill=\"black\" stroke=\"black\" points=\"253.36,-61.27 256.6,-68.23 253.4,-64.77 253.45,-68.27 253.45,-68.27 253.45,-68.27 253.4,-64.77 250.3,-68.31 253.36,-61.27 253.36,-61.27\"/>\n", 1659 "<text text-anchor=\"start\" x=\"229.5\" y=\"-98.29\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 1660 "<text text-anchor=\"start\" x=\"242\" y=\"-83.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1661 "</g>\n", 1662 "<!-- 1->1 -->\n", 1663 "<g id=\"edge8\" class=\"edge\">\n", 1664 "<title>1->1</title>\n", 1665 "<path fill=\"none\" stroke=\"black\" d=\"M244.81,-61.07C241.23,-82.21 242.96,-109.49 250,-109.49 256.27,-109.49 258.33,-87.85 256.18,-68.18\"/>\n", 1666 "<polygon fill=\"black\" stroke=\"black\" points=\"255.19,-61.07 259.27,-67.57 255.67,-64.53 256.15,-68 256.15,-68 256.15,-68 255.67,-64.53 253.03,-68.43 255.19,-61.07 255.19,-61.07\"/>\n", 1667 "<text text-anchor=\"start\" x=\"231.5\" y=\"-128.29\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 1668 "<text text-anchor=\"start\" x=\"242\" y=\"-113.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1669 "</g>\n", 1670 "<!-- 1->1 -->\n", 1671 "<g id=\"edge9\" class=\"edge\">\n", 1672 "<title>1->1</title>\n", 1673 "<path fill=\"none\" stroke=\"black\" d=\"M243.7,-60.82C236.47,-91.5 238.57,-139.49 250,-139.49 260.58,-139.49 263.17,-98.36 257.75,-67.91\"/>\n", 1674 "<polygon fill=\"black\" stroke=\"black\" points=\"256.3,-60.82 260.79,-67.04 257,-64.25 257.7,-67.67 257.7,-67.67 257.7,-67.67 257,-64.25 254.62,-68.31 256.3,-60.82 256.3,-60.82\"/>\n", 1675 "<text text-anchor=\"start\" x=\"245.5\" y=\"-157.29\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 1676 "<text text-anchor=\"start\" x=\"234\" y=\"-143.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 1677 "<text text-anchor=\"start\" x=\"250\" y=\"-143.29\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 1678 "</g>\n", 1679 "</g>\n", 1680 "</svg>\n" 1681 ], 1682 "text/plain": [ 1683 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 1684 ] 1685 }, 1686 "metadata": {}, 1687 "output_type": "display_data" 1688 }, 1689 { 1690 "data": { 1691 "image/svg+xml": [ 1692 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1693 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1694 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1695 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1696 " -->\n", 1697 "<!-- Title: g Pages: 1 -->\n", 1698 "<svg width=\"590pt\" height=\"376pt\"\n", 1699 " viewBox=\"0.00 0.00 589.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1700 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 1701 "<title>g</title>\n", 1702 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 585.5,-372 585.5,4 -4,4\"/>\n", 1703 "<!-- states -->\n", 1704 "<g id=\"node1\" class=\"node\">\n", 1705 "<title>states</title>\n", 1706 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"39.5,-311 39.5,-332 94.5,-332 94.5,-311 39.5,-311\"/>\n", 1707 "<polyline fill=\"none\" stroke=\"black\" points=\"39.5,-311 94.5,-311 \"/>\n", 1708 "<text text-anchor=\"start\" x=\"51.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 1709 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"94.5,-311 94.5,-332 107.5,-332 107.5,-311 94.5,-311\"/>\n", 1710 "<polyline fill=\"none\" stroke=\"black\" points=\"94.5,-311 107.5,-311 \"/>\n", 1711 "<text text-anchor=\"start\" x=\"97.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1712 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"107.5,-311 107.5,-332 120.5,-332 120.5,-311 107.5,-311\"/>\n", 1713 "<polyline fill=\"none\" stroke=\"black\" points=\"107.5,-311 120.5,-311 \"/>\n", 1714 "<text text-anchor=\"start\" x=\"110.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1715 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"120.5,-311 120.5,-332 133.5,-332 133.5,-311 120.5,-311\"/>\n", 1716 "<polyline fill=\"none\" stroke=\"black\" points=\"120.5,-311 133.5,-311 \"/>\n", 1717 "<text text-anchor=\"start\" x=\"123.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1718 "<polygon fill=\"none\" stroke=\"black\" points=\"39.5,-290 39.5,-311 94.5,-311 94.5,-290 39.5,-290\"/>\n", 1719 "<text text-anchor=\"start\" x=\"54.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 1720 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"94.5,-290 94.5,-311 107.5,-311 107.5,-290 94.5,-290\"/>\n", 1721 "<polygon fill=\"none\" stroke=\"black\" points=\"94.5,-290 94.5,-311 107.5,-311 107.5,-290 94.5,-290\"/>\n", 1722 "<text text-anchor=\"start\" x=\"97.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1723 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"107.5,-290 107.5,-311 120.5,-311 120.5,-290 107.5,-290\"/>\n", 1724 "<polygon fill=\"none\" stroke=\"black\" points=\"107.5,-290 107.5,-311 120.5,-311 120.5,-290 107.5,-290\"/>\n", 1725 "<text text-anchor=\"start\" x=\"110.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1726 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-290 120.5,-311 133.5,-311 133.5,-290 120.5,-290\"/>\n", 1727 "<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-290 120.5,-311 133.5,-311 133.5,-290 120.5,-290\"/>\n", 1728 "<text text-anchor=\"start\" x=\"123.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1729 "<polygon fill=\"none\" stroke=\"black\" points=\"39.5,-269 39.5,-290 94.5,-290 94.5,-269 39.5,-269\"/>\n", 1730 "<text text-anchor=\"start\" x=\"42.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 1731 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"94.5,-269 94.5,-290 107.5,-290 107.5,-269 94.5,-269\"/>\n", 1732 "<polygon fill=\"none\" stroke=\"black\" points=\"94.5,-269 94.5,-290 107.5,-290 107.5,-269 94.5,-269\"/>\n", 1733 "<text text-anchor=\"start\" x=\"97.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1734 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"107.5,-269 107.5,-290 120.5,-290 120.5,-269 107.5,-269\"/>\n", 1735 "<polygon fill=\"none\" stroke=\"black\" points=\"107.5,-269 107.5,-290 120.5,-290 120.5,-269 107.5,-269\"/>\n", 1736 "<text text-anchor=\"start\" x=\"110.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1737 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"120.5,-269 120.5,-290 133.5,-290 133.5,-269 120.5,-269\"/>\n", 1738 "<polygon fill=\"none\" stroke=\"black\" points=\"120.5,-269 120.5,-290 133.5,-290 133.5,-269 120.5,-269\"/>\n", 1739 "<text text-anchor=\"start\" x=\"123.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1740 "</g>\n", 1741 "<!-- edges -->\n", 1742 "<g id=\"node2\" class=\"node\">\n", 1743 "<title>edges</title>\n", 1744 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"167.5,-343 167.5,-364 228.5,-364 228.5,-343 167.5,-343\"/>\n", 1745 "<polyline fill=\"none\" stroke=\"black\" points=\"167.5,-343 228.5,-343 \"/>\n", 1746 "<text text-anchor=\"start\" x=\"182.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 1747 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"228.5,-343 228.5,-364 271.5,-364 271.5,-343 228.5,-343\"/>\n", 1748 "<polyline fill=\"none\" stroke=\"black\" points=\"228.5,-343 271.5,-343 \"/>\n", 1749 "<text text-anchor=\"start\" x=\"246.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1750 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"271.5,-343 271.5,-364 298.5,-364 298.5,-343 271.5,-343\"/>\n", 1751 "<polyline fill=\"none\" stroke=\"black\" points=\"271.5,-343 298.5,-343 \"/>\n", 1752 "<text text-anchor=\"start\" x=\"281.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1753 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"298.5,-343 298.5,-364 345.5,-364 345.5,-343 298.5,-343\"/>\n", 1754 "<polyline fill=\"none\" stroke=\"black\" points=\"298.5,-343 345.5,-343 \"/>\n", 1755 "<text text-anchor=\"start\" x=\"318.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1756 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"345.5,-343 345.5,-364 383.5,-364 383.5,-343 345.5,-343\"/>\n", 1757 "<polyline fill=\"none\" stroke=\"black\" points=\"345.5,-343 383.5,-343 \"/>\n", 1758 "<text text-anchor=\"start\" x=\"361\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 1759 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"383.5,-343 383.5,-364 426.5,-364 426.5,-343 383.5,-343\"/>\n", 1760 "<polyline fill=\"none\" stroke=\"black\" points=\"383.5,-343 426.5,-343 \"/>\n", 1761 "<text text-anchor=\"start\" x=\"401.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1762 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"426.5,-343 426.5,-364 473.5,-364 473.5,-343 426.5,-343\"/>\n", 1763 "<polyline fill=\"none\" stroke=\"black\" points=\"426.5,-343 473.5,-343 \"/>\n", 1764 "<text text-anchor=\"start\" x=\"446.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1765 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"473.5,-343 473.5,-364 516.5,-364 516.5,-343 473.5,-343\"/>\n", 1766 "<polyline fill=\"none\" stroke=\"black\" points=\"473.5,-343 516.5,-343 \"/>\n", 1767 "<text text-anchor=\"start\" x=\"491.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1768 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"516.5,-343 516.5,-364 536.5,-364 536.5,-343 516.5,-343\"/>\n", 1769 "<polyline fill=\"none\" stroke=\"black\" points=\"516.5,-343 536.5,-343 \"/>\n", 1770 "<text text-anchor=\"start\" x=\"523\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 1771 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"536.5,-343 536.5,-364 573.5,-364 573.5,-343 536.5,-343\"/>\n", 1772 "<polyline fill=\"none\" stroke=\"black\" points=\"536.5,-343 573.5,-343 \"/>\n", 1773 "<text text-anchor=\"start\" x=\"551.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1774 "<polygon fill=\"none\" stroke=\"black\" points=\"167.5,-322 167.5,-343 228.5,-343 228.5,-322 167.5,-322\"/>\n", 1775 "<text text-anchor=\"start\" x=\"184.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 1776 "<polygon fill=\"none\" stroke=\"black\" points=\"228.5,-322 228.5,-343 271.5,-343 271.5,-322 228.5,-322\"/>\n", 1777 "<text text-anchor=\"start\" x=\"231.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1778 "<polygon fill=\"none\" stroke=\"black\" points=\"271.5,-322 271.5,-343 298.5,-343 298.5,-322 271.5,-322\"/>\n", 1779 "<text text-anchor=\"start\" x=\"281.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n", 1780 "<polygon fill=\"none\" stroke=\"black\" points=\"298.5,-322 298.5,-343 345.5,-343 345.5,-322 298.5,-322\"/>\n", 1781 "<text text-anchor=\"start\" x=\"301.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1782 "<polygon fill=\"none\" stroke=\"black\" points=\"345.5,-322 345.5,-343 383.5,-343 383.5,-322 345.5,-322\"/>\n", 1783 "<text text-anchor=\"start\" x=\"348.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 1784 "<polygon fill=\"none\" stroke=\"black\" points=\"383.5,-322 383.5,-343 426.5,-343 426.5,-322 383.5,-322\"/>\n", 1785 "<text text-anchor=\"start\" x=\"386.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 1786 "<polygon fill=\"none\" stroke=\"black\" points=\"426.5,-322 426.5,-343 473.5,-343 473.5,-322 426.5,-322\"/>\n", 1787 "<text text-anchor=\"start\" x=\"429.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 1788 "<polygon fill=\"none\" stroke=\"black\" points=\"473.5,-322 473.5,-343 516.5,-343 516.5,-322 473.5,-322\"/>\n", 1789 "<text text-anchor=\"start\" x=\"476.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 1790 "<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-322 516.5,-343 536.5,-343 536.5,-322 516.5,-322\"/>\n", 1791 "<text text-anchor=\"start\" x=\"523\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1792 "<polygon fill=\"none\" stroke=\"black\" points=\"536.5,-322 536.5,-343 573.5,-343 573.5,-322 536.5,-322\"/>\n", 1793 "<text text-anchor=\"start\" x=\"551.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1794 "<polygon fill=\"none\" stroke=\"black\" points=\"167.5,-301 167.5,-322 228.5,-322 228.5,-301 167.5,-301\"/>\n", 1795 "<text text-anchor=\"start\" x=\"188.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 1796 "<polygon fill=\"none\" stroke=\"black\" points=\"228.5,-301 228.5,-322 271.5,-322 271.5,-301 228.5,-301\"/>\n", 1797 "<text text-anchor=\"start\" x=\"239.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1798 "<polygon fill=\"none\" stroke=\"black\" points=\"271.5,-301 271.5,-322 298.5,-322 298.5,-301 271.5,-301\"/>\n", 1799 "<text text-anchor=\"start\" x=\"274.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1800 "<polygon fill=\"none\" stroke=\"black\" points=\"298.5,-301 298.5,-322 345.5,-322 345.5,-301 298.5,-301\"/>\n", 1801 "<text text-anchor=\"start\" x=\"311.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1802 "<polygon fill=\"none\" stroke=\"black\" points=\"345.5,-301 345.5,-322 383.5,-322 383.5,-301 345.5,-301\"/>\n", 1803 "<text text-anchor=\"start\" x=\"357.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1804 "<polygon fill=\"none\" stroke=\"black\" points=\"383.5,-301 383.5,-322 426.5,-322 426.5,-301 383.5,-301\"/>\n", 1805 "<text text-anchor=\"start\" x=\"394.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1806 "<polygon fill=\"none\" stroke=\"black\" points=\"426.5,-301 426.5,-322 473.5,-322 473.5,-301 426.5,-301\"/>\n", 1807 "<text text-anchor=\"start\" x=\"439.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 1808 "<polygon fill=\"none\" stroke=\"black\" points=\"473.5,-301 473.5,-322 516.5,-322 516.5,-301 473.5,-301\"/>\n", 1809 "<text text-anchor=\"start\" x=\"484.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 1810 "<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-301 516.5,-322 536.5,-322 536.5,-301 516.5,-301\"/>\n", 1811 "<text text-anchor=\"start\" x=\"519.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 1812 "<polygon fill=\"none\" stroke=\"black\" points=\"536.5,-301 536.5,-322 573.5,-322 573.5,-301 536.5,-301\"/>\n", 1813 "<text text-anchor=\"start\" x=\"539.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 1814 "<polygon fill=\"none\" stroke=\"black\" points=\"167.5,-280 167.5,-301 228.5,-301 228.5,-280 167.5,-280\"/>\n", 1815 "<text text-anchor=\"start\" x=\"190\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 1816 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"228.5,-280 228.5,-301 271.5,-301 271.5,-280 228.5,-280\"/>\n", 1817 "<polygon fill=\"none\" stroke=\"black\" points=\"228.5,-280 228.5,-301 271.5,-301 271.5,-280 228.5,-280\"/>\n", 1818 "<text text-anchor=\"start\" x=\"246.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1819 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"271.5,-280 271.5,-301 298.5,-301 298.5,-280 271.5,-280\"/>\n", 1820 "<polygon fill=\"none\" stroke=\"black\" points=\"271.5,-280 271.5,-301 298.5,-301 298.5,-280 271.5,-280\"/>\n", 1821 "<text text-anchor=\"start\" x=\"281.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1822 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\"/>\n", 1823 "<polygon fill=\"none\" stroke=\"black\" points=\"298.5,-280 298.5,-301 345.5,-301 345.5,-280 298.5,-280\"/>\n", 1824 "<text text-anchor=\"start\" x=\"318.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1825 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\"/>\n", 1826 "<polygon fill=\"none\" stroke=\"black\" points=\"345.5,-280 345.5,-301 383.5,-301 383.5,-280 345.5,-280\"/>\n", 1827 "<text text-anchor=\"start\" x=\"361\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1828 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\"/>\n", 1829 "<polygon fill=\"none\" stroke=\"black\" points=\"383.5,-280 383.5,-301 426.5,-301 426.5,-280 383.5,-280\"/>\n", 1830 "<text text-anchor=\"start\" x=\"401.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1831 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"426.5,-280 426.5,-301 473.5,-301 473.5,-280 426.5,-280\"/>\n", 1832 "<polygon fill=\"none\" stroke=\"black\" points=\"426.5,-280 426.5,-301 473.5,-301 473.5,-280 426.5,-280\"/>\n", 1833 "<text text-anchor=\"start\" x=\"446.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1834 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"473.5,-280 473.5,-301 516.5,-301 516.5,-280 473.5,-280\"/>\n", 1835 "<polygon fill=\"none\" stroke=\"black\" points=\"473.5,-280 473.5,-301 516.5,-301 516.5,-280 473.5,-280\"/>\n", 1836 "<text text-anchor=\"start\" x=\"491.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1837 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\"/>\n", 1838 "<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-280 516.5,-301 536.5,-301 536.5,-280 516.5,-280\"/>\n", 1839 "<text text-anchor=\"start\" x=\"523\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1840 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\"/>\n", 1841 "<polygon fill=\"none\" stroke=\"black\" points=\"536.5,-280 536.5,-301 573.5,-301 573.5,-280 536.5,-280\"/>\n", 1842 "<text text-anchor=\"start\" x=\"551.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1843 "<polygon fill=\"none\" stroke=\"black\" points=\"167.5,-259 167.5,-280 228.5,-280 228.5,-259 167.5,-259\"/>\n", 1844 "<text text-anchor=\"start\" x=\"170.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 1845 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"228.5,-259 228.5,-280 271.5,-280 271.5,-259 228.5,-259\"/>\n", 1846 "<polygon fill=\"none\" stroke=\"black\" points=\"228.5,-259 228.5,-280 271.5,-280 271.5,-259 228.5,-259\"/>\n", 1847 "<text text-anchor=\"start\" x=\"246.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1848 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"271.5,-259 271.5,-280 298.5,-280 298.5,-259 271.5,-259\"/>\n", 1849 "<polygon fill=\"none\" stroke=\"black\" points=\"271.5,-259 271.5,-280 298.5,-280 298.5,-259 271.5,-259\"/>\n", 1850 "<text text-anchor=\"start\" x=\"281.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 1851 "<polygon fill=\"none\" stroke=\"black\" points=\"298.5,-259 298.5,-280 345.5,-280 345.5,-259 298.5,-259\"/>\n", 1852 "<text text-anchor=\"start\" x=\"318.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1853 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\"/>\n", 1854 "<polygon fill=\"none\" stroke=\"black\" points=\"345.5,-259 345.5,-280 383.5,-280 383.5,-259 345.5,-259\"/>\n", 1855 "<text text-anchor=\"start\" x=\"361\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 1856 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\"/>\n", 1857 "<polygon fill=\"none\" stroke=\"black\" points=\"383.5,-259 383.5,-280 426.5,-280 426.5,-259 383.5,-259\"/>\n", 1858 "<text text-anchor=\"start\" x=\"401.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 1859 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"426.5,-259 426.5,-280 473.5,-280 473.5,-259 426.5,-259\"/>\n", 1860 "<polygon fill=\"none\" stroke=\"black\" points=\"426.5,-259 426.5,-280 473.5,-280 473.5,-259 426.5,-259\"/>\n", 1861 "<text text-anchor=\"start\" x=\"446.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 1862 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"473.5,-259 473.5,-280 516.5,-280 516.5,-259 473.5,-259\"/>\n", 1863 "<polygon fill=\"none\" stroke=\"black\" points=\"473.5,-259 473.5,-280 516.5,-280 516.5,-259 473.5,-259\"/>\n", 1864 "<text text-anchor=\"start\" x=\"491.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 1865 "<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-259 516.5,-280 536.5,-280 536.5,-259 516.5,-259\"/>\n", 1866 "<text text-anchor=\"start\" x=\"523\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1867 "<polygon fill=\"none\" stroke=\"black\" points=\"536.5,-259 536.5,-280 573.5,-280 573.5,-259 536.5,-259\"/>\n", 1868 "<text text-anchor=\"start\" x=\"551.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1869 "<polygon fill=\"none\" stroke=\"black\" points=\"167.5,-238 167.5,-259 228.5,-259 228.5,-238 167.5,-238\"/>\n", 1870 "<text text-anchor=\"start\" x=\"190\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 1871 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"228.5,-238 228.5,-259 271.5,-259 271.5,-238 228.5,-238\"/>\n", 1872 "<polygon fill=\"none\" stroke=\"black\" points=\"228.5,-238 228.5,-259 271.5,-259 271.5,-238 228.5,-238\"/>\n", 1873 "<text text-anchor=\"start\" x=\"246.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1874 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"271.5,-238 271.5,-259 298.5,-259 298.5,-238 271.5,-238\"/>\n", 1875 "<polygon fill=\"none\" stroke=\"black\" points=\"271.5,-238 271.5,-259 298.5,-259 298.5,-238 271.5,-238\"/>\n", 1876 "<text text-anchor=\"start\" x=\"281.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1877 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\"/>\n", 1878 "<polygon fill=\"none\" stroke=\"black\" points=\"298.5,-238 298.5,-259 345.5,-259 345.5,-238 298.5,-238\"/>\n", 1879 "<text text-anchor=\"start\" x=\"318.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 1880 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\"/>\n", 1881 "<polygon fill=\"none\" stroke=\"black\" points=\"345.5,-238 345.5,-259 383.5,-259 383.5,-238 345.5,-238\"/>\n", 1882 "<text text-anchor=\"start\" x=\"361\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1883 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\"/>\n", 1884 "<polygon fill=\"none\" stroke=\"black\" points=\"383.5,-238 383.5,-259 426.5,-259 426.5,-238 383.5,-238\"/>\n", 1885 "<text text-anchor=\"start\" x=\"401.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1886 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"426.5,-238 426.5,-259 473.5,-259 473.5,-238 426.5,-238\"/>\n", 1887 "<polygon fill=\"none\" stroke=\"black\" points=\"426.5,-238 426.5,-259 473.5,-259 473.5,-238 426.5,-238\"/>\n", 1888 "<text text-anchor=\"start\" x=\"446.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1889 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"473.5,-238 473.5,-259 516.5,-259 516.5,-238 473.5,-238\"/>\n", 1890 "<polygon fill=\"none\" stroke=\"black\" points=\"473.5,-238 473.5,-259 516.5,-259 516.5,-238 473.5,-238\"/>\n", 1891 "<text text-anchor=\"start\" x=\"491.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1892 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\"/>\n", 1893 "<polygon fill=\"none\" stroke=\"black\" points=\"516.5,-238 516.5,-259 536.5,-259 536.5,-238 516.5,-238\"/>\n", 1894 "<text text-anchor=\"start\" x=\"523\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1895 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\"/>\n", 1896 "<polygon fill=\"none\" stroke=\"black\" points=\"536.5,-238 536.5,-259 573.5,-259 573.5,-238 536.5,-238\"/>\n", 1897 "<text text-anchor=\"start\" x=\"551.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 1898 "</g>\n", 1899 "<!-- meta -->\n", 1900 "<g id=\"node3\" class=\"node\">\n", 1901 "<title>meta</title>\n", 1902 "<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 1903 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\"/>\n", 1904 "<text text-anchor=\"start\" x=\"78.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1905 "<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 1906 "<text text-anchor=\"start\" x=\"78.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 1907 "<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 1908 "<text text-anchor=\"start\" x=\"78.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 1909 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 1910 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 1911 "</g>\n", 1912 "<!-- meta->states -->\n", 1913 "<!-- props -->\n", 1914 "<g id=\"node4\" class=\"node\">\n", 1915 "<title>props</title>\n", 1916 "<text text-anchor=\"start\" x=\"280.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 1917 "<text text-anchor=\"start\" x=\"424.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1918 "<text text-anchor=\"start\" x=\"280.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 1919 "<text text-anchor=\"start\" x=\"424.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1920 "<text text-anchor=\"start\" x=\"280.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 1921 "<text text-anchor=\"start\" x=\"424.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">no</text>\n", 1922 "<text text-anchor=\"start\" x=\"280.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 1923 "<text text-anchor=\"start\" x=\"424.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1924 "<text text-anchor=\"start\" x=\"280.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 1925 "<text text-anchor=\"start\" x=\"424.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1926 "<text text-anchor=\"start\" x=\"280.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 1927 "<text text-anchor=\"start\" x=\"424.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1928 "<text text-anchor=\"start\" x=\"280.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 1929 "<text text-anchor=\"start\" x=\"424.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 1930 "<text text-anchor=\"start\" x=\"280.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 1931 "<text text-anchor=\"start\" x=\"424.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 1932 "<text text-anchor=\"start\" x=\"280.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 1933 "<text text-anchor=\"start\" x=\"424.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 1934 "<text text-anchor=\"start\" x=\"280.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 1935 "<text text-anchor=\"start\" x=\"424.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1936 "</g>\n", 1937 "<!-- props->edges -->\n", 1938 "</g>\n", 1939 "</svg>\n" 1940 ], 1941 "text/plain": [ 1942 "<spot.jupyter.SVG object>" 1943 ] 1944 }, 1945 "metadata": {}, 1946 "output_type": "display_data" 1947 } 1948 ], 1949 "source": [ 1950 "aut.new_edge(1, 1, buddy.bddtrue, [1, 0])\n", 1951 "display(aut, aut.show_storage())" 1952 ] 1953 }, 1954 { 1955 "cell_type": "markdown", 1956 "metadata": {}, 1957 "source": [ 1958 "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()`:" 1959 ] 1960 }, 1961 { 1962 "cell_type": "code", 1963 "execution_count": 11, 1964 "metadata": {}, 1965 "outputs": [ 1966 { 1967 "data": { 1968 "image/svg+xml": [ 1969 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 1970 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 1971 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 1972 "<!-- Generated by graphviz version 2.43.0 (0)\n", 1973 " -->\n", 1974 "<!-- Title: g Pages: 1 -->\n", 1975 "<svg width=\"209pt\" height=\"206pt\"\n", 1976 " viewBox=\"0.00 0.00 209.00 206.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 1977 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 202)\">\n", 1978 "<title>g</title>\n", 1979 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-202 205,-202 205,4 -4,4\"/>\n", 1980 "<!-- props -->\n", 1981 "<g id=\"node1\" class=\"node\">\n", 1982 "<title>props</title>\n", 1983 "<text text-anchor=\"start\" x=\"10.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 1984 "<text text-anchor=\"start\" x=\"154.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1985 "<text text-anchor=\"start\" x=\"10.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 1986 "<text text-anchor=\"start\" x=\"154.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1987 "<text text-anchor=\"start\" x=\"10.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 1988 "<text text-anchor=\"start\" x=\"154.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1989 "<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 1990 "<text text-anchor=\"start\" x=\"154.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1991 "<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 1992 "<text text-anchor=\"start\" x=\"154.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1993 "<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 1994 "<text text-anchor=\"start\" x=\"154.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1995 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 1996 "<text text-anchor=\"start\" x=\"154.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1997 "<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 1998 "<text text-anchor=\"start\" x=\"154.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 1999 "<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 2000 "<text text-anchor=\"start\" x=\"154.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 2001 "<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 2002 "<text text-anchor=\"start\" x=\"154.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 2003 "</g>\n", 2004 "</g>\n", 2005 "</svg>\n" 2006 ], 2007 "text/plain": [ 2008 "<spot.jupyter.SVG object>" 2009 ] 2010 }, 2011 "execution_count": 11, 2012 "metadata": {}, 2013 "output_type": "execute_result" 2014 } 2015 ], 2016 "source": [ 2017 "aut.prop_reset()\n", 2018 "aut.show_storage(\"p\") # \"p\" displays only the properties" 2019 ] 2020 }, 2021 { 2022 "cell_type": "markdown", 2023 "metadata": {}, 2024 "source": [ 2025 "# Erasing edges\n", 2026 "\n", 2027 "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", 2028 "\n", 2029 "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", 2030 "\n", 2031 "The following example erases all the outgoing transitions of state `0` that belong to acceptance set `1`." 2032 ] 2033 }, 2034 { 2035 "cell_type": "code", 2036 "execution_count": 12, 2037 "metadata": {}, 2038 "outputs": [ 2039 { 2040 "name": "stdout", 2041 "output_type": "stream", 2042 "text": [ 2043 "pos=1, acc={0}, toerase=False\n", 2044 "pos=2, acc={1}, toerase=True\n", 2045 "pos=3, acc={0}, toerase=False\n" 2046 ] 2047 } 2048 ], 2049 "source": [ 2050 "it = aut.out_iteraser(0)\n", 2051 "while it:\n", 2052 " e = it.current()\n", 2053 " toerase = e.acc.has(1)\n", 2054 " print(\"pos={}, acc={}, toerase={}\".format(aut.edge_number(e), e.acc, toerase))\n", 2055 " if toerase:\n", 2056 " it.erase()\n", 2057 " else:\n", 2058 " it.advance()" 2059 ] 2060 }, 2061 { 2062 "cell_type": "code", 2063 "execution_count": 13, 2064 "metadata": {}, 2065 "outputs": [ 2066 { 2067 "data": { 2068 "image/svg+xml": [ 2069 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2070 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2071 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2072 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2073 " -->\n", 2074 "<!-- Title: g Pages: 1 -->\n", 2075 "<svg width=\"558pt\" height=\"142pt\"\n", 2076 " viewBox=\"0.00 0.00 558.00 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2077 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 2078 "<title>g</title>\n", 2079 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 554,-138 554,4 -4,4\"/>\n", 2080 "<!-- states -->\n", 2081 "<g id=\"node1\" class=\"node\">\n", 2082 "<title>states</title>\n", 2083 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 2084 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 2085 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 2086 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 2087 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 2088 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2089 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 2090 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 2091 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2092 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 2093 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 2094 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2095 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 2096 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 2097 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2098 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2099 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2100 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2101 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2102 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2103 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2104 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2105 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2106 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 2107 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 2108 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2109 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2110 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2111 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2112 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2113 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 2114 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2115 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2116 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2117 "</g>\n", 2118 "<!-- edges -->\n", 2119 "<g id=\"node2\" class=\"node\">\n", 2120 "<title>edges</title>\n", 2121 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"136,-109 136,-130 197,-130 197,-109 136,-109\"/>\n", 2122 "<polyline fill=\"none\" stroke=\"black\" points=\"136,-109 197,-109 \"/>\n", 2123 "<text text-anchor=\"start\" x=\"151\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 2124 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"197,-109 197,-130 240,-130 240,-109 197,-109\"/>\n", 2125 "<polyline fill=\"none\" stroke=\"black\" points=\"197,-109 240,-109 \"/>\n", 2126 "<text text-anchor=\"start\" x=\"215\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2127 "<polygon fill=\"gray\" stroke=\"transparent\" points=\"240,-109 240,-130 267,-130 267,-109 240,-109\"/>\n", 2128 "<polyline fill=\"none\" stroke=\"black\" points=\"240,-109 267,-109 \"/>\n", 2129 "<text text-anchor=\"start\" x=\"250\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2130 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"267,-109 267,-130 314,-130 314,-109 267,-109\"/>\n", 2131 "<polyline fill=\"none\" stroke=\"black\" points=\"267,-109 314,-109 \"/>\n", 2132 "<text text-anchor=\"start\" x=\"287\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2133 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"314,-109 314,-130 352,-130 352,-109 314,-109\"/>\n", 2134 "<polyline fill=\"none\" stroke=\"black\" points=\"314,-109 352,-109 \"/>\n", 2135 "<text text-anchor=\"start\" x=\"329.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2136 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"352,-109 352,-130 395,-130 395,-109 352,-109\"/>\n", 2137 "<polyline fill=\"none\" stroke=\"black\" points=\"352,-109 395,-109 \"/>\n", 2138 "<text text-anchor=\"start\" x=\"370\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2139 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"395,-109 395,-130 442,-130 442,-109 395,-109\"/>\n", 2140 "<polyline fill=\"none\" stroke=\"black\" points=\"395,-109 442,-109 \"/>\n", 2141 "<text text-anchor=\"start\" x=\"415\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2142 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"442,-109 442,-130 485,-130 485,-109 442,-109\"/>\n", 2143 "<polyline fill=\"none\" stroke=\"black\" points=\"442,-109 485,-109 \"/>\n", 2144 "<text text-anchor=\"start\" x=\"460\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2145 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"485,-109 485,-130 505,-130 505,-109 485,-109\"/>\n", 2146 "<polyline fill=\"none\" stroke=\"black\" points=\"485,-109 505,-109 \"/>\n", 2147 "<text text-anchor=\"start\" x=\"491.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2148 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"505,-109 505,-130 542,-130 542,-109 505,-109\"/>\n", 2149 "<polyline fill=\"none\" stroke=\"black\" points=\"505,-109 542,-109 \"/>\n", 2150 "<text text-anchor=\"start\" x=\"520\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 2151 "<polygon fill=\"none\" stroke=\"black\" points=\"136,-88 136,-109 197,-109 197,-88 136,-88\"/>\n", 2152 "<text text-anchor=\"start\" x=\"153\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 2153 "<polygon fill=\"none\" stroke=\"black\" points=\"197,-88 197,-109 240,-109 240,-88 197,-88\"/>\n", 2154 "<text text-anchor=\"start\" x=\"200\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2155 "<polygon fill=\"none\" stroke=\"black\" points=\"240,-88 240,-109 267,-109 267,-88 240,-88\"/>\n", 2156 "<text text-anchor=\"start\" x=\"250\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">b</text>\n", 2157 "<polygon fill=\"none\" stroke=\"black\" points=\"267,-88 267,-109 314,-109 314,-88 267,-88\"/>\n", 2158 "<text text-anchor=\"start\" x=\"270\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2159 "<polygon fill=\"none\" stroke=\"black\" points=\"314,-88 314,-109 352,-109 352,-88 314,-88\"/>\n", 2160 "<text text-anchor=\"start\" x=\"317\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 2161 "<polygon fill=\"none\" stroke=\"black\" points=\"352,-88 352,-109 395,-109 395,-88 352,-88\"/>\n", 2162 "<text text-anchor=\"start\" x=\"355\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2163 "<polygon fill=\"none\" stroke=\"black\" points=\"395,-88 395,-109 442,-109 442,-88 395,-88\"/>\n", 2164 "<text text-anchor=\"start\" x=\"398\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2165 "<polygon fill=\"none\" stroke=\"black\" points=\"442,-88 442,-109 485,-109 485,-88 442,-88\"/>\n", 2166 "<text text-anchor=\"start\" x=\"445\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 2167 "<polygon fill=\"none\" stroke=\"black\" points=\"485,-88 485,-109 505,-109 505,-88 485,-88\"/>\n", 2168 "<text text-anchor=\"start\" x=\"491.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2169 "<polygon fill=\"none\" stroke=\"black\" points=\"505,-88 505,-109 542,-109 542,-88 505,-88\"/>\n", 2170 "<text text-anchor=\"start\" x=\"520\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2171 "<polygon fill=\"none\" stroke=\"black\" points=\"136,-67 136,-88 197,-88 197,-67 136,-67\"/>\n", 2172 "<text text-anchor=\"start\" x=\"157\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 2173 "<polygon fill=\"none\" stroke=\"black\" points=\"197,-67 197,-88 240,-88 240,-67 197,-67\"/>\n", 2174 "<text text-anchor=\"start\" x=\"208\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2175 "<polygon fill=\"none\" stroke=\"black\" points=\"240,-67 240,-88 267,-88 267,-67 240,-67\"/>\n", 2176 "<text text-anchor=\"start\" x=\"243\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 2177 "<polygon fill=\"none\" stroke=\"black\" points=\"267,-67 267,-88 314,-88 314,-67 267,-67\"/>\n", 2178 "<text text-anchor=\"start\" x=\"280\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2179 "<polygon fill=\"none\" stroke=\"black\" points=\"314,-67 314,-88 352,-88 352,-67 314,-67\"/>\n", 2180 "<text text-anchor=\"start\" x=\"326\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2181 "<polygon fill=\"none\" stroke=\"black\" points=\"352,-67 352,-88 395,-88 395,-67 352,-67\"/>\n", 2182 "<text text-anchor=\"start\" x=\"363\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2183 "<polygon fill=\"none\" stroke=\"black\" points=\"395,-67 395,-88 442,-88 442,-67 395,-67\"/>\n", 2184 "<text text-anchor=\"start\" x=\"408\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2185 "<polygon fill=\"none\" stroke=\"black\" points=\"442,-67 442,-88 485,-88 485,-67 442,-67\"/>\n", 2186 "<text text-anchor=\"start\" x=\"453\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 2187 "<polygon fill=\"none\" stroke=\"black\" points=\"485,-67 485,-88 505,-88 505,-67 485,-67\"/>\n", 2188 "<text text-anchor=\"start\" x=\"488\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2189 "<polygon fill=\"none\" stroke=\"black\" points=\"505,-67 505,-88 542,-88 542,-67 505,-67\"/>\n", 2190 "<text text-anchor=\"start\" x=\"508\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 2191 "<polygon fill=\"none\" stroke=\"black\" points=\"136,-46 136,-67 197,-67 197,-46 136,-46\"/>\n", 2192 "<text text-anchor=\"start\" x=\"158.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 2193 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"197,-46 197,-67 240,-67 240,-46 197,-46\"/>\n", 2194 "<polygon fill=\"none\" stroke=\"black\" points=\"197,-46 197,-67 240,-67 240,-46 197,-46\"/>\n", 2195 "<text text-anchor=\"start\" x=\"215\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2196 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"240,-46 240,-67 267,-67 267,-46 240,-46\"/>\n", 2197 "<polygon fill=\"none\" stroke=\"black\" points=\"240,-46 240,-67 267,-67 267,-46 240,-46\"/>\n", 2198 "<text text-anchor=\"start\" x=\"250\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2199 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\"/>\n", 2200 "<polygon fill=\"none\" stroke=\"black\" points=\"267,-46 267,-67 314,-67 314,-46 267,-46\"/>\n", 2201 "<text text-anchor=\"start\" x=\"287\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2202 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\"/>\n", 2203 "<polygon fill=\"none\" stroke=\"black\" points=\"314,-46 314,-67 352,-67 352,-46 314,-46\"/>\n", 2204 "<text text-anchor=\"start\" x=\"329.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2205 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\"/>\n", 2206 "<polygon fill=\"none\" stroke=\"black\" points=\"352,-46 352,-67 395,-67 395,-46 352,-46\"/>\n", 2207 "<text text-anchor=\"start\" x=\"370\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2208 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"395,-46 395,-67 442,-67 442,-46 395,-46\"/>\n", 2209 "<polygon fill=\"none\" stroke=\"black\" points=\"395,-46 395,-67 442,-67 442,-46 395,-46\"/>\n", 2210 "<text text-anchor=\"start\" x=\"415\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2211 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"442,-46 442,-67 485,-67 485,-46 442,-46\"/>\n", 2212 "<polygon fill=\"none\" stroke=\"black\" points=\"442,-46 442,-67 485,-67 485,-46 442,-46\"/>\n", 2213 "<text text-anchor=\"start\" x=\"460\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2214 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"485,-46 485,-67 505,-67 505,-46 485,-46\"/>\n", 2215 "<polygon fill=\"none\" stroke=\"black\" points=\"485,-46 485,-67 505,-67 505,-46 485,-46\"/>\n", 2216 "<text text-anchor=\"start\" x=\"491.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2217 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"505,-46 505,-67 542,-67 542,-46 505,-46\"/>\n", 2218 "<polygon fill=\"none\" stroke=\"black\" points=\"505,-46 505,-67 542,-67 542,-46 505,-46\"/>\n", 2219 "<text text-anchor=\"start\" x=\"520\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2220 "<polygon fill=\"none\" stroke=\"black\" points=\"136,-25 136,-46 197,-46 197,-25 136,-25\"/>\n", 2221 "<text text-anchor=\"start\" x=\"139\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 2222 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"197,-25 197,-46 240,-46 240,-25 197,-25\"/>\n", 2223 "<polygon fill=\"none\" stroke=\"black\" points=\"197,-25 197,-46 240,-46 240,-25 197,-25\"/>\n", 2224 "<text text-anchor=\"start\" x=\"215\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2225 "<polygon fill=\"gray\" stroke=\"transparent\" points=\"240,-25 240,-46 267,-46 267,-25 240,-25\"/>\n", 2226 "<polygon fill=\"none\" stroke=\"black\" points=\"240,-25 240,-46 267,-46 267,-25 240,-25\"/>\n", 2227 "<text text-anchor=\"start\" x=\"250\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2228 "<polygon fill=\"none\" stroke=\"black\" points=\"267,-25 267,-46 314,-46 314,-25 267,-25\"/>\n", 2229 "<text text-anchor=\"start\" x=\"287\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2230 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\"/>\n", 2231 "<polygon fill=\"none\" stroke=\"black\" points=\"314,-25 314,-46 352,-46 352,-25 314,-25\"/>\n", 2232 "<text text-anchor=\"start\" x=\"329.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2233 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\"/>\n", 2234 "<polygon fill=\"none\" stroke=\"black\" points=\"352,-25 352,-46 395,-46 395,-25 352,-25\"/>\n", 2235 "<text text-anchor=\"start\" x=\"370\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2236 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"395,-25 395,-46 442,-46 442,-25 395,-25\"/>\n", 2237 "<polygon fill=\"none\" stroke=\"black\" points=\"395,-25 395,-46 442,-46 442,-25 395,-25\"/>\n", 2238 "<text text-anchor=\"start\" x=\"415\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2239 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"442,-25 442,-46 485,-46 485,-25 442,-25\"/>\n", 2240 "<polygon fill=\"none\" stroke=\"black\" points=\"442,-25 442,-46 485,-46 485,-25 442,-25\"/>\n", 2241 "<text text-anchor=\"start\" x=\"460\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 2242 "<polygon fill=\"none\" stroke=\"black\" points=\"485,-25 485,-46 505,-46 505,-25 485,-25\"/>\n", 2243 "<text text-anchor=\"start\" x=\"491.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2244 "<polygon fill=\"none\" stroke=\"black\" points=\"505,-25 505,-46 542,-46 542,-25 505,-25\"/>\n", 2245 "<text text-anchor=\"start\" x=\"520\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2246 "<polygon fill=\"none\" stroke=\"black\" points=\"136,-4 136,-25 197,-25 197,-4 136,-4\"/>\n", 2247 "<text text-anchor=\"start\" x=\"158.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 2248 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"197,-4 197,-25 240,-25 240,-4 197,-4\"/>\n", 2249 "<polygon fill=\"none\" stroke=\"black\" points=\"197,-4 197,-25 240,-25 240,-4 197,-4\"/>\n", 2250 "<text text-anchor=\"start\" x=\"215\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2251 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"240,-4 240,-25 267,-25 267,-4 240,-4\"/>\n", 2252 "<polygon fill=\"none\" stroke=\"black\" points=\"240,-4 240,-25 267,-25 267,-4 240,-4\"/>\n", 2253 "<text text-anchor=\"start\" x=\"250\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2254 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\"/>\n", 2255 "<polygon fill=\"none\" stroke=\"black\" points=\"267,-4 267,-25 314,-25 314,-4 267,-4\"/>\n", 2256 "<text text-anchor=\"start\" x=\"287\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2257 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\"/>\n", 2258 "<polygon fill=\"none\" stroke=\"black\" points=\"314,-4 314,-25 352,-25 352,-4 314,-4\"/>\n", 2259 "<text text-anchor=\"start\" x=\"329.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2260 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\"/>\n", 2261 "<polygon fill=\"none\" stroke=\"black\" points=\"352,-4 352,-25 395,-25 395,-4 352,-4\"/>\n", 2262 "<text text-anchor=\"start\" x=\"370\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2263 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"395,-4 395,-25 442,-25 442,-4 395,-4\"/>\n", 2264 "<polygon fill=\"none\" stroke=\"black\" points=\"395,-4 395,-25 442,-25 442,-4 395,-4\"/>\n", 2265 "<text text-anchor=\"start\" x=\"415\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2266 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"442,-4 442,-25 485,-25 485,-4 442,-4\"/>\n", 2267 "<polygon fill=\"none\" stroke=\"black\" points=\"442,-4 442,-25 485,-25 485,-4 442,-4\"/>\n", 2268 "<text text-anchor=\"start\" x=\"460\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2269 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"485,-4 485,-25 505,-25 505,-4 485,-4\"/>\n", 2270 "<polygon fill=\"none\" stroke=\"black\" points=\"485,-4 485,-25 505,-25 505,-4 485,-4\"/>\n", 2271 "<text text-anchor=\"start\" x=\"491.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2272 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"505,-4 505,-25 542,-25 542,-4 505,-4\"/>\n", 2273 "<polygon fill=\"none\" stroke=\"black\" points=\"505,-4 505,-25 542,-25 542,-4 505,-4\"/>\n", 2274 "<text text-anchor=\"start\" x=\"520\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2275 "</g>\n", 2276 "</g>\n", 2277 "</svg>\n" 2278 ], 2279 "text/plain": [ 2280 "<spot.jupyter.SVG object>" 2281 ] 2282 }, 2283 "execution_count": 13, 2284 "metadata": {}, 2285 "output_type": "execute_result" 2286 } 2287 ], 2288 "source": [ 2289 "aut.show_storage(\"v\")" 2290 ] 2291 }, 2292 { 2293 "cell_type": "markdown", 2294 "metadata": {}, 2295 "source": [ 2296 "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", 2297 "\n", 2298 "You can test whether an edges has been erased with `is_dead_edge()`:" 2299 ] 2300 }, 2301 { 2302 "cell_type": "code", 2303 "execution_count": 14, 2304 "metadata": {}, 2305 "outputs": [ 2306 { 2307 "data": { 2308 "text/plain": [ 2309 "True" 2310 ] 2311 }, 2312 "execution_count": 14, 2313 "metadata": {}, 2314 "output_type": "execute_result" 2315 } 2316 ], 2317 "source": [ 2318 "aut.is_dead_edge(2)" 2319 ] 2320 }, 2321 { 2322 "cell_type": "markdown", 2323 "metadata": {}, 2324 "source": [ 2325 "However you usually do not have to care, because iterator methods will skip such dead edges. For instance:" 2326 ] 2327 }, 2328 { 2329 "cell_type": "code", 2330 "execution_count": 15, 2331 "metadata": {}, 2332 "outputs": [ 2333 { 2334 "name": "stdout", 2335 "output_type": "stream", 2336 "text": [ 2337 "edges[1].src=0, edges[1].dst=0\n", 2338 "edges[3].src=0, edges[3].dst=1\n", 2339 "edges[4].src=1, edges[4].dst=0\n", 2340 "edges[5].src=1, edges[5].dst=0\n", 2341 "edges[6].src=1, edges[6].dst=1\n", 2342 "edges[7].src=1, edges[7].dst=1\n", 2343 "edges[8].src=2, edges[8].dst=0\n", 2344 "edges[9].src=1, edges[9].dst=1\n" 2345 ] 2346 } 2347 ], 2348 "source": [ 2349 "for e in aut.edges(): # iterate over all non-erased edges\n", 2350 " print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(e), src=e.src, dst=e.dst))" 2351 ] 2352 }, 2353 { 2354 "cell_type": "markdown", 2355 "metadata": {}, 2356 "source": [ 2357 "Similarly, `num_edges()` returns the count of non-erased edges." 2358 ] 2359 }, 2360 { 2361 "cell_type": "code", 2362 "execution_count": 16, 2363 "metadata": {}, 2364 "outputs": [ 2365 { 2366 "data": { 2367 "text/plain": [ 2368 "8" 2369 ] 2370 }, 2371 "execution_count": 16, 2372 "metadata": {}, 2373 "output_type": "execute_result" 2374 } 2375 ], 2376 "source": [ 2377 "aut.num_edges()" 2378 ] 2379 }, 2380 { 2381 "cell_type": "markdown", 2382 "metadata": {}, 2383 "source": [ 2384 "Erased edges are actually removed by `merge_edges()`:" 2385 ] 2386 }, 2387 { 2388 "cell_type": "code", 2389 "execution_count": 17, 2390 "metadata": {}, 2391 "outputs": [ 2392 { 2393 "data": { 2394 "image/svg+xml": [ 2395 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2396 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2397 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2398 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2399 " -->\n", 2400 "<!-- Title: g Pages: 1 -->\n", 2401 "<svg width=\"532pt\" height=\"142pt\"\n", 2402 " viewBox=\"0.00 0.00 531.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2403 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 2404 "<title>g</title>\n", 2405 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 527.5,-138 527.5,4 -4,4\"/>\n", 2406 "<!-- states -->\n", 2407 "<g id=\"node1\" class=\"node\">\n", 2408 "<title>states</title>\n", 2409 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 2410 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 2411 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 2412 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 2413 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 2414 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2415 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 2416 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 2417 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2418 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 2419 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 2420 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2421 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 2422 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 2423 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2424 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2425 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2426 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2427 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2428 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2429 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2430 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2431 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2432 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 2433 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 2434 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2435 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2436 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2437 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2438 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2439 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2440 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2441 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2442 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2443 "</g>\n", 2444 "<!-- edges -->\n", 2445 "<g id=\"node2\" class=\"node\">\n", 2446 "<title>edges</title>\n", 2447 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 2448 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 2449 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 2450 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 2451 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 2452 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2453 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\"/>\n", 2454 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 288,-109 \"/>\n", 2455 "<text text-anchor=\"start\" x=\"261\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2456 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-109 288,-130 326,-130 326,-109 288,-109\"/>\n", 2457 "<polyline fill=\"none\" stroke=\"black\" points=\"288,-109 326,-109 \"/>\n", 2458 "<text text-anchor=\"start\" x=\"303.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2459 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"326,-109 326,-130 369,-130 369,-109 326,-109\"/>\n", 2460 "<polyline fill=\"none\" stroke=\"black\" points=\"326,-109 369,-109 \"/>\n", 2461 "<text text-anchor=\"start\" x=\"344\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2462 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-109 369,-130 416,-130 416,-109 369,-109\"/>\n", 2463 "<polyline fill=\"none\" stroke=\"black\" points=\"369,-109 416,-109 \"/>\n", 2464 "<text text-anchor=\"start\" x=\"389\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2465 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"416,-109 416,-130 459,-130 459,-109 416,-109\"/>\n", 2466 "<polyline fill=\"none\" stroke=\"black\" points=\"416,-109 459,-109 \"/>\n", 2467 "<text text-anchor=\"start\" x=\"434\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2468 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"459,-109 459,-130 496,-130 496,-109 459,-109\"/>\n", 2469 "<polyline fill=\"none\" stroke=\"black\" points=\"459,-109 496,-109 \"/>\n", 2470 "<text text-anchor=\"start\" x=\"474\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2471 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"496,-109 496,-130 516,-130 516,-109 496,-109\"/>\n", 2472 "<polyline fill=\"none\" stroke=\"black\" points=\"496,-109 516,-109 \"/>\n", 2473 "<text text-anchor=\"start\" x=\"502.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2474 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 2475 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 2476 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 2477 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2478 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\"/>\n", 2479 "<text text-anchor=\"start\" x=\"244\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2480 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-88 288,-109 326,-109 326,-88 288,-88\"/>\n", 2481 "<text text-anchor=\"start\" x=\"291\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 2482 "<polygon fill=\"none\" stroke=\"black\" points=\"326,-88 326,-109 369,-109 369,-88 326,-88\"/>\n", 2483 "<text text-anchor=\"start\" x=\"329\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2484 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-88 369,-109 416,-109 416,-88 369,-88\"/>\n", 2485 "<text text-anchor=\"start\" x=\"372\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2486 "<polygon fill=\"none\" stroke=\"black\" points=\"416,-88 416,-109 459,-109 459,-88 416,-88\"/>\n", 2487 "<text text-anchor=\"start\" x=\"419\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 2488 "<polygon fill=\"none\" stroke=\"black\" points=\"459,-88 459,-109 496,-109 496,-88 459,-88\"/>\n", 2489 "<text text-anchor=\"start\" x=\"474\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2490 "<polygon fill=\"none\" stroke=\"black\" points=\"496,-88 496,-109 516,-109 516,-88 496,-88\"/>\n", 2491 "<text text-anchor=\"start\" x=\"502.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2492 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 2493 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 2494 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 2495 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2496 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\"/>\n", 2497 "<text text-anchor=\"start\" x=\"254\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2498 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-67 288,-88 326,-88 326,-67 288,-67\"/>\n", 2499 "<text text-anchor=\"start\" x=\"300\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2500 "<polygon fill=\"none\" stroke=\"black\" points=\"326,-67 326,-88 369,-88 369,-67 326,-67\"/>\n", 2501 "<text text-anchor=\"start\" x=\"337\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2502 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-67 369,-88 416,-88 416,-67 369,-67\"/>\n", 2503 "<text text-anchor=\"start\" x=\"382\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2504 "<polygon fill=\"none\" stroke=\"black\" points=\"416,-67 416,-88 459,-88 459,-67 416,-67\"/>\n", 2505 "<text text-anchor=\"start\" x=\"427\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 2506 "<polygon fill=\"none\" stroke=\"black\" points=\"459,-67 459,-88 496,-88 496,-67 459,-67\"/>\n", 2507 "<text text-anchor=\"start\" x=\"462\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 2508 "<polygon fill=\"none\" stroke=\"black\" points=\"496,-67 496,-88 516,-88 516,-67 496,-67\"/>\n", 2509 "<text text-anchor=\"start\" x=\"499\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2510 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 2511 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 2512 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2513 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2514 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2515 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2516 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2517 "<text text-anchor=\"start\" x=\"261\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2518 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-46 288,-67 326,-67 326,-46 288,-46\"/>\n", 2519 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-46 288,-67 326,-67 326,-46 288,-46\"/>\n", 2520 "<text text-anchor=\"start\" x=\"303.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2521 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"326,-46 326,-67 369,-67 369,-46 326,-46\"/>\n", 2522 "<polygon fill=\"none\" stroke=\"black\" points=\"326,-46 326,-67 369,-67 369,-46 326,-46\"/>\n", 2523 "<text text-anchor=\"start\" x=\"344\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2524 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-46 369,-67 416,-67 416,-46 369,-46\"/>\n", 2525 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-46 369,-67 416,-67 416,-46 369,-46\"/>\n", 2526 "<text text-anchor=\"start\" x=\"389\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2527 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"416,-46 416,-67 459,-67 459,-46 416,-46\"/>\n", 2528 "<polygon fill=\"none\" stroke=\"black\" points=\"416,-46 416,-67 459,-67 459,-46 416,-46\"/>\n", 2529 "<text text-anchor=\"start\" x=\"434\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2530 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"459,-46 459,-67 496,-67 496,-46 459,-46\"/>\n", 2531 "<polygon fill=\"none\" stroke=\"black\" points=\"459,-46 459,-67 496,-67 496,-46 459,-46\"/>\n", 2532 "<text text-anchor=\"start\" x=\"474\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2533 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"496,-46 496,-67 516,-67 516,-46 496,-46\"/>\n", 2534 "<polygon fill=\"none\" stroke=\"black\" points=\"496,-46 496,-67 516,-67 516,-46 496,-46\"/>\n", 2535 "<text text-anchor=\"start\" x=\"502.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2536 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 2537 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 2538 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 2539 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 2540 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2541 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\"/>\n", 2542 "<text text-anchor=\"start\" x=\"261\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2543 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-25 288,-46 326,-46 326,-25 288,-25\"/>\n", 2544 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-25 288,-46 326,-46 326,-25 288,-25\"/>\n", 2545 "<text text-anchor=\"start\" x=\"303.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2546 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\"/>\n", 2547 "<polygon fill=\"none\" stroke=\"black\" points=\"326,-25 326,-46 369,-46 369,-25 326,-25\"/>\n", 2548 "<text text-anchor=\"start\" x=\"344\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2549 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"369,-25 369,-46 416,-46 416,-25 369,-25\"/>\n", 2550 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-25 369,-46 416,-46 416,-25 369,-25\"/>\n", 2551 "<text text-anchor=\"start\" x=\"389\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2552 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"416,-25 416,-46 459,-46 459,-25 416,-25\"/>\n", 2553 "<polygon fill=\"none\" stroke=\"black\" points=\"416,-25 416,-46 459,-46 459,-25 416,-25\"/>\n", 2554 "<text text-anchor=\"start\" x=\"434\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2555 "<polygon fill=\"none\" stroke=\"black\" points=\"459,-25 459,-46 496,-46 496,-25 459,-25\"/>\n", 2556 "<text text-anchor=\"start\" x=\"474\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2557 "<polygon fill=\"none\" stroke=\"black\" points=\"496,-25 496,-46 516,-46 516,-25 496,-25\"/>\n", 2558 "<text text-anchor=\"start\" x=\"502.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2559 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 2560 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 2561 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 2562 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 2563 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2564 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 2565 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 2566 "<text text-anchor=\"start\" x=\"261\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2567 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-4 288,-25 326,-25 326,-4 288,-4\"/>\n", 2568 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-4 288,-25 326,-25 326,-4 288,-4\"/>\n", 2569 "<text text-anchor=\"start\" x=\"303.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2570 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\"/>\n", 2571 "<polygon fill=\"none\" stroke=\"black\" points=\"326,-4 326,-25 369,-25 369,-4 326,-4\"/>\n", 2572 "<text text-anchor=\"start\" x=\"344\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2573 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"369,-4 369,-25 416,-25 416,-4 369,-4\"/>\n", 2574 "<polygon fill=\"none\" stroke=\"black\" points=\"369,-4 369,-25 416,-25 416,-4 369,-4\"/>\n", 2575 "<text text-anchor=\"start\" x=\"389\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2576 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"416,-4 416,-25 459,-25 459,-4 416,-4\"/>\n", 2577 "<polygon fill=\"none\" stroke=\"black\" points=\"416,-4 416,-25 459,-25 459,-4 416,-4\"/>\n", 2578 "<text text-anchor=\"start\" x=\"434\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2579 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"459,-4 459,-25 496,-25 496,-4 459,-4\"/>\n", 2580 "<polygon fill=\"none\" stroke=\"black\" points=\"459,-4 459,-25 496,-25 496,-4 459,-4\"/>\n", 2581 "<text text-anchor=\"start\" x=\"474\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2582 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"496,-4 496,-25 516,-25 516,-4 496,-4\"/>\n", 2583 "<polygon fill=\"none\" stroke=\"black\" points=\"496,-4 496,-25 516,-25 516,-4 496,-4\"/>\n", 2584 "<text text-anchor=\"start\" x=\"502.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2585 "</g>\n", 2586 "</g>\n", 2587 "</svg>\n" 2588 ], 2589 "text/plain": [ 2590 "<spot.jupyter.SVG object>" 2591 ] 2592 }, 2593 "execution_count": 17, 2594 "metadata": {}, 2595 "output_type": "execute_result" 2596 } 2597 ], 2598 "source": [ 2599 "aut.merge_edges()\n", 2600 "aut.show_storage(\"v\")" 2601 ] 2602 }, 2603 { 2604 "cell_type": "markdown", 2605 "metadata": {}, 2606 "source": [ 2607 "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." 2608 ] 2609 }, 2610 { 2611 "cell_type": "code", 2612 "execution_count": 18, 2613 "metadata": {}, 2614 "outputs": [ 2615 { 2616 "data": { 2617 "image/svg+xml": [ 2618 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2619 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2620 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2621 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2622 " -->\n", 2623 "<!-- Title: g Pages: 1 -->\n", 2624 "<svg width=\"514pt\" height=\"142pt\"\n", 2625 " viewBox=\"0.00 0.00 513.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2626 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 2627 "<title>g</title>\n", 2628 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 509.5,-138 509.5,4 -4,4\"/>\n", 2629 "<!-- states -->\n", 2630 "<g id=\"node1\" class=\"node\">\n", 2631 "<title>states</title>\n", 2632 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 2633 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 2634 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 2635 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 2636 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 2637 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2638 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 2639 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 2640 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2641 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 2642 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 2643 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2644 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 2645 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 2646 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2647 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2648 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2649 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2650 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2651 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2652 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2653 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2654 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2655 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 2656 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 2657 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2658 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2659 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2660 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2661 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2662 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2663 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2664 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2665 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2666 "</g>\n", 2667 "<!-- edges -->\n", 2668 "<g id=\"node2\" class=\"node\">\n", 2669 "<title>edges</title>\n", 2670 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 2671 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 2672 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 2673 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 2674 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 2675 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2676 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\"/>\n", 2677 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 288,-109 \"/>\n", 2678 "<text text-anchor=\"start\" x=\"261\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2679 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-109 288,-130 308,-130 308,-109 288,-109\"/>\n", 2680 "<polyline fill=\"none\" stroke=\"black\" points=\"288,-109 308,-109 \"/>\n", 2681 "<text text-anchor=\"start\" x=\"294.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2682 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"308,-109 308,-130 351,-130 351,-109 308,-109\"/>\n", 2683 "<polyline fill=\"none\" stroke=\"black\" points=\"308,-109 351,-109 \"/>\n", 2684 "<text text-anchor=\"start\" x=\"326\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2685 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"351,-109 351,-130 398,-130 398,-109 351,-109\"/>\n", 2686 "<polyline fill=\"none\" stroke=\"black\" points=\"351,-109 398,-109 \"/>\n", 2687 "<text text-anchor=\"start\" x=\"371\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2688 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"398,-109 398,-130 441,-130 441,-109 398,-109\"/>\n", 2689 "<polyline fill=\"none\" stroke=\"black\" points=\"398,-109 441,-109 \"/>\n", 2690 "<text text-anchor=\"start\" x=\"416\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2691 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"441,-109 441,-130 478,-130 478,-109 441,-109\"/>\n", 2692 "<polyline fill=\"none\" stroke=\"black\" points=\"441,-109 478,-109 \"/>\n", 2693 "<text text-anchor=\"start\" x=\"456\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2694 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"478,-109 478,-130 498,-130 498,-109 478,-109\"/>\n", 2695 "<polyline fill=\"none\" stroke=\"black\" points=\"478,-109 498,-109 \"/>\n", 2696 "<text text-anchor=\"start\" x=\"484.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 2697 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 2698 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 2699 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 2700 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2701 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\"/>\n", 2702 "<text text-anchor=\"start\" x=\"244\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2703 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-88 288,-109 308,-109 308,-88 288,-88\"/>\n", 2704 "<text text-anchor=\"start\" x=\"294.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2705 "<polygon fill=\"none\" stroke=\"black\" points=\"308,-88 308,-109 351,-109 351,-88 308,-88\"/>\n", 2706 "<text text-anchor=\"start\" x=\"311\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2707 "<polygon fill=\"none\" stroke=\"black\" points=\"351,-88 351,-109 398,-109 398,-88 351,-88\"/>\n", 2708 "<text text-anchor=\"start\" x=\"354\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2709 "<polygon fill=\"none\" stroke=\"black\" points=\"398,-88 398,-109 441,-109 441,-88 398,-88\"/>\n", 2710 "<text text-anchor=\"start\" x=\"401\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 2711 "<polygon fill=\"none\" stroke=\"black\" points=\"441,-88 441,-109 478,-109 478,-88 441,-88\"/>\n", 2712 "<text text-anchor=\"start\" x=\"456\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2713 "<polygon fill=\"none\" stroke=\"black\" points=\"478,-88 478,-109 498,-109 498,-88 478,-88\"/>\n", 2714 "<text text-anchor=\"start\" x=\"484.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2715 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 2716 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 2717 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 2718 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2719 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\"/>\n", 2720 "<text text-anchor=\"start\" x=\"254\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2721 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-67 288,-88 308,-88 308,-67 288,-67\"/>\n", 2722 "<text text-anchor=\"start\" x=\"291\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2723 "<polygon fill=\"none\" stroke=\"black\" points=\"308,-67 308,-88 351,-88 351,-67 308,-67\"/>\n", 2724 "<text text-anchor=\"start\" x=\"319\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2725 "<polygon fill=\"none\" stroke=\"black\" points=\"351,-67 351,-88 398,-88 398,-67 351,-67\"/>\n", 2726 "<text text-anchor=\"start\" x=\"364\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2727 "<polygon fill=\"none\" stroke=\"black\" points=\"398,-67 398,-88 441,-88 441,-67 398,-67\"/>\n", 2728 "<text text-anchor=\"start\" x=\"409\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 2729 "<polygon fill=\"none\" stroke=\"black\" points=\"441,-67 441,-88 478,-88 478,-67 441,-67\"/>\n", 2730 "<text text-anchor=\"start\" x=\"444\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 2731 "<polygon fill=\"none\" stroke=\"black\" points=\"478,-67 478,-88 498,-88 498,-67 478,-67\"/>\n", 2732 "<text text-anchor=\"start\" x=\"481\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2733 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 2734 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 2735 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2736 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2737 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2738 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2739 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2740 "<text text-anchor=\"start\" x=\"261\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2741 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-46 288,-67 308,-67 308,-46 288,-46\"/>\n", 2742 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-46 288,-67 308,-67 308,-46 288,-46\"/>\n", 2743 "<text text-anchor=\"start\" x=\"294.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2744 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"308,-46 308,-67 351,-67 351,-46 308,-46\"/>\n", 2745 "<polygon fill=\"none\" stroke=\"black\" points=\"308,-46 308,-67 351,-67 351,-46 308,-46\"/>\n", 2746 "<text text-anchor=\"start\" x=\"326\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2747 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"351,-46 351,-67 398,-67 398,-46 351,-46\"/>\n", 2748 "<polygon fill=\"none\" stroke=\"black\" points=\"351,-46 351,-67 398,-67 398,-46 351,-46\"/>\n", 2749 "<text text-anchor=\"start\" x=\"371\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2750 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"398,-46 398,-67 441,-67 441,-46 398,-46\"/>\n", 2751 "<polygon fill=\"none\" stroke=\"black\" points=\"398,-46 398,-67 441,-67 441,-46 398,-46\"/>\n", 2752 "<text text-anchor=\"start\" x=\"416\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2753 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"441,-46 441,-67 478,-67 478,-46 441,-46\"/>\n", 2754 "<polygon fill=\"none\" stroke=\"black\" points=\"441,-46 441,-67 478,-67 478,-46 441,-46\"/>\n", 2755 "<text text-anchor=\"start\" x=\"456\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2756 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"478,-46 478,-67 498,-67 498,-46 478,-46\"/>\n", 2757 "<polygon fill=\"none\" stroke=\"black\" points=\"478,-46 478,-67 498,-67 498,-46 478,-46\"/>\n", 2758 "<text text-anchor=\"start\" x=\"484.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2759 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 2760 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 2761 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 2762 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 2763 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2764 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\"/>\n", 2765 "<text text-anchor=\"start\" x=\"261\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2766 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-25 288,-46 308,-46 308,-25 288,-25\"/>\n", 2767 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-25 288,-46 308,-46 308,-25 288,-25\"/>\n", 2768 "<text text-anchor=\"start\" x=\"294.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2769 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"308,-25 308,-46 351,-46 351,-25 308,-25\"/>\n", 2770 "<polygon fill=\"none\" stroke=\"black\" points=\"308,-25 308,-46 351,-46 351,-25 308,-25\"/>\n", 2771 "<text text-anchor=\"start\" x=\"326\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2772 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"351,-25 351,-46 398,-46 398,-25 351,-25\"/>\n", 2773 "<polygon fill=\"none\" stroke=\"black\" points=\"351,-25 351,-46 398,-46 398,-25 351,-25\"/>\n", 2774 "<text text-anchor=\"start\" x=\"371\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2775 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"398,-25 398,-46 441,-46 441,-25 398,-25\"/>\n", 2776 "<polygon fill=\"none\" stroke=\"black\" points=\"398,-25 398,-46 441,-46 441,-25 398,-25\"/>\n", 2777 "<text text-anchor=\"start\" x=\"416\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2778 "<polygon fill=\"none\" stroke=\"black\" points=\"441,-25 441,-46 478,-46 478,-25 441,-25\"/>\n", 2779 "<text text-anchor=\"start\" x=\"456\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2780 "<polygon fill=\"none\" stroke=\"black\" points=\"478,-25 478,-46 498,-46 498,-25 478,-25\"/>\n", 2781 "<text text-anchor=\"start\" x=\"484.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2782 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 2783 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 2784 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 2785 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 2786 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2787 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 2788 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 2789 "<text text-anchor=\"start\" x=\"261\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2790 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-4 288,-25 308,-25 308,-4 288,-4\"/>\n", 2791 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-4 288,-25 308,-25 308,-4 288,-4\"/>\n", 2792 "<text text-anchor=\"start\" x=\"294.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2793 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"308,-4 308,-25 351,-25 351,-4 308,-4\"/>\n", 2794 "<polygon fill=\"none\" stroke=\"black\" points=\"308,-4 308,-25 351,-25 351,-4 308,-4\"/>\n", 2795 "<text text-anchor=\"start\" x=\"326\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2796 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"351,-4 351,-25 398,-25 398,-4 351,-4\"/>\n", 2797 "<polygon fill=\"none\" stroke=\"black\" points=\"351,-4 351,-25 398,-25 398,-4 351,-4\"/>\n", 2798 "<text text-anchor=\"start\" x=\"371\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2799 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"398,-4 398,-25 441,-25 441,-4 398,-4\"/>\n", 2800 "<polygon fill=\"none\" stroke=\"black\" points=\"398,-4 398,-25 441,-25 441,-4 398,-4\"/>\n", 2801 "<text text-anchor=\"start\" x=\"416\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2802 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"441,-4 441,-25 478,-25 478,-4 441,-4\"/>\n", 2803 "<polygon fill=\"none\" stroke=\"black\" points=\"441,-4 441,-25 478,-25 478,-4 441,-4\"/>\n", 2804 "<text text-anchor=\"start\" x=\"456\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2805 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"478,-4 478,-25 498,-25 498,-4 478,-4\"/>\n", 2806 "<polygon fill=\"none\" stroke=\"black\" points=\"478,-4 478,-25 498,-25 498,-4 478,-4\"/>\n", 2807 "<text text-anchor=\"start\" x=\"484.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2808 "</g>\n", 2809 "</g>\n", 2810 "</svg>\n" 2811 ], 2812 "text/plain": [ 2813 "<spot.jupyter.SVG object>" 2814 ] 2815 }, 2816 "execution_count": 18, 2817 "metadata": {}, 2818 "output_type": "execute_result" 2819 } 2820 ], 2821 "source": [ 2822 "aut.edge_storage(3).cond = buddy.bddfalse\n", 2823 "aut.show_storage(\"v\")" 2824 ] 2825 }, 2826 { 2827 "cell_type": "code", 2828 "execution_count": 19, 2829 "metadata": {}, 2830 "outputs": [ 2831 { 2832 "name": "stdout", 2833 "output_type": "stream", 2834 "text": [ 2835 "edges[1].src=0, edges[1].dst=0\n", 2836 "edges[2].src=0, edges[2].dst=1\n", 2837 "edges[3].src=1, edges[3].dst=0\n", 2838 "edges[4].src=1, edges[4].dst=0\n", 2839 "edges[5].src=1, edges[5].dst=1\n", 2840 "edges[6].src=1, edges[6].dst=1\n", 2841 "edges[7].src=1, edges[7].dst=1\n", 2842 "edges[8].src=2, edges[8].dst=0\n" 2843 ] 2844 } 2845 ], 2846 "source": [ 2847 "for e in aut.edges(): # iterate over all non-erased edges\n", 2848 " print(\"edges[{e}].src={src}, edges[{e}].dst={dst}\".format(e=aut.edge_number(e), src=e.src, dst=e.dst))" 2849 ] 2850 }, 2851 { 2852 "cell_type": "code", 2853 "execution_count": 20, 2854 "metadata": {}, 2855 "outputs": [ 2856 { 2857 "data": { 2858 "text/plain": [ 2859 "False" 2860 ] 2861 }, 2862 "execution_count": 20, 2863 "metadata": {}, 2864 "output_type": "execute_result" 2865 } 2866 ], 2867 "source": [ 2868 "aut.is_dead_edge(3)" 2869 ] 2870 }, 2871 { 2872 "cell_type": "code", 2873 "execution_count": 21, 2874 "metadata": {}, 2875 "outputs": [ 2876 { 2877 "data": { 2878 "image/svg+xml": [ 2879 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 2880 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 2881 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 2882 "<!-- Generated by graphviz version 2.43.0 (0)\n", 2883 " -->\n", 2884 "<!-- Title: g Pages: 1 -->\n", 2885 "<svg width=\"494pt\" height=\"142pt\"\n", 2886 " viewBox=\"0.00 0.00 493.50 142.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 2887 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 138)\">\n", 2888 "<title>g</title>\n", 2889 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-138 489.5,-138 489.5,4 -4,4\"/>\n", 2890 "<!-- states -->\n", 2891 "<g id=\"node1\" class=\"node\">\n", 2892 "<title>states</title>\n", 2893 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"8,-77 8,-98 63,-98 63,-77 8,-77\"/>\n", 2894 "<polyline fill=\"none\" stroke=\"black\" points=\"8,-77 63,-77 \"/>\n", 2895 "<text text-anchor=\"start\" x=\"20\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 2896 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"63,-77 63,-98 76,-98 76,-77 63,-77\"/>\n", 2897 "<polyline fill=\"none\" stroke=\"black\" points=\"63,-77 76,-77 \"/>\n", 2898 "<text text-anchor=\"start\" x=\"66\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2899 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-77 76,-98 89,-98 89,-77 76,-77\"/>\n", 2900 "<polyline fill=\"none\" stroke=\"black\" points=\"76,-77 89,-77 \"/>\n", 2901 "<text text-anchor=\"start\" x=\"79\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2902 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"89,-77 89,-98 102,-98 102,-77 89,-77\"/>\n", 2903 "<polyline fill=\"none\" stroke=\"black\" points=\"89,-77 102,-77 \"/>\n", 2904 "<text text-anchor=\"start\" x=\"92\" y=\"-83.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2905 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-56 8,-77 63,-77 63,-56 8,-56\"/>\n", 2906 "<text text-anchor=\"start\" x=\"23\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 2907 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2908 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-56 63,-77 76,-77 76,-56 63,-56\"/>\n", 2909 "<text text-anchor=\"start\" x=\"66\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2910 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2911 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-56 76,-77 89,-77 89,-56 76,-56\"/>\n", 2912 "<text text-anchor=\"start\" x=\"79\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2913 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2914 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-56 89,-77 102,-77 102,-56 89,-56\"/>\n", 2915 "<text text-anchor=\"start\" x=\"92\" y=\"-62.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2916 "<polygon fill=\"none\" stroke=\"black\" points=\"8,-35 8,-56 63,-56 63,-35 8,-35\"/>\n", 2917 "<text text-anchor=\"start\" x=\"11\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 2918 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2919 "<polygon fill=\"none\" stroke=\"black\" points=\"63,-35 63,-56 76,-56 76,-35 63,-35\"/>\n", 2920 "<text text-anchor=\"start\" x=\"66\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2921 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2922 "<polygon fill=\"none\" stroke=\"black\" points=\"76,-35 76,-56 89,-56 89,-35 76,-35\"/>\n", 2923 "<text text-anchor=\"start\" x=\"79\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2924 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2925 "<polygon fill=\"none\" stroke=\"black\" points=\"89,-35 89,-56 102,-56 102,-35 89,-35\"/>\n", 2926 "<text text-anchor=\"start\" x=\"92\" y=\"-41.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2927 "</g>\n", 2928 "<!-- edges -->\n", 2929 "<g id=\"node2\" class=\"node\">\n", 2930 "<title>edges</title>\n", 2931 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"137,-109 137,-130 198,-130 198,-109 137,-109\"/>\n", 2932 "<polyline fill=\"none\" stroke=\"black\" points=\"137,-109 198,-109 \"/>\n", 2933 "<text text-anchor=\"start\" x=\"152\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 2934 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-109 198,-130 241,-130 241,-109 198,-109\"/>\n", 2935 "<polyline fill=\"none\" stroke=\"black\" points=\"198,-109 241,-109 \"/>\n", 2936 "<text text-anchor=\"start\" x=\"216\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2937 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"241,-109 241,-130 288,-130 288,-109 241,-109\"/>\n", 2938 "<polyline fill=\"none\" stroke=\"black\" points=\"241,-109 288,-109 \"/>\n", 2939 "<text text-anchor=\"start\" x=\"261\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 2940 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-109 288,-130 331,-130 331,-109 288,-109\"/>\n", 2941 "<polyline fill=\"none\" stroke=\"black\" points=\"288,-109 331,-109 \"/>\n", 2942 "<text text-anchor=\"start\" x=\"306\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 2943 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"331,-109 331,-130 378,-130 378,-109 331,-109\"/>\n", 2944 "<polyline fill=\"none\" stroke=\"black\" points=\"331,-109 378,-109 \"/>\n", 2945 "<text text-anchor=\"start\" x=\"351\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 2946 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"378,-109 378,-130 421,-130 421,-109 378,-109\"/>\n", 2947 "<polyline fill=\"none\" stroke=\"black\" points=\"378,-109 421,-109 \"/>\n", 2948 "<text text-anchor=\"start\" x=\"396\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 2949 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"421,-109 421,-130 458,-130 458,-109 421,-109\"/>\n", 2950 "<polyline fill=\"none\" stroke=\"black\" points=\"421,-109 458,-109 \"/>\n", 2951 "<text text-anchor=\"start\" x=\"436\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 2952 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"458,-109 458,-130 478,-130 478,-109 458,-109\"/>\n", 2953 "<polyline fill=\"none\" stroke=\"black\" points=\"458,-109 478,-109 \"/>\n", 2954 "<text text-anchor=\"start\" x=\"464.5\" y=\"-115.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 2955 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-88 137,-109 198,-109 198,-88 137,-88\"/>\n", 2956 "<text text-anchor=\"start\" x=\"154\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 2957 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-88 198,-109 241,-109 241,-88 198,-88\"/>\n", 2958 "<text text-anchor=\"start\" x=\"201\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2959 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-88 241,-109 288,-109 288,-88 241,-88\"/>\n", 2960 "<text text-anchor=\"start\" x=\"244\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2961 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-88 288,-109 331,-109 331,-88 288,-88\"/>\n", 2962 "<text text-anchor=\"start\" x=\"291\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 2963 "<polygon fill=\"none\" stroke=\"black\" points=\"331,-88 331,-109 378,-109 378,-88 331,-88\"/>\n", 2964 "<text text-anchor=\"start\" x=\"334\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 2965 "<polygon fill=\"none\" stroke=\"black\" points=\"378,-88 378,-109 421,-109 421,-88 378,-88\"/>\n", 2966 "<text text-anchor=\"start\" x=\"381\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 2967 "<polygon fill=\"none\" stroke=\"black\" points=\"421,-88 421,-109 458,-109 458,-88 421,-88\"/>\n", 2968 "<text text-anchor=\"start\" x=\"436\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2969 "<polygon fill=\"none\" stroke=\"black\" points=\"458,-88 458,-109 478,-109 478,-88 458,-88\"/>\n", 2970 "<text text-anchor=\"start\" x=\"464.5\" y=\"-94.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2971 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-67 137,-88 198,-88 198,-67 137,-67\"/>\n", 2972 "<text text-anchor=\"start\" x=\"158\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 2973 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-67 198,-88 241,-88 241,-67 198,-67\"/>\n", 2974 "<text text-anchor=\"start\" x=\"209\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2975 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-67 241,-88 288,-88 288,-67 241,-67\"/>\n", 2976 "<text text-anchor=\"start\" x=\"254\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2977 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-67 288,-88 331,-88 331,-67 288,-67\"/>\n", 2978 "<text text-anchor=\"start\" x=\"299\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2979 "<polygon fill=\"none\" stroke=\"black\" points=\"331,-67 331,-88 378,-88 378,-67 331,-67\"/>\n", 2980 "<text text-anchor=\"start\" x=\"344\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 2981 "<polygon fill=\"none\" stroke=\"black\" points=\"378,-67 378,-88 421,-88 421,-67 378,-67\"/>\n", 2982 "<text text-anchor=\"start\" x=\"389\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 2983 "<polygon fill=\"none\" stroke=\"black\" points=\"421,-67 421,-88 458,-88 458,-67 421,-67\"/>\n", 2984 "<text text-anchor=\"start\" x=\"424\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 2985 "<polygon fill=\"none\" stroke=\"black\" points=\"458,-67 458,-88 478,-88 478,-67 458,-67\"/>\n", 2986 "<text text-anchor=\"start\" x=\"461\" y=\"-73.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 2987 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-46 137,-67 198,-67 198,-46 137,-46\"/>\n", 2988 "<text text-anchor=\"start\" x=\"159.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 2989 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2990 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-46 198,-67 241,-67 241,-46 198,-46\"/>\n", 2991 "<text text-anchor=\"start\" x=\"216\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2992 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2993 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-46 241,-67 288,-67 288,-46 241,-46\"/>\n", 2994 "<text text-anchor=\"start\" x=\"261\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 2995 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-46 288,-67 331,-67 331,-46 288,-46\"/>\n", 2996 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-46 288,-67 331,-67 331,-46 288,-46\"/>\n", 2997 "<text text-anchor=\"start\" x=\"306\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 2998 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"331,-46 331,-67 378,-67 378,-46 331,-46\"/>\n", 2999 "<polygon fill=\"none\" stroke=\"black\" points=\"331,-46 331,-67 378,-67 378,-46 331,-46\"/>\n", 3000 "<text text-anchor=\"start\" x=\"351\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3001 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"378,-46 378,-67 421,-67 421,-46 378,-46\"/>\n", 3002 "<polygon fill=\"none\" stroke=\"black\" points=\"378,-46 378,-67 421,-67 421,-46 378,-46\"/>\n", 3003 "<text text-anchor=\"start\" x=\"396\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3004 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"421,-46 421,-67 458,-67 458,-46 421,-46\"/>\n", 3005 "<polygon fill=\"none\" stroke=\"black\" points=\"421,-46 421,-67 458,-67 458,-46 421,-46\"/>\n", 3006 "<text text-anchor=\"start\" x=\"436\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3007 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458,-46 458,-67 478,-67 478,-46 458,-46\"/>\n", 3008 "<polygon fill=\"none\" stroke=\"black\" points=\"458,-46 458,-67 478,-67 478,-46 458,-46\"/>\n", 3009 "<text text-anchor=\"start\" x=\"464.5\" y=\"-52.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3010 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-25 137,-46 198,-46 198,-25 137,-25\"/>\n", 3011 "<text text-anchor=\"start\" x=\"140\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 3012 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 3013 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-25 198,-46 241,-46 241,-25 198,-25\"/>\n", 3014 "<text text-anchor=\"start\" x=\"216\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3015 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-25 241,-46 288,-46 288,-25 241,-25\"/>\n", 3016 "<text text-anchor=\"start\" x=\"261\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3017 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"288,-25 288,-46 331,-46 331,-25 288,-25\"/>\n", 3018 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-25 288,-46 331,-46 331,-25 288,-25\"/>\n", 3019 "<text text-anchor=\"start\" x=\"306\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 3020 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"331,-25 331,-46 378,-46 378,-25 331,-25\"/>\n", 3021 "<polygon fill=\"none\" stroke=\"black\" points=\"331,-25 331,-46 378,-46 378,-25 331,-25\"/>\n", 3022 "<text text-anchor=\"start\" x=\"351\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 3023 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"378,-25 378,-46 421,-46 421,-25 378,-25\"/>\n", 3024 "<polygon fill=\"none\" stroke=\"black\" points=\"378,-25 378,-46 421,-46 421,-25 378,-25\"/>\n", 3025 "<text text-anchor=\"start\" x=\"396\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 3026 "<polygon fill=\"none\" stroke=\"black\" points=\"421,-25 421,-46 458,-46 458,-25 421,-25\"/>\n", 3027 "<text text-anchor=\"start\" x=\"436\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3028 "<polygon fill=\"none\" stroke=\"black\" points=\"458,-25 458,-46 478,-46 478,-25 458,-25\"/>\n", 3029 "<text text-anchor=\"start\" x=\"464.5\" y=\"-31.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3030 "<polygon fill=\"none\" stroke=\"black\" points=\"137,-4 137,-25 198,-25 198,-4 137,-4\"/>\n", 3031 "<text text-anchor=\"start\" x=\"159.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 3032 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 3033 "<polygon fill=\"none\" stroke=\"black\" points=\"198,-4 198,-25 241,-25 241,-4 198,-4\"/>\n", 3034 "<text text-anchor=\"start\" x=\"216\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3035 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 3036 "<polygon fill=\"none\" stroke=\"black\" points=\"241,-4 241,-25 288,-25 288,-4 241,-4\"/>\n", 3037 "<text text-anchor=\"start\" x=\"261\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3038 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"288,-4 288,-25 331,-25 331,-4 288,-4\"/>\n", 3039 "<polygon fill=\"none\" stroke=\"black\" points=\"288,-4 288,-25 331,-25 331,-4 288,-4\"/>\n", 3040 "<text text-anchor=\"start\" x=\"306\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3041 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"331,-4 331,-25 378,-25 378,-4 331,-4\"/>\n", 3042 "<polygon fill=\"none\" stroke=\"black\" points=\"331,-4 331,-25 378,-25 378,-4 331,-4\"/>\n", 3043 "<text text-anchor=\"start\" x=\"351\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3044 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"378,-4 378,-25 421,-25 421,-4 378,-4\"/>\n", 3045 "<polygon fill=\"none\" stroke=\"black\" points=\"378,-4 378,-25 421,-25 421,-4 378,-4\"/>\n", 3046 "<text text-anchor=\"start\" x=\"396\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3047 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"421,-4 421,-25 458,-25 458,-4 421,-4\"/>\n", 3048 "<polygon fill=\"none\" stroke=\"black\" points=\"421,-4 421,-25 458,-25 458,-4 421,-4\"/>\n", 3049 "<text text-anchor=\"start\" x=\"436\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3050 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458,-4 458,-25 478,-25 478,-4 458,-4\"/>\n", 3051 "<polygon fill=\"none\" stroke=\"black\" points=\"458,-4 458,-25 478,-25 478,-4 458,-4\"/>\n", 3052 "<text text-anchor=\"start\" x=\"464.5\" y=\"-10.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3053 "</g>\n", 3054 "</g>\n", 3055 "</svg>\n" 3056 ], 3057 "text/plain": [ 3058 "<spot.jupyter.SVG object>" 3059 ] 3060 }, 3061 "execution_count": 21, 3062 "metadata": {}, 3063 "output_type": "execute_result" 3064 } 3065 ], 3066 "source": [ 3067 "aut.merge_edges()\n", 3068 "aut.show_storage(\"v\")" 3069 ] 3070 }, 3071 { 3072 "cell_type": "markdown", 3073 "metadata": {}, 3074 "source": [ 3075 "# Alternation\n", 3076 "\n", 3077 "The data structures seen so far only support a single destination per edge. Support for universal branching therefore calls for something new.\n", 3078 "\n", 3079 "Let's add some universal branching in our example automaton." 3080 ] 3081 }, 3082 { 3083 "cell_type": "code", 3084 "execution_count": 22, 3085 "metadata": {}, 3086 "outputs": [ 3087 { 3088 "data": { 3089 "image/svg+xml": [ 3090 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3091 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3092 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3093 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3094 " -->\n", 3095 "<!-- Pages: 1 -->\n", 3096 "<svg width=\"428pt\" height=\"322pt\"\n", 3097 " viewBox=\"0.00 0.00 427.70 321.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3098 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 317.62)\">\n", 3099 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-317.62 423.7,-317.62 423.7,4 -4,4\"/>\n", 3100 "<text text-anchor=\"start\" x=\"157.85\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3101 "<text text-anchor=\"start\" x=\"182.85\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3102 "<text text-anchor=\"start\" x=\"198.85\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 3103 "<text text-anchor=\"start\" x=\"241.85\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3104 "<text text-anchor=\"start\" x=\"257.85\" y=\"-299.42\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3105 "<text text-anchor=\"start\" x=\"180.85\" y=\"-285.42\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 3106 "<!-- I -->\n", 3107 "<!-- 2 -->\n", 3108 "<g id=\"node2\" class=\"node\">\n", 3109 "<title>2</title>\n", 3110 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n", 3111 "<text text-anchor=\"middle\" x=\"56\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3112 "</g>\n", 3113 "<!-- I->2 -->\n", 3114 "<g id=\"edge1\" class=\"edge\">\n", 3115 "<title>I->2</title>\n", 3116 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-71.62C2.79,-71.62 17.15,-71.62 30.63,-71.62\"/>\n", 3117 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-71.62 30.94,-74.77 34.44,-71.62 30.94,-71.62 30.94,-71.62 30.94,-71.62 34.44,-71.62 30.94,-68.47 37.94,-71.62 37.94,-71.62\"/>\n", 3118 "</g>\n", 3119 "<!-- 0 -->\n", 3120 "<g id=\"node3\" class=\"node\">\n", 3121 "<title>0</title>\n", 3122 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"137\" cy=\"-71.62\" rx=\"18\" ry=\"18\"/>\n", 3123 "<text text-anchor=\"middle\" x=\"137\" y=\"-67.92\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3124 "</g>\n", 3125 "<!-- 2->0 -->\n", 3126 "<g id=\"edge11\" class=\"edge\">\n", 3127 "<title>2->0</title>\n", 3128 "<path fill=\"none\" stroke=\"black\" d=\"M74.14,-71.62C85.12,-71.62 99.52,-71.62 111.67,-71.62\"/>\n", 3129 "<polygon fill=\"black\" stroke=\"black\" points=\"118.89,-71.62 111.89,-74.77 115.39,-71.62 111.89,-71.62 111.89,-71.62 111.89,-71.62 115.39,-71.62 111.89,-68.47 118.89,-71.62 118.89,-71.62\"/>\n", 3130 "<text text-anchor=\"middle\" x=\"96.5\" y=\"-75.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3131 "</g>\n", 3132 "<!-- 0->0 -->\n", 3133 "<g id=\"edge2\" class=\"edge\">\n", 3134 "<title>0->0</title>\n", 3135 "<path fill=\"none\" stroke=\"black\" d=\"M129.97,-88.29C128.41,-98.25 130.75,-107.62 137,-107.62 141.69,-107.62 144.18,-102.35 144.47,-95.51\"/>\n", 3136 "<polygon fill=\"black\" stroke=\"black\" points=\"144.03,-88.29 147.6,-95.08 144.24,-91.78 144.46,-95.27 144.46,-95.27 144.46,-95.27 144.24,-91.78 141.31,-95.46 144.03,-88.29 144.03,-88.29\"/>\n", 3137 "<text text-anchor=\"start\" x=\"118.5\" y=\"-126.42\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 3138 "<text text-anchor=\"start\" x=\"129\" y=\"-111.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3139 "</g>\n", 3140 "<!-- 1 -->\n", 3141 "<g id=\"node4\" class=\"node\">\n", 3142 "<title>1</title>\n", 3143 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"399.2\" cy=\"-117.62\" rx=\"18\" ry=\"18\"/>\n", 3144 "<text text-anchor=\"middle\" x=\"399.2\" y=\"-113.92\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3145 "</g>\n", 3146 "<!-- 0->1 -->\n", 3147 "<g id=\"edge3\" class=\"edge\">\n", 3148 "<title>0->1</title>\n", 3149 "<path fill=\"none\" stroke=\"black\" d=\"M140.75,-89.62C146.72,-121.28 164.04,-183.62 207.8,-183.62 207.8,-183.62 207.8,-183.62 343.4,-183.62 366.08,-183.62 381.17,-160.26 389.67,-141.34\"/>\n", 3150 "<polygon fill=\"black\" stroke=\"black\" points=\"392.51,-134.62 392.69,-142.29 391.15,-137.84 389.79,-141.07 389.79,-141.07 389.79,-141.07 391.15,-137.84 386.89,-139.84 392.51,-134.62 392.51,-134.62\"/>\n", 3151 "<text text-anchor=\"start\" x=\"247.6\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 3152 "<text text-anchor=\"start\" x=\"260.1\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3153 "</g>\n", 3154 "<!-- -1 -->\n", 3155 "<g id=\"node5\" class=\"node\">\n", 3156 "<title>-1</title>\n", 3157 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"208.8\" cy=\"-25.62\" rx=\"1.8\" ry=\"1.8\"/>\n", 3158 "</g>\n", 3159 "<!-- 0->-1 -->\n", 3160 "<g id=\"edge4\" class=\"edge\">\n", 3161 "<title>0->-1</title>\n", 3162 "<path fill=\"none\" stroke=\"black\" d=\"M141.51,-53.91C145.82,-37.41 154.91,-13.73 173,-2.62 179.06,1.1 182.57,0.42 189,-2.62 195.76,-5.83 200.9,-12.79 204.08,-18.22\"/>\n", 3163 "<polygon fill=\"none\" stroke=\"black\" points=\"201.92,-19.37 207.3,-24.46 206.27,-17.12 201.92,-19.37\"/>\n", 3164 "<text text-anchor=\"start\" x=\"177.5\" y=\"-21.42\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 3165 "<text text-anchor=\"start\" x=\"173\" y=\"-6.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3166 "</g>\n", 3167 "<!-- 1->0 -->\n", 3168 "<g id=\"edge7\" class=\"edge\">\n", 3169 "<title>1->0</title>\n", 3170 "<path fill=\"none\" stroke=\"black\" d=\"M380.92,-117.62C370.14,-117.62 355.96,-117.62 343.4,-117.62 207.8,-117.62 207.8,-117.62 207.8,-117.62 186.97,-117.62 167.56,-103.17 154.53,-90.46\"/>\n", 3171 "<polygon fill=\"black\" stroke=\"black\" points=\"149.34,-85.17 156.49,-87.97 151.79,-87.67 154.24,-90.17 154.24,-90.17 154.24,-90.17 151.79,-87.67 151.99,-92.38 149.34,-85.17 149.34,-85.17\"/>\n", 3172 "<text text-anchor=\"start\" x=\"249.6\" y=\"-136.42\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 3173 "<text text-anchor=\"start\" x=\"260.1\" y=\"-121.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3174 "</g>\n", 3175 "<!-- 1->1 -->\n", 3176 "<g id=\"edge8\" class=\"edge\">\n", 3177 "<title>1->1</title>\n", 3178 "<path fill=\"none\" stroke=\"black\" d=\"M397.03,-135.77C396.7,-145.16 397.42,-153.62 399.2,-153.62 400.51,-153.62 401.25,-149.06 401.41,-142.92\"/>\n", 3179 "<polygon fill=\"black\" stroke=\"black\" points=\"401.37,-135.77 404.56,-142.76 401.39,-139.27 401.41,-142.77 401.41,-142.77 401.41,-142.77 401.39,-139.27 398.26,-142.79 401.37,-135.77 401.37,-135.77\"/>\n", 3180 "<text text-anchor=\"start\" x=\"378.7\" y=\"-172.42\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 3181 "<text text-anchor=\"start\" x=\"391.2\" y=\"-157.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3182 "</g>\n", 3183 "<!-- 1->1 -->\n", 3184 "<g id=\"edge9\" class=\"edge\">\n", 3185 "<title>1->1</title>\n", 3186 "<path fill=\"none\" stroke=\"black\" d=\"M395.83,-135.53C393.58,-156.62 394.7,-183.62 399.2,-183.62 403.21,-183.62 404.54,-162.21 403.19,-142.62\"/>\n", 3187 "<polygon fill=\"black\" stroke=\"black\" points=\"402.58,-135.53 406.32,-142.23 402.88,-139.02 403.18,-142.5 403.18,-142.5 403.18,-142.5 402.88,-139.02 400.04,-142.78 402.58,-135.53 402.58,-135.53\"/>\n", 3188 "<text text-anchor=\"start\" x=\"380.7\" y=\"-202.42\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 3189 "<text text-anchor=\"start\" x=\"391.2\" y=\"-187.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3190 "</g>\n", 3191 "<!-- 1->1 -->\n", 3192 "<g id=\"edge10\" class=\"edge\">\n", 3193 "<title>1->1</title>\n", 3194 "<path fill=\"none\" stroke=\"black\" d=\"M395.09,-135.39C390.52,-166.09 391.89,-213.62 399.2,-213.62 405.97,-213.62 407.65,-172.88 404.23,-142.48\"/>\n", 3195 "<polygon fill=\"black\" stroke=\"black\" points=\"403.31,-135.39 407.34,-141.93 403.76,-138.86 404.21,-142.34 404.21,-142.34 404.21,-142.34 403.76,-138.86 401.09,-142.74 403.31,-135.39 403.31,-135.39\"/>\n", 3196 "<text text-anchor=\"start\" x=\"394.7\" y=\"-231.42\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3197 "<text text-anchor=\"start\" x=\"383.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3198 "<text text-anchor=\"start\" x=\"399.2\" y=\"-217.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3199 "</g>\n", 3200 "<!-- -1->0 -->\n", 3201 "<g id=\"edge5\" class=\"edge\">\n", 3202 "<title>-1->0</title>\n", 3203 "<path fill=\"none\" stroke=\"black\" d=\"M206.92,-26.2C201.95,-29.48 176.91,-45.98 158.44,-58.15\"/>\n", 3204 "<polygon fill=\"black\" stroke=\"black\" points=\"152.46,-62.09 156.57,-55.61 155.39,-60.16 158.31,-58.24 158.31,-58.24 158.31,-58.24 155.39,-60.16 160.04,-60.87 152.46,-62.09 152.46,-62.09\"/>\n", 3205 "</g>\n", 3206 "<!-- 3 -->\n", 3207 "<g id=\"node6\" class=\"node\">\n", 3208 "<title>3</title>\n", 3209 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"268.1\" cy=\"-25.62\" rx=\"18\" ry=\"18\"/>\n", 3210 "<text text-anchor=\"middle\" x=\"268.1\" y=\"-21.92\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3211 "</g>\n", 3212 "<!-- -1->3 -->\n", 3213 "<g id=\"edge6\" class=\"edge\">\n", 3214 "<title>-1->3</title>\n", 3215 "<path fill=\"none\" stroke=\"black\" d=\"M210.79,-25.62C214.68,-25.62 229.29,-25.62 242.65,-25.62\"/>\n", 3216 "<polygon fill=\"black\" stroke=\"black\" points=\"249.87,-25.62 242.87,-28.77 246.37,-25.62 242.87,-25.62 242.87,-25.62 242.87,-25.62 246.37,-25.62 242.87,-22.47 249.87,-25.62 249.87,-25.62\"/>\n", 3217 "</g>\n", 3218 "<!-- -4 -->\n", 3219 "<g id=\"node7\" class=\"node\">\n", 3220 "<title>-4</title>\n", 3221 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"342.4\" cy=\"-71.62\" rx=\"1.8\" ry=\"1.8\"/>\n", 3222 "</g>\n", 3223 "<!-- 3->-4 -->\n", 3224 "<g id=\"edge12\" class=\"edge\">\n", 3225 "<title>3->-4</title>\n", 3226 "<path fill=\"none\" stroke=\"black\" d=\"M285.98,-21.87C297.31,-20.34 312.03,-20.36 322.6,-27.62 334.25,-35.63 338.72,-52.43 340.41,-62.8\"/>\n", 3227 "<polygon fill=\"none\" stroke=\"black\" points=\"337.99,-63.23 341.28,-69.87 342.85,-62.62 337.99,-63.23\"/>\n", 3228 "<text text-anchor=\"start\" x=\"309.1\" y=\"-46.42\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 3229 "<text text-anchor=\"start\" x=\"306.6\" y=\"-31.42\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3230 "</g>\n", 3231 "<!-- -4->0 -->\n", 3232 "<g id=\"edge13\" class=\"edge\">\n", 3233 "<title>-4->0</title>\n", 3234 "<path fill=\"none\" stroke=\"black\" d=\"M340.52,-71.62C329.31,-71.62 213.83,-71.62 162.44,-71.62\"/>\n", 3235 "<polygon fill=\"black\" stroke=\"black\" points=\"155.34,-71.62 162.34,-68.47 158.84,-71.62 162.34,-71.62 162.34,-71.62 162.34,-71.62 158.84,-71.62 162.34,-74.77 155.34,-71.62 155.34,-71.62\"/>\n", 3236 "</g>\n", 3237 "<!-- -4->1 -->\n", 3238 "<g id=\"edge14\" class=\"edge\">\n", 3239 "<title>-4->1</title>\n", 3240 "<path fill=\"none\" stroke=\"black\" d=\"M344.35,-72.42C348.5,-75.91 365.46,-90.14 379.25,-101.72\"/>\n", 3241 "<polygon fill=\"black\" stroke=\"black\" points=\"384.92,-106.48 377.53,-104.39 382.24,-104.23 379.56,-101.98 379.56,-101.98 379.56,-101.98 382.24,-104.23 381.59,-99.56 384.92,-106.48 384.92,-106.48\"/>\n", 3242 "</g>\n", 3243 "</g>\n", 3244 "</svg>\n" 3245 ], 3246 "text/plain": [ 3247 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 3248 ] 3249 }, 3250 "execution_count": 22, 3251 "metadata": {}, 3252 "output_type": "execute_result" 3253 } 3254 ], 3255 "source": [ 3256 "a = buddy.bdd_ithvar(aut.register_ap('a'))\n", 3257 "s = aut.new_state()\n", 3258 "aut.new_univ_edge(0, [0, s], a, [1])\n", 3259 "aut.new_univ_edge(s, [0, 1], -a, [0])\n", 3260 "aut" 3261 ] 3262 }, 3263 { 3264 "cell_type": "code", 3265 "execution_count": 23, 3266 "metadata": {}, 3267 "outputs": [ 3268 { 3269 "data": { 3270 "image/svg+xml": [ 3271 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3272 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3273 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3274 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3275 " -->\n", 3276 "<!-- Title: g Pages: 1 -->\n", 3277 "<svg width=\"762pt\" height=\"376pt\"\n", 3278 " viewBox=\"0.00 0.00 762.00 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3279 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 3280 "<title>g</title>\n", 3281 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 758,-372 758,4 -4,4\"/>\n", 3282 "<!-- states -->\n", 3283 "<g id=\"node1\" class=\"node\">\n", 3284 "<title>states</title>\n", 3285 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"33.5,-311 33.5,-332 88.5,-332 88.5,-311 33.5,-311\"/>\n", 3286 "<polyline fill=\"none\" stroke=\"black\" points=\"33.5,-311 88.5,-311 \"/>\n", 3287 "<text text-anchor=\"start\" x=\"45.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 3288 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"88.5,-311 88.5,-332 101.5,-332 101.5,-311 88.5,-311\"/>\n", 3289 "<polyline fill=\"none\" stroke=\"black\" points=\"88.5,-311 101.5,-311 \"/>\n", 3290 "<text text-anchor=\"start\" x=\"91.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3291 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\"/>\n", 3292 "<polyline fill=\"none\" stroke=\"black\" points=\"101.5,-311 114.5,-311 \"/>\n", 3293 "<text text-anchor=\"start\" x=\"104.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3294 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\"/>\n", 3295 "<polyline fill=\"none\" stroke=\"black\" points=\"114.5,-311 127.5,-311 \"/>\n", 3296 "<text text-anchor=\"start\" x=\"117.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3297 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"127.5,-311 127.5,-332 140.5,-332 140.5,-311 127.5,-311\"/>\n", 3298 "<polyline fill=\"none\" stroke=\"black\" points=\"127.5,-311 140.5,-311 \"/>\n", 3299 "<text text-anchor=\"start\" x=\"130.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3300 "<polygon fill=\"none\" stroke=\"black\" points=\"33.5,-290 33.5,-311 88.5,-311 88.5,-290 33.5,-290\"/>\n", 3301 "<text text-anchor=\"start\" x=\"48.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 3302 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\"/>\n", 3303 "<polygon fill=\"none\" stroke=\"black\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\"/>\n", 3304 "<text text-anchor=\"start\" x=\"91.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3305 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 3306 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 3307 "<text text-anchor=\"start\" x=\"104.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3308 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 3309 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 3310 "<text text-anchor=\"start\" x=\"117.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 3311 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\"/>\n", 3312 "<polygon fill=\"none\" stroke=\"black\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\"/>\n", 3313 "<text text-anchor=\"start\" x=\"130.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 3314 "<polygon fill=\"none\" stroke=\"black\" points=\"33.5,-269 33.5,-290 88.5,-290 88.5,-269 33.5,-269\"/>\n", 3315 "<text text-anchor=\"start\" x=\"36.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 3316 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\"/>\n", 3317 "<polygon fill=\"none\" stroke=\"black\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\"/>\n", 3318 "<text text-anchor=\"start\" x=\"91.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 3319 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 3320 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 3321 "<text text-anchor=\"start\" x=\"104.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 3322 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 3323 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 3324 "<text text-anchor=\"start\" x=\"117.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 3325 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\"/>\n", 3326 "<polygon fill=\"none\" stroke=\"black\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\"/>\n", 3327 "<text text-anchor=\"start\" x=\"130.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 3328 "</g>\n", 3329 "<!-- edges -->\n", 3330 "<g id=\"node2\" class=\"node\">\n", 3331 "<title>edges</title>\n", 3332 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"174.5,-343 174.5,-364 235.5,-364 235.5,-343 174.5,-343\"/>\n", 3333 "<polyline fill=\"none\" stroke=\"black\" points=\"174.5,-343 235.5,-343 \"/>\n", 3334 "<text text-anchor=\"start\" x=\"189.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 3335 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-343 235.5,-364 278.5,-364 278.5,-343 235.5,-343\"/>\n", 3336 "<polyline fill=\"none\" stroke=\"black\" points=\"235.5,-343 278.5,-343 \"/>\n", 3337 "<text text-anchor=\"start\" x=\"253.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3338 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"278.5,-343 278.5,-364 325.5,-364 325.5,-343 278.5,-343\"/>\n", 3339 "<polyline fill=\"none\" stroke=\"black\" points=\"278.5,-343 325.5,-343 \"/>\n", 3340 "<text text-anchor=\"start\" x=\"298.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3341 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"325.5,-343 325.5,-364 368.5,-364 368.5,-343 325.5,-343\"/>\n", 3342 "<polyline fill=\"none\" stroke=\"black\" points=\"325.5,-343 368.5,-343 \"/>\n", 3343 "<text text-anchor=\"start\" x=\"343.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3344 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"368.5,-343 368.5,-364 415.5,-364 415.5,-343 368.5,-343\"/>\n", 3345 "<polyline fill=\"none\" stroke=\"black\" points=\"368.5,-343 415.5,-343 \"/>\n", 3346 "<text text-anchor=\"start\" x=\"388.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 3347 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"415.5,-343 415.5,-364 458.5,-364 458.5,-343 415.5,-343\"/>\n", 3348 "<polyline fill=\"none\" stroke=\"black\" points=\"415.5,-343 458.5,-343 \"/>\n", 3349 "<text text-anchor=\"start\" x=\"433.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 3350 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"458.5,-343 458.5,-364 495.5,-364 495.5,-343 458.5,-343\"/>\n", 3351 "<polyline fill=\"none\" stroke=\"black\" points=\"458.5,-343 495.5,-343 \"/>\n", 3352 "<text text-anchor=\"start\" x=\"473.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 3353 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"495.5,-343 495.5,-364 515.5,-364 515.5,-343 495.5,-343\"/>\n", 3354 "<polyline fill=\"none\" stroke=\"black\" points=\"495.5,-343 515.5,-343 \"/>\n", 3355 "<text text-anchor=\"start\" x=\"502\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 3356 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"515.5,-343 515.5,-364 542.5,-364 542.5,-343 515.5,-343\"/>\n", 3357 "<polyline fill=\"none\" stroke=\"black\" points=\"515.5,-343 542.5,-343 \"/>\n", 3358 "<text text-anchor=\"start\" x=\"525.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 3359 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"542.5,-343 542.5,-364 569.5,-364 569.5,-343 542.5,-343\"/>\n", 3360 "<polyline fill=\"none\" stroke=\"black\" points=\"542.5,-343 569.5,-343 \"/>\n", 3361 "<text text-anchor=\"start\" x=\"552.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 3362 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-322 174.5,-343 235.5,-343 235.5,-322 174.5,-322\"/>\n", 3363 "<text text-anchor=\"start\" x=\"191.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 3364 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-322 235.5,-343 278.5,-343 278.5,-322 235.5,-322\"/>\n", 3365 "<text text-anchor=\"start\" x=\"238.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 3366 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-322 278.5,-343 325.5,-343 325.5,-322 278.5,-322\"/>\n", 3367 "<text text-anchor=\"start\" x=\"281.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 3368 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-322 325.5,-343 368.5,-343 368.5,-322 325.5,-322\"/>\n", 3369 "<text text-anchor=\"start\" x=\"328.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 3370 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-322 368.5,-343 415.5,-343 415.5,-322 368.5,-322\"/>\n", 3371 "<text text-anchor=\"start\" x=\"371.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 3372 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-322 415.5,-343 458.5,-343 458.5,-322 415.5,-322\"/>\n", 3373 "<text text-anchor=\"start\" x=\"418.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 3374 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-322 458.5,-343 495.5,-343 495.5,-322 458.5,-322\"/>\n", 3375 "<text text-anchor=\"start\" x=\"473.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3376 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-322 495.5,-343 515.5,-343 515.5,-322 495.5,-322\"/>\n", 3377 "<text text-anchor=\"start\" x=\"502\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3378 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-322 515.5,-343 542.5,-343 542.5,-322 515.5,-322\"/>\n", 3379 "<text text-anchor=\"start\" x=\"525.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 3380 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-322 542.5,-343 569.5,-343 569.5,-322 542.5,-322\"/>\n", 3381 "<text text-anchor=\"start\" x=\"550.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 3382 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-301 174.5,-322 235.5,-322 235.5,-301 174.5,-301\"/>\n", 3383 "<text text-anchor=\"start\" x=\"195.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 3384 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-301 235.5,-322 278.5,-322 278.5,-301 235.5,-301\"/>\n", 3385 "<text text-anchor=\"start\" x=\"246.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 3386 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-301 278.5,-322 325.5,-322 325.5,-301 278.5,-301\"/>\n", 3387 "<text text-anchor=\"start\" x=\"291.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 3388 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-301 325.5,-322 368.5,-322 368.5,-301 325.5,-301\"/>\n", 3389 "<text text-anchor=\"start\" x=\"336.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 3390 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-301 368.5,-322 415.5,-322 415.5,-301 368.5,-301\"/>\n", 3391 "<text text-anchor=\"start\" x=\"381.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 3392 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-301 415.5,-322 458.5,-322 458.5,-301 415.5,-301\"/>\n", 3393 "<text text-anchor=\"start\" x=\"426.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 3394 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-301 458.5,-322 495.5,-322 495.5,-301 458.5,-301\"/>\n", 3395 "<text text-anchor=\"start\" x=\"461.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 3396 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-301 495.5,-322 515.5,-322 515.5,-301 495.5,-301\"/>\n", 3397 "<text text-anchor=\"start\" x=\"498.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 3398 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-301 515.5,-322 542.5,-322 542.5,-301 515.5,-301\"/>\n", 3399 "<text text-anchor=\"start\" x=\"518.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 3400 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-301 542.5,-322 569.5,-322 569.5,-301 542.5,-301\"/>\n", 3401 "<text text-anchor=\"start\" x=\"545.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 3402 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-280 174.5,-301 235.5,-301 235.5,-280 174.5,-280\"/>\n", 3403 "<text text-anchor=\"start\" x=\"197\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 3404 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\"/>\n", 3405 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\"/>\n", 3406 "<text text-anchor=\"start\" x=\"253.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3407 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\"/>\n", 3408 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\"/>\n", 3409 "<text text-anchor=\"start\" x=\"298.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3410 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\"/>\n", 3411 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\"/>\n", 3412 "<text text-anchor=\"start\" x=\"343.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3413 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\"/>\n", 3414 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\"/>\n", 3415 "<text text-anchor=\"start\" x=\"388.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3416 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\"/>\n", 3417 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\"/>\n", 3418 "<text text-anchor=\"start\" x=\"433.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3419 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\"/>\n", 3420 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\"/>\n", 3421 "<text text-anchor=\"start\" x=\"473.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3422 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\"/>\n", 3423 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\"/>\n", 3424 "<text text-anchor=\"start\" x=\"502\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3425 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\"/>\n", 3426 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\"/>\n", 3427 "<text text-anchor=\"start\" x=\"521.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 3428 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\"/>\n", 3429 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\"/>\n", 3430 "<text text-anchor=\"start\" x=\"548.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 3431 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-259 174.5,-280 235.5,-280 235.5,-259 174.5,-259\"/>\n", 3432 "<text text-anchor=\"start\" x=\"177.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 3433 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\"/>\n", 3434 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\"/>\n", 3435 "<text text-anchor=\"start\" x=\"253.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3436 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\"/>\n", 3437 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\"/>\n", 3438 "<text text-anchor=\"start\" x=\"298.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 3439 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\"/>\n", 3440 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\"/>\n", 3441 "<text text-anchor=\"start\" x=\"343.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 3442 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\"/>\n", 3443 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\"/>\n", 3444 "<text text-anchor=\"start\" x=\"388.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 3445 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\"/>\n", 3446 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\"/>\n", 3447 "<text text-anchor=\"start\" x=\"433.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 3448 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-259 458.5,-280 495.5,-280 495.5,-259 458.5,-259\"/>\n", 3449 "<text text-anchor=\"start\" x=\"473.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3450 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-259 495.5,-280 515.5,-280 515.5,-259 495.5,-259\"/>\n", 3451 "<text text-anchor=\"start\" x=\"502\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3452 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-259 515.5,-280 542.5,-280 542.5,-259 515.5,-259\"/>\n", 3453 "<text text-anchor=\"start\" x=\"525.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3454 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-259 542.5,-280 569.5,-280 569.5,-259 542.5,-259\"/>\n", 3455 "<text text-anchor=\"start\" x=\"552.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3456 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-238 174.5,-259 235.5,-259 235.5,-238 174.5,-238\"/>\n", 3457 "<text text-anchor=\"start\" x=\"197\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 3458 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\"/>\n", 3459 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\"/>\n", 3460 "<text text-anchor=\"start\" x=\"253.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3461 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\"/>\n", 3462 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\"/>\n", 3463 "<text text-anchor=\"start\" x=\"298.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3464 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\"/>\n", 3465 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\"/>\n", 3466 "<text text-anchor=\"start\" x=\"343.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3467 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\"/>\n", 3468 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\"/>\n", 3469 "<text text-anchor=\"start\" x=\"388.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3470 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\"/>\n", 3471 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\"/>\n", 3472 "<text text-anchor=\"start\" x=\"433.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3473 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\"/>\n", 3474 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\"/>\n", 3475 "<text text-anchor=\"start\" x=\"473.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3476 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\"/>\n", 3477 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\"/>\n", 3478 "<text text-anchor=\"start\" x=\"502\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3479 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\"/>\n", 3480 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\"/>\n", 3481 "<text text-anchor=\"start\" x=\"525.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3482 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\"/>\n", 3483 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\"/>\n", 3484 "<text text-anchor=\"start\" x=\"552.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3485 "</g>\n", 3486 "<!-- dests -->\n", 3487 "<g id=\"node3\" class=\"node\">\n", 3488 "<title>dests</title>\n", 3489 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"603.5,-301 603.5,-322 652.5,-322 652.5,-301 603.5,-301\"/>\n", 3490 "<polyline fill=\"none\" stroke=\"black\" points=\"603.5,-301 652.5,-301 \"/>\n", 3491 "<text text-anchor=\"start\" x=\"614\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n", 3492 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"652.5,-301 652.5,-322 673.5,-322 673.5,-301 652.5,-301\"/>\n", 3493 "<polyline fill=\"none\" stroke=\"black\" points=\"652.5,-301 673.5,-301 \"/>\n", 3494 "<text text-anchor=\"start\" x=\"655.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 3495 "<polyline fill=\"none\" stroke=\"black\" points=\"673.5,-301 686.5,-301 \"/>\n", 3496 "<polyline fill=\"none\" stroke=\"black\" points=\"686.5,-301 699.5,-301 \"/>\n", 3497 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"699.5,-301 699.5,-322 720.5,-322 720.5,-301 699.5,-301\"/>\n", 3498 "<polyline fill=\"none\" stroke=\"black\" points=\"699.5,-301 720.5,-301 \"/>\n", 3499 "<text text-anchor=\"start\" x=\"702.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 3500 "<polyline fill=\"none\" stroke=\"black\" points=\"720.5,-301 733.5,-301 \"/>\n", 3501 "<polyline fill=\"none\" stroke=\"black\" points=\"733.5,-301 746.5,-301 \"/>\n", 3502 "<polygon fill=\"none\" stroke=\"black\" points=\"603.5,-280 603.5,-301 652.5,-301 652.5,-280 603.5,-280\"/>\n", 3503 "<text text-anchor=\"start\" x=\"606.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n", 3504 "<polygon fill=\"none\" stroke=\"black\" points=\"652.5,-280 652.5,-301 673.5,-301 673.5,-280 652.5,-280\"/>\n", 3505 "<text text-anchor=\"start\" x=\"656\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 3506 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\"/>\n", 3507 "<polygon fill=\"none\" stroke=\"black\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\"/>\n", 3508 "<text text-anchor=\"start\" x=\"676.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3509 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\"/>\n", 3510 "<polygon fill=\"none\" stroke=\"black\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\"/>\n", 3511 "<text text-anchor=\"start\" x=\"689.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3512 "<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-280 699.5,-301 720.5,-301 720.5,-280 699.5,-280\"/>\n", 3513 "<text text-anchor=\"start\" x=\"703\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 3514 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\"/>\n", 3515 "<polygon fill=\"none\" stroke=\"black\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\"/>\n", 3516 "<text text-anchor=\"start\" x=\"723.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3517 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\"/>\n", 3518 "<polygon fill=\"none\" stroke=\"black\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\"/>\n", 3519 "<text text-anchor=\"start\" x=\"736.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3520 "</g>\n", 3521 "<!-- meta -->\n", 3522 "<g id=\"node4\" class=\"node\">\n", 3523 "<title>meta</title>\n", 3524 "<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 3525 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\"/>\n", 3526 "<text text-anchor=\"start\" x=\"78.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3527 "<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 3528 "<text text-anchor=\"start\" x=\"78.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3529 "<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 3530 "<text text-anchor=\"start\" x=\"78.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 3531 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 3532 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 3533 "</g>\n", 3534 "<!-- meta->states -->\n", 3535 "<!-- props -->\n", 3536 "<g id=\"node5\" class=\"node\">\n", 3537 "<title>props</title>\n", 3538 "<text text-anchor=\"start\" x=\"281.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 3539 "<text text-anchor=\"start\" x=\"425.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3540 "<text text-anchor=\"start\" x=\"281.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 3541 "<text text-anchor=\"start\" x=\"425.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3542 "<text text-anchor=\"start\" x=\"281.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 3543 "<text text-anchor=\"start\" x=\"425.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3544 "<text text-anchor=\"start\" x=\"281.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 3545 "<text text-anchor=\"start\" x=\"425.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3546 "<text text-anchor=\"start\" x=\"281.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 3547 "<text text-anchor=\"start\" x=\"425.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3548 "<text text-anchor=\"start\" x=\"281.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 3549 "<text text-anchor=\"start\" x=\"425.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3550 "<text text-anchor=\"start\" x=\"281.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 3551 "<text text-anchor=\"start\" x=\"425.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3552 "<text text-anchor=\"start\" x=\"281.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 3553 "<text text-anchor=\"start\" x=\"425.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3554 "<text text-anchor=\"start\" x=\"281.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 3555 "<text text-anchor=\"start\" x=\"425.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3556 "<text text-anchor=\"start\" x=\"281.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 3557 "<text text-anchor=\"start\" x=\"425.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 3558 "</g>\n", 3559 "<!-- props->edges -->\n", 3560 "</g>\n", 3561 "</svg>\n" 3562 ], 3563 "text/plain": [ 3564 "<spot.jupyter.SVG object>" 3565 ] 3566 }, 3567 "execution_count": 23, 3568 "metadata": {}, 3569 "output_type": "execute_result" 3570 } 3571 ], 3572 "source": [ 3573 "aut.show_storage()" 3574 ] 3575 }, 3576 { 3577 "cell_type": "markdown", 3578 "metadata": {}, 3579 "source": [ 3580 "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", 3581 "\n", 3582 "To work on alternating automata, one can no longuer just blindingly use the `dst` field of outgoing iterations:" 3583 ] 3584 }, 3585 { 3586 "cell_type": "code", 3587 "execution_count": 24, 3588 "metadata": {}, 3589 "outputs": [ 3590 { 3591 "name": "stdout", 3592 "output_type": "stream", 3593 "text": [ 3594 "0\n", 3595 "1\n", 3596 "0\n", 3597 "1\n", 3598 "1\n", 3599 "1\n", 3600 "0\n", 3601 "4294967295\n", 3602 "4294967292\n" 3603 ] 3604 } 3605 ], 3606 "source": [ 3607 "for e in aut.edges():\n", 3608 " print(e.dst)" 3609 ] 3610 }, 3611 { 3612 "cell_type": "markdown", 3613 "metadata": {}, 3614 "source": [ 3615 "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." 3616 ] 3617 }, 3618 { 3619 "cell_type": "code", 3620 "execution_count": 25, 3621 "metadata": {}, 3622 "outputs": [ 3623 { 3624 "name": "stdout", 3625 "output_type": "stream", 3626 "text": [ 3627 "[0]\n", 3628 "[1]\n", 3629 "[0]\n", 3630 "[1]\n", 3631 "[1]\n", 3632 "[1]\n", 3633 "[0]\n", 3634 "[0, 3]\n", 3635 "[0, 1]\n" 3636 ] 3637 } 3638 ], 3639 "source": [ 3640 "for e in aut.edges():\n", 3641 " print([d for d in aut.univ_dests(e.dst)])" 3642 ] 3643 }, 3644 { 3645 "cell_type": "markdown", 3646 "metadata": {}, 3647 "source": [ 3648 "Note that `univ_dests()` can be applied to `e.dst` or `e`." 3649 ] 3650 }, 3651 { 3652 "cell_type": "code", 3653 "execution_count": 26, 3654 "metadata": {}, 3655 "outputs": [ 3656 { 3657 "name": "stdout", 3658 "output_type": "stream", 3659 "text": [ 3660 "[0]\n", 3661 "[1]\n", 3662 "[0]\n", 3663 "[1]\n", 3664 "[1]\n", 3665 "[1]\n", 3666 "[0]\n", 3667 "[0, 3]\n", 3668 "[0, 1]\n" 3669 ] 3670 } 3671 ], 3672 "source": [ 3673 "for e in aut.edges():\n", 3674 " print([d for d in aut.univ_dests(e)])" 3675 ] 3676 }, 3677 { 3678 "cell_type": "markdown", 3679 "metadata": {}, 3680 "source": [ 3681 "Note that the initial state get also use universal branching:" 3682 ] 3683 }, 3684 { 3685 "cell_type": "code", 3686 "execution_count": 27, 3687 "metadata": {}, 3688 "outputs": [], 3689 "source": [ 3690 "aut.set_univ_init_state([0, 1, 2])" 3691 ] 3692 }, 3693 { 3694 "cell_type": "code", 3695 "execution_count": 28, 3696 "metadata": {}, 3697 "outputs": [ 3698 { 3699 "data": { 3700 "image/svg+xml": [ 3701 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3702 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3703 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3704 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3705 " -->\n", 3706 "<!-- Pages: 1 -->\n", 3707 "<svg width=\"468pt\" height=\"278pt\"\n", 3708 " viewBox=\"0.00 0.00 468.30 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3709 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n", 3710 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 464.3,-274 464.3,4 -4,4\"/>\n", 3711 "<text text-anchor=\"start\" x=\"178.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 3712 "<text text-anchor=\"start\" x=\"203.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3713 "<text text-anchor=\"start\" x=\"219.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 3714 "<text text-anchor=\"start\" x=\"262.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3715 "<text text-anchor=\"start\" x=\"278.15\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 3716 "<text text-anchor=\"start\" x=\"201.15\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 3717 "<!-- I -->\n", 3718 "<!-- -7 -->\n", 3719 "<g id=\"node2\" class=\"node\">\n", 3720 "<title>-7</title>\n", 3721 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n", 3722 "</g>\n", 3723 "<!-- I->-7 -->\n", 3724 "<g id=\"edge1\" class=\"edge\">\n", 3725 "<title>I->-7</title>\n", 3726 "<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n", 3727 "<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n", 3728 "</g>\n", 3729 "<!-- 0 -->\n", 3730 "<g id=\"node3\" class=\"node\">\n", 3731 "<title>0</title>\n", 3732 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n", 3733 "<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 3734 "</g>\n", 3735 "<!-- -7->0 -->\n", 3736 "<g id=\"edge2\" class=\"edge\">\n", 3737 "<title>-7->0</title>\n", 3738 "<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n", 3739 "<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n", 3740 "</g>\n", 3741 "<!-- 1 -->\n", 3742 "<g id=\"node4\" class=\"node\">\n", 3743 "<title>1</title>\n", 3744 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"439.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n", 3745 "<text text-anchor=\"middle\" x=\"439.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3746 "</g>\n", 3747 "<!-- -7->1 -->\n", 3748 "<g id=\"edge3\" class=\"edge\">\n", 3749 "<title>-7->1</title>\n", 3750 "<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 384,0 407.67,0 422.75,-25.21 430.97,-45.16\"/>\n", 3751 "<polygon fill=\"black\" stroke=\"black\" points=\"433.6,-51.94 428.14,-46.55 432.34,-48.68 431.07,-45.42 431.07,-45.42 431.07,-45.42 432.34,-48.68 434.01,-44.28 433.6,-51.94 433.6,-51.94\"/>\n", 3752 "</g>\n", 3753 "<!-- 2 -->\n", 3754 "<g id=\"node5\" class=\"node\">\n", 3755 "<title>2</title>\n", 3756 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n", 3757 "<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 3758 "</g>\n", 3759 "<!-- -7->2 -->\n", 3760 "<g id=\"edge4\" class=\"edge\">\n", 3761 "<title>-7->2</title>\n", 3762 "<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n", 3763 "<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n", 3764 "</g>\n", 3765 "<!-- 0->0 -->\n", 3766 "<g id=\"edge5\" class=\"edge\">\n", 3767 "<title>0->0</title>\n", 3768 "<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n", 3769 "<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n", 3770 "<text text-anchor=\"start\" x=\"159.1\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 3771 "<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3772 "</g>\n", 3773 "<!-- 0->1 -->\n", 3774 "<g id=\"edge6\" class=\"edge\">\n", 3775 "<title>0->1</title>\n", 3776 "<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 384,-204 430.72,-204 438.55,-133.74 439.29,-94.59\"/>\n", 3777 "<polygon fill=\"black\" stroke=\"black\" points=\"439.35,-87.21 442.44,-94.23 439.32,-90.71 439.29,-94.21 439.29,-94.21 439.29,-94.21 439.32,-90.71 436.14,-94.18 439.35,-87.21 439.35,-87.21\"/>\n", 3778 "<text text-anchor=\"start\" x=\"288.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 3779 "<text text-anchor=\"start\" x=\"300.7\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3780 "</g>\n", 3781 "<!-- -1 -->\n", 3782 "<g id=\"node6\" class=\"node\">\n", 3783 "<title>-1</title>\n", 3784 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n", 3785 "</g>\n", 3786 "<!-- 0->-1 -->\n", 3787 "<g id=\"edge7\" class=\"edge\">\n", 3788 "<title>0->-1</title>\n", 3789 "<path fill=\"none\" stroke=\"black\" d=\"M195.5,-101.39C209.83,-104.26 229.74,-108.26 240.59,-110.43\"/>\n", 3790 "<polygon fill=\"none\" stroke=\"black\" points=\"240.24,-112.86 247.59,-111.84 241.2,-108.06 240.24,-112.86\"/>\n", 3791 "<text text-anchor=\"start\" x=\"218.1\" y=\"-125.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 3792 "<text text-anchor=\"start\" x=\"213.6\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3793 "</g>\n", 3794 "<!-- 1->0 -->\n", 3795 "<g id=\"edge10\" class=\"edge\">\n", 3796 "<title>1->0</title>\n", 3797 "<path fill=\"none\" stroke=\"black\" d=\"M424.14,-59.11C413.48,-52.88 398.45,-46 384,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n", 3798 "<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n", 3799 "<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 3800 "<text text-anchor=\"start\" x=\"300.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3801 "</g>\n", 3802 "<!-- 1->1 -->\n", 3803 "<g id=\"edge11\" class=\"edge\">\n", 3804 "<title>1->1</title>\n", 3805 "<path fill=\"none\" stroke=\"black\" d=\"M437.63,-87.15C437.3,-96.54 438.02,-105 439.8,-105 441.11,-105 441.85,-100.44 442.01,-94.3\"/>\n", 3806 "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-87.15 445.16,-94.13 441.99,-90.65 442.01,-94.15 442.01,-94.15 442.01,-94.15 441.99,-90.65 438.86,-94.17 441.97,-87.15 441.97,-87.15\"/>\n", 3807 "<text text-anchor=\"start\" x=\"419.3\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 3808 "<text text-anchor=\"start\" x=\"431.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3809 "</g>\n", 3810 "<!-- 1->1 -->\n", 3811 "<g id=\"edge12\" class=\"edge\">\n", 3812 "<title>1->1</title>\n", 3813 "<path fill=\"none\" stroke=\"black\" d=\"M436.43,-86.91C434.18,-108 435.3,-135 439.8,-135 443.81,-135 445.14,-113.58 443.79,-94\"/>\n", 3814 "<polygon fill=\"black\" stroke=\"black\" points=\"443.18,-86.91 446.92,-93.61 443.48,-90.39 443.78,-93.88 443.78,-93.88 443.78,-93.88 443.48,-90.39 440.64,-94.15 443.18,-86.91 443.18,-86.91\"/>\n", 3815 "<text text-anchor=\"start\" x=\"421.3\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 3816 "<text text-anchor=\"start\" x=\"431.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3817 "</g>\n", 3818 "<!-- 1->1 -->\n", 3819 "<g id=\"edge13\" class=\"edge\">\n", 3820 "<title>1->1</title>\n", 3821 "<path fill=\"none\" stroke=\"black\" d=\"M435.69,-86.77C431.12,-117.47 432.49,-165 439.8,-165 446.57,-165 448.25,-124.26 444.83,-93.86\"/>\n", 3822 "<polygon fill=\"black\" stroke=\"black\" points=\"443.91,-86.77 447.94,-93.31 444.36,-90.24 444.81,-93.71 444.81,-93.71 444.81,-93.71 444.36,-90.24 441.69,-94.12 443.91,-86.77 443.91,-86.77\"/>\n", 3823 "<text text-anchor=\"start\" x=\"435.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3824 "<text text-anchor=\"start\" x=\"423.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3825 "<text text-anchor=\"start\" x=\"439.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 3826 "</g>\n", 3827 "<!-- 2->0 -->\n", 3828 "<g id=\"edge14\" class=\"edge\">\n", 3829 "<title>2->0</title>\n", 3830 "<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n", 3831 "<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n", 3832 "<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 3833 "</g>\n", 3834 "<!-- -1->0 -->\n", 3835 "<g id=\"edge8\" class=\"edge\">\n", 3836 "<title>-1->0</title>\n", 3837 "<path fill=\"none\" stroke=\"black\" d=\"M247.46,-111.23C244.83,-109.12 237.13,-103.28 229.6,-101 221.2,-98.45 211.67,-97.43 203.14,-97.13\"/>\n", 3838 "<polygon fill=\"black\" stroke=\"black\" points=\"195.95,-97.03 202.99,-93.98 199.45,-97.08 202.95,-97.13 202.95,-97.13 202.95,-97.13 199.45,-97.08 202.91,-100.28 195.95,-97.03 195.95,-97.03\"/>\n", 3839 "</g>\n", 3840 "<!-- 3 -->\n", 3841 "<g id=\"node7\" class=\"node\">\n", 3842 "<title>3</title>\n", 3843 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.7\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n", 3844 "<text text-anchor=\"middle\" x=\"308.7\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 3845 "</g>\n", 3846 "<!-- -1->3 -->\n", 3847 "<g id=\"edge9\" class=\"edge\">\n", 3848 "<title>-1->3</title>\n", 3849 "<path fill=\"none\" stroke=\"black\" d=\"M251.39,-112C255.28,-112 269.89,-112 283.25,-112\"/>\n", 3850 "<polygon fill=\"black\" stroke=\"black\" points=\"290.47,-112 283.47,-115.15 286.97,-112 283.47,-112 283.47,-112 283.47,-112 286.97,-112 283.47,-108.85 290.47,-112 290.47,-112\"/>\n", 3851 "</g>\n", 3852 "<!-- -4 -->\n", 3853 "<g id=\"node8\" class=\"node\">\n", 3854 "<title>-4</title>\n", 3855 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"383\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n", 3856 "</g>\n", 3857 "<!-- 3->-4 -->\n", 3858 "<g id=\"edge15\" class=\"edge\">\n", 3859 "<title>3->-4</title>\n", 3860 "<path fill=\"none\" stroke=\"black\" d=\"M326.83,-112C341.67,-112 362.48,-112 373.83,-112\"/>\n", 3861 "<polygon fill=\"none\" stroke=\"black\" points=\"374.15,-114.45 381.15,-112 374.15,-109.55 374.15,-114.45\"/>\n", 3862 "<text text-anchor=\"start\" x=\"349.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 3863 "<text text-anchor=\"start\" x=\"347.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 3864 "</g>\n", 3865 "<!-- -4->0 -->\n", 3866 "<g id=\"edge16\" class=\"edge\">\n", 3867 "<title>-4->0</title>\n", 3868 "<path fill=\"none\" stroke=\"black\" d=\"M381.72,-113.3C380.54,-118.39 375.5,-136.96 363.2,-144 305.48,-177.03 273.34,-170.23 213.6,-141 204.23,-136.42 196.52,-128.01 190.75,-119.83\"/>\n", 3869 "<polygon fill=\"black\" stroke=\"black\" points=\"186.71,-113.69 193.19,-117.81 188.63,-116.62 190.56,-119.54 190.56,-119.54 190.56,-119.54 188.63,-116.62 187.92,-121.27 186.71,-113.69 186.71,-113.69\"/>\n", 3870 "</g>\n", 3871 "<!-- -4->1 -->\n", 3872 "<g id=\"edge17\" class=\"edge\">\n", 3873 "<title>-4->1</title>\n", 3874 "<path fill=\"none\" stroke=\"black\" d=\"M384.95,-111.25C389.08,-108.01 405.86,-94.85 419.6,-84.06\"/>\n", 3875 "<polygon fill=\"black\" stroke=\"black\" points=\"425.26,-79.62 421.7,-86.42 422.51,-81.78 419.76,-83.94 419.76,-83.94 419.76,-83.94 422.51,-81.78 417.81,-81.47 425.26,-79.62 425.26,-79.62\"/>\n", 3876 "</g>\n", 3877 "</g>\n", 3878 "</svg>\n" 3879 ], 3880 "text/plain": [ 3881 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 3882 ] 3883 }, 3884 "execution_count": 28, 3885 "metadata": {}, 3886 "output_type": "execute_result" 3887 } 3888 ], 3889 "source": [ 3890 "aut" 3891 ] 3892 }, 3893 { 3894 "cell_type": "code", 3895 "execution_count": 29, 3896 "metadata": {}, 3897 "outputs": [ 3898 { 3899 "name": "stdout", 3900 "output_type": "stream", 3901 "text": [ 3902 "[0, 1, 2]\n" 3903 ] 3904 } 3905 ], 3906 "source": [ 3907 "print([d for d in aut.univ_dests(aut.get_init_state_number())])" 3908 ] 3909 }, 3910 { 3911 "cell_type": "code", 3912 "execution_count": 30, 3913 "metadata": {}, 3914 "outputs": [ 3915 { 3916 "data": { 3917 "image/svg+xml": [ 3918 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 3919 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 3920 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 3921 "<!-- Generated by graphviz version 2.43.0 (0)\n", 3922 " -->\n", 3923 "<!-- Title: g Pages: 1 -->\n", 3924 "<svg width=\"822pt\" height=\"376pt\"\n", 3925 " viewBox=\"0.00 0.00 822.00 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 3926 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 3927 "<title>g</title>\n", 3928 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 818,-372 818,4 -4,4\"/>\n", 3929 "<!-- states -->\n", 3930 "<g id=\"node1\" class=\"node\">\n", 3931 "<title>states</title>\n", 3932 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"33.5,-311 33.5,-332 88.5,-332 88.5,-311 33.5,-311\"/>\n", 3933 "<polyline fill=\"none\" stroke=\"black\" points=\"33.5,-311 88.5,-311 \"/>\n", 3934 "<text text-anchor=\"start\" x=\"45.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 3935 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"88.5,-311 88.5,-332 101.5,-332 101.5,-311 88.5,-311\"/>\n", 3936 "<polyline fill=\"none\" stroke=\"black\" points=\"88.5,-311 101.5,-311 \"/>\n", 3937 "<text text-anchor=\"start\" x=\"91.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 3938 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"101.5,-311 101.5,-332 114.5,-332 114.5,-311 101.5,-311\"/>\n", 3939 "<polyline fill=\"none\" stroke=\"black\" points=\"101.5,-311 114.5,-311 \"/>\n", 3940 "<text text-anchor=\"start\" x=\"104.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3941 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"114.5,-311 114.5,-332 127.5,-332 127.5,-311 114.5,-311\"/>\n", 3942 "<polyline fill=\"none\" stroke=\"black\" points=\"114.5,-311 127.5,-311 \"/>\n", 3943 "<text text-anchor=\"start\" x=\"117.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3944 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"127.5,-311 127.5,-332 140.5,-332 140.5,-311 127.5,-311\"/>\n", 3945 "<polyline fill=\"none\" stroke=\"black\" points=\"127.5,-311 140.5,-311 \"/>\n", 3946 "<text text-anchor=\"start\" x=\"130.5\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3947 "<polygon fill=\"none\" stroke=\"black\" points=\"33.5,-290 33.5,-311 88.5,-311 88.5,-290 33.5,-290\"/>\n", 3948 "<text text-anchor=\"start\" x=\"48.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 3949 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\"/>\n", 3950 "<polygon fill=\"none\" stroke=\"black\" points=\"88.5,-290 88.5,-311 101.5,-311 101.5,-290 88.5,-290\"/>\n", 3951 "<text text-anchor=\"start\" x=\"91.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3952 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 3953 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-290 101.5,-311 114.5,-311 114.5,-290 101.5,-290\"/>\n", 3954 "<text text-anchor=\"start\" x=\"104.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3955 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 3956 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-290 114.5,-311 127.5,-311 127.5,-290 114.5,-290\"/>\n", 3957 "<text text-anchor=\"start\" x=\"117.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 3958 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\"/>\n", 3959 "<polygon fill=\"none\" stroke=\"black\" points=\"127.5,-290 127.5,-311 140.5,-311 140.5,-290 127.5,-290\"/>\n", 3960 "<text text-anchor=\"start\" x=\"130.5\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 3961 "<polygon fill=\"none\" stroke=\"black\" points=\"33.5,-269 33.5,-290 88.5,-290 88.5,-269 33.5,-269\"/>\n", 3962 "<text text-anchor=\"start\" x=\"36.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 3963 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\"/>\n", 3964 "<polygon fill=\"none\" stroke=\"black\" points=\"88.5,-269 88.5,-290 101.5,-290 101.5,-269 88.5,-269\"/>\n", 3965 "<text text-anchor=\"start\" x=\"91.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 3966 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 3967 "<polygon fill=\"none\" stroke=\"black\" points=\"101.5,-269 101.5,-290 114.5,-290 114.5,-269 101.5,-269\"/>\n", 3968 "<text text-anchor=\"start\" x=\"104.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 3969 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 3970 "<polygon fill=\"none\" stroke=\"black\" points=\"114.5,-269 114.5,-290 127.5,-290 127.5,-269 114.5,-269\"/>\n", 3971 "<text text-anchor=\"start\" x=\"117.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 3972 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\"/>\n", 3973 "<polygon fill=\"none\" stroke=\"black\" points=\"127.5,-269 127.5,-290 140.5,-290 140.5,-269 127.5,-269\"/>\n", 3974 "<text text-anchor=\"start\" x=\"130.5\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 3975 "</g>\n", 3976 "<!-- edges -->\n", 3977 "<g id=\"node2\" class=\"node\">\n", 3978 "<title>edges</title>\n", 3979 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"174.5,-343 174.5,-364 235.5,-364 235.5,-343 174.5,-343\"/>\n", 3980 "<polyline fill=\"none\" stroke=\"black\" points=\"174.5,-343 235.5,-343 \"/>\n", 3981 "<text text-anchor=\"start\" x=\"189.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 3982 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-343 235.5,-364 278.5,-364 278.5,-343 235.5,-343\"/>\n", 3983 "<polyline fill=\"none\" stroke=\"black\" points=\"235.5,-343 278.5,-343 \"/>\n", 3984 "<text text-anchor=\"start\" x=\"253.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 3985 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"278.5,-343 278.5,-364 325.5,-364 325.5,-343 278.5,-343\"/>\n", 3986 "<polyline fill=\"none\" stroke=\"black\" points=\"278.5,-343 325.5,-343 \"/>\n", 3987 "<text text-anchor=\"start\" x=\"298.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 3988 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"325.5,-343 325.5,-364 368.5,-364 368.5,-343 325.5,-343\"/>\n", 3989 "<polyline fill=\"none\" stroke=\"black\" points=\"325.5,-343 368.5,-343 \"/>\n", 3990 "<text text-anchor=\"start\" x=\"343.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 3991 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"368.5,-343 368.5,-364 415.5,-364 415.5,-343 368.5,-343\"/>\n", 3992 "<polyline fill=\"none\" stroke=\"black\" points=\"368.5,-343 415.5,-343 \"/>\n", 3993 "<text text-anchor=\"start\" x=\"388.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 3994 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"415.5,-343 415.5,-364 458.5,-364 458.5,-343 415.5,-343\"/>\n", 3995 "<polyline fill=\"none\" stroke=\"black\" points=\"415.5,-343 458.5,-343 \"/>\n", 3996 "<text text-anchor=\"start\" x=\"433.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 3997 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"458.5,-343 458.5,-364 495.5,-364 495.5,-343 458.5,-343\"/>\n", 3998 "<polyline fill=\"none\" stroke=\"black\" points=\"458.5,-343 495.5,-343 \"/>\n", 3999 "<text text-anchor=\"start\" x=\"473.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 4000 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"495.5,-343 495.5,-364 515.5,-364 515.5,-343 495.5,-343\"/>\n", 4001 "<polyline fill=\"none\" stroke=\"black\" points=\"495.5,-343 515.5,-343 \"/>\n", 4002 "<text text-anchor=\"start\" x=\"502\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 4003 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"515.5,-343 515.5,-364 542.5,-364 542.5,-343 515.5,-343\"/>\n", 4004 "<polyline fill=\"none\" stroke=\"black\" points=\"515.5,-343 542.5,-343 \"/>\n", 4005 "<text text-anchor=\"start\" x=\"525.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 4006 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"542.5,-343 542.5,-364 569.5,-364 569.5,-343 542.5,-343\"/>\n", 4007 "<polyline fill=\"none\" stroke=\"black\" points=\"542.5,-343 569.5,-343 \"/>\n", 4008 "<text text-anchor=\"start\" x=\"552.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 4009 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-322 174.5,-343 235.5,-343 235.5,-322 174.5,-322\"/>\n", 4010 "<text text-anchor=\"start\" x=\"191.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 4011 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-322 235.5,-343 278.5,-343 278.5,-322 235.5,-322\"/>\n", 4012 "<text text-anchor=\"start\" x=\"238.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 4013 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-322 278.5,-343 325.5,-343 325.5,-322 278.5,-322\"/>\n", 4014 "<text text-anchor=\"start\" x=\"281.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 4015 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-322 325.5,-343 368.5,-343 368.5,-322 325.5,-322\"/>\n", 4016 "<text text-anchor=\"start\" x=\"328.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 4017 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-322 368.5,-343 415.5,-343 415.5,-322 368.5,-322\"/>\n", 4018 "<text text-anchor=\"start\" x=\"371.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 4019 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-322 415.5,-343 458.5,-343 458.5,-322 415.5,-322\"/>\n", 4020 "<text text-anchor=\"start\" x=\"418.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 4021 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-322 458.5,-343 495.5,-343 495.5,-322 458.5,-322\"/>\n", 4022 "<text text-anchor=\"start\" x=\"473.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4023 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-322 495.5,-343 515.5,-343 515.5,-322 495.5,-322\"/>\n", 4024 "<text text-anchor=\"start\" x=\"502\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4025 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-322 515.5,-343 542.5,-343 542.5,-322 515.5,-322\"/>\n", 4026 "<text text-anchor=\"start\" x=\"525.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 4027 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-322 542.5,-343 569.5,-343 569.5,-322 542.5,-322\"/>\n", 4028 "<text text-anchor=\"start\" x=\"550.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 4029 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-301 174.5,-322 235.5,-322 235.5,-301 174.5,-301\"/>\n", 4030 "<text text-anchor=\"start\" x=\"195.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 4031 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-301 235.5,-322 278.5,-322 278.5,-301 235.5,-301\"/>\n", 4032 "<text text-anchor=\"start\" x=\"246.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4033 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-301 278.5,-322 325.5,-322 325.5,-301 278.5,-301\"/>\n", 4034 "<text text-anchor=\"start\" x=\"291.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4035 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-301 325.5,-322 368.5,-322 368.5,-301 325.5,-301\"/>\n", 4036 "<text text-anchor=\"start\" x=\"336.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4037 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-301 368.5,-322 415.5,-322 415.5,-301 368.5,-301\"/>\n", 4038 "<text text-anchor=\"start\" x=\"381.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4039 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-301 415.5,-322 458.5,-322 458.5,-301 415.5,-301\"/>\n", 4040 "<text text-anchor=\"start\" x=\"426.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 4041 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-301 458.5,-322 495.5,-322 495.5,-301 458.5,-301\"/>\n", 4042 "<text text-anchor=\"start\" x=\"461.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 4043 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-301 495.5,-322 515.5,-322 515.5,-301 495.5,-301\"/>\n", 4044 "<text text-anchor=\"start\" x=\"498.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 4045 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-301 515.5,-322 542.5,-322 542.5,-301 515.5,-301\"/>\n", 4046 "<text text-anchor=\"start\" x=\"518.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 4047 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-301 542.5,-322 569.5,-322 569.5,-301 542.5,-301\"/>\n", 4048 "<text text-anchor=\"start\" x=\"545.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4049 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-280 174.5,-301 235.5,-301 235.5,-280 174.5,-280\"/>\n", 4050 "<text text-anchor=\"start\" x=\"197\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 4051 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\"/>\n", 4052 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-280 235.5,-301 278.5,-301 278.5,-280 235.5,-280\"/>\n", 4053 "<text text-anchor=\"start\" x=\"253.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4054 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\"/>\n", 4055 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-280 278.5,-301 325.5,-301 325.5,-280 278.5,-280\"/>\n", 4056 "<text text-anchor=\"start\" x=\"298.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4057 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\"/>\n", 4058 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-280 325.5,-301 368.5,-301 368.5,-280 325.5,-280\"/>\n", 4059 "<text text-anchor=\"start\" x=\"343.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4060 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\"/>\n", 4061 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-280 368.5,-301 415.5,-301 415.5,-280 368.5,-280\"/>\n", 4062 "<text text-anchor=\"start\" x=\"388.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4063 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\"/>\n", 4064 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-280 415.5,-301 458.5,-301 458.5,-280 415.5,-280\"/>\n", 4065 "<text text-anchor=\"start\" x=\"433.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4066 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\"/>\n", 4067 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-280 458.5,-301 495.5,-301 495.5,-280 458.5,-280\"/>\n", 4068 "<text text-anchor=\"start\" x=\"473.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4069 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\"/>\n", 4070 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-280 495.5,-301 515.5,-301 515.5,-280 495.5,-280\"/>\n", 4071 "<text text-anchor=\"start\" x=\"502\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4072 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\"/>\n", 4073 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-280 515.5,-301 542.5,-301 542.5,-280 515.5,-280\"/>\n", 4074 "<text text-anchor=\"start\" x=\"521.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 4075 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\"/>\n", 4076 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-280 542.5,-301 569.5,-301 569.5,-280 542.5,-280\"/>\n", 4077 "<text text-anchor=\"start\" x=\"548.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 4078 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-259 174.5,-280 235.5,-280 235.5,-259 174.5,-259\"/>\n", 4079 "<text text-anchor=\"start\" x=\"177.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 4080 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\"/>\n", 4081 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-259 235.5,-280 278.5,-280 278.5,-259 235.5,-259\"/>\n", 4082 "<text text-anchor=\"start\" x=\"253.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4083 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\"/>\n", 4084 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-259 278.5,-280 325.5,-280 325.5,-259 278.5,-259\"/>\n", 4085 "<text text-anchor=\"start\" x=\"298.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 4086 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\"/>\n", 4087 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-259 325.5,-280 368.5,-280 368.5,-259 325.5,-259\"/>\n", 4088 "<text text-anchor=\"start\" x=\"343.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 4089 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\"/>\n", 4090 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-259 368.5,-280 415.5,-280 415.5,-259 368.5,-259\"/>\n", 4091 "<text text-anchor=\"start\" x=\"388.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 4092 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\"/>\n", 4093 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-259 415.5,-280 458.5,-280 458.5,-259 415.5,-259\"/>\n", 4094 "<text text-anchor=\"start\" x=\"433.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 4095 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-259 458.5,-280 495.5,-280 495.5,-259 458.5,-259\"/>\n", 4096 "<text text-anchor=\"start\" x=\"473.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4097 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-259 495.5,-280 515.5,-280 515.5,-259 495.5,-259\"/>\n", 4098 "<text text-anchor=\"start\" x=\"502\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4099 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-259 515.5,-280 542.5,-280 542.5,-259 515.5,-259\"/>\n", 4100 "<text text-anchor=\"start\" x=\"525.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4101 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-259 542.5,-280 569.5,-280 569.5,-259 542.5,-259\"/>\n", 4102 "<text text-anchor=\"start\" x=\"552.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4103 "<polygon fill=\"none\" stroke=\"black\" points=\"174.5,-238 174.5,-259 235.5,-259 235.5,-238 174.5,-238\"/>\n", 4104 "<text text-anchor=\"start\" x=\"197\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 4105 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\"/>\n", 4106 "<polygon fill=\"none\" stroke=\"black\" points=\"235.5,-238 235.5,-259 278.5,-259 278.5,-238 235.5,-238\"/>\n", 4107 "<text text-anchor=\"start\" x=\"253.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4108 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\"/>\n", 4109 "<polygon fill=\"none\" stroke=\"black\" points=\"278.5,-238 278.5,-259 325.5,-259 325.5,-238 278.5,-238\"/>\n", 4110 "<text text-anchor=\"start\" x=\"298.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4111 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\"/>\n", 4112 "<polygon fill=\"none\" stroke=\"black\" points=\"325.5,-238 325.5,-259 368.5,-259 368.5,-238 325.5,-238\"/>\n", 4113 "<text text-anchor=\"start\" x=\"343.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4114 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\"/>\n", 4115 "<polygon fill=\"none\" stroke=\"black\" points=\"368.5,-238 368.5,-259 415.5,-259 415.5,-238 368.5,-238\"/>\n", 4116 "<text text-anchor=\"start\" x=\"388.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4117 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\"/>\n", 4118 "<polygon fill=\"none\" stroke=\"black\" points=\"415.5,-238 415.5,-259 458.5,-259 458.5,-238 415.5,-238\"/>\n", 4119 "<text text-anchor=\"start\" x=\"433.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4120 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\"/>\n", 4121 "<polygon fill=\"none\" stroke=\"black\" points=\"458.5,-238 458.5,-259 495.5,-259 495.5,-238 458.5,-238\"/>\n", 4122 "<text text-anchor=\"start\" x=\"473.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4123 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\"/>\n", 4124 "<polygon fill=\"none\" stroke=\"black\" points=\"495.5,-238 495.5,-259 515.5,-259 515.5,-238 495.5,-238\"/>\n", 4125 "<text text-anchor=\"start\" x=\"502\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4126 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\"/>\n", 4127 "<polygon fill=\"none\" stroke=\"black\" points=\"515.5,-238 515.5,-259 542.5,-259 542.5,-238 515.5,-238\"/>\n", 4128 "<text text-anchor=\"start\" x=\"525.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4129 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\"/>\n", 4130 "<polygon fill=\"none\" stroke=\"black\" points=\"542.5,-238 542.5,-259 569.5,-259 569.5,-238 542.5,-238\"/>\n", 4131 "<text text-anchor=\"start\" x=\"552.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4132 "</g>\n", 4133 "<!-- dests -->\n", 4134 "<g id=\"node3\" class=\"node\">\n", 4135 "<title>dests</title>\n", 4136 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"603.5,-301 603.5,-322 652.5,-322 652.5,-301 603.5,-301\"/>\n", 4137 "<polyline fill=\"none\" stroke=\"black\" points=\"603.5,-301 652.5,-301 \"/>\n", 4138 "<text text-anchor=\"start\" x=\"614\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n", 4139 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"652.5,-301 652.5,-322 673.5,-322 673.5,-301 652.5,-301\"/>\n", 4140 "<polyline fill=\"none\" stroke=\"black\" points=\"652.5,-301 673.5,-301 \"/>\n", 4141 "<text text-anchor=\"start\" x=\"655.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 4142 "<polyline fill=\"none\" stroke=\"black\" points=\"673.5,-301 686.5,-301 \"/>\n", 4143 "<polyline fill=\"none\" stroke=\"black\" points=\"686.5,-301 699.5,-301 \"/>\n", 4144 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"699.5,-301 699.5,-322 720.5,-322 720.5,-301 699.5,-301\"/>\n", 4145 "<polyline fill=\"none\" stroke=\"black\" points=\"699.5,-301 720.5,-301 \"/>\n", 4146 "<text text-anchor=\"start\" x=\"702.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 4147 "<polyline fill=\"none\" stroke=\"black\" points=\"720.5,-301 733.5,-301 \"/>\n", 4148 "<polyline fill=\"none\" stroke=\"black\" points=\"733.5,-301 746.5,-301 \"/>\n", 4149 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"746.5,-301 746.5,-322 767.5,-322 767.5,-301 746.5,-301\"/>\n", 4150 "<polyline fill=\"none\" stroke=\"black\" points=\"746.5,-301 767.5,-301 \"/>\n", 4151 "<text text-anchor=\"start\" x=\"749.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 4152 "<polyline fill=\"none\" stroke=\"black\" points=\"767.5,-301 780.5,-301 \"/>\n", 4153 "<polyline fill=\"none\" stroke=\"black\" points=\"780.5,-301 793.5,-301 \"/>\n", 4154 "<polyline fill=\"none\" stroke=\"black\" points=\"793.5,-301 806.5,-301 \"/>\n", 4155 "<polygon fill=\"none\" stroke=\"black\" points=\"603.5,-280 603.5,-301 652.5,-301 652.5,-280 603.5,-280\"/>\n", 4156 "<text text-anchor=\"start\" x=\"606.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n", 4157 "<polygon fill=\"none\" stroke=\"black\" points=\"652.5,-280 652.5,-301 673.5,-301 673.5,-280 652.5,-280\"/>\n", 4158 "<text text-anchor=\"start\" x=\"656\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 4159 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\"/>\n", 4160 "<polygon fill=\"none\" stroke=\"black\" points=\"673.5,-280 673.5,-301 686.5,-301 686.5,-280 673.5,-280\"/>\n", 4161 "<text text-anchor=\"start\" x=\"676.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4162 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\"/>\n", 4163 "<polygon fill=\"none\" stroke=\"black\" points=\"686.5,-280 686.5,-301 699.5,-301 699.5,-280 686.5,-280\"/>\n", 4164 "<text text-anchor=\"start\" x=\"689.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4165 "<polygon fill=\"none\" stroke=\"black\" points=\"699.5,-280 699.5,-301 720.5,-301 720.5,-280 699.5,-280\"/>\n", 4166 "<text text-anchor=\"start\" x=\"703\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 4167 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\"/>\n", 4168 "<polygon fill=\"none\" stroke=\"black\" points=\"720.5,-280 720.5,-301 733.5,-301 733.5,-280 720.5,-280\"/>\n", 4169 "<text text-anchor=\"start\" x=\"723.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4170 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\"/>\n", 4171 "<polygon fill=\"none\" stroke=\"black\" points=\"733.5,-280 733.5,-301 746.5,-301 746.5,-280 733.5,-280\"/>\n", 4172 "<text text-anchor=\"start\" x=\"736.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4173 "<polygon fill=\"none\" stroke=\"black\" points=\"746.5,-280 746.5,-301 767.5,-301 767.5,-280 746.5,-280\"/>\n", 4174 "<text text-anchor=\"start\" x=\"750\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n", 4175 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"767.5,-280 767.5,-301 780.5,-301 780.5,-280 767.5,-280\"/>\n", 4176 "<polygon fill=\"none\" stroke=\"black\" points=\"767.5,-280 767.5,-301 780.5,-301 780.5,-280 767.5,-280\"/>\n", 4177 "<text text-anchor=\"start\" x=\"770.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4178 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"780.5,-280 780.5,-301 793.5,-301 793.5,-280 780.5,-280\"/>\n", 4179 "<polygon fill=\"none\" stroke=\"black\" points=\"780.5,-280 780.5,-301 793.5,-301 793.5,-280 780.5,-280\"/>\n", 4180 "<text text-anchor=\"start\" x=\"783.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4181 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"793.5,-280 793.5,-301 806.5,-301 806.5,-280 793.5,-280\"/>\n", 4182 "<polygon fill=\"none\" stroke=\"black\" points=\"793.5,-280 793.5,-301 806.5,-301 806.5,-280 793.5,-280\"/>\n", 4183 "<text text-anchor=\"start\" x=\"796.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4184 "</g>\n", 4185 "<!-- meta -->\n", 4186 "<g id=\"node4\" class=\"node\">\n", 4187 "<title>meta</title>\n", 4188 "<text text-anchor=\"start\" x=\"10.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 4189 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"76.5,-118 76.5,-137 165.5,-137 165.5,-118 76.5,-118\"/>\n", 4190 "<text text-anchor=\"start\" x=\"78.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 4191 "<text text-anchor=\"start\" x=\"10.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 4192 "<text text-anchor=\"start\" x=\"78.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4193 "<text text-anchor=\"start\" x=\"10.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 4194 "<text text-anchor=\"start\" x=\"78.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 4195 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 4196 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 4197 "</g>\n", 4198 "<!-- meta->states -->\n", 4199 "<!-- props -->\n", 4200 "<g id=\"node5\" class=\"node\">\n", 4201 "<title>props</title>\n", 4202 "<text text-anchor=\"start\" x=\"281.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 4203 "<text text-anchor=\"start\" x=\"425.5\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4204 "<text text-anchor=\"start\" x=\"281.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 4205 "<text text-anchor=\"start\" x=\"425.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4206 "<text text-anchor=\"start\" x=\"281.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 4207 "<text text-anchor=\"start\" x=\"425.5\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4208 "<text text-anchor=\"start\" x=\"281.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 4209 "<text text-anchor=\"start\" x=\"425.5\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4210 "<text text-anchor=\"start\" x=\"281.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 4211 "<text text-anchor=\"start\" x=\"425.5\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4212 "<text text-anchor=\"start\" x=\"281.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 4213 "<text text-anchor=\"start\" x=\"425.5\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4214 "<text text-anchor=\"start\" x=\"281.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 4215 "<text text-anchor=\"start\" x=\"425.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4216 "<text text-anchor=\"start\" x=\"281.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 4217 "<text text-anchor=\"start\" x=\"425.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4218 "<text text-anchor=\"start\" x=\"281.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 4219 "<text text-anchor=\"start\" x=\"425.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4220 "<text text-anchor=\"start\" x=\"281.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 4221 "<text text-anchor=\"start\" x=\"425.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 4222 "</g>\n", 4223 "<!-- props->edges -->\n", 4224 "</g>\n", 4225 "</svg>\n" 4226 ], 4227 "text/plain": [ 4228 "<spot.jupyter.SVG object>" 4229 ] 4230 }, 4231 "execution_count": 30, 4232 "metadata": {}, 4233 "output_type": "execute_result" 4234 } 4235 ], 4236 "source": [ 4237 "aut.show_storage()" 4238 ] 4239 }, 4240 { 4241 "cell_type": "markdown", 4242 "metadata": {}, 4243 "source": [ 4244 "Adding several transitions with the same destination groups may result in duplicates in the `dests` vector. Those groups get merged during `merge_edges()`." 4245 ] 4246 }, 4247 { 4248 "cell_type": "code", 4249 "execution_count": 31, 4250 "metadata": {}, 4251 "outputs": [ 4252 { 4253 "data": { 4254 "image/svg+xml": [ 4255 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4256 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4257 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4258 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4259 " -->\n", 4260 "<!-- Pages: 1 -->\n", 4261 "<svg width=\"466pt\" height=\"360pt\"\n", 4262 " viewBox=\"0.00 0.00 465.71 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4263 "<g id=\"graph0\" class=\"graph\" transform=\"scale(0.9900990099009901 0.9900990099009901) rotate(0) translate(4 358)\">\n", 4264 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-358 464.3,-358 464.3,4 -4,4\"/>\n", 4265 "<text text-anchor=\"start\" x=\"178.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4266 "<text text-anchor=\"start\" x=\"203.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4267 "<text text-anchor=\"start\" x=\"219.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4268 "<text text-anchor=\"start\" x=\"262.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4269 "<text text-anchor=\"start\" x=\"278.15\" y=\"-339.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 4270 "<text text-anchor=\"start\" x=\"201.15\" y=\"-325.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 4271 "<!-- I -->\n", 4272 "<!-- -7 -->\n", 4273 "<g id=\"node2\" class=\"node\">\n", 4274 "<title>-7</title>\n", 4275 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-91\" rx=\"1.8\" ry=\"1.8\"/>\n", 4276 "</g>\n", 4277 "<!-- I->-7 -->\n", 4278 "<g id=\"edge1\" class=\"edge\">\n", 4279 "<title>I->-7</title>\n", 4280 "<path fill=\"none\" stroke=\"black\" d=\"M1.11,-91C2.65,-91 20.2,-91 30.8,-91\"/>\n", 4281 "<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-93.45 37.92,-91 30.92,-88.55 30.92,-93.45\"/>\n", 4282 "</g>\n", 4283 "<!-- 0 -->\n", 4284 "<g id=\"node3\" class=\"node\">\n", 4285 "<title>0</title>\n", 4286 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n", 4287 "<text text-anchor=\"middle\" x=\"177.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4288 "</g>\n", 4289 "<!-- -7->0 -->\n", 4290 "<g id=\"edge2\" class=\"edge\">\n", 4291 "<title>-7->0</title>\n", 4292 "<path fill=\"none\" stroke=\"black\" d=\"M41.86,-91.21C48.55,-92.52 85.58,-100.01 114.6,-110 128.15,-114.66 142.87,-121.01 154.57,-126.39\"/>\n", 4293 "<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-129.42 153.4,-129.32 157.9,-127.94 154.73,-126.46 154.73,-126.46 154.73,-126.46 157.9,-127.94 156.06,-123.61 161.07,-129.42 161.07,-129.42\"/>\n", 4294 "</g>\n", 4295 "<!-- 1 -->\n", 4296 "<g id=\"node4\" class=\"node\">\n", 4297 "<title>1</title>\n", 4298 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"439.8\" cy=\"-62\" rx=\"18\" ry=\"18\"/>\n", 4299 "<text text-anchor=\"middle\" x=\"439.8\" y=\"-58.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4300 "</g>\n", 4301 "<!-- -7->1 -->\n", 4302 "<g id=\"edge3\" class=\"edge\">\n", 4303 "<title>-7->1</title>\n", 4304 "<path fill=\"none\" stroke=\"black\" d=\"M40.95,-89.42C42.23,-77.34 52.08,0 95.6,0 95.6,0 95.6,0 384,0 405.43,0 420.5,-21.06 429.34,-38.63\"/>\n", 4305 "<polygon fill=\"black\" stroke=\"black\" points=\"432.53,-45.39 426.69,-40.4 431.03,-42.22 429.54,-39.06 429.54,-39.06 429.54,-39.06 431.03,-42.22 432.38,-37.71 432.53,-45.39 432.53,-45.39\"/>\n", 4306 "</g>\n", 4307 "<!-- 2 -->\n", 4308 "<g id=\"node5\" class=\"node\">\n", 4309 "<title>2</title>\n", 4310 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-137\" rx=\"18\" ry=\"18\"/>\n", 4311 "<text text-anchor=\"middle\" x=\"96.6\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4312 "</g>\n", 4313 "<!-- -7->2 -->\n", 4314 "<g id=\"edge4\" class=\"edge\">\n", 4315 "<title>-7->2</title>\n", 4316 "<path fill=\"none\" stroke=\"black\" d=\"M41.75,-91.8C45.9,-95.29 62.86,-109.52 76.65,-121.09\"/>\n", 4317 "<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-125.85 74.93,-123.77 79.64,-123.6 76.96,-121.35 76.96,-121.35 76.96,-121.35 79.64,-123.6 78.99,-118.94 82.32,-125.85 82.32,-125.85\"/>\n", 4318 "</g>\n", 4319 "<!-- 0->0 -->\n", 4320 "<g id=\"edge5\" class=\"edge\">\n", 4321 "<title>0->0</title>\n", 4322 "<path fill=\"none\" stroke=\"black\" d=\"M170.57,-153.66C169.01,-163.62 171.35,-173 177.6,-173 182.29,-173 184.78,-167.73 185.07,-160.89\"/>\n", 4323 "<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-153.66 188.2,-160.46 184.84,-157.16 185.06,-160.65 185.06,-160.65 185.06,-160.65 184.84,-157.16 181.91,-160.84 184.63,-153.66 184.63,-153.66\"/>\n", 4324 "<text text-anchor=\"start\" x=\"159.1\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 4325 "<text text-anchor=\"start\" x=\"169.6\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4326 "</g>\n", 4327 "<!-- 0->1 -->\n", 4328 "<g id=\"edge6\" class=\"edge\">\n", 4329 "<title>0->1</title>\n", 4330 "<path fill=\"none\" stroke=\"black\" d=\"M178.85,-155.21C180.48,-195.38 190.49,-288 248.4,-288 248.4,-288 248.4,-288 384,-288 424.94,-288 435.41,-146.14 437.99,-87.2\"/>\n", 4331 "<polygon fill=\"black\" stroke=\"black\" points=\"438.28,-80.11 441.14,-87.24 438.14,-83.61 437.99,-87.11 437.99,-87.11 437.99,-87.11 438.14,-83.61 434.85,-86.98 438.28,-80.11 438.28,-80.11\"/>\n", 4332 "<text text-anchor=\"start\" x=\"288.2\" y=\"-306.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 4333 "<text text-anchor=\"start\" x=\"300.7\" y=\"-291.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4334 "</g>\n", 4335 "<!-- -1 -->\n", 4336 "<g id=\"node6\" class=\"node\">\n", 4337 "<title>-1</title>\n", 4338 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-172\" rx=\"1.8\" ry=\"1.8\"/>\n", 4339 "</g>\n", 4340 "<!-- 0->-1 -->\n", 4341 "<g id=\"edge7\" class=\"edge\">\n", 4342 "<title>0->-1</title>\n", 4343 "<path fill=\"none\" stroke=\"black\" d=\"M195.38,-133.29C205.94,-131.89 219.44,-131.87 229.6,-138 238.93,-143.63 243.97,-155.69 246.42,-163.83\"/>\n", 4344 "<polygon fill=\"none\" stroke=\"black\" points=\"244.05,-164.44 248.14,-170.63 248.8,-163.24 244.05,-164.44\"/>\n", 4345 "<text text-anchor=\"start\" x=\"218.1\" y=\"-156.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 4346 "<text text-anchor=\"start\" x=\"213.6\" y=\"-141.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4347 "</g>\n", 4348 "<!-- 1->0 -->\n", 4349 "<g id=\"edge10\" class=\"edge\">\n", 4350 "<title>1->0</title>\n", 4351 "<path fill=\"none\" stroke=\"black\" d=\"M422.85,-54.75C412.1,-50.52 397.48,-46 384,-46 248.4,-46 248.4,-46 248.4,-46 214.59,-46 194.92,-86.05 185.51,-113.01\"/>\n", 4352 "<polygon fill=\"black\" stroke=\"black\" points=\"183.23,-119.88 182.44,-112.25 184.33,-116.56 185.43,-113.24 185.43,-113.24 185.43,-113.24 184.33,-116.56 188.42,-114.23 183.23,-119.88 183.23,-119.88\"/>\n", 4353 "<text text-anchor=\"start\" x=\"290.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 4354 "<text text-anchor=\"start\" x=\"300.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4355 "</g>\n", 4356 "<!-- 1->1 -->\n", 4357 "<g id=\"edge11\" class=\"edge\">\n", 4358 "<title>1->1</title>\n", 4359 "<path fill=\"none\" stroke=\"black\" d=\"M437.63,-80.15C437.3,-89.54 438.02,-98 439.8,-98 441.11,-98 441.85,-93.44 442.01,-87.3\"/>\n", 4360 "<polygon fill=\"black\" stroke=\"black\" points=\"441.97,-80.15 445.16,-87.13 441.99,-83.65 442.01,-87.15 442.01,-87.15 442.01,-87.15 441.99,-83.65 438.86,-87.17 441.97,-80.15 441.97,-80.15\"/>\n", 4361 "<text text-anchor=\"start\" x=\"419.3\" y=\"-116.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 4362 "<text text-anchor=\"start\" x=\"431.8\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4363 "</g>\n", 4364 "<!-- 1->1 -->\n", 4365 "<g id=\"edge12\" class=\"edge\">\n", 4366 "<title>1->1</title>\n", 4367 "<path fill=\"none\" stroke=\"black\" d=\"M436.43,-79.91C434.18,-101 435.3,-128 439.8,-128 443.81,-128 445.14,-106.58 443.79,-87\"/>\n", 4368 "<polygon fill=\"black\" stroke=\"black\" points=\"443.18,-79.91 446.92,-86.61 443.48,-83.39 443.78,-86.88 443.78,-86.88 443.78,-86.88 443.48,-83.39 440.64,-87.15 443.18,-79.91 443.18,-79.91\"/>\n", 4369 "<text text-anchor=\"start\" x=\"421.3\" y=\"-146.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 4370 "<text text-anchor=\"start\" x=\"431.8\" y=\"-131.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4371 "</g>\n", 4372 "<!-- 1->1 -->\n", 4373 "<g id=\"edge13\" class=\"edge\">\n", 4374 "<title>1->1</title>\n", 4375 "<path fill=\"none\" stroke=\"black\" d=\"M435.69,-79.77C431.12,-110.47 432.49,-158 439.8,-158 446.57,-158 448.25,-117.26 444.83,-86.86\"/>\n", 4376 "<polygon fill=\"black\" stroke=\"black\" points=\"443.91,-79.77 447.94,-86.31 444.36,-83.24 444.81,-86.71 444.81,-86.71 444.81,-86.71 444.36,-83.24 441.69,-87.12 443.91,-79.77 443.91,-79.77\"/>\n", 4377 "<text text-anchor=\"start\" x=\"435.3\" y=\"-175.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4378 "<text text-anchor=\"start\" x=\"423.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4379 "<text text-anchor=\"start\" x=\"439.8\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4380 "</g>\n", 4381 "<!-- 2->0 -->\n", 4382 "<g id=\"edge14\" class=\"edge\">\n", 4383 "<title>2->0</title>\n", 4384 "<path fill=\"none\" stroke=\"black\" d=\"M114.74,-137C125.72,-137 140.12,-137 152.27,-137\"/>\n", 4385 "<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-137 152.49,-140.15 155.99,-137 152.49,-137 152.49,-137 152.49,-137 155.99,-137 152.49,-133.85 159.49,-137 159.49,-137\"/>\n", 4386 "<text text-anchor=\"middle\" x=\"137.1\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4387 "</g>\n", 4388 "<!-- -1->0 -->\n", 4389 "<g id=\"edge8\" class=\"edge\">\n", 4390 "<title>-1->0</title>\n", 4391 "<path fill=\"none\" stroke=\"black\" d=\"M247.49,-172.09C243.35,-172.45 226.04,-173.55 213.6,-168 206.82,-164.97 200.41,-160.15 194.98,-155.2\"/>\n", 4392 "<polygon fill=\"black\" stroke=\"black\" points=\"189.9,-150.27 197.11,-152.88 192.41,-152.71 194.92,-155.14 194.92,-155.14 194.92,-155.14 192.41,-152.71 192.73,-157.41 189.9,-150.27 189.9,-150.27\"/>\n", 4393 "</g>\n", 4394 "<!-- 3 -->\n", 4395 "<g id=\"node7\" class=\"node\">\n", 4396 "<title>3</title>\n", 4397 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"308.7\" cy=\"-172\" rx=\"18\" ry=\"18\"/>\n", 4398 "<text text-anchor=\"middle\" x=\"308.7\" y=\"-168.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4399 "</g>\n", 4400 "<!-- -1->3 -->\n", 4401 "<g id=\"edge9\" class=\"edge\">\n", 4402 "<title>-1->3</title>\n", 4403 "<path fill=\"none\" stroke=\"black\" d=\"M251.39,-172C255.28,-172 269.89,-172 283.25,-172\"/>\n", 4404 "<polygon fill=\"black\" stroke=\"black\" points=\"290.47,-172 283.47,-175.15 286.97,-172 283.47,-172 283.47,-172 283.47,-172 286.97,-172 283.47,-168.85 290.47,-172 290.47,-172\"/>\n", 4405 "</g>\n", 4406 "<!-- -4 -->\n", 4407 "<g id=\"node8\" class=\"node\">\n", 4408 "<title>-4</title>\n", 4409 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"383\" cy=\"-86\" rx=\"1.8\" ry=\"1.8\"/>\n", 4410 "</g>\n", 4411 "<!-- 3->-4 -->\n", 4412 "<g id=\"edge15\" class=\"edge\">\n", 4413 "<title>3->-4</title>\n", 4414 "<path fill=\"none\" stroke=\"black\" d=\"M321,-158.56C336.81,-139.75 364.93,-106.3 376.65,-92.37\"/>\n", 4415 "<polygon fill=\"none\" stroke=\"black\" points=\"378.66,-93.79 381.28,-86.85 374.9,-90.63 378.66,-93.79\"/>\n", 4416 "<text text-anchor=\"start\" x=\"349.7\" y=\"-145.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 4417 "<text text-anchor=\"start\" x=\"347.2\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4418 "</g>\n", 4419 "<!-- -11 -->\n", 4420 "<g id=\"node9\" class=\"node\">\n", 4421 "<title>-11</title>\n", 4422 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"383\" cy=\"-217\" rx=\"1.8\" ry=\"1.8\"/>\n", 4423 "</g>\n", 4424 "<!-- 3->-11 -->\n", 4425 "<g id=\"edge18\" class=\"edge\">\n", 4426 "<title>3->-11</title>\n", 4427 "<path fill=\"none\" stroke=\"black\" d=\"M326.54,-167.88C337.85,-166.11 352.57,-165.84 363.2,-173 374.92,-180.9 379.37,-197.74 381.03,-208.14\"/>\n", 4428 "<polygon fill=\"none\" stroke=\"black\" points=\"378.62,-208.58 381.89,-215.24 383.48,-208 378.62,-208.58\"/>\n", 4429 "<text text-anchor=\"start\" x=\"350.7\" y=\"-191.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4430 "<text text-anchor=\"start\" x=\"347.2\" y=\"-176.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4431 "</g>\n", 4432 "<!-- -4->0 -->\n", 4433 "<g id=\"edge16\" class=\"edge\">\n", 4434 "<title>-4->0</title>\n", 4435 "<path fill=\"none\" stroke=\"black\" d=\"M381.11,-86.22C369.8,-89.06 253.26,-118.28 202.27,-131.06\"/>\n", 4436 "<polygon fill=\"black\" stroke=\"black\" points=\"195.25,-132.83 201.27,-128.07 198.64,-131.98 202.03,-131.12 202.03,-131.12 202.03,-131.12 198.64,-131.98 202.8,-134.18 195.25,-132.83 195.25,-132.83\"/>\n", 4437 "</g>\n", 4438 "<!-- -4->1 -->\n", 4439 "<g id=\"edge17\" class=\"edge\">\n", 4440 "<title>-4->1</title>\n", 4441 "<path fill=\"none\" stroke=\"black\" d=\"M384.95,-85.58C388.78,-83.91 403.45,-77.48 416.52,-71.76\"/>\n", 4442 "<polygon fill=\"black\" stroke=\"black\" points=\"423.14,-68.86 417.99,-74.55 419.94,-70.26 416.73,-71.67 416.73,-71.67 416.73,-71.67 419.94,-70.26 415.47,-68.78 423.14,-68.86 423.14,-68.86\"/>\n", 4443 "</g>\n", 4444 "<!-- -11->0 -->\n", 4445 "<g id=\"edge19\" class=\"edge\">\n", 4446 "<title>-11->0</title>\n", 4447 "<path fill=\"none\" stroke=\"black\" d=\"M381.14,-217.21C377.21,-218.16 360.66,-221.83 347.2,-220 286.15,-211.7 264.62,-217.55 213.6,-183 204.51,-176.84 196.79,-167.54 190.94,-158.91\"/>\n", 4448 "<polygon fill=\"black\" stroke=\"black\" points=\"187.01,-152.8 193.45,-156.99 188.9,-155.75 190.8,-158.69 190.8,-158.69 190.8,-158.69 188.9,-155.75 188.15,-160.39 187.01,-152.8 187.01,-152.8\"/>\n", 4449 "</g>\n", 4450 "<!-- -11->3 -->\n", 4451 "<g id=\"edge20\" class=\"edge\">\n", 4452 "<title>-11->3</title>\n", 4453 "<path fill=\"none\" stroke=\"black\" d=\"M381.09,-216.75C376.98,-215.58 359.74,-210.46 347.2,-203 340.56,-199.05 333.87,-193.96 328.02,-189.06\"/>\n", 4454 "<polygon fill=\"black\" stroke=\"black\" points=\"322.49,-184.26 329.84,-186.46 325.13,-186.55 327.78,-188.84 327.78,-188.84 327.78,-188.84 325.13,-186.55 325.72,-191.22 322.49,-184.26 322.49,-184.26\"/>\n", 4455 "</g>\n", 4456 "</g>\n", 4457 "</svg>\n" 4458 ], 4459 "text/plain": [ 4460 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 4461 ] 4462 }, 4463 "metadata": {}, 4464 "output_type": "display_data" 4465 }, 4466 { 4467 "data": { 4468 "image/svg+xml": [ 4469 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4470 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4471 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4472 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4473 " -->\n", 4474 "<!-- Title: g Pages: 1 -->\n", 4475 "<svg width=\"908pt\" height=\"262pt\"\n", 4476 " viewBox=\"0.00 0.00 908.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4477 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n", 4478 "<title>g</title>\n", 4479 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 904,-258 904,4 -4,4\"/>\n", 4480 "<!-- states -->\n", 4481 "<g id=\"node1\" class=\"node\">\n", 4482 "<title>states</title>\n", 4483 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"29.5,-197 29.5,-218 84.5,-218 84.5,-197 29.5,-197\"/>\n", 4484 "<polyline fill=\"none\" stroke=\"black\" points=\"29.5,-197 84.5,-197 \"/>\n", 4485 "<text text-anchor=\"start\" x=\"41.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 4486 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"84.5,-197 84.5,-218 97.5,-218 97.5,-197 84.5,-197\"/>\n", 4487 "<polyline fill=\"none\" stroke=\"black\" points=\"84.5,-197 97.5,-197 \"/>\n", 4488 "<text text-anchor=\"start\" x=\"87.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4489 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-197 97.5,-218 110.5,-218 110.5,-197 97.5,-197\"/>\n", 4490 "<polyline fill=\"none\" stroke=\"black\" points=\"97.5,-197 110.5,-197 \"/>\n", 4491 "<text text-anchor=\"start\" x=\"100.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4492 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"110.5,-197 110.5,-218 123.5,-218 123.5,-197 110.5,-197\"/>\n", 4493 "<polyline fill=\"none\" stroke=\"black\" points=\"110.5,-197 123.5,-197 \"/>\n", 4494 "<text text-anchor=\"start\" x=\"113.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4495 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"123.5,-197 123.5,-218 143.5,-218 143.5,-197 123.5,-197\"/>\n", 4496 "<polyline fill=\"none\" stroke=\"black\" points=\"123.5,-197 143.5,-197 \"/>\n", 4497 "<text text-anchor=\"start\" x=\"130\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4498 "<polygon fill=\"none\" stroke=\"black\" points=\"29.5,-176 29.5,-197 84.5,-197 84.5,-176 29.5,-176\"/>\n", 4499 "<text text-anchor=\"start\" x=\"44.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 4500 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\"/>\n", 4501 "<polygon fill=\"none\" stroke=\"black\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\"/>\n", 4502 "<text text-anchor=\"start\" x=\"87.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4503 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\"/>\n", 4504 "<polygon fill=\"none\" stroke=\"black\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\"/>\n", 4505 "<text text-anchor=\"start\" x=\"100.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4506 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\"/>\n", 4507 "<polygon fill=\"none\" stroke=\"black\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\"/>\n", 4508 "<text text-anchor=\"start\" x=\"113.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 4509 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\"/>\n", 4510 "<polygon fill=\"none\" stroke=\"black\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\"/>\n", 4511 "<text text-anchor=\"start\" x=\"130\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 4512 "<polygon fill=\"none\" stroke=\"black\" points=\"29.5,-155 29.5,-176 84.5,-176 84.5,-155 29.5,-155\"/>\n", 4513 "<text text-anchor=\"start\" x=\"32.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 4514 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\"/>\n", 4515 "<polygon fill=\"none\" stroke=\"black\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\"/>\n", 4516 "<text text-anchor=\"start\" x=\"87.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 4517 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\"/>\n", 4518 "<polygon fill=\"none\" stroke=\"black\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\"/>\n", 4519 "<text text-anchor=\"start\" x=\"100.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 4520 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\"/>\n", 4521 "<polygon fill=\"none\" stroke=\"black\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\"/>\n", 4522 "<text text-anchor=\"start\" x=\"113.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 4523 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\"/>\n", 4524 "<polygon fill=\"none\" stroke=\"black\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\"/>\n", 4525 "<text text-anchor=\"start\" x=\"126.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 4526 "</g>\n", 4527 "<!-- edges -->\n", 4528 "<g id=\"node2\" class=\"node\">\n", 4529 "<title>edges</title>\n", 4530 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"178.5,-229 178.5,-250 239.5,-250 239.5,-229 178.5,-229\"/>\n", 4531 "<polyline fill=\"none\" stroke=\"black\" points=\"178.5,-229 239.5,-229 \"/>\n", 4532 "<text text-anchor=\"start\" x=\"193.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 4533 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"239.5,-229 239.5,-250 282.5,-250 282.5,-229 239.5,-229\"/>\n", 4534 "<polyline fill=\"none\" stroke=\"black\" points=\"239.5,-229 282.5,-229 \"/>\n", 4535 "<text text-anchor=\"start\" x=\"257.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4536 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-229 282.5,-250 329.5,-250 329.5,-229 282.5,-229\"/>\n", 4537 "<polyline fill=\"none\" stroke=\"black\" points=\"282.5,-229 329.5,-229 \"/>\n", 4538 "<text text-anchor=\"start\" x=\"302.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4539 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"329.5,-229 329.5,-250 372.5,-250 372.5,-229 329.5,-229\"/>\n", 4540 "<polyline fill=\"none\" stroke=\"black\" points=\"329.5,-229 372.5,-229 \"/>\n", 4541 "<text text-anchor=\"start\" x=\"347.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4542 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"372.5,-229 372.5,-250 419.5,-250 419.5,-229 372.5,-229\"/>\n", 4543 "<polyline fill=\"none\" stroke=\"black\" points=\"372.5,-229 419.5,-229 \"/>\n", 4544 "<text text-anchor=\"start\" x=\"392.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 4545 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"419.5,-229 419.5,-250 462.5,-250 462.5,-229 419.5,-229\"/>\n", 4546 "<polyline fill=\"none\" stroke=\"black\" points=\"419.5,-229 462.5,-229 \"/>\n", 4547 "<text text-anchor=\"start\" x=\"437.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 4548 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"462.5,-229 462.5,-250 499.5,-250 499.5,-229 462.5,-229\"/>\n", 4549 "<polyline fill=\"none\" stroke=\"black\" points=\"462.5,-229 499.5,-229 \"/>\n", 4550 "<text text-anchor=\"start\" x=\"477.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 4551 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"499.5,-229 499.5,-250 519.5,-250 519.5,-229 499.5,-229\"/>\n", 4552 "<polyline fill=\"none\" stroke=\"black\" points=\"499.5,-229 519.5,-229 \"/>\n", 4553 "<text text-anchor=\"start\" x=\"506\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 4554 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"519.5,-229 519.5,-250 546.5,-250 546.5,-229 519.5,-229\"/>\n", 4555 "<polyline fill=\"none\" stroke=\"black\" points=\"519.5,-229 546.5,-229 \"/>\n", 4556 "<text text-anchor=\"start\" x=\"529.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 4557 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"546.5,-229 546.5,-250 573.5,-250 573.5,-229 546.5,-229\"/>\n", 4558 "<polyline fill=\"none\" stroke=\"black\" points=\"546.5,-229 573.5,-229 \"/>\n", 4559 "<text text-anchor=\"start\" x=\"556.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 4560 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"573.5,-229 573.5,-250 601.5,-250 601.5,-229 573.5,-229\"/>\n", 4561 "<polyline fill=\"none\" stroke=\"black\" points=\"573.5,-229 601.5,-229 \"/>\n", 4562 "<text text-anchor=\"start\" x=\"580.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 4563 "<polygon fill=\"none\" stroke=\"black\" points=\"178.5,-208 178.5,-229 239.5,-229 239.5,-208 178.5,-208\"/>\n", 4564 "<text text-anchor=\"start\" x=\"195.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 4565 "<polygon fill=\"none\" stroke=\"black\" points=\"239.5,-208 239.5,-229 282.5,-229 282.5,-208 239.5,-208\"/>\n", 4566 "<text text-anchor=\"start\" x=\"242.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 4567 "<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-208 282.5,-229 329.5,-229 329.5,-208 282.5,-208\"/>\n", 4568 "<text text-anchor=\"start\" x=\"285.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 4569 "<polygon fill=\"none\" stroke=\"black\" points=\"329.5,-208 329.5,-229 372.5,-229 372.5,-208 329.5,-208\"/>\n", 4570 "<text text-anchor=\"start\" x=\"332.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 4571 "<polygon fill=\"none\" stroke=\"black\" points=\"372.5,-208 372.5,-229 419.5,-229 419.5,-208 372.5,-208\"/>\n", 4572 "<text text-anchor=\"start\" x=\"375.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 4573 "<polygon fill=\"none\" stroke=\"black\" points=\"419.5,-208 419.5,-229 462.5,-229 462.5,-208 419.5,-208\"/>\n", 4574 "<text text-anchor=\"start\" x=\"422.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 4575 "<polygon fill=\"none\" stroke=\"black\" points=\"462.5,-208 462.5,-229 499.5,-229 499.5,-208 462.5,-208\"/>\n", 4576 "<text text-anchor=\"start\" x=\"477.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4577 "<polygon fill=\"none\" stroke=\"black\" points=\"499.5,-208 499.5,-229 519.5,-229 519.5,-208 499.5,-208\"/>\n", 4578 "<text text-anchor=\"start\" x=\"506\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4579 "<polygon fill=\"none\" stroke=\"black\" points=\"519.5,-208 519.5,-229 546.5,-229 546.5,-208 519.5,-208\"/>\n", 4580 "<text text-anchor=\"start\" x=\"529.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 4581 "<polygon fill=\"none\" stroke=\"black\" points=\"546.5,-208 546.5,-229 573.5,-229 573.5,-208 546.5,-208\"/>\n", 4582 "<text text-anchor=\"start\" x=\"554.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 4583 "<polygon fill=\"none\" stroke=\"black\" points=\"573.5,-208 573.5,-229 601.5,-229 601.5,-208 573.5,-208\"/>\n", 4584 "<text text-anchor=\"start\" x=\"584\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4585 "<polygon fill=\"none\" stroke=\"black\" points=\"178.5,-187 178.5,-208 239.5,-208 239.5,-187 178.5,-187\"/>\n", 4586 "<text text-anchor=\"start\" x=\"199.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 4587 "<polygon fill=\"none\" stroke=\"black\" points=\"239.5,-187 239.5,-208 282.5,-208 282.5,-187 239.5,-187\"/>\n", 4588 "<text text-anchor=\"start\" x=\"250.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4589 "<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-187 282.5,-208 329.5,-208 329.5,-187 282.5,-187\"/>\n", 4590 "<text text-anchor=\"start\" x=\"295.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4591 "<polygon fill=\"none\" stroke=\"black\" points=\"329.5,-187 329.5,-208 372.5,-208 372.5,-187 329.5,-187\"/>\n", 4592 "<text text-anchor=\"start\" x=\"340.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4593 "<polygon fill=\"none\" stroke=\"black\" points=\"372.5,-187 372.5,-208 419.5,-208 419.5,-187 372.5,-187\"/>\n", 4594 "<text text-anchor=\"start\" x=\"385.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4595 "<polygon fill=\"none\" stroke=\"black\" points=\"419.5,-187 419.5,-208 462.5,-208 462.5,-187 419.5,-187\"/>\n", 4596 "<text text-anchor=\"start\" x=\"430.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 4597 "<polygon fill=\"none\" stroke=\"black\" points=\"462.5,-187 462.5,-208 499.5,-208 499.5,-187 462.5,-187\"/>\n", 4598 "<text text-anchor=\"start\" x=\"465.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 4599 "<polygon fill=\"none\" stroke=\"black\" points=\"499.5,-187 499.5,-208 519.5,-208 519.5,-187 499.5,-187\"/>\n", 4600 "<text text-anchor=\"start\" x=\"502.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 4601 "<polygon fill=\"none\" stroke=\"black\" points=\"519.5,-187 519.5,-208 546.5,-208 546.5,-187 519.5,-187\"/>\n", 4602 "<text text-anchor=\"start\" x=\"522.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 4603 "<polygon fill=\"none\" stroke=\"black\" points=\"546.5,-187 546.5,-208 573.5,-208 573.5,-187 546.5,-187\"/>\n", 4604 "<text text-anchor=\"start\" x=\"549.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4605 "<polygon fill=\"none\" stroke=\"black\" points=\"573.5,-187 573.5,-208 601.5,-208 601.5,-187 573.5,-187\"/>\n", 4606 "<text text-anchor=\"start\" x=\"577\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 4607 "<polygon fill=\"none\" stroke=\"black\" points=\"178.5,-166 178.5,-187 239.5,-187 239.5,-166 178.5,-166\"/>\n", 4608 "<text text-anchor=\"start\" x=\"201\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 4609 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"239.5,-166 239.5,-187 282.5,-187 282.5,-166 239.5,-166\"/>\n", 4610 "<polygon fill=\"none\" stroke=\"black\" points=\"239.5,-166 239.5,-187 282.5,-187 282.5,-166 239.5,-166\"/>\n", 4611 "<text text-anchor=\"start\" x=\"257.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4612 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-166 282.5,-187 329.5,-187 329.5,-166 282.5,-166\"/>\n", 4613 "<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-166 282.5,-187 329.5,-187 329.5,-166 282.5,-166\"/>\n", 4614 "<text text-anchor=\"start\" x=\"302.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4615 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"329.5,-166 329.5,-187 372.5,-187 372.5,-166 329.5,-166\"/>\n", 4616 "<polygon fill=\"none\" stroke=\"black\" points=\"329.5,-166 329.5,-187 372.5,-187 372.5,-166 329.5,-166\"/>\n", 4617 "<text text-anchor=\"start\" x=\"347.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4618 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"372.5,-166 372.5,-187 419.5,-187 419.5,-166 372.5,-166\"/>\n", 4619 "<polygon fill=\"none\" stroke=\"black\" points=\"372.5,-166 372.5,-187 419.5,-187 419.5,-166 372.5,-166\"/>\n", 4620 "<text text-anchor=\"start\" x=\"392.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4621 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"419.5,-166 419.5,-187 462.5,-187 462.5,-166 419.5,-166\"/>\n", 4622 "<polygon fill=\"none\" stroke=\"black\" points=\"419.5,-166 419.5,-187 462.5,-187 462.5,-166 419.5,-166\"/>\n", 4623 "<text text-anchor=\"start\" x=\"437.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4624 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"462.5,-166 462.5,-187 499.5,-187 499.5,-166 462.5,-166\"/>\n", 4625 "<polygon fill=\"none\" stroke=\"black\" points=\"462.5,-166 462.5,-187 499.5,-187 499.5,-166 462.5,-166\"/>\n", 4626 "<text text-anchor=\"start\" x=\"477.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4627 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"499.5,-166 499.5,-187 519.5,-187 519.5,-166 499.5,-166\"/>\n", 4628 "<polygon fill=\"none\" stroke=\"black\" points=\"499.5,-166 499.5,-187 519.5,-187 519.5,-166 499.5,-166\"/>\n", 4629 "<text text-anchor=\"start\" x=\"506\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4630 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"519.5,-166 519.5,-187 546.5,-187 546.5,-166 519.5,-166\"/>\n", 4631 "<polygon fill=\"none\" stroke=\"black\" points=\"519.5,-166 519.5,-187 546.5,-187 546.5,-166 519.5,-166\"/>\n", 4632 "<text text-anchor=\"start\" x=\"525.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 4633 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"546.5,-166 546.5,-187 573.5,-187 573.5,-166 546.5,-166\"/>\n", 4634 "<polygon fill=\"none\" stroke=\"black\" points=\"546.5,-166 546.5,-187 573.5,-187 573.5,-166 546.5,-166\"/>\n", 4635 "<text text-anchor=\"start\" x=\"552.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 4636 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"573.5,-166 573.5,-187 601.5,-187 601.5,-166 573.5,-166\"/>\n", 4637 "<polygon fill=\"none\" stroke=\"black\" points=\"573.5,-166 573.5,-187 601.5,-187 601.5,-166 573.5,-166\"/>\n", 4638 "<text text-anchor=\"start\" x=\"576.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~10</text>\n", 4639 "<polygon fill=\"none\" stroke=\"black\" points=\"178.5,-145 178.5,-166 239.5,-166 239.5,-145 178.5,-145\"/>\n", 4640 "<text text-anchor=\"start\" x=\"181.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 4641 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"239.5,-145 239.5,-166 282.5,-166 282.5,-145 239.5,-145\"/>\n", 4642 "<polygon fill=\"none\" stroke=\"black\" points=\"239.5,-145 239.5,-166 282.5,-166 282.5,-145 239.5,-145\"/>\n", 4643 "<text text-anchor=\"start\" x=\"257.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4644 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"282.5,-145 282.5,-166 329.5,-166 329.5,-145 282.5,-145\"/>\n", 4645 "<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-145 282.5,-166 329.5,-166 329.5,-145 282.5,-145\"/>\n", 4646 "<text text-anchor=\"start\" x=\"302.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 4647 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"329.5,-145 329.5,-166 372.5,-166 372.5,-145 329.5,-145\"/>\n", 4648 "<polygon fill=\"none\" stroke=\"black\" points=\"329.5,-145 329.5,-166 372.5,-166 372.5,-145 329.5,-145\"/>\n", 4649 "<text text-anchor=\"start\" x=\"347.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 4650 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"372.5,-145 372.5,-166 419.5,-166 419.5,-145 372.5,-145\"/>\n", 4651 "<polygon fill=\"none\" stroke=\"black\" points=\"372.5,-145 372.5,-166 419.5,-166 419.5,-145 372.5,-145\"/>\n", 4652 "<text text-anchor=\"start\" x=\"392.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 4653 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"419.5,-145 419.5,-166 462.5,-166 462.5,-145 419.5,-145\"/>\n", 4654 "<polygon fill=\"none\" stroke=\"black\" points=\"419.5,-145 419.5,-166 462.5,-166 462.5,-145 419.5,-145\"/>\n", 4655 "<text text-anchor=\"start\" x=\"437.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 4656 "<polygon fill=\"none\" stroke=\"black\" points=\"462.5,-145 462.5,-166 499.5,-166 499.5,-145 462.5,-145\"/>\n", 4657 "<text text-anchor=\"start\" x=\"477.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4658 "<polygon fill=\"none\" stroke=\"black\" points=\"499.5,-145 499.5,-166 519.5,-166 519.5,-145 499.5,-145\"/>\n", 4659 "<text text-anchor=\"start\" x=\"506\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4660 "<polygon fill=\"none\" stroke=\"black\" points=\"519.5,-145 519.5,-166 546.5,-166 546.5,-145 519.5,-145\"/>\n", 4661 "<text text-anchor=\"start\" x=\"529.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4662 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"546.5,-145 546.5,-166 573.5,-166 573.5,-145 546.5,-145\"/>\n", 4663 "<polygon fill=\"none\" stroke=\"black\" points=\"546.5,-145 546.5,-166 573.5,-166 573.5,-145 546.5,-145\"/>\n", 4664 "<text text-anchor=\"start\" x=\"553\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 4665 "<polygon fill=\"none\" stroke=\"black\" points=\"573.5,-145 573.5,-166 601.5,-166 601.5,-145 573.5,-145\"/>\n", 4666 "<text text-anchor=\"start\" x=\"584\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4667 "<polygon fill=\"none\" stroke=\"black\" points=\"178.5,-124 178.5,-145 239.5,-145 239.5,-124 178.5,-124\"/>\n", 4668 "<text text-anchor=\"start\" x=\"201\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 4669 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"239.5,-124 239.5,-145 282.5,-145 282.5,-124 239.5,-124\"/>\n", 4670 "<polygon fill=\"none\" stroke=\"black\" points=\"239.5,-124 239.5,-145 282.5,-145 282.5,-124 239.5,-124\"/>\n", 4671 "<text text-anchor=\"start\" x=\"257.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4672 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"282.5,-124 282.5,-145 329.5,-145 329.5,-124 282.5,-124\"/>\n", 4673 "<polygon fill=\"none\" stroke=\"black\" points=\"282.5,-124 282.5,-145 329.5,-145 329.5,-124 282.5,-124\"/>\n", 4674 "<text text-anchor=\"start\" x=\"302.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4675 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"329.5,-124 329.5,-145 372.5,-145 372.5,-124 329.5,-124\"/>\n", 4676 "<polygon fill=\"none\" stroke=\"black\" points=\"329.5,-124 329.5,-145 372.5,-145 372.5,-124 329.5,-124\"/>\n", 4677 "<text text-anchor=\"start\" x=\"347.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4678 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"372.5,-124 372.5,-145 419.5,-145 419.5,-124 372.5,-124\"/>\n", 4679 "<polygon fill=\"none\" stroke=\"black\" points=\"372.5,-124 372.5,-145 419.5,-145 419.5,-124 372.5,-124\"/>\n", 4680 "<text text-anchor=\"start\" x=\"392.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4681 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"419.5,-124 419.5,-145 462.5,-145 462.5,-124 419.5,-124\"/>\n", 4682 "<polygon fill=\"none\" stroke=\"black\" points=\"419.5,-124 419.5,-145 462.5,-145 462.5,-124 419.5,-124\"/>\n", 4683 "<text text-anchor=\"start\" x=\"437.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4684 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"462.5,-124 462.5,-145 499.5,-145 499.5,-124 462.5,-124\"/>\n", 4685 "<polygon fill=\"none\" stroke=\"black\" points=\"462.5,-124 462.5,-145 499.5,-145 499.5,-124 462.5,-124\"/>\n", 4686 "<text text-anchor=\"start\" x=\"477.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4687 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"499.5,-124 499.5,-145 519.5,-145 519.5,-124 499.5,-124\"/>\n", 4688 "<polygon fill=\"none\" stroke=\"black\" points=\"499.5,-124 499.5,-145 519.5,-145 519.5,-124 499.5,-124\"/>\n", 4689 "<text text-anchor=\"start\" x=\"506\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4690 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"519.5,-124 519.5,-145 546.5,-145 546.5,-124 519.5,-124\"/>\n", 4691 "<polygon fill=\"none\" stroke=\"black\" points=\"519.5,-124 519.5,-145 546.5,-145 546.5,-124 519.5,-124\"/>\n", 4692 "<text text-anchor=\"start\" x=\"529.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4693 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"546.5,-124 546.5,-145 573.5,-145 573.5,-124 546.5,-124\"/>\n", 4694 "<polygon fill=\"none\" stroke=\"black\" points=\"546.5,-124 546.5,-145 573.5,-145 573.5,-124 546.5,-124\"/>\n", 4695 "<text text-anchor=\"start\" x=\"556.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4696 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"573.5,-124 573.5,-145 601.5,-145 601.5,-124 573.5,-124\"/>\n", 4697 "<polygon fill=\"none\" stroke=\"black\" points=\"573.5,-124 573.5,-145 601.5,-145 601.5,-124 573.5,-124\"/>\n", 4698 "<text text-anchor=\"start\" x=\"584\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4699 "</g>\n", 4700 "<!-- dests -->\n", 4701 "<g id=\"node3\" class=\"node\">\n", 4702 "<title>dests</title>\n", 4703 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"635.5,-187 635.5,-208 684.5,-208 684.5,-187 635.5,-187\"/>\n", 4704 "<polyline fill=\"none\" stroke=\"black\" points=\"635.5,-187 684.5,-187 \"/>\n", 4705 "<text text-anchor=\"start\" x=\"646\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n", 4706 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"684.5,-187 684.5,-208 705.5,-208 705.5,-187 684.5,-187\"/>\n", 4707 "<polyline fill=\"none\" stroke=\"black\" points=\"684.5,-187 705.5,-187 \"/>\n", 4708 "<text text-anchor=\"start\" x=\"687.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 4709 "<polyline fill=\"none\" stroke=\"black\" points=\"705.5,-187 718.5,-187 \"/>\n", 4710 "<polyline fill=\"none\" stroke=\"black\" points=\"718.5,-187 731.5,-187 \"/>\n", 4711 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"731.5,-187 731.5,-208 752.5,-208 752.5,-187 731.5,-187\"/>\n", 4712 "<polyline fill=\"none\" stroke=\"black\" points=\"731.5,-187 752.5,-187 \"/>\n", 4713 "<text text-anchor=\"start\" x=\"734.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 4714 "<polyline fill=\"none\" stroke=\"black\" points=\"752.5,-187 765.5,-187 \"/>\n", 4715 "<polyline fill=\"none\" stroke=\"black\" points=\"765.5,-187 778.5,-187 \"/>\n", 4716 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"778.5,-187 778.5,-208 799.5,-208 799.5,-187 778.5,-187\"/>\n", 4717 "<polyline fill=\"none\" stroke=\"black\" points=\"778.5,-187 799.5,-187 \"/>\n", 4718 "<text text-anchor=\"start\" x=\"781.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 4719 "<polyline fill=\"none\" stroke=\"black\" points=\"799.5,-187 812.5,-187 \"/>\n", 4720 "<polyline fill=\"none\" stroke=\"black\" points=\"812.5,-187 825.5,-187 \"/>\n", 4721 "<polyline fill=\"none\" stroke=\"black\" points=\"825.5,-187 838.5,-187 \"/>\n", 4722 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"838.5,-187 838.5,-208 866.5,-208 866.5,-187 838.5,-187\"/>\n", 4723 "<polyline fill=\"none\" stroke=\"black\" points=\"838.5,-187 866.5,-187 \"/>\n", 4724 "<text text-anchor=\"start\" x=\"841.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~10</text>\n", 4725 "<polyline fill=\"none\" stroke=\"black\" points=\"866.5,-187 879.5,-187 \"/>\n", 4726 "<polyline fill=\"none\" stroke=\"black\" points=\"879.5,-187 892.5,-187 \"/>\n", 4727 "<polygon fill=\"none\" stroke=\"black\" points=\"635.5,-166 635.5,-187 684.5,-187 684.5,-166 635.5,-166\"/>\n", 4728 "<text text-anchor=\"start\" x=\"638.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n", 4729 "<polygon fill=\"none\" stroke=\"black\" points=\"684.5,-166 684.5,-187 705.5,-187 705.5,-166 684.5,-166\"/>\n", 4730 "<text text-anchor=\"start\" x=\"688\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 4731 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"705.5,-166 705.5,-187 718.5,-187 718.5,-166 705.5,-166\"/>\n", 4732 "<polygon fill=\"none\" stroke=\"black\" points=\"705.5,-166 705.5,-187 718.5,-187 718.5,-166 705.5,-166\"/>\n", 4733 "<text text-anchor=\"start\" x=\"708.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4734 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"718.5,-166 718.5,-187 731.5,-187 731.5,-166 718.5,-166\"/>\n", 4735 "<polygon fill=\"none\" stroke=\"black\" points=\"718.5,-166 718.5,-187 731.5,-187 731.5,-166 718.5,-166\"/>\n", 4736 "<text text-anchor=\"start\" x=\"721.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4737 "<polygon fill=\"none\" stroke=\"black\" points=\"731.5,-166 731.5,-187 752.5,-187 752.5,-166 731.5,-166\"/>\n", 4738 "<text text-anchor=\"start\" x=\"735\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 4739 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"752.5,-166 752.5,-187 765.5,-187 765.5,-166 752.5,-166\"/>\n", 4740 "<polygon fill=\"none\" stroke=\"black\" points=\"752.5,-166 752.5,-187 765.5,-187 765.5,-166 752.5,-166\"/>\n", 4741 "<text text-anchor=\"start\" x=\"755.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4742 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"765.5,-166 765.5,-187 778.5,-187 778.5,-166 765.5,-166\"/>\n", 4743 "<polygon fill=\"none\" stroke=\"black\" points=\"765.5,-166 765.5,-187 778.5,-187 778.5,-166 765.5,-166\"/>\n", 4744 "<text text-anchor=\"start\" x=\"768.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4745 "<polygon fill=\"none\" stroke=\"black\" points=\"778.5,-166 778.5,-187 799.5,-187 799.5,-166 778.5,-166\"/>\n", 4746 "<text text-anchor=\"start\" x=\"782\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n", 4747 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"799.5,-166 799.5,-187 812.5,-187 812.5,-166 799.5,-166\"/>\n", 4748 "<polygon fill=\"none\" stroke=\"black\" points=\"799.5,-166 799.5,-187 812.5,-187 812.5,-166 799.5,-166\"/>\n", 4749 "<text text-anchor=\"start\" x=\"802.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4750 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"812.5,-166 812.5,-187 825.5,-187 825.5,-166 812.5,-166\"/>\n", 4751 "<polygon fill=\"none\" stroke=\"black\" points=\"812.5,-166 812.5,-187 825.5,-187 825.5,-166 812.5,-166\"/>\n", 4752 "<text text-anchor=\"start\" x=\"815.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 4753 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"825.5,-166 825.5,-187 838.5,-187 838.5,-166 825.5,-166\"/>\n", 4754 "<polygon fill=\"none\" stroke=\"black\" points=\"825.5,-166 825.5,-187 838.5,-187 838.5,-166 825.5,-166\"/>\n", 4755 "<text text-anchor=\"start\" x=\"828.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4756 "<polygon fill=\"none\" stroke=\"black\" points=\"838.5,-166 838.5,-187 866.5,-187 866.5,-166 838.5,-166\"/>\n", 4757 "<text text-anchor=\"start\" x=\"845.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 4758 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"866.5,-166 866.5,-187 879.5,-187 879.5,-166 866.5,-166\"/>\n", 4759 "<polygon fill=\"none\" stroke=\"black\" points=\"866.5,-166 866.5,-187 879.5,-187 879.5,-166 866.5,-166\"/>\n", 4760 "<text text-anchor=\"start\" x=\"869.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 4761 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"879.5,-166 879.5,-187 892.5,-187 892.5,-166 879.5,-166\"/>\n", 4762 "<polygon fill=\"none\" stroke=\"black\" points=\"879.5,-166 879.5,-187 892.5,-187 892.5,-166 879.5,-166\"/>\n", 4763 "<text text-anchor=\"start\" x=\"882.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 4764 "</g>\n", 4765 "<!-- meta -->\n", 4766 "<g id=\"node4\" class=\"node\">\n", 4767 "<title>meta</title>\n", 4768 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 4769 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"76.5,-61 76.5,-80 165.5,-80 165.5,-61 76.5,-61\"/>\n", 4770 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 4771 "<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 4772 "<text text-anchor=\"start\" x=\"78.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 4773 "<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 4774 "<text text-anchor=\"start\" x=\"78.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 4775 "<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 4776 "<text text-anchor=\"start\" x=\"78.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 4777 "</g>\n", 4778 "<!-- meta->states -->\n", 4779 "</g>\n", 4780 "</svg>\n" 4781 ], 4782 "text/plain": [ 4783 "<spot.jupyter.SVG object>" 4784 ] 4785 }, 4786 "metadata": {}, 4787 "output_type": "display_data" 4788 }, 4789 { 4790 "data": { 4791 "image/svg+xml": [ 4792 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4793 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4794 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4795 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4796 " -->\n", 4797 "<!-- Pages: 1 -->\n", 4798 "<svg width=\"483pt\" height=\"278pt\"\n", 4799 " viewBox=\"0.00 0.00 483.30 278.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4800 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 274)\">\n", 4801 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-274 479.3,-274 479.3,4 -4,4\"/>\n", 4802 "<text text-anchor=\"start\" x=\"185.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">Fin(</text>\n", 4803 "<text text-anchor=\"start\" x=\"210.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4804 "<text text-anchor=\"start\" x=\"226.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">) & Inf(</text>\n", 4805 "<text text-anchor=\"start\" x=\"269.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4806 "<text text-anchor=\"start\" x=\"285.65\" y=\"-255.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 4807 "<text text-anchor=\"start\" x=\"208.65\" y=\"-241.8\" font-family=\"Lato\" font-size=\"14.00\">[Rabin 1]</text>\n", 4808 "<!-- I -->\n", 4809 "<!-- -7 -->\n", 4810 "<g id=\"node2\" class=\"node\">\n", 4811 "<title>-7</title>\n", 4812 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"39.8\" cy=\"-52\" rx=\"1.8\" ry=\"1.8\"/>\n", 4813 "</g>\n", 4814 "<!-- I->-7 -->\n", 4815 "<g id=\"edge1\" class=\"edge\">\n", 4816 "<title>I->-7</title>\n", 4817 "<path fill=\"none\" stroke=\"black\" d=\"M1.11,-52C2.65,-52 20.2,-52 30.8,-52\"/>\n", 4818 "<polygon fill=\"none\" stroke=\"black\" points=\"30.92,-54.45 37.92,-52 30.92,-49.55 30.92,-54.45\"/>\n", 4819 "</g>\n", 4820 "<!-- 0 -->\n", 4821 "<g id=\"node3\" class=\"node\">\n", 4822 "<title>0</title>\n", 4823 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"177.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n", 4824 "<text text-anchor=\"middle\" x=\"177.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 4825 "</g>\n", 4826 "<!-- -7->0 -->\n", 4827 "<g id=\"edge2\" class=\"edge\">\n", 4828 "<title>-7->0</title>\n", 4829 "<path fill=\"none\" stroke=\"black\" d=\"M41.86,-52.21C48.55,-53.52 85.58,-61.01 114.6,-71 128.15,-75.66 142.87,-82.01 154.57,-87.39\"/>\n", 4830 "<polygon fill=\"black\" stroke=\"black\" points=\"161.07,-90.42 153.4,-90.32 157.9,-88.94 154.73,-87.46 154.73,-87.46 154.73,-87.46 157.9,-88.94 156.06,-84.61 161.07,-90.42 161.07,-90.42\"/>\n", 4831 "</g>\n", 4832 "<!-- 1 -->\n", 4833 "<g id=\"node4\" class=\"node\">\n", 4834 "<title>1</title>\n", 4835 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"454.8\" cy=\"-69\" rx=\"18\" ry=\"18\"/>\n", 4836 "<text text-anchor=\"middle\" x=\"454.8\" y=\"-65.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4837 "</g>\n", 4838 "<!-- -7->1 -->\n", 4839 "<g id=\"edge3\" class=\"edge\">\n", 4840 "<title>-7->1</title>\n", 4841 "<path fill=\"none\" stroke=\"black\" d=\"M41.35,-50.71C44.89,-42.71 65.17,0 95.6,0 95.6,0 95.6,0 399,0 422.67,0 437.75,-25.21 445.97,-45.16\"/>\n", 4842 "<polygon fill=\"black\" stroke=\"black\" points=\"448.6,-51.94 443.14,-46.55 447.34,-48.68 446.07,-45.42 446.07,-45.42 446.07,-45.42 447.34,-48.68 449.01,-44.28 448.6,-51.94 448.6,-51.94\"/>\n", 4843 "</g>\n", 4844 "<!-- 2 -->\n", 4845 "<g id=\"node5\" class=\"node\">\n", 4846 "<title>2</title>\n", 4847 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"96.6\" cy=\"-98\" rx=\"18\" ry=\"18\"/>\n", 4848 "<text text-anchor=\"middle\" x=\"96.6\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n", 4849 "</g>\n", 4850 "<!-- -7->2 -->\n", 4851 "<g id=\"edge4\" class=\"edge\">\n", 4852 "<title>-7->2</title>\n", 4853 "<path fill=\"none\" stroke=\"black\" d=\"M41.75,-52.8C45.9,-56.29 62.86,-70.52 76.65,-82.09\"/>\n", 4854 "<polygon fill=\"black\" stroke=\"black\" points=\"82.32,-86.85 74.93,-84.77 79.64,-84.6 76.96,-82.35 76.96,-82.35 76.96,-82.35 79.64,-84.6 78.99,-79.94 82.32,-86.85 82.32,-86.85\"/>\n", 4855 "</g>\n", 4856 "<!-- 0->0 -->\n", 4857 "<g id=\"edge5\" class=\"edge\">\n", 4858 "<title>0->0</title>\n", 4859 "<path fill=\"none\" stroke=\"black\" d=\"M170.57,-114.66C169.01,-124.62 171.35,-134 177.6,-134 182.29,-134 184.78,-128.73 185.07,-121.89\"/>\n", 4860 "<polygon fill=\"black\" stroke=\"black\" points=\"184.63,-114.66 188.2,-121.46 184.84,-118.16 185.06,-121.65 185.06,-121.65 185.06,-121.65 184.84,-118.16 181.91,-121.84 184.63,-114.66 184.63,-114.66\"/>\n", 4861 "<text text-anchor=\"start\" x=\"159.1\" y=\"-152.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 4862 "<text text-anchor=\"start\" x=\"169.6\" y=\"-137.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4863 "</g>\n", 4864 "<!-- 0->1 -->\n", 4865 "<g id=\"edge6\" class=\"edge\">\n", 4866 "<title>0->1</title>\n", 4867 "<path fill=\"none\" stroke=\"black\" d=\"M181.88,-115.98C188.56,-146.22 206.76,-204 248.4,-204 248.4,-204 248.4,-204 399,-204 445.72,-204 453.55,-133.74 454.29,-94.59\"/>\n", 4868 "<polygon fill=\"black\" stroke=\"black\" points=\"454.35,-87.21 457.44,-94.23 454.32,-90.71 454.29,-94.21 454.29,-94.21 454.29,-94.21 454.32,-90.71 451.14,-94.18 454.35,-87.21 454.35,-87.21\"/>\n", 4869 "<text text-anchor=\"start\" x=\"303.2\" y=\"-222.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 4870 "<text text-anchor=\"start\" x=\"315.7\" y=\"-207.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4871 "</g>\n", 4872 "<!-- -1 -->\n", 4873 "<g id=\"node6\" class=\"node\">\n", 4874 "<title>-1</title>\n", 4875 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"249.4\" cy=\"-96\" rx=\"1.8\" ry=\"1.8\"/>\n", 4876 "</g>\n", 4877 "<!-- 0->-1 -->\n", 4878 "<g id=\"edge7\" class=\"edge\">\n", 4879 "<title>0->-1</title>\n", 4880 "<path fill=\"none\" stroke=\"black\" d=\"M195.85,-97.51C210.05,-97.1 229.53,-96.54 240.34,-96.23\"/>\n", 4881 "<polygon fill=\"none\" stroke=\"black\" points=\"240.67,-98.67 247.6,-96.02 240.53,-93.77 240.67,-98.67\"/>\n", 4882 "<text text-anchor=\"start\" x=\"218.1\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 4883 "<text text-anchor=\"start\" x=\"213.6\" y=\"-99.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4884 "</g>\n", 4885 "<!-- 1->0 -->\n", 4886 "<g id=\"edge10\" class=\"edge\">\n", 4887 "<title>1->0</title>\n", 4888 "<path fill=\"none\" stroke=\"black\" d=\"M439.14,-59.11C428.48,-52.88 413.45,-46 399,-46 248.4,-46 248.4,-46 248.4,-46 225.99,-46 206.12,-63.45 193.36,-78.14\"/>\n", 4889 "<polygon fill=\"black\" stroke=\"black\" points=\"188.67,-83.79 190.72,-76.39 190.91,-81.1 193.14,-78.4 193.14,-78.4 193.14,-78.4 190.91,-81.1 195.57,-80.42 188.67,-83.79 188.67,-83.79\"/>\n", 4890 "<text text-anchor=\"start\" x=\"305.2\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 4891 "<text text-anchor=\"start\" x=\"315.7\" y=\"-49.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4892 "</g>\n", 4893 "<!-- 1->1 -->\n", 4894 "<g id=\"edge11\" class=\"edge\">\n", 4895 "<title>1->1</title>\n", 4896 "<path fill=\"none\" stroke=\"black\" d=\"M452.63,-87.15C452.3,-96.54 453.02,-105 454.8,-105 456.11,-105 456.85,-100.44 457.01,-94.3\"/>\n", 4897 "<polygon fill=\"black\" stroke=\"black\" points=\"456.97,-87.15 460.16,-94.13 456.99,-90.65 457.01,-94.15 457.01,-94.15 457.01,-94.15 456.99,-90.65 453.86,-94.17 456.97,-87.15 456.97,-87.15\"/>\n", 4898 "<text text-anchor=\"start\" x=\"434.3\" y=\"-123.8\" font-family=\"Lato\" font-size=\"14.00\">!a & !b</text>\n", 4899 "<text text-anchor=\"start\" x=\"446.8\" y=\"-108.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4900 "</g>\n", 4901 "<!-- 1->1 -->\n", 4902 "<g id=\"edge12\" class=\"edge\">\n", 4903 "<title>1->1</title>\n", 4904 "<path fill=\"none\" stroke=\"black\" d=\"M451.43,-86.91C449.18,-108 450.3,-135 454.8,-135 458.81,-135 460.14,-113.58 458.79,-94\"/>\n", 4905 "<polygon fill=\"black\" stroke=\"black\" points=\"458.18,-86.91 461.92,-93.61 458.48,-90.39 458.78,-93.88 458.78,-93.88 458.78,-93.88 458.48,-90.39 455.64,-94.15 458.18,-86.91 458.18,-86.91\"/>\n", 4906 "<text text-anchor=\"start\" x=\"436.3\" y=\"-153.8\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 4907 "<text text-anchor=\"start\" x=\"446.8\" y=\"-138.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4908 "</g>\n", 4909 "<!-- 1->1 -->\n", 4910 "<g id=\"edge13\" class=\"edge\">\n", 4911 "<title>1->1</title>\n", 4912 "<path fill=\"none\" stroke=\"black\" d=\"M450.69,-86.77C446.12,-117.47 447.49,-165 454.8,-165 461.57,-165 463.25,-124.26 459.83,-93.86\"/>\n", 4913 "<polygon fill=\"black\" stroke=\"black\" points=\"458.91,-86.77 462.94,-93.31 459.36,-90.24 459.81,-93.71 459.81,-93.71 459.81,-93.71 459.36,-90.24 456.69,-94.12 458.91,-86.77 458.91,-86.77\"/>\n", 4914 "<text text-anchor=\"start\" x=\"450.3\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4915 "<text text-anchor=\"start\" x=\"438.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4916 "<text text-anchor=\"start\" x=\"454.8\" y=\"-168.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n", 4917 "</g>\n", 4918 "<!-- 2->0 -->\n", 4919 "<g id=\"edge14\" class=\"edge\">\n", 4920 "<title>2->0</title>\n", 4921 "<path fill=\"none\" stroke=\"black\" d=\"M114.74,-98C125.72,-98 140.12,-98 152.27,-98\"/>\n", 4922 "<polygon fill=\"black\" stroke=\"black\" points=\"159.49,-98 152.49,-101.15 155.99,-98 152.49,-98 152.49,-98 152.49,-98 155.99,-98 152.49,-94.85 159.49,-98 159.49,-98\"/>\n", 4923 "<text text-anchor=\"middle\" x=\"137.1\" y=\"-101.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4924 "</g>\n", 4925 "<!-- -1->0 -->\n", 4926 "<g id=\"edge8\" class=\"edge\">\n", 4927 "<title>-1->0</title>\n", 4928 "<path fill=\"none\" stroke=\"black\" d=\"M247.39,-95.71C244.6,-94.91 236.5,-92.73 229.6,-92 220.82,-91.08 211.21,-91.76 202.71,-92.96\"/>\n", 4929 "<polygon fill=\"black\" stroke=\"black\" points=\"195.59,-94.1 202,-89.88 199.04,-93.55 202.5,-92.99 202.5,-92.99 202.5,-92.99 199.04,-93.55 203,-96.1 195.59,-94.1 195.59,-94.1\"/>\n", 4930 "</g>\n", 4931 "<!-- 3 -->\n", 4932 "<g id=\"node7\" class=\"node\">\n", 4933 "<title>3</title>\n", 4934 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"323.7\" cy=\"-112\" rx=\"18\" ry=\"18\"/>\n", 4935 "<text text-anchor=\"middle\" x=\"323.7\" y=\"-108.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n", 4936 "</g>\n", 4937 "<!-- -1->3 -->\n", 4938 "<g id=\"edge9\" class=\"edge\">\n", 4939 "<title>-1->3</title>\n", 4940 "<path fill=\"none\" stroke=\"black\" d=\"M251.28,-95.72C255.25,-94.51 271.99,-89.84 285.2,-93 290.79,-94.34 296.49,-96.65 301.7,-99.21\"/>\n", 4941 "<polygon fill=\"black\" stroke=\"black\" points=\"308,-102.53 300.34,-102.05 304.9,-100.9 301.81,-99.26 301.81,-99.26 301.81,-99.26 304.9,-100.9 303.28,-96.48 308,-102.53 308,-102.53\"/>\n", 4942 "</g>\n", 4943 "<!-- 3->-1 -->\n", 4944 "<g id=\"edge18\" class=\"edge\">\n", 4945 "<title>3->-1</title>\n", 4946 "<path fill=\"none\" stroke=\"black\" d=\"M306.04,-108.31C291.03,-104.99 269.61,-100.25 258.23,-97.73\"/>\n", 4947 "<polygon fill=\"none\" stroke=\"black\" points=\"258.58,-95.3 251.21,-96.18 257.52,-100.08 258.58,-95.3\"/>\n", 4948 "<text text-anchor=\"start\" x=\"272.7\" y=\"-121.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 4949 "<text text-anchor=\"start\" x=\"269.2\" y=\"-106.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4950 "</g>\n", 4951 "<!-- -4 -->\n", 4952 "<g id=\"node8\" class=\"node\">\n", 4953 "<title>-4</title>\n", 4954 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"398\" cy=\"-112\" rx=\"1.8\" ry=\"1.8\"/>\n", 4955 "</g>\n", 4956 "<!-- 3->-4 -->\n", 4957 "<g id=\"edge15\" class=\"edge\">\n", 4958 "<title>3->-4</title>\n", 4959 "<path fill=\"none\" stroke=\"black\" d=\"M341.83,-112C356.67,-112 377.48,-112 388.83,-112\"/>\n", 4960 "<polygon fill=\"none\" stroke=\"black\" points=\"389.15,-114.45 396.15,-112 389.15,-109.55 389.15,-114.45\"/>\n", 4961 "<text text-anchor=\"start\" x=\"364.7\" y=\"-130.8\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 4962 "<text text-anchor=\"start\" x=\"362.2\" y=\"-115.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 4963 "</g>\n", 4964 "<!-- -4->0 -->\n", 4965 "<g id=\"edge16\" class=\"edge\">\n", 4966 "<title>-4->0</title>\n", 4967 "<path fill=\"none\" stroke=\"black\" d=\"M396.72,-113.3C395.54,-118.39 390.5,-136.96 378.2,-144 336.07,-168.11 317.5,-141.86 269.2,-137 244.42,-134.51 236.21,-140.45 213.6,-130 206.76,-126.84 200.34,-121.85 194.91,-116.74\"/>\n", 4968 "<polygon fill=\"black\" stroke=\"black\" points=\"189.84,-111.66 197.01,-114.39 192.31,-114.14 194.78,-116.61 194.78,-116.61 194.78,-116.61 192.31,-114.14 192.55,-118.84 189.84,-111.66 189.84,-111.66\"/>\n", 4969 "</g>\n", 4970 "<!-- -4->1 -->\n", 4971 "<g id=\"edge17\" class=\"edge\">\n", 4972 "<title>-4->1</title>\n", 4973 "<path fill=\"none\" stroke=\"black\" d=\"M399.95,-111.25C404.08,-108.01 420.86,-94.85 434.6,-84.06\"/>\n", 4974 "<polygon fill=\"black\" stroke=\"black\" points=\"440.26,-79.62 436.7,-86.42 437.51,-81.78 434.76,-83.94 434.76,-83.94 434.76,-83.94 437.51,-81.78 432.81,-81.47 440.26,-79.62 440.26,-79.62\"/>\n", 4975 "</g>\n", 4976 "</g>\n", 4977 "</svg>\n" 4978 ], 4979 "text/plain": [ 4980 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c40c2b70> >" 4981 ] 4982 }, 4983 "metadata": {}, 4984 "output_type": "display_data" 4985 }, 4986 { 4987 "data": { 4988 "image/svg+xml": [ 4989 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 4990 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 4991 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 4992 "<!-- Generated by graphviz version 2.43.0 (0)\n", 4993 " -->\n", 4994 "<!-- Title: g Pages: 1 -->\n", 4995 "<svg width=\"853pt\" height=\"262pt\"\n", 4996 " viewBox=\"0.00 0.00 853.00 262.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 4997 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 258)\">\n", 4998 "<title>g</title>\n", 4999 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-258 849,-258 849,4 -4,4\"/>\n", 5000 "<!-- states -->\n", 5001 "<g id=\"node1\" class=\"node\">\n", 5002 "<title>states</title>\n", 5003 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"29.5,-197 29.5,-218 84.5,-218 84.5,-197 29.5,-197\"/>\n", 5004 "<polyline fill=\"none\" stroke=\"black\" points=\"29.5,-197 84.5,-197 \"/>\n", 5005 "<text text-anchor=\"start\" x=\"41.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 5006 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"84.5,-197 84.5,-218 97.5,-218 97.5,-197 84.5,-197\"/>\n", 5007 "<polyline fill=\"none\" stroke=\"black\" points=\"84.5,-197 97.5,-197 \"/>\n", 5008 "<text text-anchor=\"start\" x=\"87.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5009 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"97.5,-197 97.5,-218 110.5,-218 110.5,-197 97.5,-197\"/>\n", 5010 "<polyline fill=\"none\" stroke=\"black\" points=\"97.5,-197 110.5,-197 \"/>\n", 5011 "<text text-anchor=\"start\" x=\"100.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5012 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"110.5,-197 110.5,-218 123.5,-218 123.5,-197 110.5,-197\"/>\n", 5013 "<polyline fill=\"none\" stroke=\"black\" points=\"110.5,-197 123.5,-197 \"/>\n", 5014 "<text text-anchor=\"start\" x=\"113.5\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5015 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"123.5,-197 123.5,-218 143.5,-218 143.5,-197 123.5,-197\"/>\n", 5016 "<polyline fill=\"none\" stroke=\"black\" points=\"123.5,-197 143.5,-197 \"/>\n", 5017 "<text text-anchor=\"start\" x=\"130\" y=\"-203.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5018 "<polygon fill=\"none\" stroke=\"black\" points=\"29.5,-176 29.5,-197 84.5,-197 84.5,-176 29.5,-176\"/>\n", 5019 "<text text-anchor=\"start\" x=\"44.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 5020 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\"/>\n", 5021 "<polygon fill=\"none\" stroke=\"black\" points=\"84.5,-176 84.5,-197 97.5,-197 97.5,-176 84.5,-176\"/>\n", 5022 "<text text-anchor=\"start\" x=\"87.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5023 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\"/>\n", 5024 "<polygon fill=\"none\" stroke=\"black\" points=\"97.5,-176 97.5,-197 110.5,-197 110.5,-176 97.5,-176\"/>\n", 5025 "<text text-anchor=\"start\" x=\"100.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5026 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\"/>\n", 5027 "<polygon fill=\"none\" stroke=\"black\" points=\"110.5,-176 110.5,-197 123.5,-197 123.5,-176 110.5,-176\"/>\n", 5028 "<text text-anchor=\"start\" x=\"113.5\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 5029 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\"/>\n", 5030 "<polygon fill=\"none\" stroke=\"black\" points=\"123.5,-176 123.5,-197 143.5,-197 143.5,-176 123.5,-176\"/>\n", 5031 "<text text-anchor=\"start\" x=\"130\" y=\"-182.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 5032 "<polygon fill=\"none\" stroke=\"black\" points=\"29.5,-155 29.5,-176 84.5,-176 84.5,-155 29.5,-155\"/>\n", 5033 "<text text-anchor=\"start\" x=\"32.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 5034 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\"/>\n", 5035 "<polygon fill=\"none\" stroke=\"black\" points=\"84.5,-155 84.5,-176 97.5,-176 97.5,-155 84.5,-155\"/>\n", 5036 "<text text-anchor=\"start\" x=\"87.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5037 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\"/>\n", 5038 "<polygon fill=\"none\" stroke=\"black\" points=\"97.5,-155 97.5,-176 110.5,-176 110.5,-155 97.5,-155\"/>\n", 5039 "<text text-anchor=\"start\" x=\"100.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 5040 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\"/>\n", 5041 "<polygon fill=\"none\" stroke=\"black\" points=\"110.5,-155 110.5,-176 123.5,-176 123.5,-155 110.5,-155\"/>\n", 5042 "<text text-anchor=\"start\" x=\"113.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 5043 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\"/>\n", 5044 "<polygon fill=\"none\" stroke=\"black\" points=\"123.5,-155 123.5,-176 143.5,-176 143.5,-155 123.5,-155\"/>\n", 5045 "<text text-anchor=\"start\" x=\"126.5\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 5046 "</g>\n", 5047 "<!-- edges -->\n", 5048 "<g id=\"node2\" class=\"node\">\n", 5049 "<title>edges</title>\n", 5050 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"177.5,-229 177.5,-250 238.5,-250 238.5,-229 177.5,-229\"/>\n", 5051 "<polyline fill=\"none\" stroke=\"black\" points=\"177.5,-229 238.5,-229 \"/>\n", 5052 "<text text-anchor=\"start\" x=\"192.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 5053 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"238.5,-229 238.5,-250 281.5,-250 281.5,-229 238.5,-229\"/>\n", 5054 "<polyline fill=\"none\" stroke=\"black\" points=\"238.5,-229 281.5,-229 \"/>\n", 5055 "<text text-anchor=\"start\" x=\"256.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5056 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"281.5,-229 281.5,-250 328.5,-250 328.5,-229 281.5,-229\"/>\n", 5057 "<polyline fill=\"none\" stroke=\"black\" points=\"281.5,-229 328.5,-229 \"/>\n", 5058 "<text text-anchor=\"start\" x=\"301.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5059 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"328.5,-229 328.5,-250 355.5,-250 355.5,-229 328.5,-229\"/>\n", 5060 "<polyline fill=\"none\" stroke=\"black\" points=\"328.5,-229 355.5,-229 \"/>\n", 5061 "<text text-anchor=\"start\" x=\"338.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5062 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"355.5,-229 355.5,-250 398.5,-250 398.5,-229 355.5,-229\"/>\n", 5063 "<polyline fill=\"none\" stroke=\"black\" points=\"355.5,-229 398.5,-229 \"/>\n", 5064 "<text text-anchor=\"start\" x=\"373.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5065 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"398.5,-229 398.5,-250 445.5,-250 445.5,-229 398.5,-229\"/>\n", 5066 "<polyline fill=\"none\" stroke=\"black\" points=\"398.5,-229 445.5,-229 \"/>\n", 5067 "<text text-anchor=\"start\" x=\"418.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5068 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"445.5,-229 445.5,-250 488.5,-250 488.5,-229 445.5,-229\"/>\n", 5069 "<polyline fill=\"none\" stroke=\"black\" points=\"445.5,-229 488.5,-229 \"/>\n", 5070 "<text text-anchor=\"start\" x=\"463.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 5071 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"488.5,-229 488.5,-250 525.5,-250 525.5,-229 488.5,-229\"/>\n", 5072 "<polyline fill=\"none\" stroke=\"black\" points=\"488.5,-229 525.5,-229 \"/>\n", 5073 "<text text-anchor=\"start\" x=\"503.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 5074 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"525.5,-229 525.5,-250 545.5,-250 545.5,-229 525.5,-229\"/>\n", 5075 "<polyline fill=\"none\" stroke=\"black\" points=\"525.5,-229 545.5,-229 \"/>\n", 5076 "<text text-anchor=\"start\" x=\"532\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", 5077 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"545.5,-229 545.5,-250 572.5,-250 572.5,-229 545.5,-229\"/>\n", 5078 "<polyline fill=\"none\" stroke=\"black\" points=\"545.5,-229 572.5,-229 \"/>\n", 5079 "<text text-anchor=\"start\" x=\"555.5\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", 5080 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"572.5,-229 572.5,-250 599.5,-250 599.5,-229 572.5,-229\"/>\n", 5081 "<polyline fill=\"none\" stroke=\"black\" points=\"572.5,-229 599.5,-229 \"/>\n", 5082 "<text text-anchor=\"start\" x=\"579\" y=\"-235.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 5083 "<polygon fill=\"none\" stroke=\"black\" points=\"177.5,-208 177.5,-229 238.5,-229 238.5,-208 177.5,-208\"/>\n", 5084 "<text text-anchor=\"start\" x=\"194.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 5085 "<polygon fill=\"none\" stroke=\"black\" points=\"238.5,-208 238.5,-229 281.5,-229 281.5,-208 238.5,-208\"/>\n", 5086 "<text text-anchor=\"start\" x=\"241.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 5087 "<polygon fill=\"none\" stroke=\"black\" points=\"281.5,-208 281.5,-229 328.5,-229 328.5,-208 281.5,-208\"/>\n", 5088 "<text text-anchor=\"start\" x=\"284.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 5089 "<polygon fill=\"none\" stroke=\"black\" points=\"328.5,-208 328.5,-229 355.5,-229 355.5,-208 328.5,-208\"/>\n", 5090 "<text text-anchor=\"start\" x=\"338.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 5091 "<polygon fill=\"none\" stroke=\"black\" points=\"355.5,-208 355.5,-229 398.5,-229 398.5,-208 355.5,-208\"/>\n", 5092 "<text text-anchor=\"start\" x=\"358.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 5093 "<polygon fill=\"none\" stroke=\"black\" points=\"398.5,-208 398.5,-229 445.5,-229 445.5,-208 398.5,-208\"/>\n", 5094 "<text text-anchor=\"start\" x=\"401.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & !b</text>\n", 5095 "<polygon fill=\"none\" stroke=\"black\" points=\"445.5,-208 445.5,-229 488.5,-229 488.5,-208 445.5,-208\"/>\n", 5096 "<text text-anchor=\"start\" x=\"448.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 5097 "<polygon fill=\"none\" stroke=\"black\" points=\"488.5,-208 488.5,-229 525.5,-229 525.5,-208 488.5,-208\"/>\n", 5098 "<text text-anchor=\"start\" x=\"503.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5099 "<polygon fill=\"none\" stroke=\"black\" points=\"525.5,-208 525.5,-229 545.5,-229 545.5,-208 525.5,-208\"/>\n", 5100 "<text text-anchor=\"start\" x=\"532\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5101 "<polygon fill=\"none\" stroke=\"black\" points=\"545.5,-208 545.5,-229 572.5,-229 572.5,-208 545.5,-208\"/>\n", 5102 "<text text-anchor=\"start\" x=\"553.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 5103 "<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-208 572.5,-229 599.5,-229 599.5,-208 572.5,-208\"/>\n", 5104 "<text text-anchor=\"start\" x=\"582.5\" y=\"-214.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5105 "<polygon fill=\"none\" stroke=\"black\" points=\"177.5,-187 177.5,-208 238.5,-208 238.5,-187 177.5,-187\"/>\n", 5106 "<text text-anchor=\"start\" x=\"198.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 5107 "<polygon fill=\"none\" stroke=\"black\" points=\"238.5,-187 238.5,-208 281.5,-208 281.5,-187 238.5,-187\"/>\n", 5108 "<text text-anchor=\"start\" x=\"249.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5109 "<polygon fill=\"none\" stroke=\"black\" points=\"281.5,-187 281.5,-208 328.5,-208 328.5,-187 281.5,-187\"/>\n", 5110 "<text text-anchor=\"start\" x=\"294.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5111 "<polygon fill=\"none\" stroke=\"black\" points=\"328.5,-187 328.5,-208 355.5,-208 355.5,-187 328.5,-187\"/>\n", 5112 "<text text-anchor=\"start\" x=\"331.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 5113 "<polygon fill=\"none\" stroke=\"black\" points=\"355.5,-187 355.5,-208 398.5,-208 398.5,-187 355.5,-187\"/>\n", 5114 "<text text-anchor=\"start\" x=\"366.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5115 "<polygon fill=\"none\" stroke=\"black\" points=\"398.5,-187 398.5,-208 445.5,-208 445.5,-187 398.5,-187\"/>\n", 5116 "<text text-anchor=\"start\" x=\"411.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5117 "<polygon fill=\"none\" stroke=\"black\" points=\"445.5,-187 445.5,-208 488.5,-208 488.5,-187 445.5,-187\"/>\n", 5118 "<text text-anchor=\"start\" x=\"456.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", 5119 "<polygon fill=\"none\" stroke=\"black\" points=\"488.5,-187 488.5,-208 525.5,-208 525.5,-187 488.5,-187\"/>\n", 5120 "<text text-anchor=\"start\" x=\"491.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0,1}</text>\n", 5121 "<polygon fill=\"none\" stroke=\"black\" points=\"525.5,-187 525.5,-208 545.5,-208 545.5,-187 525.5,-187\"/>\n", 5122 "<text text-anchor=\"start\" x=\"528.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5123 "<polygon fill=\"none\" stroke=\"black\" points=\"545.5,-187 545.5,-208 572.5,-208 572.5,-187 545.5,-187\"/>\n", 5124 "<text text-anchor=\"start\" x=\"548.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5125 "<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-187 572.5,-208 599.5,-208 599.5,-187 572.5,-187\"/>\n", 5126 "<text text-anchor=\"start\" x=\"575.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5127 "<polygon fill=\"none\" stroke=\"black\" points=\"177.5,-166 177.5,-187 238.5,-187 238.5,-166 177.5,-166\"/>\n", 5128 "<text text-anchor=\"start\" x=\"200\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 5129 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"238.5,-166 238.5,-187 281.5,-187 281.5,-166 238.5,-166\"/>\n", 5130 "<polygon fill=\"none\" stroke=\"black\" points=\"238.5,-166 238.5,-187 281.5,-187 281.5,-166 238.5,-166\"/>\n", 5131 "<text text-anchor=\"start\" x=\"256.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5132 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"281.5,-166 281.5,-187 328.5,-187 328.5,-166 281.5,-166\"/>\n", 5133 "<polygon fill=\"none\" stroke=\"black\" points=\"281.5,-166 281.5,-187 328.5,-187 328.5,-166 281.5,-166\"/>\n", 5134 "<text text-anchor=\"start\" x=\"301.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5135 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"328.5,-166 328.5,-187 355.5,-187 355.5,-166 328.5,-166\"/>\n", 5136 "<polygon fill=\"none\" stroke=\"black\" points=\"328.5,-166 328.5,-187 355.5,-187 355.5,-166 328.5,-166\"/>\n", 5137 "<text text-anchor=\"start\" x=\"334.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 5138 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"355.5,-166 355.5,-187 398.5,-187 398.5,-166 355.5,-166\"/>\n", 5139 "<polygon fill=\"none\" stroke=\"black\" points=\"355.5,-166 355.5,-187 398.5,-187 398.5,-166 355.5,-166\"/>\n", 5140 "<text text-anchor=\"start\" x=\"373.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5141 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"398.5,-166 398.5,-187 445.5,-187 445.5,-166 398.5,-166\"/>\n", 5142 "<polygon fill=\"none\" stroke=\"black\" points=\"398.5,-166 398.5,-187 445.5,-187 445.5,-166 398.5,-166\"/>\n", 5143 "<text text-anchor=\"start\" x=\"418.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5144 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"445.5,-166 445.5,-187 488.5,-187 488.5,-166 445.5,-166\"/>\n", 5145 "<polygon fill=\"none\" stroke=\"black\" points=\"445.5,-166 445.5,-187 488.5,-187 488.5,-166 445.5,-166\"/>\n", 5146 "<text text-anchor=\"start\" x=\"463.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5147 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"488.5,-166 488.5,-187 525.5,-187 525.5,-166 488.5,-166\"/>\n", 5148 "<polygon fill=\"none\" stroke=\"black\" points=\"488.5,-166 488.5,-187 525.5,-187 525.5,-166 488.5,-166\"/>\n", 5149 "<text text-anchor=\"start\" x=\"503.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5150 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"525.5,-166 525.5,-187 545.5,-187 545.5,-166 525.5,-166\"/>\n", 5151 "<polygon fill=\"none\" stroke=\"black\" points=\"525.5,-166 525.5,-187 545.5,-187 545.5,-166 525.5,-166\"/>\n", 5152 "<text text-anchor=\"start\" x=\"532\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5153 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"545.5,-166 545.5,-187 572.5,-187 572.5,-166 545.5,-166\"/>\n", 5154 "<polygon fill=\"none\" stroke=\"black\" points=\"545.5,-166 545.5,-187 572.5,-187 572.5,-166 545.5,-166\"/>\n", 5155 "<text text-anchor=\"start\" x=\"551.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 5156 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"572.5,-166 572.5,-187 599.5,-187 599.5,-166 572.5,-166\"/>\n", 5157 "<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-166 572.5,-187 599.5,-187 599.5,-166 572.5,-166\"/>\n", 5158 "<text text-anchor=\"start\" x=\"578.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 5159 "<polygon fill=\"none\" stroke=\"black\" points=\"177.5,-145 177.5,-166 238.5,-166 238.5,-145 177.5,-145\"/>\n", 5160 "<text text-anchor=\"start\" x=\"180.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 5161 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"238.5,-145 238.5,-166 281.5,-166 281.5,-145 238.5,-145\"/>\n", 5162 "<polygon fill=\"none\" stroke=\"black\" points=\"238.5,-145 238.5,-166 281.5,-166 281.5,-145 238.5,-145\"/>\n", 5163 "<text text-anchor=\"start\" x=\"256.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5164 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"281.5,-145 281.5,-166 328.5,-166 328.5,-145 281.5,-145\"/>\n", 5165 "<polygon fill=\"none\" stroke=\"black\" points=\"281.5,-145 281.5,-166 328.5,-166 328.5,-145 281.5,-145\"/>\n", 5166 "<text text-anchor=\"start\" x=\"301.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5167 "<polygon fill=\"none\" stroke=\"black\" points=\"328.5,-145 328.5,-166 355.5,-166 355.5,-145 328.5,-145\"/>\n", 5168 "<text text-anchor=\"start\" x=\"338.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5169 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"355.5,-145 355.5,-166 398.5,-166 398.5,-145 355.5,-145\"/>\n", 5170 "<polygon fill=\"none\" stroke=\"black\" points=\"355.5,-145 355.5,-166 398.5,-166 398.5,-145 355.5,-145\"/>\n", 5171 "<text text-anchor=\"start\" x=\"373.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5172 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"398.5,-145 398.5,-166 445.5,-166 445.5,-145 398.5,-145\"/>\n", 5173 "<polygon fill=\"none\" stroke=\"black\" points=\"398.5,-145 398.5,-166 445.5,-166 445.5,-145 398.5,-145\"/>\n", 5174 "<text text-anchor=\"start\" x=\"418.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", 5175 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"445.5,-145 445.5,-166 488.5,-166 488.5,-145 445.5,-145\"/>\n", 5176 "<polygon fill=\"none\" stroke=\"black\" points=\"445.5,-145 445.5,-166 488.5,-166 488.5,-145 445.5,-145\"/>\n", 5177 "<text text-anchor=\"start\" x=\"463.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", 5178 "<polygon fill=\"none\" stroke=\"black\" points=\"488.5,-145 488.5,-166 525.5,-166 525.5,-145 488.5,-145\"/>\n", 5179 "<text text-anchor=\"start\" x=\"503.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5180 "<polygon fill=\"none\" stroke=\"black\" points=\"525.5,-145 525.5,-166 545.5,-166 545.5,-145 525.5,-145\"/>\n", 5181 "<text text-anchor=\"start\" x=\"532\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5182 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"545.5,-145 545.5,-166 572.5,-166 572.5,-145 545.5,-145\"/>\n", 5183 "<polygon fill=\"none\" stroke=\"black\" points=\"545.5,-145 545.5,-166 572.5,-166 572.5,-145 545.5,-145\"/>\n", 5184 "<text text-anchor=\"start\" x=\"552\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", 5185 "<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-145 572.5,-166 599.5,-166 599.5,-145 572.5,-145\"/>\n", 5186 "<text text-anchor=\"start\" x=\"582.5\" y=\"-151.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5187 "<polygon fill=\"none\" stroke=\"black\" points=\"177.5,-124 177.5,-145 238.5,-145 238.5,-124 177.5,-124\"/>\n", 5188 "<text text-anchor=\"start\" x=\"200\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 5189 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"238.5,-124 238.5,-145 281.5,-145 281.5,-124 238.5,-124\"/>\n", 5190 "<polygon fill=\"none\" stroke=\"black\" points=\"238.5,-124 238.5,-145 281.5,-145 281.5,-124 238.5,-124\"/>\n", 5191 "<text text-anchor=\"start\" x=\"256.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5192 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"281.5,-124 281.5,-145 328.5,-145 328.5,-124 281.5,-124\"/>\n", 5193 "<polygon fill=\"none\" stroke=\"black\" points=\"281.5,-124 281.5,-145 328.5,-145 328.5,-124 281.5,-124\"/>\n", 5194 "<text text-anchor=\"start\" x=\"301.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5195 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"328.5,-124 328.5,-145 355.5,-145 355.5,-124 328.5,-124\"/>\n", 5196 "<polygon fill=\"none\" stroke=\"black\" points=\"328.5,-124 328.5,-145 355.5,-145 355.5,-124 328.5,-124\"/>\n", 5197 "<text text-anchor=\"start\" x=\"338.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5198 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"355.5,-124 355.5,-145 398.5,-145 398.5,-124 355.5,-124\"/>\n", 5199 "<polygon fill=\"none\" stroke=\"black\" points=\"355.5,-124 355.5,-145 398.5,-145 398.5,-124 355.5,-124\"/>\n", 5200 "<text text-anchor=\"start\" x=\"373.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5201 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"398.5,-124 398.5,-145 445.5,-145 445.5,-124 398.5,-124\"/>\n", 5202 "<polygon fill=\"none\" stroke=\"black\" points=\"398.5,-124 398.5,-145 445.5,-145 445.5,-124 398.5,-124\"/>\n", 5203 "<text text-anchor=\"start\" x=\"418.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5204 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"445.5,-124 445.5,-145 488.5,-145 488.5,-124 445.5,-124\"/>\n", 5205 "<polygon fill=\"none\" stroke=\"black\" points=\"445.5,-124 445.5,-145 488.5,-145 488.5,-124 445.5,-124\"/>\n", 5206 "<text text-anchor=\"start\" x=\"463.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5207 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"488.5,-124 488.5,-145 525.5,-145 525.5,-124 488.5,-124\"/>\n", 5208 "<polygon fill=\"none\" stroke=\"black\" points=\"488.5,-124 488.5,-145 525.5,-145 525.5,-124 488.5,-124\"/>\n", 5209 "<text text-anchor=\"start\" x=\"503.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5210 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"525.5,-124 525.5,-145 545.5,-145 545.5,-124 525.5,-124\"/>\n", 5211 "<polygon fill=\"none\" stroke=\"black\" points=\"525.5,-124 525.5,-145 545.5,-145 545.5,-124 525.5,-124\"/>\n", 5212 "<text text-anchor=\"start\" x=\"532\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5213 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"545.5,-124 545.5,-145 572.5,-145 572.5,-124 545.5,-124\"/>\n", 5214 "<polygon fill=\"none\" stroke=\"black\" points=\"545.5,-124 545.5,-145 572.5,-145 572.5,-124 545.5,-124\"/>\n", 5215 "<text text-anchor=\"start\" x=\"555.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5216 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"572.5,-124 572.5,-145 599.5,-145 599.5,-124 572.5,-124\"/>\n", 5217 "<polygon fill=\"none\" stroke=\"black\" points=\"572.5,-124 572.5,-145 599.5,-145 599.5,-124 572.5,-124\"/>\n", 5218 "<text text-anchor=\"start\" x=\"582.5\" y=\"-130.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5219 "</g>\n", 5220 "<!-- dests -->\n", 5221 "<g id=\"node3\" class=\"node\">\n", 5222 "<title>dests</title>\n", 5223 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"634.5,-187 634.5,-208 683.5,-208 683.5,-187 634.5,-187\"/>\n", 5224 "<polyline fill=\"none\" stroke=\"black\" points=\"634.5,-187 683.5,-187 \"/>\n", 5225 "<text text-anchor=\"start\" x=\"645\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">dests</text>\n", 5226 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"683.5,-187 683.5,-208 704.5,-208 704.5,-187 683.5,-187\"/>\n", 5227 "<polyline fill=\"none\" stroke=\"black\" points=\"683.5,-187 704.5,-187 \"/>\n", 5228 "<text text-anchor=\"start\" x=\"686.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~0</text>\n", 5229 "<polyline fill=\"none\" stroke=\"black\" points=\"704.5,-187 717.5,-187 \"/>\n", 5230 "<polyline fill=\"none\" stroke=\"black\" points=\"717.5,-187 730.5,-187 \"/>\n", 5231 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"730.5,-187 730.5,-208 751.5,-208 751.5,-187 730.5,-187\"/>\n", 5232 "<polyline fill=\"none\" stroke=\"black\" points=\"730.5,-187 751.5,-187 \"/>\n", 5233 "<text text-anchor=\"start\" x=\"733.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~3</text>\n", 5234 "<polyline fill=\"none\" stroke=\"black\" points=\"751.5,-187 764.5,-187 \"/>\n", 5235 "<polyline fill=\"none\" stroke=\"black\" points=\"764.5,-187 777.5,-187 \"/>\n", 5236 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"777.5,-187 777.5,-208 798.5,-208 798.5,-187 777.5,-187\"/>\n", 5237 "<polyline fill=\"none\" stroke=\"black\" points=\"777.5,-187 798.5,-187 \"/>\n", 5238 "<text text-anchor=\"start\" x=\"780.5\" y=\"-193.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 5239 "<polyline fill=\"none\" stroke=\"black\" points=\"798.5,-187 811.5,-187 \"/>\n", 5240 "<polyline fill=\"none\" stroke=\"black\" points=\"811.5,-187 824.5,-187 \"/>\n", 5241 "<polyline fill=\"none\" stroke=\"black\" points=\"824.5,-187 837.5,-187 \"/>\n", 5242 "<polygon fill=\"none\" stroke=\"black\" points=\"634.5,-166 634.5,-187 683.5,-187 683.5,-166 634.5,-166\"/>\n", 5243 "<text text-anchor=\"start\" x=\"637.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#cnt/dst</text>\n", 5244 "<polygon fill=\"none\" stroke=\"black\" points=\"683.5,-166 683.5,-187 704.5,-187 704.5,-166 683.5,-166\"/>\n", 5245 "<text text-anchor=\"start\" x=\"687\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 5246 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"704.5,-166 704.5,-187 717.5,-187 717.5,-166 704.5,-166\"/>\n", 5247 "<polygon fill=\"none\" stroke=\"black\" points=\"704.5,-166 704.5,-187 717.5,-187 717.5,-166 704.5,-166\"/>\n", 5248 "<text text-anchor=\"start\" x=\"707.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5249 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"717.5,-166 717.5,-187 730.5,-187 730.5,-166 717.5,-166\"/>\n", 5250 "<polygon fill=\"none\" stroke=\"black\" points=\"717.5,-166 717.5,-187 730.5,-187 730.5,-166 717.5,-166\"/>\n", 5251 "<text text-anchor=\"start\" x=\"720.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5252 "<polygon fill=\"none\" stroke=\"black\" points=\"730.5,-166 730.5,-187 751.5,-187 751.5,-166 730.5,-166\"/>\n", 5253 "<text text-anchor=\"start\" x=\"734\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#2</text>\n", 5254 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"751.5,-166 751.5,-187 764.5,-187 764.5,-166 751.5,-166\"/>\n", 5255 "<polygon fill=\"none\" stroke=\"black\" points=\"751.5,-166 751.5,-187 764.5,-187 764.5,-166 751.5,-166\"/>\n", 5256 "<text text-anchor=\"start\" x=\"754.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5257 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"764.5,-166 764.5,-187 777.5,-187 777.5,-166 764.5,-166\"/>\n", 5258 "<polygon fill=\"none\" stroke=\"black\" points=\"764.5,-166 764.5,-187 777.5,-187 777.5,-166 764.5,-166\"/>\n", 5259 "<text text-anchor=\"start\" x=\"767.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5260 "<polygon fill=\"none\" stroke=\"black\" points=\"777.5,-166 777.5,-187 798.5,-187 798.5,-166 777.5,-166\"/>\n", 5261 "<text text-anchor=\"start\" x=\"781\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">#3</text>\n", 5262 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"798.5,-166 798.5,-187 811.5,-187 811.5,-166 798.5,-166\"/>\n", 5263 "<polygon fill=\"none\" stroke=\"black\" points=\"798.5,-166 798.5,-187 811.5,-187 811.5,-166 798.5,-166\"/>\n", 5264 "<text text-anchor=\"start\" x=\"801.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5265 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"811.5,-166 811.5,-187 824.5,-187 824.5,-166 811.5,-166\"/>\n", 5266 "<polygon fill=\"none\" stroke=\"black\" points=\"811.5,-166 811.5,-187 824.5,-187 824.5,-166 811.5,-166\"/>\n", 5267 "<text text-anchor=\"start\" x=\"814.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5268 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"824.5,-166 824.5,-187 837.5,-187 837.5,-166 824.5,-166\"/>\n", 5269 "<polygon fill=\"none\" stroke=\"black\" points=\"824.5,-166 824.5,-187 837.5,-187 837.5,-166 824.5,-166\"/>\n", 5270 "<text text-anchor=\"start\" x=\"827.5\" y=\"-172.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5271 "</g>\n", 5272 "<!-- meta -->\n", 5273 "<g id=\"node4\" class=\"node\">\n", 5274 "<title>meta</title>\n", 5275 "<text text-anchor=\"start\" x=\"10.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 5276 "<polygon fill=\"pink\" stroke=\"transparent\" points=\"76.5,-61 76.5,-80 165.5,-80 165.5,-61 76.5,-61\"/>\n", 5277 "<text text-anchor=\"start\" x=\"78.5\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">~6</text>\n", 5278 "<text text-anchor=\"start\" x=\"10.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 5279 "<text text-anchor=\"start\" x=\"78.5\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5280 "<text text-anchor=\"start\" x=\"10.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 5281 "<text text-anchor=\"start\" x=\"78.5\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">Fin(0) & Inf(1)</text>\n", 5282 "<text text-anchor=\"start\" x=\"10.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 5283 "<text text-anchor=\"start\" x=\"78.5\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 5284 "</g>\n", 5285 "<!-- meta->states -->\n", 5286 "</g>\n", 5287 "</svg>\n" 5288 ], 5289 "text/plain": [ 5290 "<spot.jupyter.SVG object>" 5291 ] 5292 }, 5293 "metadata": {}, 5294 "output_type": "display_data" 5295 } 5296 ], 5297 "source": [ 5298 "aut.new_univ_edge(3, [0,3], buddy.bddtrue, [0])\n", 5299 "display(aut, aut.show_storage(\"vd\"))\n", 5300 "aut.merge_edges()\n", 5301 "display(aut, aut.show_storage(\"vd\"))" 5302 ] 5303 }, 5304 { 5305 "cell_type": "markdown", 5306 "metadata": {}, 5307 "source": [ 5308 "Above group `~0` and `~10` have been merged." 5309 ] 5310 }, 5311 { 5312 "cell_type": "markdown", 5313 "metadata": {}, 5314 "source": [ 5315 "# Named properties\n", 5316 "\n", 5317 "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." 5318 ] 5319 }, 5320 { 5321 "cell_type": "code", 5322 "execution_count": 32, 5323 "metadata": {}, 5324 "outputs": [ 5325 { 5326 "data": { 5327 "image/svg+xml": [ 5328 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 5329 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 5330 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 5331 "<!-- Generated by graphviz version 2.43.0 (0)\n", 5332 " -->\n", 5333 "<!-- Title: aub * gfa Pages: 1 -->\n", 5334 "<svg width=\"227pt\" height=\"178pt\"\n", 5335 " viewBox=\"0.00 0.00 227.00 178.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 5336 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 174.5)\">\n", 5337 "<title>aub * gfa</title>\n", 5338 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-174.5 223,-174.5 223,4 -4,4\"/>\n", 5339 "<text text-anchor=\"start\" x=\"81\" y=\"-156.3\" font-family=\"Lato\" font-size=\"14.00\">aub * gfa</text>\n", 5340 "<text text-anchor=\"start\" x=\"88.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 5341 "<text text-anchor=\"start\" x=\"110.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5342 "<text text-anchor=\"start\" x=\"126.5\" y=\"-142.3\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 5343 "<text text-anchor=\"start\" x=\"86.5\" y=\"-128.3\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", 5344 "<!-- I -->\n", 5345 "<!-- 0 -->\n", 5346 "<g id=\"node2\" class=\"node\">\n", 5347 "<title>0</title>\n", 5348 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"65\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n", 5349 "<text text-anchor=\"start\" x=\"55\" y=\"-17.8\" font-family=\"Lato\" font-size=\"14.00\">1,0</text>\n", 5350 "</g>\n", 5351 "<!-- I->0 -->\n", 5352 "<g id=\"edge1\" class=\"edge\">\n", 5353 "<title>I->0</title>\n", 5354 "<path fill=\"none\" stroke=\"black\" d=\"M1.05,-21.5C1.95,-21.5 16.1,-21.5 30.76,-21.5\"/>\n", 5355 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-21.5 30.94,-24.65 34.44,-21.5 30.94,-21.5 30.94,-21.5 30.94,-21.5 34.44,-21.5 30.94,-18.35 37.94,-21.5 37.94,-21.5\"/>\n", 5356 "</g>\n", 5357 "<!-- 0->0 -->\n", 5358 "<g id=\"edge4\" class=\"edge\">\n", 5359 "<title>0->0</title>\n", 5360 "<path fill=\"none\" stroke=\"black\" d=\"M57.14,-38.91C55.68,-48.58 58.3,-57.5 65,-57.5 69.92,-57.5 72.64,-52.69 73.16,-46.3\"/>\n", 5361 "<polygon fill=\"black\" stroke=\"black\" points=\"72.86,-38.91 76.29,-45.77 73,-42.4 73.14,-45.9 73.14,-45.9 73.14,-45.9 73,-42.4 70,-46.03 72.86,-38.91 72.86,-38.91\"/>\n", 5362 "<text text-anchor=\"start\" x=\"46.5\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 5363 "</g>\n", 5364 "<!-- 1 -->\n", 5365 "<g id=\"node3\" class=\"node\">\n", 5366 "<title>1</title>\n", 5367 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"192\" cy=\"-21.5\" rx=\"27\" ry=\"18\"/>\n", 5368 "<text text-anchor=\"start\" x=\"182\" y=\"-17.8\" font-family=\"Lato\" font-size=\"14.00\">0,0</text>\n", 5369 "</g>\n", 5370 "<!-- 0->1 -->\n", 5371 "<g id=\"edge2\" class=\"edge\">\n", 5372 "<title>0->1</title>\n", 5373 "<path fill=\"none\" stroke=\"black\" d=\"M92.2,-21.5C111.29,-21.5 137.28,-21.5 157.82,-21.5\"/>\n", 5374 "<polygon fill=\"black\" stroke=\"black\" points=\"164.83,-21.5 157.83,-24.65 161.33,-21.5 157.83,-21.5 157.83,-21.5 157.83,-21.5 161.33,-21.5 157.83,-18.35 164.83,-21.5 164.83,-21.5\"/>\n", 5375 "<text text-anchor=\"start\" x=\"110\" y=\"-25.3\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 5376 "</g>\n", 5377 "<!-- 0->1 -->\n", 5378 "<g id=\"edge3\" class=\"edge\">\n", 5379 "<title>0->1</title>\n", 5380 "<path fill=\"none\" stroke=\"black\" d=\"M86.91,-10.4C94.03,-7.19 102.18,-4.11 110,-2.5 126.1,0.83 130.9,0.83 147,-2.5 152.5,-3.63 158.16,-5.49 163.51,-7.61\"/>\n", 5381 "<polygon fill=\"black\" stroke=\"black\" points=\"170.09,-10.4 162.41,-10.57 166.87,-9.04 163.64,-7.67 163.64,-7.67 163.64,-7.67 166.87,-9.04 164.88,-4.77 170.09,-10.4 170.09,-10.4\"/>\n", 5382 "<text text-anchor=\"start\" x=\"111.5\" y=\"-6.3\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 5383 "</g>\n", 5384 "<!-- 1->1 -->\n", 5385 "<g id=\"edge5\" class=\"edge\">\n", 5386 "<title>1->1</title>\n", 5387 "<path fill=\"none\" stroke=\"black\" d=\"M186.43,-39.28C185.48,-48.81 187.34,-57.5 192,-57.5 195.42,-57.5 197.33,-52.81 197.73,-46.55\"/>\n", 5388 "<polygon fill=\"black\" stroke=\"black\" points=\"197.57,-39.28 200.88,-46.21 197.65,-42.78 197.73,-46.28 197.73,-46.28 197.73,-46.28 197.65,-42.78 194.58,-46.35 197.57,-39.28 197.57,-39.28\"/>\n", 5389 "<text text-anchor=\"start\" x=\"186.5\" y=\"-61.3\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 5390 "</g>\n", 5391 "<!-- 1->1 -->\n", 5392 "<g id=\"edge6\" class=\"edge\">\n", 5393 "<title>1->1</title>\n", 5394 "<path fill=\"none\" stroke=\"black\" d=\"M182.93,-38.64C177.59,-56.08 180.62,-75.5 192,-75.5 201.87,-75.5 205.46,-60.9 202.75,-45.64\"/>\n", 5395 "<polygon fill=\"black\" stroke=\"black\" points=\"201.07,-38.64 205.77,-44.71 201.89,-42.04 202.71,-45.44 202.71,-45.44 202.71,-45.44 201.89,-42.04 199.64,-46.18 201.07,-38.64 201.07,-38.64\"/>\n", 5396 "<text text-anchor=\"start\" x=\"188.5\" y=\"-94.3\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 5397 "<text text-anchor=\"start\" x=\"184\" y=\"-79.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5398 "</g>\n", 5399 "</g>\n", 5400 "</svg>\n" 5401 ], 5402 "text/plain": [ 5403 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c4098c30> >" 5404 ] 5405 }, 5406 "metadata": {}, 5407 "output_type": "display_data" 5408 }, 5409 { 5410 "data": { 5411 "image/svg+xml": [ 5412 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 5413 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 5414 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 5415 "<!-- Generated by graphviz version 2.43.0 (0)\n", 5416 " -->\n", 5417 "<!-- Title: g Pages: 1 -->\n", 5418 "<svg width=\"487pt\" height=\"376pt\"\n", 5419 " viewBox=\"0.00 0.00 486.50 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 5420 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 5421 "<title>g</title>\n", 5422 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 482.5,-372 482.5,4 -4,4\"/>\n", 5423 "<!-- states -->\n", 5424 "<g id=\"node1\" class=\"node\">\n", 5425 "<title>states</title>\n", 5426 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"20,-311 20,-332 75,-332 75,-311 20,-311\"/>\n", 5427 "<polyline fill=\"none\" stroke=\"black\" points=\"20,-311 75,-311 \"/>\n", 5428 "<text text-anchor=\"start\" x=\"32\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 5429 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"75,-311 75,-332 88,-332 88,-311 75,-311\"/>\n", 5430 "<polyline fill=\"none\" stroke=\"black\" points=\"75,-311 88,-311 \"/>\n", 5431 "<text text-anchor=\"start\" x=\"78\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5432 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"88,-311 88,-332 101,-332 101,-311 88,-311\"/>\n", 5433 "<polyline fill=\"none\" stroke=\"black\" points=\"88,-311 101,-311 \"/>\n", 5434 "<text text-anchor=\"start\" x=\"91\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5435 "<polygon fill=\"none\" stroke=\"black\" points=\"20,-290 20,-311 75,-311 75,-290 20,-290\"/>\n", 5436 "<text text-anchor=\"start\" x=\"35\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 5437 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\"/>\n", 5438 "<polygon fill=\"none\" stroke=\"black\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\"/>\n", 5439 "<text text-anchor=\"start\" x=\"78\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5440 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\"/>\n", 5441 "<polygon fill=\"none\" stroke=\"black\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\"/>\n", 5442 "<text text-anchor=\"start\" x=\"91\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5443 "<polygon fill=\"none\" stroke=\"black\" points=\"20,-269 20,-290 75,-290 75,-269 20,-269\"/>\n", 5444 "<text text-anchor=\"start\" x=\"23\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 5445 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\"/>\n", 5446 "<polygon fill=\"none\" stroke=\"black\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\"/>\n", 5447 "<text text-anchor=\"start\" x=\"78\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5448 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\"/>\n", 5449 "<polygon fill=\"none\" stroke=\"black\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\"/>\n", 5450 "<text text-anchor=\"start\" x=\"91\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5451 "</g>\n", 5452 "<!-- edges -->\n", 5453 "<g id=\"node2\" class=\"node\">\n", 5454 "<title>edges</title>\n", 5455 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"220,-343 220,-364 281,-364 281,-343 220,-343\"/>\n", 5456 "<polyline fill=\"none\" stroke=\"black\" points=\"220,-343 281,-343 \"/>\n", 5457 "<text text-anchor=\"start\" x=\"235\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 5458 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"281,-343 281,-364 324,-364 324,-343 281,-343\"/>\n", 5459 "<polyline fill=\"none\" stroke=\"black\" points=\"281,-343 324,-343 \"/>\n", 5460 "<text text-anchor=\"start\" x=\"299\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5461 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"324,-343 324,-364 362,-364 362,-343 324,-343\"/>\n", 5462 "<polyline fill=\"none\" stroke=\"black\" points=\"324,-343 362,-343 \"/>\n", 5463 "<text text-anchor=\"start\" x=\"339.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5464 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"362,-343 362,-364 405,-364 405,-343 362,-343\"/>\n", 5465 "<polyline fill=\"none\" stroke=\"black\" points=\"362,-343 405,-343 \"/>\n", 5466 "<text text-anchor=\"start\" x=\"380\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5467 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"405,-343 405,-364 425,-364 425,-343 405,-343\"/>\n", 5468 "<polyline fill=\"none\" stroke=\"black\" points=\"405,-343 425,-343 \"/>\n", 5469 "<text text-anchor=\"start\" x=\"411.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5470 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"425,-343 425,-364 452,-364 452,-343 425,-343\"/>\n", 5471 "<polyline fill=\"none\" stroke=\"black\" points=\"425,-343 452,-343 \"/>\n", 5472 "<text text-anchor=\"start\" x=\"435\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5473 "<polygon fill=\"none\" stroke=\"black\" points=\"220,-322 220,-343 281,-343 281,-322 220,-322\"/>\n", 5474 "<text text-anchor=\"start\" x=\"237\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 5475 "<polygon fill=\"none\" stroke=\"black\" points=\"281,-322 281,-343 324,-343 324,-322 281,-322\"/>\n", 5476 "<text text-anchor=\"start\" x=\"284\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 5477 "<polygon fill=\"none\" stroke=\"black\" points=\"324,-322 324,-343 362,-343 362,-322 324,-322\"/>\n", 5478 "<text text-anchor=\"start\" x=\"327\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 5479 "<polygon fill=\"none\" stroke=\"black\" points=\"362,-322 362,-343 405,-343 405,-322 362,-322\"/>\n", 5480 "<text text-anchor=\"start\" x=\"365\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 5481 "<polygon fill=\"none\" stroke=\"black\" points=\"405,-322 405,-343 425,-343 425,-322 405,-322\"/>\n", 5482 "<text text-anchor=\"start\" x=\"409.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 5483 "<polygon fill=\"none\" stroke=\"black\" points=\"425,-322 425,-343 452,-343 452,-322 425,-322\"/>\n", 5484 "<text text-anchor=\"start\" x=\"435\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 5485 "<polygon fill=\"none\" stroke=\"black\" points=\"220,-301 220,-322 281,-322 281,-301 220,-301\"/>\n", 5486 "<text text-anchor=\"start\" x=\"241\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 5487 "<polygon fill=\"none\" stroke=\"black\" points=\"281,-301 281,-322 324,-322 324,-301 281,-301\"/>\n", 5488 "<text text-anchor=\"start\" x=\"295.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5489 "<polygon fill=\"none\" stroke=\"black\" points=\"324,-301 324,-322 362,-322 362,-301 324,-301\"/>\n", 5490 "<text text-anchor=\"start\" x=\"336\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5491 "<polygon fill=\"none\" stroke=\"black\" points=\"362,-301 362,-322 405,-322 405,-301 362,-301\"/>\n", 5492 "<text text-anchor=\"start\" x=\"376.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5493 "<polygon fill=\"none\" stroke=\"black\" points=\"405,-301 405,-322 425,-322 425,-301 405,-301\"/>\n", 5494 "<text text-anchor=\"start\" x=\"408\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5495 "<polygon fill=\"none\" stroke=\"black\" points=\"425,-301 425,-322 452,-322 452,-301 425,-301\"/>\n", 5496 "<text text-anchor=\"start\" x=\"428\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5497 "<polygon fill=\"none\" stroke=\"black\" points=\"220,-280 220,-301 281,-301 281,-280 220,-280\"/>\n", 5498 "<text text-anchor=\"start\" x=\"242.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 5499 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"281,-280 281,-301 324,-301 324,-280 281,-280\"/>\n", 5500 "<polygon fill=\"none\" stroke=\"black\" points=\"281,-280 281,-301 324,-301 324,-280 281,-280\"/>\n", 5501 "<text text-anchor=\"start\" x=\"299\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5502 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"324,-280 324,-301 362,-301 362,-280 324,-280\"/>\n", 5503 "<polygon fill=\"none\" stroke=\"black\" points=\"324,-280 324,-301 362,-301 362,-280 324,-280\"/>\n", 5504 "<text text-anchor=\"start\" x=\"339.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5505 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"362,-280 362,-301 405,-301 405,-280 362,-280\"/>\n", 5506 "<polygon fill=\"none\" stroke=\"black\" points=\"362,-280 362,-301 405,-301 405,-280 362,-280\"/>\n", 5507 "<text text-anchor=\"start\" x=\"380\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5508 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"405,-280 405,-301 425,-301 425,-280 405,-280\"/>\n", 5509 "<polygon fill=\"none\" stroke=\"black\" points=\"405,-280 405,-301 425,-301 425,-280 405,-280\"/>\n", 5510 "<text text-anchor=\"start\" x=\"411.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5511 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"425,-280 425,-301 452,-301 452,-280 425,-280\"/>\n", 5512 "<polygon fill=\"none\" stroke=\"black\" points=\"425,-280 425,-301 452,-301 452,-280 425,-280\"/>\n", 5513 "<text text-anchor=\"start\" x=\"435\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5514 "<polygon fill=\"none\" stroke=\"black\" points=\"220,-259 220,-280 281,-280 281,-259 220,-259\"/>\n", 5515 "<text text-anchor=\"start\" x=\"223\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 5516 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"281,-259 281,-280 324,-280 324,-259 281,-259\"/>\n", 5517 "<polygon fill=\"none\" stroke=\"black\" points=\"281,-259 281,-280 324,-280 324,-259 281,-259\"/>\n", 5518 "<text text-anchor=\"start\" x=\"299\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5519 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"324,-259 324,-280 362,-280 362,-259 324,-259\"/>\n", 5520 "<polygon fill=\"none\" stroke=\"black\" points=\"324,-259 324,-280 362,-280 362,-259 324,-259\"/>\n", 5521 "<text text-anchor=\"start\" x=\"339.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5522 "<polygon fill=\"none\" stroke=\"black\" points=\"362,-259 362,-280 405,-280 405,-259 362,-259\"/>\n", 5523 "<text text-anchor=\"start\" x=\"380\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5524 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"405,-259 405,-280 425,-280 425,-259 405,-259\"/>\n", 5525 "<polygon fill=\"none\" stroke=\"black\" points=\"405,-259 405,-280 425,-280 425,-259 405,-259\"/>\n", 5526 "<text text-anchor=\"start\" x=\"411.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5527 "<polygon fill=\"none\" stroke=\"black\" points=\"425,-259 425,-280 452,-280 452,-259 425,-259\"/>\n", 5528 "<text text-anchor=\"start\" x=\"435\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5529 "<polygon fill=\"none\" stroke=\"black\" points=\"220,-238 220,-259 281,-259 281,-238 220,-238\"/>\n", 5530 "<text text-anchor=\"start\" x=\"242.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 5531 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"281,-238 281,-259 324,-259 324,-238 281,-238\"/>\n", 5532 "<polygon fill=\"none\" stroke=\"black\" points=\"281,-238 281,-259 324,-259 324,-238 281,-238\"/>\n", 5533 "<text text-anchor=\"start\" x=\"299\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5534 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"324,-238 324,-259 362,-259 362,-238 324,-238\"/>\n", 5535 "<polygon fill=\"none\" stroke=\"black\" points=\"324,-238 324,-259 362,-259 362,-238 324,-238\"/>\n", 5536 "<text text-anchor=\"start\" x=\"339.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5537 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"362,-238 362,-259 405,-259 405,-238 362,-238\"/>\n", 5538 "<polygon fill=\"none\" stroke=\"black\" points=\"362,-238 362,-259 405,-259 405,-238 362,-238\"/>\n", 5539 "<text text-anchor=\"start\" x=\"380\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5540 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"405,-238 405,-259 425,-259 425,-238 405,-238\"/>\n", 5541 "<polygon fill=\"none\" stroke=\"black\" points=\"405,-238 405,-259 425,-259 425,-238 405,-238\"/>\n", 5542 "<text text-anchor=\"start\" x=\"411.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5543 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"425,-238 425,-259 452,-259 452,-238 425,-238\"/>\n", 5544 "<polygon fill=\"none\" stroke=\"black\" points=\"425,-238 425,-259 452,-259 452,-238 425,-238\"/>\n", 5545 "<text text-anchor=\"start\" x=\"435\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5546 "</g>\n", 5547 "<!-- meta -->\n", 5548 "<g id=\"node3\" class=\"node\">\n", 5549 "<title>meta</title>\n", 5550 "<text text-anchor=\"start\" x=\"10\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 5551 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-118 76,-137 112,-137 112,-118 76,-118\"/>\n", 5552 "<text text-anchor=\"start\" x=\"78\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5553 "<text text-anchor=\"start\" x=\"10\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 5554 "<text text-anchor=\"start\" x=\"78\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5555 "<text text-anchor=\"start\" x=\"10\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 5556 "<text text-anchor=\"start\" x=\"78\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Inf(0)</text>\n", 5557 "<text text-anchor=\"start\" x=\"10\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 5558 "<text text-anchor=\"start\" x=\"78\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 5559 "</g>\n", 5560 "<!-- meta->states -->\n", 5561 "<!-- props -->\n", 5562 "<g id=\"node4\" class=\"node\">\n", 5563 "<title>props</title>\n", 5564 "<text text-anchor=\"start\" x=\"155\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 5565 "<text text-anchor=\"start\" x=\"299\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5566 "<text text-anchor=\"start\" x=\"155\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 5567 "<text text-anchor=\"start\" x=\"299\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5568 "<text text-anchor=\"start\" x=\"155\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 5569 "<text text-anchor=\"start\" x=\"299\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5570 "<text text-anchor=\"start\" x=\"155\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 5571 "<text text-anchor=\"start\" x=\"299\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5572 "<text text-anchor=\"start\" x=\"155\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 5573 "<text text-anchor=\"start\" x=\"299\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5574 "<text text-anchor=\"start\" x=\"155\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 5575 "<text text-anchor=\"start\" x=\"299\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5576 "<text text-anchor=\"start\" x=\"155\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 5577 "<text text-anchor=\"start\" x=\"299\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5578 "<text text-anchor=\"start\" x=\"155\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 5579 "<text text-anchor=\"start\" x=\"299\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5580 "<text text-anchor=\"start\" x=\"155\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 5581 "<text text-anchor=\"start\" x=\"299\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5582 "<text text-anchor=\"start\" x=\"155\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 5583 "<text text-anchor=\"start\" x=\"299\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5584 "</g>\n", 5585 "<!-- props->edges -->\n", 5586 "<!-- namedprops -->\n", 5587 "<g id=\"node5\" class=\"node\">\n", 5588 "<title>namedprops</title>\n", 5589 "<text text-anchor=\"middle\" x=\"421\" y=\"-110.3\" font-family=\"Times,serif\" font-size=\"14.00\">named properties:</text>\n", 5590 "<text text-anchor=\"middle\" x=\"421\" y=\"-95.3\" font-family=\"Times,serif\" font-size=\"14.00\">automaton-name</text>\n", 5591 "<text text-anchor=\"middle\" x=\"421\" y=\"-80.3\" font-family=\"Times,serif\" font-size=\"14.00\">product-states</text>\n", 5592 "</g>\n", 5593 "<!-- namedprops->edges -->\n", 5594 "</g>\n", 5595 "</svg>\n" 5596 ], 5597 "text/plain": [ 5598 "<spot.jupyter.SVG object>" 5599 ] 5600 }, 5601 "metadata": {}, 5602 "output_type": "display_data" 5603 } 5604 ], 5605 "source": [ 5606 "aub = spot.translate('a U b')\n", 5607 "gfa = spot.translate('GFa')\n", 5608 "prod = spot.product(aub, gfa)\n", 5609 "prod.set_name(\"aub * gfa\")\n", 5610 "display(prod, prod.show_storage())" 5611 ] 5612 }, 5613 { 5614 "cell_type": "markdown", 5615 "metadata": {}, 5616 "source": [ 5617 "These properties also need to be updated by algorithms. They can be reset with:" 5618 ] 5619 }, 5620 { 5621 "cell_type": "code", 5622 "execution_count": 33, 5623 "metadata": {}, 5624 "outputs": [ 5625 { 5626 "data": { 5627 "image/svg+xml": [ 5628 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 5629 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 5630 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 5631 "<!-- Generated by graphviz version 2.43.0 (0)\n", 5632 " -->\n", 5633 "<!-- Pages: 1 -->\n", 5634 "<svg width=\"191pt\" height=\"165pt\"\n", 5635 " viewBox=\"0.00 0.00 191.00 165.04\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 5636 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 161.04)\">\n", 5637 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-161.04 187,-161.04 187,4 -4,4\"/>\n", 5638 "<text text-anchor=\"start\" x=\"70.5\" y=\"-142.84\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n", 5639 "<text text-anchor=\"start\" x=\"92.5\" y=\"-142.84\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5640 "<text text-anchor=\"start\" x=\"108.5\" y=\"-142.84\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n", 5641 "<text text-anchor=\"start\" x=\"68.5\" y=\"-128.84\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n", 5642 "<!-- I -->\n", 5643 "<!-- 0 -->\n", 5644 "<g id=\"node2\" class=\"node\">\n", 5645 "<title>0</title>\n", 5646 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"56\" cy=\"-22.04\" rx=\"18\" ry=\"18\"/>\n", 5647 "<text text-anchor=\"middle\" x=\"56\" y=\"-18.34\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n", 5648 "</g>\n", 5649 "<!-- I->0 -->\n", 5650 "<g id=\"edge1\" class=\"edge\">\n", 5651 "<title>I->0</title>\n", 5652 "<path fill=\"none\" stroke=\"black\" d=\"M1.15,-22.04C2.79,-22.04 17.15,-22.04 30.63,-22.04\"/>\n", 5653 "<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-22.04 30.94,-25.19 34.44,-22.04 30.94,-22.04 30.94,-22.04 30.94,-22.04 34.44,-22.04 30.94,-18.89 37.94,-22.04 37.94,-22.04\"/>\n", 5654 "</g>\n", 5655 "<!-- 0->0 -->\n", 5656 "<g id=\"edge4\" class=\"edge\">\n", 5657 "<title>0->0</title>\n", 5658 "<path fill=\"none\" stroke=\"black\" d=\"M49.62,-39.07C48.32,-48.89 50.45,-58.04 56,-58.04 60.17,-58.04 62.4,-52.89 62.71,-46.18\"/>\n", 5659 "<polygon fill=\"black\" stroke=\"black\" points=\"62.38,-39.07 65.85,-45.92 62.54,-42.57 62.71,-46.07 62.71,-46.07 62.71,-46.07 62.54,-42.57 59.56,-46.21 62.38,-39.07 62.38,-39.07\"/>\n", 5660 "<text text-anchor=\"start\" x=\"37.5\" y=\"-61.84\" font-family=\"Lato\" font-size=\"14.00\">a & !b</text>\n", 5661 "</g>\n", 5662 "<!-- 1 -->\n", 5663 "<g id=\"node3\" class=\"node\">\n", 5664 "<title>1</title>\n", 5665 "<ellipse fill=\"#ffffaa\" stroke=\"black\" cx=\"165\" cy=\"-22.04\" rx=\"18\" ry=\"18\"/>\n", 5666 "<text text-anchor=\"middle\" x=\"165\" y=\"-18.34\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n", 5667 "</g>\n", 5668 "<!-- 0->1 -->\n", 5669 "<g id=\"edge2\" class=\"edge\">\n", 5670 "<title>0->1</title>\n", 5671 "<path fill=\"none\" stroke=\"black\" d=\"M74.19,-22.04C91.9,-22.04 119.65,-22.04 139.62,-22.04\"/>\n", 5672 "<polygon fill=\"black\" stroke=\"black\" points=\"146.85,-22.04 139.85,-25.19 143.35,-22.04 139.85,-22.04 139.85,-22.04 139.85,-22.04 143.35,-22.04 139.85,-18.89 146.85,-22.04 146.85,-22.04\"/>\n", 5673 "<text text-anchor=\"start\" x=\"92\" y=\"-25.84\" font-family=\"Lato\" font-size=\"14.00\">!a & b</text>\n", 5674 "</g>\n", 5675 "<!-- 0->1 -->\n", 5676 "<g id=\"edge3\" class=\"edge\">\n", 5677 "<title>0->1</title>\n", 5678 "<path fill=\"none\" stroke=\"black\" d=\"M71.31,-12.17C77.4,-8.54 84.76,-4.87 92,-3.04 107.94,1.01 113.06,1.01 129,-3.04 133.86,-4.27 138.78,-6.33 143.33,-8.65\"/>\n", 5679 "<polygon fill=\"black\" stroke=\"black\" points=\"149.69,-12.17 142.04,-11.54 146.63,-10.47 143.56,-8.78 143.56,-8.78 143.56,-8.78 146.63,-10.47 145.09,-6.02 149.69,-12.17 149.69,-12.17\"/>\n", 5680 "<text text-anchor=\"start\" x=\"93.5\" y=\"-6.84\" font-family=\"Lato\" font-size=\"14.00\">a & b</text>\n", 5681 "</g>\n", 5682 "<!-- 1->1 -->\n", 5683 "<g id=\"edge5\" class=\"edge\">\n", 5684 "<title>1->1</title>\n", 5685 "<path fill=\"none\" stroke=\"black\" d=\"M160.18,-39.45C159.28,-49.12 160.89,-58.04 165,-58.04 168.02,-58.04 169.69,-53.23 170.01,-46.84\"/>\n", 5686 "<polygon fill=\"black\" stroke=\"black\" points=\"169.82,-39.45 173.15,-46.36 169.91,-42.94 170,-46.44 170,-46.44 170,-46.44 169.91,-42.94 166.85,-46.52 169.82,-39.45 169.82,-39.45\"/>\n", 5687 "<text text-anchor=\"start\" x=\"159.5\" y=\"-61.84\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n", 5688 "</g>\n", 5689 "<!-- 1->1 -->\n", 5690 "<g id=\"edge6\" class=\"edge\">\n", 5691 "<title>1->1</title>\n", 5692 "<path fill=\"none\" stroke=\"black\" d=\"M157.33,-38.34C152.37,-56 154.93,-76.04 165,-76.04 173.73,-76.04 176.82,-60.97 174.25,-45.45\"/>\n", 5693 "<polygon fill=\"black\" stroke=\"black\" points=\"172.67,-38.34 177.26,-44.49 173.43,-41.76 174.19,-45.18 174.19,-45.18 174.19,-45.18 173.43,-41.76 171.11,-45.86 172.67,-38.34 172.67,-38.34\"/>\n", 5694 "<text text-anchor=\"start\" x=\"161.5\" y=\"-94.84\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n", 5695 "<text text-anchor=\"start\" x=\"157\" y=\"-79.84\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n", 5696 "</g>\n", 5697 "</g>\n", 5698 "</svg>\n" 5699 ], 5700 "text/plain": [ 5701 "<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fd3c4098c30> >" 5702 ] 5703 }, 5704 "metadata": {}, 5705 "output_type": "display_data" 5706 }, 5707 { 5708 "data": { 5709 "image/svg+xml": [ 5710 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", 5711 "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", 5712 " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", 5713 "<!-- Generated by graphviz version 2.43.0 (0)\n", 5714 " -->\n", 5715 "<!-- Title: g Pages: 1 -->\n", 5716 "<svg width=\"383pt\" height=\"376pt\"\n", 5717 " viewBox=\"0.00 0.00 383.00 376.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", 5718 "<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 372)\">\n", 5719 "<title>g</title>\n", 5720 "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-372 379,-372 379,4 -4,4\"/>\n", 5721 "<!-- states -->\n", 5722 "<g id=\"node1\" class=\"node\">\n", 5723 "<title>states</title>\n", 5724 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"20,-311 20,-332 75,-332 75,-311 20,-311\"/>\n", 5725 "<polyline fill=\"none\" stroke=\"black\" points=\"20,-311 75,-311 \"/>\n", 5726 "<text text-anchor=\"start\" x=\"32\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">states</text>\n", 5727 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"75,-311 75,-332 88,-332 88,-311 75,-311\"/>\n", 5728 "<polyline fill=\"none\" stroke=\"black\" points=\"75,-311 88,-311 \"/>\n", 5729 "<text text-anchor=\"start\" x=\"78\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5730 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"88,-311 88,-332 101,-332 101,-311 88,-311\"/>\n", 5731 "<polyline fill=\"none\" stroke=\"black\" points=\"88,-311 101,-311 \"/>\n", 5732 "<text text-anchor=\"start\" x=\"91\" y=\"-317.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5733 "<polygon fill=\"none\" stroke=\"black\" points=\"20,-290 20,-311 75,-311 75,-290 20,-290\"/>\n", 5734 "<text text-anchor=\"start\" x=\"35\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ</text>\n", 5735 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\"/>\n", 5736 "<polygon fill=\"none\" stroke=\"black\" points=\"75,-290 75,-311 88,-311 88,-290 75,-290\"/>\n", 5737 "<text text-anchor=\"start\" x=\"78\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5738 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\"/>\n", 5739 "<polygon fill=\"none\" stroke=\"black\" points=\"88,-290 88,-311 101,-311 101,-290 88,-290\"/>\n", 5740 "<text text-anchor=\"start\" x=\"91\" y=\"-296.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5741 "<polygon fill=\"none\" stroke=\"black\" points=\"20,-269 20,-290 75,-290 75,-269 20,-269\"/>\n", 5742 "<text text-anchor=\"start\" x=\"23\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">succ_tail</text>\n", 5743 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\"/>\n", 5744 "<polygon fill=\"none\" stroke=\"black\" points=\"75,-269 75,-290 88,-290 88,-269 75,-269\"/>\n", 5745 "<text text-anchor=\"start\" x=\"78\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5746 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\"/>\n", 5747 "<polygon fill=\"none\" stroke=\"black\" points=\"88,-269 88,-290 101,-290 101,-269 88,-269\"/>\n", 5748 "<text text-anchor=\"start\" x=\"91\" y=\"-275.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5749 "</g>\n", 5750 "<!-- edges -->\n", 5751 "<g id=\"node2\" class=\"node\">\n", 5752 "<title>edges</title>\n", 5753 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"135,-343 135,-364 196,-364 196,-343 135,-343\"/>\n", 5754 "<polyline fill=\"none\" stroke=\"black\" points=\"135,-343 196,-343 \"/>\n", 5755 "<text text-anchor=\"start\" x=\"150\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">edges</text>\n", 5756 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"196,-343 196,-364 239,-364 239,-343 196,-343\"/>\n", 5757 "<polyline fill=\"none\" stroke=\"black\" points=\"196,-343 239,-343 \"/>\n", 5758 "<text text-anchor=\"start\" x=\"214\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5759 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"239,-343 239,-364 277,-364 277,-343 239,-343\"/>\n", 5760 "<polyline fill=\"none\" stroke=\"black\" points=\"239,-343 277,-343 \"/>\n", 5761 "<text text-anchor=\"start\" x=\"254.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5762 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"277,-343 277,-364 320,-364 320,-343 277,-343\"/>\n", 5763 "<polyline fill=\"none\" stroke=\"black\" points=\"277,-343 320,-343 \"/>\n", 5764 "<text text-anchor=\"start\" x=\"295\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5765 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"320,-343 320,-364 340,-364 340,-343 320,-343\"/>\n", 5766 "<polyline fill=\"none\" stroke=\"black\" points=\"320,-343 340,-343 \"/>\n", 5767 "<text text-anchor=\"start\" x=\"326.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", 5768 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"340,-343 340,-364 367,-364 367,-343 340,-343\"/>\n", 5769 "<polyline fill=\"none\" stroke=\"black\" points=\"340,-343 367,-343 \"/>\n", 5770 "<text text-anchor=\"start\" x=\"350\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5771 "<polygon fill=\"none\" stroke=\"black\" points=\"135,-322 135,-343 196,-343 196,-322 135,-322\"/>\n", 5772 "<text text-anchor=\"start\" x=\"152\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">cond</text>\n", 5773 "<polygon fill=\"none\" stroke=\"black\" points=\"196,-322 196,-343 239,-343 239,-322 196,-322\"/>\n", 5774 "<text text-anchor=\"start\" x=\"199\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a & b</text>\n", 5775 "<polygon fill=\"none\" stroke=\"black\" points=\"239,-322 239,-343 277,-343 277,-322 239,-322\"/>\n", 5776 "<text text-anchor=\"start\" x=\"242\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & b</text>\n", 5777 "<polygon fill=\"none\" stroke=\"black\" points=\"277,-322 277,-343 320,-343 320,-322 277,-322\"/>\n", 5778 "<text text-anchor=\"start\" x=\"280\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a & !b</text>\n", 5779 "<polygon fill=\"none\" stroke=\"black\" points=\"320,-322 320,-343 340,-343 340,-322 320,-322\"/>\n", 5780 "<text text-anchor=\"start\" x=\"324.5\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">!a</text>\n", 5781 "<polygon fill=\"none\" stroke=\"black\" points=\"340,-322 340,-343 367,-343 367,-322 340,-322\"/>\n", 5782 "<text text-anchor=\"start\" x=\"350\" y=\"-328.8\" font-family=\"Times,serif\" font-size=\"14.00\">a</text>\n", 5783 "<polygon fill=\"none\" stroke=\"black\" points=\"135,-301 135,-322 196,-322 196,-301 135,-301\"/>\n", 5784 "<text text-anchor=\"start\" x=\"156\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">acc</text>\n", 5785 "<polygon fill=\"none\" stroke=\"black\" points=\"196,-301 196,-322 239,-322 239,-301 196,-301\"/>\n", 5786 "<text text-anchor=\"start\" x=\"210.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5787 "<polygon fill=\"none\" stroke=\"black\" points=\"239,-301 239,-322 277,-322 277,-301 239,-301\"/>\n", 5788 "<text text-anchor=\"start\" x=\"251\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5789 "<polygon fill=\"none\" stroke=\"black\" points=\"277,-301 277,-322 320,-322 320,-301 277,-301\"/>\n", 5790 "<text text-anchor=\"start\" x=\"291.5\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5791 "<polygon fill=\"none\" stroke=\"black\" points=\"320,-301 320,-322 340,-322 340,-301 320,-301\"/>\n", 5792 "<text text-anchor=\"start\" x=\"323\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", 5793 "<polygon fill=\"none\" stroke=\"black\" points=\"340,-301 340,-322 367,-322 367,-301 340,-301\"/>\n", 5794 "<text text-anchor=\"start\" x=\"343\" y=\"-307.8\" font-family=\"Times,serif\" font-size=\"14.00\">{0}</text>\n", 5795 "<polygon fill=\"none\" stroke=\"black\" points=\"135,-280 135,-301 196,-301 196,-280 135,-280\"/>\n", 5796 "<text text-anchor=\"start\" x=\"157.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">dst</text>\n", 5797 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"196,-280 196,-301 239,-301 239,-280 196,-280\"/>\n", 5798 "<polygon fill=\"none\" stroke=\"black\" points=\"196,-280 196,-301 239,-301 239,-280 196,-280\"/>\n", 5799 "<text text-anchor=\"start\" x=\"214\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5800 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"239,-280 239,-301 277,-301 277,-280 239,-280\"/>\n", 5801 "<polygon fill=\"none\" stroke=\"black\" points=\"239,-280 239,-301 277,-301 277,-280 239,-280\"/>\n", 5802 "<text text-anchor=\"start\" x=\"254.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5803 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"277,-280 277,-301 320,-301 320,-280 277,-280\"/>\n", 5804 "<polygon fill=\"none\" stroke=\"black\" points=\"277,-280 277,-301 320,-301 320,-280 277,-280\"/>\n", 5805 "<text text-anchor=\"start\" x=\"295\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5806 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"320,-280 320,-301 340,-301 340,-280 320,-280\"/>\n", 5807 "<polygon fill=\"none\" stroke=\"black\" points=\"320,-280 320,-301 340,-301 340,-280 320,-280\"/>\n", 5808 "<text text-anchor=\"start\" x=\"326.5\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5809 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"340,-280 340,-301 367,-301 367,-280 340,-280\"/>\n", 5810 "<polygon fill=\"none\" stroke=\"black\" points=\"340,-280 340,-301 367,-301 367,-280 340,-280\"/>\n", 5811 "<text text-anchor=\"start\" x=\"350\" y=\"-286.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5812 "<polygon fill=\"none\" stroke=\"black\" points=\"135,-259 135,-280 196,-280 196,-259 135,-259\"/>\n", 5813 "<text text-anchor=\"start\" x=\"138\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">next_succ</text>\n", 5814 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"196,-259 196,-280 239,-280 239,-259 196,-259\"/>\n", 5815 "<polygon fill=\"none\" stroke=\"black\" points=\"196,-259 196,-280 239,-280 239,-259 196,-259\"/>\n", 5816 "<text text-anchor=\"start\" x=\"214\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", 5817 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"239,-259 239,-280 277,-280 277,-259 239,-259\"/>\n", 5818 "<polygon fill=\"none\" stroke=\"black\" points=\"239,-259 239,-280 277,-280 277,-259 239,-259\"/>\n", 5819 "<text text-anchor=\"start\" x=\"254.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", 5820 "<polygon fill=\"none\" stroke=\"black\" points=\"277,-259 277,-280 320,-280 320,-259 277,-259\"/>\n", 5821 "<text text-anchor=\"start\" x=\"295\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5822 "<polygon fill=\"cyan\" stroke=\"transparent\" points=\"320,-259 320,-280 340,-280 340,-259 320,-259\"/>\n", 5823 "<polygon fill=\"none\" stroke=\"black\" points=\"320,-259 320,-280 340,-280 340,-259 320,-259\"/>\n", 5824 "<text text-anchor=\"start\" x=\"326.5\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", 5825 "<polygon fill=\"none\" stroke=\"black\" points=\"340,-259 340,-280 367,-280 367,-259 340,-259\"/>\n", 5826 "<text text-anchor=\"start\" x=\"350\" y=\"-265.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5827 "<polygon fill=\"none\" stroke=\"black\" points=\"135,-238 135,-259 196,-259 196,-238 135,-238\"/>\n", 5828 "<text text-anchor=\"start\" x=\"157.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">src</text>\n", 5829 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"196,-238 196,-259 239,-259 239,-238 196,-238\"/>\n", 5830 "<polygon fill=\"none\" stroke=\"black\" points=\"196,-238 196,-259 239,-259 239,-238 196,-238\"/>\n", 5831 "<text text-anchor=\"start\" x=\"214\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5832 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"239,-238 239,-259 277,-259 277,-238 239,-238\"/>\n", 5833 "<polygon fill=\"none\" stroke=\"black\" points=\"239,-238 239,-259 277,-259 277,-238 239,-238\"/>\n", 5834 "<text text-anchor=\"start\" x=\"254.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5835 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"277,-238 277,-259 320,-259 320,-238 277,-238\"/>\n", 5836 "<polygon fill=\"none\" stroke=\"black\" points=\"277,-238 277,-259 320,-259 320,-238 277,-238\"/>\n", 5837 "<text text-anchor=\"start\" x=\"295\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5838 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"320,-238 320,-259 340,-259 340,-238 320,-238\"/>\n", 5839 "<polygon fill=\"none\" stroke=\"black\" points=\"320,-238 320,-259 340,-259 340,-238 320,-238\"/>\n", 5840 "<text text-anchor=\"start\" x=\"326.5\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5841 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"340,-238 340,-259 367,-259 367,-238 340,-238\"/>\n", 5842 "<polygon fill=\"none\" stroke=\"black\" points=\"340,-238 340,-259 367,-259 367,-238 340,-238\"/>\n", 5843 "<text text-anchor=\"start\" x=\"350\" y=\"-244.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5844 "</g>\n", 5845 "<!-- meta -->\n", 5846 "<g id=\"node3\" class=\"node\">\n", 5847 "<title>meta</title>\n", 5848 "<text text-anchor=\"start\" x=\"10\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">init_state:</text>\n", 5849 "<polygon fill=\"yellow\" stroke=\"transparent\" points=\"76,-118 76,-137 112,-137 112,-118 76,-118\"/>\n", 5850 "<text text-anchor=\"start\" x=\"78\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n", 5851 "<text text-anchor=\"start\" x=\"10\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">num_sets:</text>\n", 5852 "<text text-anchor=\"start\" x=\"78\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", 5853 "<text text-anchor=\"start\" x=\"10\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">acceptance:</text>\n", 5854 "<text text-anchor=\"start\" x=\"78\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">Inf(0)</text>\n", 5855 "<text text-anchor=\"start\" x=\"10\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">ap_vars:</text>\n", 5856 "<text text-anchor=\"start\" x=\"78\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">b a</text>\n", 5857 "</g>\n", 5858 "<!-- meta->states -->\n", 5859 "<!-- props -->\n", 5860 "<g id=\"node4\" class=\"node\">\n", 5861 "<title>props</title>\n", 5862 "<text text-anchor=\"start\" x=\"161\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_state_acc:</text>\n", 5863 "<text text-anchor=\"start\" x=\"305\" y=\"-180.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5864 "<text text-anchor=\"start\" x=\"161\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_inherently_weak:</text>\n", 5865 "<text text-anchor=\"start\" x=\"305\" y=\"-161.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5866 "<text text-anchor=\"start\" x=\"161\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_terminal:</text>\n", 5867 "<text text-anchor=\"start\" x=\"305\" y=\"-142.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5868 "<text text-anchor=\"start\" x=\"161\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_weak:</text>\n", 5869 "<text text-anchor=\"start\" x=\"305\" y=\"-123.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5870 "<text text-anchor=\"start\" x=\"161\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_very_weak:</text>\n", 5871 "<text text-anchor=\"start\" x=\"305\" y=\"-104.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5872 "<text text-anchor=\"start\" x=\"161\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_complete:</text>\n", 5873 "<text text-anchor=\"start\" x=\"305\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">maybe</text>\n", 5874 "<text text-anchor=\"start\" x=\"161\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_universal:</text>\n", 5875 "<text text-anchor=\"start\" x=\"305\" y=\"-66.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5876 "<text text-anchor=\"start\" x=\"161\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_unambiguous:</text>\n", 5877 "<text text-anchor=\"start\" x=\"305\" y=\"-47.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5878 "<text text-anchor=\"start\" x=\"161\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_semi_deterministic:</text>\n", 5879 "<text text-anchor=\"start\" x=\"305\" y=\"-28.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5880 "<text text-anchor=\"start\" x=\"161\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">prop_stutter_invariant:</text>\n", 5881 "<text text-anchor=\"start\" x=\"305\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">yes</text>\n", 5882 "</g>\n", 5883 "<!-- props->edges -->\n", 5884 "</g>\n", 5885 "</svg>\n" 5886 ], 5887 "text/plain": [ 5888 "<spot.jupyter.SVG object>" 5889 ] 5890 }, 5891 "metadata": {}, 5892 "output_type": "display_data" 5893 } 5894 ], 5895 "source": [ 5896 "prod.release_named_properties()\n", 5897 "display(prod, prod.show_storage())" 5898 ] 5899 } 5900 ], 5901 "metadata": { 5902 "kernelspec": { 5903 "display_name": "Python 3", 5904 "language": "python", 5905 "name": "python3" 5906 }, 5907 "language_info": { 5908 "codemirror_mode": { 5909 "name": "ipython", 5910 "version": 3 5911 }, 5912 "file_extension": ".py", 5913 "mimetype": "text/x-python", 5914 "name": "python", 5915 "nbconvert_exporter": "python", 5916 "pygments_lexer": "ipython3", 5917 "version": "3.7.5" 5918 } 5919 }, 5920 "nbformat": 4, 5921 "nbformat_minor": 2 5922} 5923